From 93c624c882939074badfa505b5f8df0941a95399 Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Mon, 7 Mar 2022 17:59:05 -0800 Subject: [PATCH 1/4] Updated API Model Files --- .../aws-models/amplify.2017-07-25.json | 197 +- .../amplifyuibuilder.2021-08-11.json | 407 +++- .../aws-models/appflow.2020-08-23.json | 24 + .../aws-models/athena.2017-05-18.json | 125 +- .../chimesdkmeetings.2021-07-15.json | 45 +- .../aws-models/cloudtrail.2013-11-01.json | 30 +- .../aws-models/connect.2017-08-08.json | 4 + .../aws-models/devopsguru.2020-12-01.json | 304 ++- .../aws-models/ec2.2016-11-15.json | 30 +- .../aws-models/ecr.2015-09-21.json | 29 +- .../aws-models/ecs.2014-11-13.json | 100 +- .../aws-models/elasticache.2015-02-02.json | 2 +- .../aws-models/finspacedata.2020-07-13.json | 1426 ++++++++++++- .../aws-models/fis.2020-12-01.json | 269 +++ .../aws-models/fsx.2018-03-01.json | 183 +- .../aws-models/gamelift.2015-10-01.json | 4 +- .../aws-models/greengrassv2.2020-11-30.json | 6 +- .../aws-models/kafkaconnect.2021-09-14.json | 293 ++- .../aws-models/kendra.2019-02-03.json | 216 +- .../aws-models/keyspaces.2022-02-10.json | 1762 +++++++++++++++++ .../aws-models/macie.2017-12-19.json | 142 +- .../aws-models/mediapackage.2017-10-12.json | 36 +- .../aws-models/mgn.2020-02-26.json | 138 +- ...migrationhubrefactorspaces.2021-10-26.json | 89 +- .../aws-models/panorama.2019-07-24.json | 222 ++- .../aws-models/rds.2014-10-31.json | 60 +- .../route53recoverycluster.2019-12-02.json | 58 +- .../servicecatalogappregistry.2020-06-24.json | 38 +- .../aws-models/sts.2011-06-15.json | 8 +- .../aws-models/synthetics.2017-10-11.json | 14 +- .../timestreamquery.2018-11-01.json | 6 +- .../aws-models/transfer.2018-11-05.json | 54 +- .../smithy/aws/go/codegen/endpoints.json | 71 +- 33 files changed, 5537 insertions(+), 855 deletions(-) create mode 100644 codegen/sdk-codegen/aws-models/keyspaces.2022-02-10.json diff --git a/codegen/sdk-codegen/aws-models/amplify.2017-07-25.json b/codegen/sdk-codegen/aws-models/amplify.2017-07-25.json index e36f3dc08d5..55cfdb00be7 100644 --- a/codegen/sdk-codegen/aws-models/amplify.2017-07-25.json +++ b/codegen/sdk-codegen/aws-models/amplify.2017-07-25.json @@ -36,6 +36,7 @@ "min": 1, "max": 255 }, + "smithy.api#pattern": "^(?s).+$", "smithy.api#sensitive": {} } }, @@ -223,7 +224,7 @@ "repository": { "target": "com.amazonaws.amplify#Repository", "traits": { - "smithy.api#documentation": "

The repository for the Amplify app.

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

The Git repository for the Amplify app.

", "smithy.api#required": {} } }, @@ -291,7 +292,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The basic authorization credentials for branches for the Amplify app. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The basic authorization credentials for branches for the Amplify app. You must\n base64-encode the authorization credentials and provide them in the format\n user:password.

" } }, "customRules": { @@ -335,6 +336,12 @@ "traits": { "smithy.api#documentation": "

Describes the automated branch creation configuration for the Amplify app.

" } + }, + "repositoryCloneMethod": { + "target": "com.amazonaws.amplify#RepositoryCloneMethod", + "traits": { + "smithy.api#documentation": "

The authentication protocol to use to access the Git repository for an Amplify app.\n For a GitHub repository, specify TOKEN. For an Amazon Web Services CodeCommit repository,\n specify SIGV4. For GitLab and Bitbucket repositories, specify\n SSH.

" + } } }, "traits": { @@ -403,7 +410,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#ArtifactUrl": { @@ -475,7 +483,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The basic authorization credentials for the autocreated branch. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The basic authorization credentials for the autocreated branch. You must\n base64-encode the authorization credentials and provide them in the format\n user:password.

" } }, "enableBasicAuth": { @@ -487,7 +495,7 @@ "enablePerformanceMode": { "target": "com.amazonaws.amplify#EnablePerformanceMode", "traits": { - "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.

" + "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at\n the edge for a longer interval. When performance mode is enabled, hosting configuration\n or code changes can take up to 10 minutes to roll out.

" } }, "buildSpec": { @@ -519,7 +527,8 @@ "smithy.api#length": { "min": 1, "max": 2048 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#AutoBranchCreationPatterns": { @@ -534,7 +543,8 @@ "smithy.api#length": { "min": 1, "max": 2048 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#AutoSubDomainCreationPatterns": { @@ -605,9 +615,10 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 1000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#BackendEnvironments": { @@ -636,6 +647,7 @@ "min": 0, "max": 2000 }, + "smithy.api#pattern": "^(?s)", "smithy.api#sensitive": {} } }, @@ -756,7 +768,7 @@ "enablePerformanceMode": { "target": "com.amazonaws.amplify#EnablePerformanceMode", "traits": { - "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.

" + "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at\n the edge for a longer interval. When performance mode is enabled, hosting configuration\n or code changes can take up to 10 minutes to roll out.

" } }, "thumbnailUrl": { @@ -768,7 +780,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The basic authorization credentials for a branch of an Amplify app. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The basic authorization credentials for a branch of an Amplify app. You must\n base64-encode the authorization credentials and provide them in the format\n user:password.

" } }, "buildSpec": { @@ -832,7 +844,8 @@ "smithy.api#length": { "min": 0, "max": 1000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#BranchName": { @@ -841,7 +854,8 @@ "smithy.api#length": { "min": 1, "max": 255 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#Branches": { @@ -863,7 +877,9 @@ "smithy.api#length": { "min": 1, "max": 25000 - } + }, + "smithy.api#pattern": "^(?s).+$", + "smithy.api#sensitive": {} } }, "com.amazonaws.amplify#CertificateVerificationDNSRecord": { @@ -884,7 +900,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#CommitMessage": { @@ -893,7 +910,8 @@ "smithy.api#length": { "min": 0, "max": 10000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#CommitTime": { @@ -903,9 +921,10 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 2048 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#Context": { @@ -1018,7 +1037,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The credentials for basic authorization for an Amplify app. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The credentials for basic authorization for an Amplify app. You must base64-encode\n the authorization credentials and provide them in the format\n user:password.

" } }, "customRules": { @@ -1257,7 +1276,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The basic authorization credentials for the branch. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The basic authorization credentials for the branch. You must base64-encode the\n authorization credentials and provide them in the format\n user:password.

" } }, "enableBasicAuth": { @@ -1269,7 +1288,7 @@ "enablePerformanceMode": { "target": "com.amazonaws.amplify#EnablePerformanceMode", "traits": { - "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.

" + "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at\n the edge for a longer interval. When performance mode is enabled, hosting configuration\n or code changes can take up to 10 minutes to roll out.

" } }, "tags": { @@ -1632,9 +1651,10 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 25000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#CustomRule": { @@ -1657,7 +1677,7 @@ "status": { "target": "com.amazonaws.amplify#Status", "traits": { - "smithy.api#documentation": "

The status code for a URL rewrite or redirect rule.

\n \n
\n
200
\n
\n

Represents a 200 rewrite rule.

\n
\n
301
\n
\n

Represents a 301 (moved pemanently) redirect rule. This and all future requests should be directed to the target URL.

\n
\n
302
\n
\n

Represents a 302 temporary redirect rule.

\n
\n
404
\n
\n

Represents a 404 redirect rule.

\n
\n
404-200
\n
\n

Represents a 404 rewrite rule.

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

The status code for a URL rewrite or redirect rule.

\n\n
\n
200
\n
\n

Represents a 200 rewrite rule.

\n
\n
301
\n
\n

Represents a 301 (moved pemanently) redirect rule. This and all future\n requests should be directed to the target URL.

\n
\n
302
\n
\n

Represents a 302 temporary redirect rule.

\n
\n
404
\n
\n

Represents a 404 redirect rule.

\n
\n
404-200
\n
\n

Represents a 404 rewrite rule.

\n
\n
" } }, "condition": { @@ -2138,7 +2158,8 @@ "smithy.api#length": { "min": 1, "max": 1000 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#Description": { @@ -2147,7 +2168,8 @@ "smithy.api#length": { "min": 0, "max": 1000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#DisplayName": { @@ -2156,7 +2178,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#DomainAssociation": { @@ -2253,8 +2276,9 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 255 - } + "max": 64 + }, + "smithy.api#pattern": "^(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])(\\.)?$" } }, "com.amazonaws.amplify#DomainPrefix": { @@ -2263,7 +2287,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#DomainStatus": { @@ -2368,7 +2393,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#EnvValue": { @@ -2376,8 +2402,9 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 1000 - } + "max": 5500 + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#EnvironmentName": { @@ -2386,7 +2413,8 @@ "smithy.api#length": { "min": 1, "max": 255 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#EnvironmentVariables": { @@ -2422,7 +2450,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#FileUploadUrls": { @@ -2440,7 +2469,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#GenerateAccessLogs": { @@ -3051,7 +3081,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^[0-9]+$" } }, "com.amazonaws.amplify#JobReason": { @@ -3060,7 +3091,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#JobStatus": { @@ -3875,7 +3907,8 @@ "smithy.api#length": { "min": 0, "max": 32 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#MaxResults": { @@ -3893,7 +3926,8 @@ "smithy.api#length": { "min": 1, "max": 255 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#NextToken": { @@ -3902,7 +3936,8 @@ "smithy.api#length": { "min": 0, "max": 2000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#NotFoundException": { @@ -3925,6 +3960,7 @@ "min": 0, "max": 1000 }, + "smithy.api#pattern": "^(?s)", "smithy.api#sensitive": {} } }, @@ -3935,6 +3971,10 @@ { "value": "WEB", "name": "WEB" + }, + { + "value": "WEB_DYNAMIC", + "name": "WEB_DYNAMIC" } ] } @@ -3977,7 +4017,8 @@ "smithy.api#length": { "min": 0, "max": 20 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#Repository": { @@ -3986,12 +4027,36 @@ "smithy.api#length": { "min": 0, "max": 1000 - } + }, + "smithy.api#pattern": "^(?s)" + } + }, + "com.amazonaws.amplify#RepositoryCloneMethod": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SSH", + "name": "SSH" + }, + { + "value": "TOKEN", + "name": "TOKEN" + }, + { + "value": "SIGV4", + "name": "SIGV4" + } + ] } }, "com.amazonaws.amplify#ResourceArn": { "type": "string", "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, "smithy.api#pattern": "^arn:aws:amplify:" } }, @@ -4030,9 +4095,10 @@ "type": "string", "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 1000 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#Source": { @@ -4041,7 +4107,8 @@ "smithy.api#length": { "min": 1, "max": 2048 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#SourceUrl": { @@ -4049,8 +4116,9 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 1000 - } + "max": 3000 + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#StackName": { @@ -4059,7 +4127,8 @@ "smithy.api#length": { "min": 1, "max": 255 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#Stage": { @@ -4293,7 +4362,8 @@ "smithy.api#length": { "min": 3, "max": 7 - } + }, + "smithy.api#pattern": "^.{3,7}$" } }, "com.amazonaws.amplify#StatusReason": { @@ -4557,7 +4627,12 @@ "com.amazonaws.amplify#TTL": { "type": "string", "traits": { - "smithy.api#documentation": "

The content Time to Live (TTL) for the website in seconds.

" + "smithy.api#documentation": "

The content Time to Live (TTL) for the website in seconds.

", + "smithy.api#length": { + "min": 0, + "max": 32 + }, + "smithy.api#pattern": "^\\d*$" } }, "com.amazonaws.amplify#TagKey": { @@ -4592,7 +4667,7 @@ }, "traits": { "smithy.api#length": { - "min": 1, + "min": 0, "max": 50 } } @@ -4661,7 +4736,8 @@ "smithy.api#length": { "min": 0, "max": 256 - } + }, + "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" } }, "com.amazonaws.amplify#Target": { @@ -4670,7 +4746,8 @@ "smithy.api#length": { "min": 1, "max": 2048 - } + }, + "smithy.api#pattern": "^(?s).+$" } }, "com.amazonaws.amplify#TestArtifactsUrl": { @@ -4883,7 +4960,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The basic authorization credentials for an Amplify app. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The basic authorization credentials for an Amplify app. You must base64-encode the\n authorization credentials and provide them in the format\n user:password.

" } }, "customRules": { @@ -5052,7 +5129,7 @@ "basicAuthCredentials": { "target": "com.amazonaws.amplify#BasicAuthCredentials", "traits": { - "smithy.api#documentation": "

The basic authorization credentials for the branch. You must base64-encode the authorization credentials and provide them in the format user:password.

" + "smithy.api#documentation": "

The basic authorization credentials for the branch. You must base64-encode the\n authorization credentials and provide them in the format\n user:password.

" } }, "enableBasicAuth": { @@ -5064,7 +5141,7 @@ "enablePerformanceMode": { "target": "com.amazonaws.amplify#EnablePerformanceMode", "traits": { - "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.

" + "smithy.api#documentation": "

Enables performance mode for the branch.

\n

Performance mode optimizes for faster hosting performance by keeping content cached at\n the edge for a longer interval. When performance mode is enabled, hosting configuration\n or code changes can take up to 10 minutes to roll out.

" } }, "buildSpec": { @@ -5185,8 +5262,7 @@ "subDomainSettings": { "target": "com.amazonaws.amplify#SubDomainSettings", "traits": { - "smithy.api#documentation": "

Describes the settings for the subdomain.

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

Describes the settings for the subdomain.

" } }, "autoSubDomainCreationPatterns": { @@ -5388,7 +5464,8 @@ "smithy.api#length": { "min": 0, "max": 255 - } + }, + "smithy.api#pattern": "^(?s)" } }, "com.amazonaws.amplify#WebhookUrl": { diff --git a/codegen/sdk-codegen/aws-models/amplifyuibuilder.2021-08-11.json b/codegen/sdk-codegen/aws-models/amplifyuibuilder.2021-08-11.json index 2398fa01c6b..eea20c3afae 100644 --- a/codegen/sdk-codegen/aws-models/amplifyuibuilder.2021-08-11.json +++ b/codegen/sdk-codegen/aws-models/amplifyuibuilder.2021-08-11.json @@ -1,6 +1,68 @@ { "smithy": "1.0", "shapes": { + "com.amazonaws.amplifyuibuilder#ActionParameters": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

The type of navigation action. Valid values are url and anchor. This value is required for a navigation action.

" + } + }, + "url": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

The URL to the location to open. Specify this value for a navigation action.

" + } + }, + "anchor": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

The HTML anchor link to the location to open. Specify this value for a navigation action.

" + } + }, + "target": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

The element within the same component to modify when the action occurs.

" + } + }, + "global": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

Specifies whether the user should be signed out globally. Specify this value for an auth sign out action.

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

The name of the data model. Use when the action performs an operation on an Amplify DataStore\n model.

" + } + }, + "id": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

The unique ID of the component that the ActionParameters apply to.

" + } + }, + "fields": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperties", + "traits": { + "smithy.api#documentation": "

A dictionary of key-value pairs mapping Amplify Studio properties to fields in a data model. Use when the action\n performs an operation on an Amplify DataStore model.

" + } + }, + "state": { + "target": "com.amazonaws.amplifyuibuilder#MutationActionSetStateParameter", + "traits": { + "smithy.api#documentation": "

A key-value pair that specifies the state property name and its initial value.

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

Represents the event action configuration for an element of a Component\n or ComponentChild. Use for the workflow feature in Amplify Studio\n that allows you to bind events and actions to components. ActionParameters\n defines the action that is performed when an event occurs on the component.

" + } + }, "com.amazonaws.amplifyuibuilder#AmplifyUIBuilder": { "type": "service", "traits": { @@ -8,15 +70,14 @@ "sdkId": "AmplifyUIBuilder", "arnNamespace": "amplifyuibuilder", "cloudFormationName": "AmplifyUIBuilder", - "cloudTrailEventSource": "amplifyuibuilder.amazonaws.com", - "endpointPrefix": "amplifyuibuilder" + "cloudTrailEventSource": "amplifyuibuilder.amazonaws.com" }, "aws.auth#sigv4": { "name": "amplifyuibuilder" }, "aws.protocols#restJson1": {}, "smithy.api#cors": {}, - "smithy.api#documentation": "

The Amplify UI Builder API provides a programmatic interface for creating and configuring\n user interface (UI) component libraries and themes for use in your Amplify applications. You\n can then connect these UI components to an application's backend Amazon Web Services\n resources.

\n

You can also use the Amplify Studio visual designer to create UI components and model data\n for an app. For more information, see Introduction in the\n Amplify Docs.

\n

The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation\n for client app development. For more information, see the Amplify Framework. For more information about\n deploying an Amplify application to Amazon Web Services, see the Amplify Console User Guide.

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

The Amplify UI Builder API provides a programmatic interface for creating\n and configuring user interface (UI) component libraries and themes for use in your Amplify applications. You can then connect these UI components to an application's\n backend Amazon Web Services resources.

\n

You can also use the Amplify Studio visual designer to create UI components\n and model data for an app. For more information, see Introduction in the\n Amplify Docs.

\n

The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and\n documentation for client app development. For more information, see the Amplify Framework. For more information about\n deploying an Amplify application to Amazon Web Services, see the Amplify User Guide.

", "smithy.api#title": "AWS Amplify UI Builder" }, "version": "2021-08-11", @@ -50,7 +111,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#required": {} } }, @@ -77,14 +138,14 @@ "componentType": { "target": "com.amazonaws.amplifyuibuilder#ComponentType", "traits": { - "smithy.api#documentation": "

The type of the component. This can be an Amplify custom UI component or another custom\n component.

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

The type of the component. This can be an Amplify custom UI component or\n another custom component.

", "smithy.api#required": {} } }, "properties": { "target": "com.amazonaws.amplifyuibuilder#ComponentProperties", "traits": { - "smithy.api#documentation": "

Describes the component's properties.

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

Describes the component's properties. You can't specify tags as a valid\n property for properties.

", "smithy.api#required": {} } }, @@ -97,34 +158,34 @@ "variants": { "target": "com.amazonaws.amplifyuibuilder#ComponentVariants", "traits": { - "smithy.api#documentation": "

A list of the component's variants. A variant is a unique style configuration of a\n main component.

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

A list of the component's variants. A variant is a unique style configuration of a main\n component.

", "smithy.api#required": {} } }, "overrides": { "target": "com.amazonaws.amplifyuibuilder#ComponentOverrides", "traits": { - "smithy.api#documentation": "

Describes the component's properties that can be overriden in a customized instance of the\n component.

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

Describes the component's properties that can be overriden in a customized instance of the\n component. You can't specify tags as a valid property for\n overrides.

", "smithy.api#required": {} } }, "bindingProperties": { "target": "com.amazonaws.amplifyuibuilder#ComponentBindingProperties", "traits": { - "smithy.api#documentation": "

The information to connect a component's properties to data at runtime.

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

The information to connect a component's properties to data at runtime. You can't specify\n tags as a valid property for bindingProperties.

\n

", "smithy.api#required": {} } }, "collectionProperties": { "target": "com.amazonaws.amplifyuibuilder#ComponentCollectionProperties", "traits": { - "smithy.api#documentation": "

The data binding configuration for the component's properties. Use this for a collection component.

" + "smithy.api#documentation": "

The data binding configuration for the component's properties. Use this for a collection\n component. You can't specify tags as a valid property for\n collectionProperties.

" } }, "createdAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnMutability": "read", + "aws.cloudformation#cfnExcludeProperty": {}, "smithy.api#documentation": "

The time that the component was created.

", "smithy.api#required": {}, "smithy.api#timestampFormat": "date-time" @@ -133,7 +194,7 @@ "modifiedAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnMutability": "read", + "aws.cloudformation#cfnExcludeProperty": {}, "smithy.api#documentation": "

The time that the component was modified.

", "smithy.api#timestampFormat": "date-time" } @@ -144,10 +205,22 @@ "aws.cloudformation#cfnMutability": "create-and-read", "smithy.api#documentation": "

One or more key-value pairs to use when tagging the component.

" } + }, + "events": { + "target": "com.amazonaws.amplifyuibuilder#ComponentEvents", + "traits": { + "smithy.api#documentation": "

Describes the events that can be raised on the component. Use for the workflow feature in Amplify Studio that allows you to\n bind events and actions to components.

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

The schema version of the component when it was imported.

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

Contains the configuration settings for a user interface (UI) element for an Amplify app. A\n component is configured as a primary, stand-alone UI element. Use ComponentChild\n to configure an instance of a Component. A ComponentChild instance\n inherits the configuration of the main Component.

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

Contains the configuration settings for a user interface (UI) element for an Amplify app. A component is configured as a primary, stand-alone UI element. Use\n ComponentChild to configure an instance of a Component. A\n ComponentChild instance inherits the configuration of the main\n Component.

", "smithy.api#references": [ { "resource": "com.amazonaws.amplifyuibuilder#ComponentResource" @@ -260,7 +333,7 @@ "properties": { "target": "com.amazonaws.amplifyuibuilder#ComponentProperties", "traits": { - "smithy.api#documentation": "

Describes the properties of the child component.

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

Describes the properties of the child component. You can't specify tags as a\n valid property for properties.

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

The list of ComponentChild instances for this component.

" } + }, + "events": { + "target": "com.amazonaws.amplifyuibuilder#ComponentEvents", + "traits": { + "smithy.api#documentation": "

Describes the events that can be raised on the child component. Use for the workflow feature in Amplify Studio that allows you to\n bind events and actions to components.

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

The value to assign to the property if the condition is not met.

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

The type of the property to evaluate.

" + } } }, "traits": { @@ -367,6 +452,35 @@ "smithy.api#documentation": "

Describes the configuration for binding a component's properties to data.

" } }, + "com.amazonaws.amplifyuibuilder#ComponentEvent": { + "type": "structure", + "members": { + "action": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The action to perform when a specific event is raised.

" + } + }, + "parameters": { + "target": "com.amazonaws.amplifyuibuilder#ActionParameters", + "traits": { + "smithy.api#documentation": "

Describes information about the action.

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

Describes the configuration of an event. You can bind an event and a corresponding\n action to a Component or a ComponentChild. A button click\n is an example of an event.

" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentEvents": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#ComponentEvent" + } + }, "com.amazonaws.amplifyuibuilder#ComponentList": { "type": "list", "member": { @@ -427,7 +541,7 @@ "collectionBindingProperties": { "target": "com.amazonaws.amplifyuibuilder#ComponentPropertyBindingProperties", "traits": { - "smithy.api#documentation": "

The information to bind the component property to data at runtime. Use this for collection components.

" + "smithy.api#documentation": "

The information to bind the component property to data at runtime. Use this for collection\n components.

" } }, "defaultValue": { @@ -463,19 +577,19 @@ "concat": { "target": "com.amazonaws.amplifyuibuilder#ComponentPropertyList", "traits": { - "smithy.api#documentation": "

A list of component properties to concatenate to create the value to assign to this component property.

" + "smithy.api#documentation": "

A list of component properties to concatenate to create the value to assign to this\n component property.

" } }, "condition": { "target": "com.amazonaws.amplifyuibuilder#ComponentConditionProperty", "traits": { - "smithy.api#documentation": "

The conditional expression to use to assign a value to the component property..

" + "smithy.api#documentation": "

The conditional expression to use to assign a value to the component property.

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

Specifies whether the user configured the property in Amplify Studio after importing it.

" + "smithy.api#documentation": "

Specifies whether the user configured the property in Amplify Studio after\n importing it.

" } }, "type": { @@ -487,12 +601,24 @@ "importedValue": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The default value assigned to property when the component is imported into an app.

" + "smithy.api#documentation": "

The default value assigned to the property when the component is imported into an\n app.

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

The name of the component that is affected by an event.

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

The name of the component's property that is affected by an event.

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

Describes the configuration for all of a component's properties. Use\n ComponentProperty to specify the values to render or bind by\n default.

" + "smithy.api#documentation": "

Describes the configuration for all of a component's properties. Use\n ComponentProperty to specify the values to render or bind by default.

" } }, "com.amazonaws.amplifyuibuilder#ComponentPropertyBindingProperties": { @@ -557,16 +683,13 @@ ], "traits": { "aws.api#arn": { - "template": "app/{appId}/environment/{environmentName}/components/{id}", - "absolute": false, - "noAccount": false, - "noRegion": false + "template": "app/{appId}/environment/{environmentName}/components/{id}" }, "aws.cloudformation#cfnResource": { + "name": "Component", "additionalSchemas": [ "com.amazonaws.amplifyuibuilder#Component" - ], - "name": "Component" + ] } } }, @@ -583,7 +706,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#required": {} } }, @@ -634,13 +757,13 @@ "variantValues": { "target": "com.amazonaws.amplifyuibuilder#ComponentVariantValues", "traits": { - "smithy.api#documentation": "

The combination of variants that comprise this variant.

" + "smithy.api#documentation": "

The combination of variants that comprise this variant. You can't specify\n tags as a valid property for variantValues.

" } }, "overrides": { "target": "com.amazonaws.amplifyuibuilder#ComponentOverrides", "traits": { - "smithy.api#documentation": "

The properties of the component variant that can be overriden when customizing an instance\n of the component.

" + "smithy.api#documentation": "

The properties of the component variant that can be overriden when customizing an instance\n of the component. You can't specify tags as a valid property for\n overrides.

" } } }, @@ -686,11 +809,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Creates a new component for an Amplify app.

", "smithy.api#http": { - "method": "POST", "uri": "/app/{appId}/environment/{environmentName}/components", - "code": 200 + "method": "POST" }, "smithy.api#idempotent": {} } @@ -714,7 +839,7 @@ "componentType": { "target": "com.amazonaws.amplifyuibuilder#ComponentType", "traits": { - "smithy.api#documentation": "

The component type. This can be an Amplify custom UI component or another custom\n component.

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

The component type. This can be an Amplify custom UI component or another\n custom component.

", "smithy.api#required": {} } }, @@ -755,7 +880,7 @@ "collectionProperties": { "target": "com.amazonaws.amplifyuibuilder#ComponentCollectionProperties", "traits": { - "smithy.api#documentation": "

The data binding configuration for customizing a component's properties. Use this for a collection component.

" + "smithy.api#documentation": "

The data binding configuration for customizing a component's properties. Use this for a\n collection component.

" } }, "tags": { @@ -763,6 +888,18 @@ "traits": { "smithy.api#documentation": "

One or more key-value pairs to use when tagging the component data.

" } + }, + "events": { + "target": "com.amazonaws.amplifyuibuilder#ComponentEvents", + "traits": { + "smithy.api#documentation": "

The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

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

The schema version of the component when it was imported.

" + } } }, "traits": { @@ -783,7 +920,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -843,11 +980,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Creates a theme to apply to the components in an Amplify app.

", "smithy.api#http": { - "method": "POST", "uri": "/app/{appId}/environment/{environmentName}/themes", - "code": 200 + "method": "POST" }, "smithy.api#idempotent": {} } @@ -900,7 +1039,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -942,6 +1081,9 @@ "input": { "target": "com.amazonaws.amplifyuibuilder#DeleteComponentRequest" }, + "output": { + "target": "smithy.api#Unit" + }, "errors": [ { "target": "com.amazonaws.amplifyuibuilder#InternalServerException" @@ -954,11 +1096,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Deletes a component from an Amplify app.

", "smithy.api#http": { - "method": "DELETE", "uri": "/app/{appId}/environment/{environmentName}/components/{id}", - "code": 200 + "method": "DELETE" }, "smithy.api#idempotent": {} } @@ -969,7 +1113,7 @@ "appId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The unique ID of the Amplify app associated with the component to delete.

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

The unique ID of the Amplify app associated with the component to\n delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -977,7 +1121,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -997,6 +1141,9 @@ "input": { "target": "com.amazonaws.amplifyuibuilder#DeleteThemeRequest" }, + "output": { + "target": "smithy.api#Unit" + }, "errors": [ { "target": "com.amazonaws.amplifyuibuilder#InternalServerException" @@ -1009,11 +1156,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Deletes a theme from an Amplify app.

", "smithy.api#http": { - "method": "DELETE", "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", - "code": 200 + "method": "DELETE" }, "smithy.api#idempotent": {} } @@ -1024,7 +1173,7 @@ "appId": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The unique ID of the Amplify app associated with the theme to delete.

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

The unique ID of the Amplify app associated with the theme to\n delete.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1032,7 +1181,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1063,9 +1212,8 @@ "traits": { "smithy.api#documentation": "

Exchanges an access code for a token.

", "smithy.api#http": { - "method": "POST", "uri": "/tokens/{provider}", - "code": 200 + "method": "POST" } } }, @@ -1158,11 +1306,15 @@ } ], "traits": { - "smithy.api#documentation": "

Exports component configurations to code that is ready to integrate into an Amplify\n app.

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

Exports component configurations to code that is ready to integrate into an Amplify app.

", "smithy.api#http": { - "method": "GET", "uri": "/export/app/{appId}/environment/{environmentName}/components", - "code": 200 + "method": "GET" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "entities" }, "smithy.api#readonly": {} } @@ -1181,10 +1333,17 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

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

The token to request the next page of results.

", + "smithy.api#httpQuery": "nextToken" + } } } }, @@ -1197,6 +1356,12 @@ "smithy.api#documentation": "

Represents the configuration of the exported components.

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

The pagination token that's included if more results are available.

" + } } } }, @@ -1217,11 +1382,15 @@ } ], "traits": { - "smithy.api#documentation": "

Exports theme configurations to code that is ready to integrate into an Amplify\n app.

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

Exports theme configurations to code that is ready to integrate into an Amplify app.

", "smithy.api#http": { - "method": "GET", "uri": "/export/app/{appId}/environment/{environmentName}/themes", - "code": 200 + "method": "GET" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "entities" }, "smithy.api#readonly": {} } @@ -1244,6 +1413,13 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "nextToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The token to request the next page of results.

", + "smithy.api#httpQuery": "nextToken" + } } } }, @@ -1256,6 +1432,12 @@ "smithy.api#documentation": "

Represents the configuration of the exported themes.

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

The pagination token that's included if more results are available.

" + } } } }, @@ -1310,11 +1492,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Returns an existing component for an Amplify app.

", "smithy.api#http": { - "method": "GET", "uri": "/app/{appId}/environment/{environmentName}/components/{id}", - "code": 200 + "method": "GET" }, "smithy.api#readonly": {} } @@ -1381,11 +1565,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Returns an existing theme for an Amplify app.

", "smithy.api#http": { - "method": "GET", "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", - "code": 200 + "method": "GET" }, "smithy.api#readonly": {} } @@ -1481,17 +1667,19 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of components for a specified Amplify app and backend environment.

", + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], + "smithy.api#documentation": "

Retrieves a list of components for a specified Amplify app and backend\n environment.

", "smithy.api#http": { - "method": "GET", "uri": "/app/{appId}/environment/{environmentName}/components", - "code": 200 + "method": "GET" }, "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", - "items": "entities", - "pageSize": "maxResults" + "pageSize": "maxResults", + "items": "entities" }, "smithy.api#readonly": {} } @@ -1519,7 +1707,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1575,17 +1763,19 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves a list of themes for a specified Amplify app and backend environment.

", + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], + "smithy.api#documentation": "

Retrieves a list of themes for a specified Amplify app and backend\n environment.

", "smithy.api#http": { - "method": "GET", "uri": "/app/{appId}/environment/{environmentName}/themes", - "code": 200 + "method": "GET" }, "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", - "items": "entities", - "pageSize": "maxResults" + "pageSize": "maxResults", + "items": "entities" }, "smithy.api#readonly": {} } @@ -1613,7 +1803,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1652,6 +1842,35 @@ } } }, + "com.amazonaws.amplifyuibuilder#MutationActionSetStateParameter": { + "type": "structure", + "members": { + "componentName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the component that is being modified.

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

The name of the component property to apply the state configuration to.

", + "smithy.api#required": {} + } + }, + "set": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty", + "traits": { + "smithy.api#documentation": "

The state configuration to assign to the property.

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

Represents the state configuration when an action modifies a property of another\n element within the same component.

" + } + }, "com.amazonaws.amplifyuibuilder#Predicate": { "type": "structure", "members": { @@ -1687,7 +1906,7 @@ } }, "traits": { - "smithy.api#documentation": "

Stores information for generating Amplify DataStore queries. Use a Predicate\n to retrieve a subset of the data in a collection.

" + "smithy.api#documentation": "

Stores information for generating Amplify DataStore queries. Use a\n Predicate to retrieve a subset of the data in a collection.

" } }, "com.amazonaws.amplifyuibuilder#PredicateList": { @@ -1712,9 +1931,8 @@ "traits": { "smithy.api#documentation": "

Refreshes a previously issued access token that might have expired.

", "smithy.api#http": { - "method": "POST", "uri": "/tokens/{provider}/refresh", - "code": 200 + "method": "POST" } } }, @@ -1896,7 +2114,7 @@ "environmentName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The name of the backend environment that is a part of the Amplify app.

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

The name of the backend environment that is a part of the Amplify\n app.

", "smithy.api#required": {} } }, @@ -1917,7 +2135,7 @@ "createdAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnMutability": "read", + "aws.cloudformation#cfnExcludeProperty": {}, "smithy.api#documentation": "

The time that the theme was created.

", "smithy.api#required": {}, "smithy.api#timestampFormat": "date-time" @@ -1926,7 +2144,7 @@ "modifiedAt": { "target": "smithy.api#Timestamp", "traits": { - "aws.cloudformation#cfnMutability": "read", + "aws.cloudformation#cfnExcludeProperty": {}, "smithy.api#documentation": "

The time that the theme was modified.

", "smithy.api#timestampFormat": "date-time" } @@ -2011,16 +2229,13 @@ ], "traits": { "aws.api#arn": { - "template": "app/{appId}/environment/{environmentName}/themes/{id}", - "absolute": false, - "noAccount": false, - "noRegion": false + "template": "app/{appId}/environment/{environmentName}/themes/{id}" }, "aws.cloudformation#cfnResource": { + "name": "Theme", "additionalSchemas": [ "com.amazonaws.amplifyuibuilder#Theme" - ], - "name": "Theme" + ] } } }, @@ -2144,11 +2359,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Updates an existing component.

", "smithy.api#http": { - "method": "PATCH", "uri": "/app/{appId}/environment/{environmentName}/components/{id}", - "code": 200 + "method": "PATCH" }, "smithy.api#idempotent": {} } @@ -2177,7 +2394,7 @@ "componentType": { "target": "com.amazonaws.amplifyuibuilder#ComponentType", "traits": { - "smithy.api#documentation": "

The type of the component. This can be an Amplify custom UI component or another custom\n component.

" + "smithy.api#documentation": "

The type of the component. This can be an Amplify custom UI component or\n another custom component.

" } }, "properties": { @@ -2213,7 +2430,19 @@ "collectionProperties": { "target": "com.amazonaws.amplifyuibuilder#ComponentCollectionProperties", "traits": { - "smithy.api#documentation": "

The configuration for binding a component's properties to a data model. Use this for a collection component.

" + "smithy.api#documentation": "

The configuration for binding a component's properties to a data model. Use this for a\n collection component.

" + } + }, + "events": { + "target": "com.amazonaws.amplifyuibuilder#ComponentEvents", + "traits": { + "smithy.api#documentation": "

The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components.

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

The schema version of the component when it was imported.

" } } }, @@ -2300,11 +2529,13 @@ } ], "traits": { + "aws.iam#requiredActions": [ + "amplify:GetApp" + ], "smithy.api#documentation": "

Updates an existing theme.

", "smithy.api#http": { - "method": "PATCH", "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", - "code": 200 + "method": "PATCH" }, "smithy.api#idempotent": {} } diff --git a/codegen/sdk-codegen/aws-models/appflow.2020-08-23.json b/codegen/sdk-codegen/aws-models/appflow.2020-08-23.json index 27ef6fb5190..1ea5b90c8d4 100644 --- a/codegen/sdk-codegen/aws-models/appflow.2020-08-23.json +++ b/codegen/sdk-codegen/aws-models/appflow.2020-08-23.json @@ -3173,6 +3173,12 @@ "smithy.api#documentation": "

The properties required to query Zendesk.

" } }, + "Marketo": { + "target": "com.amazonaws.appflow#MarketoDestinationProperties", + "traits": { + "smithy.api#documentation": "

The properties required to query Marketo.

" + } + }, "CustomConnector": { "target": "com.amazonaws.appflow#CustomConnectorDestinationProperties", "traits": { @@ -4750,6 +4756,24 @@ "smithy.api#documentation": "

The connector-specific profile properties required when using Marketo.

" } }, + "com.amazonaws.appflow#MarketoDestinationProperties": { + "type": "structure", + "members": { + "object": { + "target": "com.amazonaws.appflow#Object", + "traits": { + "smithy.api#documentation": "

The object specified in the Marketo flow destination.

", + "smithy.api#required": {} + } + }, + "errorHandlingConfig": { + "target": "com.amazonaws.appflow#ErrorHandlingConfig" + } + }, + "traits": { + "smithy.api#documentation": "

The properties that Amazon AppFlow applies when you use Marketo as a flow destination.

" + } + }, "com.amazonaws.appflow#MarketoMetadata": { "type": "structure", "members": {}, diff --git a/codegen/sdk-codegen/aws-models/athena.2017-05-18.json b/codegen/sdk-codegen/aws-models/athena.2017-05-18.json index 74c5ded157c..5a24124b64b 100644 --- a/codegen/sdk-codegen/aws-models/athena.2017-05-18.json +++ b/codegen/sdk-codegen/aws-models/athena.2017-05-18.json @@ -29,6 +29,21 @@ ] }, "shapes": { + "com.amazonaws.athena#AclConfiguration": { + "type": "structure", + "members": { + "S3AclOption": { + "target": "com.amazonaws.athena#S3AclOption", + "traits": { + "smithy.api#documentation": "

The Amazon S3 canned ACL that Athena should specify when storing\n query results. Currently the only supported canned ACL is\n BUCKET_OWNER_FULL_CONTROL. If a query runs in a workgroup and the\n workgroup overrides client-side settings, then the Amazon S3 canned ACL\n specified in the workgroup's settings is used for all queries that run in the workgroup.\n For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 User\n Guide.

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

Indicates that an Amazon S3 canned ACL should be set to control ownership of\n stored query results. When Athena stores query results in Amazon S3,\n the canned ACL is set with the x-amz-acl request header. For more\n information about S3 Object Ownership, see Object Ownership settings in the Amazon S3 User\n Guide.

" + } + }, "com.amazonaws.athena#AmazonAthena": { "type": "service", "traits": { @@ -144,6 +159,9 @@ { "target": "com.amazonaws.athena#UpdateDataCatalog" }, + { + "target": "com.amazonaws.athena#UpdateNamedQuery" + }, { "target": "com.amazonaws.athena#UpdatePreparedStatement" }, @@ -167,7 +185,7 @@ "ErrorCategory": { "target": "com.amazonaws.athena#ErrorCategory", "traits": { - "smithy.api#documentation": "

An integer value that specifies the category of a query failure error. The following\n list shows the category for each integer value.

\n

\n 1 - System

\n

\n 2 - User

\n

\n 3 - Unknown

" + "smithy.api#documentation": "

An integer value that specifies the category of a query failure error. The following\n list shows the category for each integer value.

\n

\n 1 - System

\n

\n 2 - User

\n

\n 3 - Other

" } }, "ErrorType": { @@ -178,7 +196,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information about an Athena query error. The\n AthenaError feature provides standardized error information to help you\n understand failed queries and take steps after a query failure occurs.\n AthenaError includes an ErrorCategory field that specifies\n whether the cause of the failed query is due to system error, user error, or unknown\n error.

" + "smithy.api#documentation": "

Provides information about an Athena query error. The\n AthenaError feature provides standardized error information to help you\n understand failed queries and take steps after a query failure occurs.\n AthenaError includes an ErrorCategory field that specifies\n whether the cause of the failed query is due to system error, user error, or other\n error.

" } }, "com.amazonaws.athena#BatchGetNamedQuery": { @@ -2320,7 +2338,7 @@ "QueryString": { "target": "com.amazonaws.athena#QueryString", "traits": { - "smithy.api#documentation": "

The SQL query statements that comprise the query.

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

The SQL statements that make up the query.

", "smithy.api#required": {} } }, @@ -2338,7 +2356,16 @@ } }, "traits": { - "smithy.api#documentation": "

A query, where QueryString is the list of SQL query statements that\n comprise the query.

" + "smithy.api#documentation": "

A query, where QueryString contains the SQL statements that\n make up the query.

" + } + }, + "com.amazonaws.athena#NamedQueryDescriptionString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + } } }, "com.amazonaws.athena#NamedQueryId": { @@ -2712,6 +2739,12 @@ "traits": { "smithy.api#documentation": "

The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by ResultConfiguration$OutputLocation.\n If set, Athena uses the value for ExpectedBucketOwner when it\n makes Amazon S3 calls to your specified output location. If the\n ExpectedBucketOwner\n Amazon Web Services account ID does not match the actual owner of the Amazon S3\n bucket, the call fails with a permissions error.

\n

This is a client-side setting. If workgroup settings override client-side settings,\n then the query uses the ExpectedBucketOwner setting that is specified for\n the workgroup, and also uses the location for storing query results specified in the\n workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration\n and Workgroup Settings Override Client-Side Settings.

" } + }, + "AclConfiguration": { + "target": "com.amazonaws.athena#AclConfiguration", + "traits": { + "smithy.api#documentation": "

Indicates that an Amazon S3 canned ACL should be set to control ownership of\n stored query results. Currently the only supported canned ACL is\n BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If workgroup\n settings override client-side settings, then the query uses the ACL configuration that\n is specified for the workgroup, and also uses the location for storing query results\n specified in the workgroup. For more information, see WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

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

If set to \"true\", removes the Amazon Web Services account ID previously specified for\n ResultConfiguration$ExpectedBucketOwner. If set to \"false\" or not\n set, and a value is present in the ExpectedBucketOwner in\n ResultConfigurationUpdates (the client-side setting), the\n ExpectedBucketOwner in the workgroup's ResultConfiguration\n is updated with the new value. For more information, see Workgroup Settings Override\n Client-Side Settings.

" } + }, + "AclConfiguration": { + "target": "com.amazonaws.athena#AclConfiguration", + "traits": { + "smithy.api#documentation": "

The ACL configuration for the query results.

" + } + }, + "RemoveAclConfiguration": { + "target": "com.amazonaws.athena#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

If set to true, indicates that the previously-specified ACL configuration\n for queries in this workgroup should be ignored and set to null. If set to\n false or not set, and a value is present in the\n AclConfiguration of ResultConfigurationUpdates, the\n AclConfiguration in the workgroup's ResultConfiguration is\n updated with the new value. For more information, see Workgroup Settings Override\n Client-Side Settings.

" + } } }, "traits": { @@ -2779,7 +2824,7 @@ } }, "traits": { - "smithy.api#documentation": "

The metadata and rows that comprise a query result set. The metadata describes the\n column structure and data types. To return a ResultSet object, use GetQueryResults.

" + "smithy.api#documentation": "

The metadata and rows that make up a query result set. The metadata describes the\n column structure and data types. To return a ResultSet object, use GetQueryResults.

" } }, "com.amazonaws.athena#ResultSetMetadata": { @@ -2807,7 +2852,7 @@ } }, "traits": { - "smithy.api#documentation": "

The rows that comprise a query result table.

" + "smithy.api#documentation": "

The rows that make up a query result table.

" } }, "com.amazonaws.athena#RowList": { @@ -2816,6 +2861,17 @@ "target": "com.amazonaws.athena#Row" } }, + "com.amazonaws.athena#S3AclOption": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "BUCKET_OWNER_FULL_CONTROL", + "name": "BUCKET_OWNER_FULL_CONTROL" + } + ] + } + }, "com.amazonaws.athena#StartQueryExecution": { "type": "operation", "input": { @@ -3334,6 +3390,63 @@ "type": "structure", "members": {} }, + "com.amazonaws.athena#UpdateNamedQuery": { + "type": "operation", + "input": { + "target": "com.amazonaws.athena#UpdateNamedQueryInput" + }, + "output": { + "target": "com.amazonaws.athena#UpdateNamedQueryOutput" + }, + "errors": [ + { + "target": "com.amazonaws.athena#InternalServerException" + }, + { + "target": "com.amazonaws.athena#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates a NamedQuery object. The database or workgroup cannot be updated.

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.athena#UpdateNamedQueryInput": { + "type": "structure", + "members": { + "NamedQueryId": { + "target": "com.amazonaws.athena#NamedQueryId", + "traits": { + "smithy.api#documentation": "

The unique identifier (UUID) of the query.

", + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.athena#NameString", + "traits": { + "smithy.api#documentation": "

The name of the query.

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

The query description.

" + } + }, + "QueryString": { + "target": "com.amazonaws.athena#QueryString", + "traits": { + "smithy.api#documentation": "

The contents of the query with all query statements.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.athena#UpdateNamedQueryOutput": { + "type": "structure", + "members": {} + }, "com.amazonaws.athena#UpdatePreparedStatement": { "type": "operation", "input": { diff --git a/codegen/sdk-codegen/aws-models/chimesdkmeetings.2021-07-15.json b/codegen/sdk-codegen/aws-models/chimesdkmeetings.2021-07-15.json index a8f3cb85e31..fcce20400d6 100644 --- a/codegen/sdk-codegen/aws-models/chimesdkmeetings.2021-07-15.json +++ b/codegen/sdk-codegen/aws-models/chimesdkmeetings.2021-07-15.json @@ -83,7 +83,7 @@ } }, "traits": { - "smithy.api#documentation": "

An optional category of meeting features that contains audio-specific configurations, such as operating parameters for Amazon Voice Focus.

" + "smithy.api#documentation": "

An optional category of meeting features that contains audio-specific configurations, such as operating parameters for Amazon Voice Focus.

" } }, "com.amazonaws.chimesdkmeetings#BadRequestException": { @@ -205,7 +205,7 @@ "name": "chime" }, "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

The Amazon Chime SDK meetings APIs in this section allow software developers to create Amazon Chime SDK meetings, set the AWS Regions for meetings, create and manage users, and send and \n receive meeting notifications. For more information \n about the meeting APIs, see Amazon Chime SDK meetings.

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

The Amazon Chime SDK meetings APIs in this section allow software developers to create Amazon Chime SDK meetings, set the AWS Regions for meetings, create and manage users, and send and \n receive meeting notifications. For more information about the meeting APIs, see Amazon Chime SDK meetings.

", "smithy.api#title": "Amazon Chime SDK Meetings" }, "version": "2021-07-15", @@ -425,7 +425,7 @@ "MediaRegion": { "target": "com.amazonaws.chimesdkmeetings#MediaRegion", "traits": { - "smithy.api#documentation": "

The Region in which to create the meeting.

\n \n

\n Available values: \n af-south-1\n , \n ap-northeast-1\n , \n ap-northeast-2\n , \n ap-south-1\n , \n ap-southeast-1\n , \n ap-southeast-2\n , \n ca-central-1\n , \n eu-central-1\n , \n eu-north-1\n , \n eu-south-1\n , \n eu-west-1\n , \n eu-west-2\n , \n eu-west-3\n , \n sa-east-1\n , \n us-east-1\n , \n us-east-2\n , \n us-west-1\n , \n us-west-2\n .\n

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

The Region in which to create the meeting.

\n \n

\n Available values: \n af-south-1, \n ap-northeast-1, \n ap-northeast-2, \n ap-south-1, \n ap-southeast-1, \n ap-southeast-2, \n ca-central-1, \n eu-central-1, \n eu-north-1, \n eu-south-1, \n eu-west-1, \n eu-west-2, \n eu-west-3, \n sa-east-1, \n us-east-1, \n us-east-2, \n us-west-1, \n us-west-2.\n

\n

Available values in AWS GovCloud (US) Regions: us-gov-east-1, us-gov-west-1.

", "smithy.api#required": {} } }, @@ -512,7 +512,7 @@ "MediaRegion": { "target": "com.amazonaws.chimesdkmeetings#MediaRegion", "traits": { - "smithy.api#documentation": "

The Region in which to create the meeting.

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

The Region in which to create the meeting.

\n \n

\n Available values: \n af-south-1, \n ap-northeast-1, \n ap-northeast-2, \n ap-south-1, \n ap-southeast-1, \n ap-southeast-2, \n ca-central-1, \n eu-central-1, \n eu-north-1, \n eu-south-1, \n eu-west-1, \n eu-west-2, \n eu-west-3, \n sa-east-1, \n us-east-1, \n us-east-2, \n us-west-1, \n us-west-2.\n

\n

Available values in AWS GovCloud (US) Regions: us-gov-east-1, us-gov-west-1.

", "smithy.api#required": {} } }, @@ -716,8 +716,7 @@ "LanguageCode": { "target": "com.amazonaws.chimesdkmeetings#TranscribeLanguageCode", "traits": { - "smithy.api#documentation": "

The language code specified for the Amazon Transcribe engine.

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

The language code specified for the Amazon Transcribe engine.

" } }, "VocabularyFilterMethod": { @@ -771,7 +770,7 @@ "PiiEntityTypes": { "target": "com.amazonaws.chimesdkmeetings#TranscribePiiEntityTypes", "traits": { - "smithy.api#documentation": "

Lists the PII entity types you want to identify or redact. To specify entity types, you must enable ContentIdentificationType or ContentRedactionType.

\n \n

PIIEntityTypes must be comma-separated. The available values are: \n BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_NUMBER, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, PIN, EMAIL, \n ADDRESS, NAME, PHONE, SSN, and ALL.

\n \n

\n PiiEntityTypes is an optional parameter with a default value of ALL.

" + "smithy.api#documentation": "

Lists the PII entity types you want to identify or redact. To specify entity types, you must enable ContentIdentificationType or ContentRedactionType.

\n \n

\n PIIEntityTypes must be comma-separated. The available values are: \n BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_NUMBER, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, PIN, EMAIL, \n ADDRESS, NAME, PHONE, SSN, and ALL.

\n \n

\n PiiEntityTypes is an optional parameter with a default value of ALL.

" } }, "LanguageModelName": { @@ -779,6 +778,24 @@ "traits": { "smithy.api#documentation": "

The name of the language model used during transcription.

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

Automatically identifies the language spoken in media files.

" + } + }, + "LanguageOptions": { + "target": "com.amazonaws.chimesdkmeetings#TranscribeLanguageOptions", + "traits": { + "smithy.api#documentation": "

Language codes for the languages that you want to identify. You must provide at least 2 codes.

" + } + }, + "PreferredLanguage": { + "target": "com.amazonaws.chimesdkmeetings#TranscribeLanguageCode", + "traits": { + "smithy.api#documentation": "

Language code for the preferred language.

" + } } }, "traits": { @@ -1143,7 +1160,7 @@ "MediaRegion": { "target": "com.amazonaws.chimesdkmeetings#MediaRegion", "traits": { - "smithy.api#documentation": "

The Region in which you create the meeting. Available values: af-south-1, ap-northeast-1, \n ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, \n eu-central-1, eu-north-1, eu-south-1,\n eu-west-1, eu-west-2, eu-west-3,\n sa-east-1, us-east-1, us-east-2,\n us-west-1, us-west-2.

" + "smithy.api#documentation": "

The Region in which you create the meeting. Available values: af-south-1, ap-northeast-1, \n ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, \n eu-central-1, eu-north-1, eu-south-1,\n eu-west-1, eu-west-2, eu-west-3,\n sa-east-1, us-east-1, us-east-2,\n us-west-1, us-west-2.

\n

Available values in AWS GovCloud (US) Regions: us-gov-east-1, us-gov-west-1.

" } }, "MediaPlacement": { @@ -1189,7 +1206,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration settings of the features available to a meeting.

" + "smithy.api#documentation": "

The configuration settings of the features available to a meeting.>

" } }, "com.amazonaws.chimesdkmeetings#NotFoundException": { @@ -1482,6 +1499,16 @@ "smithy.api#pattern": "^[0-9a-zA-Z._-]+$" } }, + "com.amazonaws.chimesdkmeetings#TranscribeLanguageOptions": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^[a-zA-Z-,]+$" + } + }, "com.amazonaws.chimesdkmeetings#TranscribeMedicalContentIdentificationType": { "type": "string", "traits": { diff --git a/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json b/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json index 35d66717788..99462381ff3 100644 --- a/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json +++ b/codegen/sdk-codegen/aws-models/cloudtrail.2013-11-01.json @@ -245,7 +245,7 @@ } ], "traits": { - "smithy.api#documentation": "

Cancels a query if the query is not in a terminated state, such as CANCELLED, FAILED or FINISHED. You must specify an ARN value for EventDataStore. \n The ID of the query that you want to cancel is also required. When you run CancelQuery, the query status might \n show as CANCELLED even if the operation is not yet finished.

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

Cancels a query if the query is not in a terminated state, such as CANCELLED, FAILED, TIMED_OUT, or FINISHED. You must specify an ARN value for EventDataStore.\n The ID of the query that you want to cancel is also required. When you run CancelQuery, the query status might \n show as CANCELLED even if the operation is not yet finished.

", "smithy.api#idempotent": {} } }, @@ -1152,7 +1152,7 @@ "QueryStatus": { "target": "com.amazonaws.cloudtrail#QueryStatus", "traits": { - "smithy.api#documentation": "

The status of a query. Values for QueryStatus include QUEUED, RUNNING, \n FINISHED, FAILED, or CANCELLED\n

" + "smithy.api#documentation": "

The status of a query. Values for QueryStatus include QUEUED, RUNNING, \n FINISHED, FAILED, TIMED_OUT, or CANCELLED\n

" } }, "QueryStatistics": { @@ -1883,7 +1883,7 @@ "QueryStatus": { "target": "com.amazonaws.cloudtrail#QueryStatus", "traits": { - "smithy.api#documentation": "

The status of the query. Values include QUEUED, RUNNING, FINISHED, FAILED, \n or CANCELLED.

" + "smithy.api#documentation": "

The status of the query. Values include QUEUED, RUNNING, FINISHED, FAILED, \n TIMED_OUT, or CANCELLED.

" } }, "QueryStatistics": { @@ -2146,7 +2146,7 @@ "code": "InactiveQuery", "httpResponseCode": 400 }, - "smithy.api#documentation": "

The specified query cannot be canceled because it is in the FINISHED, FAILED, or \n CANCELLED state.

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

The specified query cannot be canceled because it is in the FINISHED, FAILED, TIMED_OUT, or\n CANCELLED state.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3008,7 +3008,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of queries and query statuses for the past seven days. You must specify an ARN value for \n EventDataStore. Optionally, to shorten the list of results, you can specify a time range, \n formatted as timestamps, by adding StartTime and EndTime parameters, and a \n QueryStatus value. Valid values for QueryStatus include QUEUED, RUNNING, \n FINISHED, FAILED, or CANCELLED.

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

Returns a list of queries and query statuses for the past seven days. You must specify an ARN value for \n EventDataStore. Optionally, to shorten the list of results, you can specify a time range, \n formatted as timestamps, by adding StartTime and EndTime parameters, and a \n QueryStatus value. Valid values for QueryStatus include QUEUED, RUNNING, \n FINISHED, FAILED, TIMED_OUT, or CANCELLED.

", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -3064,7 +3064,7 @@ "QueryStatus": { "target": "com.amazonaws.cloudtrail#QueryStatus", "traits": { - "smithy.api#documentation": "

The status of queries that you want to return in results. Valid values for QueryStatus include QUEUED, RUNNING, \n FINISHED, FAILED, or CANCELLED.

" + "smithy.api#documentation": "

The status of queries that you want to return in results. Valid values for QueryStatus include QUEUED, RUNNING, \n FINISHED, FAILED, TIMED_OUT, or CANCELLED.

" } } } @@ -3807,7 +3807,7 @@ "QueryStatus": { "target": "com.amazonaws.cloudtrail#QueryStatus", "traits": { - "smithy.api#documentation": "

The status of the query. This can be QUEUED, RUNNING, FINISHED, FAILED, \n or CANCELLED.

" + "smithy.api#documentation": "

The status of the query. This can be QUEUED, RUNNING, FINISHED, FAILED, \n TIMED_OUT, or CANCELLED.

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

The total number of results returned by a query.

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

The total bytes that the query scanned in the event data store. This value matches the number of\n bytes for which your account is billed for the query, unless the query is still running.

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

The number of events that the query scanned in the event data store.

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

The total bytes that the query scanned in the event data store. This value matches the number of \n bytes for which your account is billed for the query, unless the query is still running.

" + } + }, "ExecutionTimeInMillis": { "target": "com.amazonaws.cloudtrail#Integer", "traits": { @@ -3953,6 +3965,10 @@ { "value": "CANCELLED", "name": "CANCELLED" + }, + { + "value": "TIMED_OUT", + "name": "TIMED_OUT" } ] } diff --git a/codegen/sdk-codegen/aws-models/connect.2017-08-08.json b/codegen/sdk-codegen/aws-models/connect.2017-08-08.json index dad49d41b92..9bbfd5b679a 100644 --- a/codegen/sdk-codegen/aws-models/connect.2017-08-08.json +++ b/codegen/sdk-codegen/aws-models/connect.2017-08-08.json @@ -7337,6 +7337,10 @@ { "value": "AGENT_EVENTS", "name": "AGENT_EVENTS" + }, + { + "value": "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", + "name": "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS" } ] } 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 74db84bada5..2874844bc87 100644 --- a/codegen/sdk-codegen/aws-models/devopsguru.2020-12-01.json +++ b/codegen/sdk-codegen/aws-models/devopsguru.2020-12-01.json @@ -167,6 +167,20 @@ } } }, + "com.amazonaws.devopsguru#AmazonCodeGuruProfilerIntegration": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.devopsguru#EventSourceOptInStatus", + "traits": { + "smithy.api#documentation": "

The status of the CodeGuru Profiler integration.

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

Information about your account's integration with Amazon CodeGuru Profiler.

" + } + }, "com.amazonaws.devopsguru#AnomalyDescription": { "type": "string" }, @@ -227,7 +241,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Amazon Web Services resources in which DevOps Guru detected unusual behavior that resulted in \n \tthe generation of an anomaly. When DevOps Guru detects multiple related anomalies, it creates \n and insight with details about the anomalous behavior and suggestions about how to correct the \n problem.

" + "smithy.api#documentation": "

The Amazon Web Services resources in which DevOps Guru detected unusual behavior that resulted in the\n\t\t\tgeneration of an anomaly. When DevOps Guru detects multiple related anomalies, it creates and\n\t\t\tinsight with details about the anomalous behavior and suggestions about how to correct\n\t\t\tthe problem.

" } }, "com.amazonaws.devopsguru#AnomalyResources": { @@ -255,6 +269,9 @@ ] } }, + "com.amazonaws.devopsguru#AnomalySource": { + "type": "string" + }, "com.amazonaws.devopsguru#AnomalySourceDetails": { "type": "structure", "members": { @@ -267,7 +284,7 @@ "PerformanceInsightsMetrics": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricsDetails", "traits": { - "smithy.api#documentation": "

An array of PerformanceInsightsMetricsDetail objects that contain information\n \t\tabout analyzed Performance Insights metrics that show anomalous behavior.

" + "smithy.api#documentation": "

An array of PerformanceInsightsMetricsDetail objects that contain\n\t\t\tinformation about analyzed Performance Insights metrics that show anomalous behavior.

" } } }, @@ -275,6 +292,32 @@ "smithy.api#documentation": "

Details about the source of the anomalous operational data that triggered the\n\t\t\tanomaly.

" } }, + "com.amazonaws.devopsguru#AnomalySourceMetadata": { + "type": "structure", + "members": { + "Source": { + "target": "com.amazonaws.devopsguru#AnomalySource", + "traits": { + "smithy.api#documentation": "

The source of the anomaly.

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

The name of the anomaly's resource.

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

The anomaly's resource type.

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

Metadata about an anomaly. The anomaly is detected using analysis of the metric data\u2028 over a period of time

" + } + }, "com.amazonaws.devopsguru#AnomalyStatus": { "type": "string", "traits": { @@ -383,6 +426,9 @@ { "target": "com.amazonaws.devopsguru#DescribeAnomaly" }, + { + "target": "com.amazonaws.devopsguru#DescribeEventSourcesConfig" + }, { "target": "com.amazonaws.devopsguru#DescribeFeedback" }, @@ -443,6 +489,9 @@ { "target": "com.amazonaws.devopsguru#StartCostEstimation" }, + { + "target": "com.amazonaws.devopsguru#UpdateEventSourcesConfig" + }, { "target": "com.amazonaws.devopsguru#UpdateResourceCollection" }, @@ -566,7 +615,7 @@ "StatusCode": { "target": "com.amazonaws.devopsguru#CloudWatchMetricDataStatusCode", "traits": { - "smithy.api#documentation": "

This is an enum of the status showing whether the metric value pair list has partial or\n\t\t\tcomplete data, or if there was an error.

" + "smithy.api#documentation": "

This is an enum of the status showing whether the metric value pair list has partial\n\t\t\tor complete data, or if there was an error.

" } } }, @@ -758,7 +807,7 @@ "Tags": { "target": "com.amazonaws.devopsguru#TagCostEstimationResourceCollectionFilters", "traits": { - "smithy.api#documentation": "

The Amazon Web Services tags used to filter the resource collection that is used for \n \t\ta cost estimate.

\n \t

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

The Amazon Web Services tags used to filter the resource collection that is used for a cost\n\t\t\testimate.

\n

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
" } } }, @@ -1057,6 +1106,52 @@ } } }, + "com.amazonaws.devopsguru#DescribeEventSourcesConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.devopsguru#DescribeEventSourcesConfigRequest" + }, + "output": { + "target": "com.amazonaws.devopsguru#DescribeEventSourcesConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.devopsguru#AccessDeniedException" + }, + { + "target": "com.amazonaws.devopsguru#InternalServerException" + }, + { + "target": "com.amazonaws.devopsguru#ThrottlingException" + }, + { + "target": "com.amazonaws.devopsguru#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

This operation lists details about a DevOps Guru event source that is shared with your\u2028 account.

", + "smithy.api#http": { + "method": "POST", + "uri": "/event-sources", + "code": 200 + } + } + }, + "com.amazonaws.devopsguru#DescribeEventSourcesConfigRequest": { + "type": "structure", + "members": {} + }, + "com.amazonaws.devopsguru#DescribeEventSourcesConfigResponse": { + "type": "structure", + "members": { + "EventSources": { + "target": "com.amazonaws.devopsguru#EventSourcesConfig", + "traits": { + "smithy.api#documentation": "

The name of the event source.

" + } + } + } + }, "com.amazonaws.devopsguru#DescribeFeedback": { "type": "operation", "input": { @@ -1419,7 +1514,7 @@ "CloudFormation": { "target": "com.amazonaws.devopsguru#CloudFormationHealths", "traits": { - "smithy.api#documentation": "

The returned CloudFormationHealthOverview object that contains an\n\t\t\tInsightHealthOverview object with the requested system health\n\t\t\tinformation.

" + "smithy.api#documentation": "

The returned CloudFormationHealthOverview object that contains an\n\t\t\t\tInsightHealthOverview object with the requested system health\n\t\t\tinformation.

" } }, "Service": { @@ -1527,7 +1622,7 @@ "Tags": { "target": "com.amazonaws.devopsguru#TagHealths", "traits": { - "smithy.api#documentation": "

The Amazon Web Services tags that are used by resources in the resource collection.

\n \t

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

The Amazon Web Services tags that are used by resources in the resource collection.

\n\t\t

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
" } } } @@ -1786,6 +1881,35 @@ "smithy.api#pattern": "^[a-z]+[a-z0-9]*\\.amazonaws\\.com|aws\\.events$" } }, + "com.amazonaws.devopsguru#EventSourceOptInStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.devopsguru#EventSourcesConfig": { + "type": "structure", + "members": { + "AmazonCodeGuruProfiler": { + "target": "com.amazonaws.devopsguru#AmazonCodeGuruProfilerIntegration", + "traits": { + "smithy.api#documentation": "

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

Describes the event sources.

" + } + }, "com.amazonaws.devopsguru#EventTimeRange": { "type": "structure", "members": { @@ -1980,6 +2104,9 @@ } } }, + "com.amazonaws.devopsguru#InsightDescription": { + "type": "string" + }, "com.amazonaws.devopsguru#InsightFeedback": { "type": "structure", "members": { @@ -3115,13 +3242,13 @@ "Group": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricGroup", "traits": { - "smithy.api#documentation": "

The name of the dimension group. Its valid values are:

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

The name of the dimension group. Its valid values are:

\n\n\t\t " } }, "Dimensions": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricDimensions", "traits": { - "smithy.api#documentation": "

A list of specific dimensions from a dimension group. If this parameter is not present,\n \t\tthen it signifies that all of the dimensions in the group were requested or are present in\n \t\tthe response.

\n \t

Valid values for elements in the Dimensions array are:

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

A list of specific dimensions from a dimension group. If this parameter is not\n\t\t\tpresent, then it signifies that all of the dimensions in the group were requested or are\n\t\t\tpresent in the response.

\n\t\t

Valid values for elements in the Dimensions array are:

\n\n\t\t " } }, "Limit": { @@ -3132,7 +3259,7 @@ } }, "traits": { - "smithy.api#documentation": "

A logical grouping of Performance Insights metrics for a related subject area. For example, the\n \t\tdb.sql dimension group consists of the following dimensions:\n \t\tdb.sql.id, db.sql.db_id, db.sql.statement, and\n \t\tdb.sql.tokenized_id.

\n \t \n \t\t

Each response element returns a maximum of 500 bytes. For larger elements, such as SQL statements, \n \t\t\tonly the first 500 bytes are returned.

\n \t
\n \t\n \t

Amazon RDS Performance Insights enables you to monitor and explore different \n \t\tdimensions of database load based on data captured from a running DB instance. \n \t\tDB load is measured as average active sessions. Performance Insights provides the \n \t\tdata to API consumers as a two-dimensional time-series dataset. The time dimension \n \t\tprovides DB load data for each time point in the queried time range. Each time point \n \t\tdecomposes overall load in relation to the requested dimensions, measured at that \n \t\ttime point. Examples include SQL, Wait event, User, and Host.

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

A logical grouping of Performance Insights metrics for a related subject area. For example, the\n\t\t\t\tdb.sql dimension group consists of the following dimensions:\n\t\t\t\tdb.sql.id, db.sql.db_id, db.sql.statement,\n\t\t\tand db.sql.tokenized_id.

\n\t\t \n\t\t\t

Each response element returns a maximum of 500 bytes. For larger elements, such as\n\t\t\t\tSQL statements, only the first 500 bytes are returned.

\n\t\t
\n

Amazon RDS Performance Insights enables you to monitor and explore different \n \t\tdimensions of database load based on data captured from a running DB instance. \n \t\tDB load is measured as average active sessions. Performance Insights provides the \n \t\tdata to API consumers as a two-dimensional time-series dataset. The time dimension \n \t\tprovides DB load data for each time point in the queried time range. Each time point \n \t\tdecomposes overall load in relation to the requested dimensions, measured at that \n \t\ttime point. Examples include SQL, Wait event, User, and Host.

\n \t\n \t " } }, "com.amazonaws.devopsguru#PerformanceInsightsMetricDimensions": { @@ -3181,24 +3308,24 @@ "Metric": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricName", "traits": { - "smithy.api#documentation": "

The name of the meteric used used when querying an Performance Insights GetResourceMetrics API for \n \tanomaly metrics.

\n \t\n \t

Valid values for Metric are:

\n \t\n \t \n \t

If the number of active sessions is less than an internal Performance Insights threshold, db.load.avg and db.sampledload.avg \n \t\tare the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with db.load.avg \n \t\tshowing the scaled values, db.sampledload.avg showing the raw values, and db.sampledload.avg less than db.load.avg. \n \t\tFor most use cases, you can query db.load.avg only.

" + "smithy.api#documentation": "

The name of the meteric used used when querying an Performance Insights\n\t\t\t\tGetResourceMetrics API for anomaly metrics.

\n\n\t\t

Valid values for Metric are:

\n\n\t\t \n\t\t

If the number of active sessions is less than an internal Performance Insights threshold,\n\t\t\t\tdb.load.avg and db.sampledload.avg are the same value. If\n\t\t\tthe number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, with\n\t\t\t\tdb.load.avg showing the scaled values, db.sampledload.avg\n\t\t\tshowing the raw values, and db.sampledload.avg less than\n\t\t\t\tdb.load.avg. For most use cases, you can query db.load.avg\n\t\t\tonly.

" } }, "GroupBy": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricDimensionGroup", "traits": { - "smithy.api#documentation": "

The specification for how to aggregate the data points from a Performance Insights GetResourceMetrics API query. The \n \t\tPerformance Insights query returns all of the dimensions within that group,\n \t\tunless you provide the names of specific dimensions within that group. You can also request\n \t\tthat Performance Insights return a limited number of values for a dimension.

" + "smithy.api#documentation": "

The specification for how to aggregate the data points from a Performance Insights\n\t\t\t\tGetResourceMetrics API query. The Performance Insights query returns all of the\n\t\t\tdimensions within that group, unless you provide the names of specific dimensions within\n\t\t\tthat group. You can also request that Performance Insights return a limited number of values for a\n\t\t\tdimension.

" } }, "Filter": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricFilterMap", "traits": { - "smithy.api#documentation": "

One or more filters to apply to a Performance Insights GetResourceMetrics API query. Restrictions:

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

One or more filters to apply to a Performance Insights GetResourceMetrics API query.\n\t\t\tRestrictions:

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

A single query to be processed. Use these parameters to \n \t\tquery the Performance Insights GetResourceMetrics API to retrieve the metrics \n \t\tfor an anomaly. For more information, see \n GetResourceMetrics\n \n \tin the Amazon RDS Performance Insights API Reference.

\n \t\n \t

Amazon RDS Performance Insights enables you to monitor and explore different \n \t\tdimensions of database load based on data captured from a running DB instance. \n \t\tDB load is measured as average active sessions. Performance Insights provides the \n \t\tdata to API consumers as a two-dimensional time-series dataset. The time dimension \n \t\tprovides DB load data for each time point in the queried time range. Each time point \n \t\tdecomposes overall load in relation to the requested dimensions, measured at that \n \t\ttime point. Examples include SQL, Wait event, User, and Host.

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

A single query to be processed. Use these parameters to query the Performance Insights\n\t\t\t\tGetResourceMetrics API to retrieve the metrics for an anomaly. For more\n\t\t\tinformation, see \n GetResourceMetrics\n in the Amazon RDS Performance Insights API\n\t\t\t\tReference.

\n

Amazon RDS Performance Insights enables you to monitor and explore different \n \t\tdimensions of database load based on data captured from a running DB instance. \n \t\tDB load is measured as average active sessions. Performance Insights provides the \n \t\tdata to API consumers as a two-dimensional time-series dataset. The time dimension \n \t\tprovides DB load data for each time point in the queried time range. Each time point \n \t\tdecomposes overall load in relation to the requested dimensions, measured at that \n \t\ttime point. Examples include SQL, Wait event, User, and Host.

\n \t\n \t " } }, "com.amazonaws.devopsguru#PerformanceInsightsMetricUnit": { @@ -3222,13 +3349,13 @@ "MetricQuery": { "target": "com.amazonaws.devopsguru#PerformanceInsightsMetricQuery", "traits": { - "smithy.api#documentation": "

A single query to be processed for the metric. For more information, see \n \t\t\n PerformanceInsightsMetricQuery\n .

" + "smithy.api#documentation": "

A single query to be processed for the metric. For more information, see \n PerformanceInsightsMetricQuery\n .

" } }, "ReferenceData": { "target": "com.amazonaws.devopsguru#PerformanceInsightsReferenceDataList", "traits": { - "smithy.api#documentation": "

\n \tFor more information, see \n \t\n PerformanceInsightsReferenceData\n .\n

" + "smithy.api#documentation": "

For more information, see \n PerformanceInsightsReferenceData\n .

" } }, "StatsAtAnomaly": { @@ -3245,7 +3372,7 @@ } }, "traits": { - "smithy.api#documentation": "

Details about Performance Insights metrics.

\n \t\n \t

Amazon RDS Performance Insights enables you to monitor and explore different \n \t\tdimensions of database load based on data captured from a running DB instance. \n \t\tDB load is measured as average active sessions. Performance Insights provides the \n \t\tdata to API consumers as a two-dimensional time-series dataset. The time dimension \n \t\tprovides DB load data for each time point in the queried time range. Each time point \n \t\tdecomposes overall load in relation to the requested dimensions, measured at that \n \t\ttime point. Examples include SQL, Wait event, User, and Host.

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

Details about Performance Insights metrics.

\n

Amazon RDS Performance Insights enables you to monitor and explore different \n \t\tdimensions of database load based on data captured from a running DB instance. \n \t\tDB load is measured as average active sessions. Performance Insights provides the \n \t\tdata to API consumers as a two-dimensional time-series dataset. The time dimension \n \t\tprovides DB load data for each time point in the queried time range. Each time point \n \t\tdecomposes overall load in relation to the requested dimensions, measured at that \n \t\ttime point. Examples include SQL, Wait event, User, and Host.

\n \t\n \t " } }, "com.amazonaws.devopsguru#PerformanceInsightsMetricsDetails": { @@ -3260,18 +3387,18 @@ "ReferenceScalar": { "target": "com.amazonaws.devopsguru#PerformanceInsightsReferenceScalar", "traits": { - "smithy.api#documentation": "

A scalar value DevOps Guru for a metric that DevOps Guru compares to actual metric values. This reference value is used \n to determine if an actual metric value should be considered anomalous.

" + "smithy.api#documentation": "

A scalar value DevOps Guru for a metric that DevOps Guru compares to actual metric values. This\n\t\t\treference value is used to determine if an actual metric value should be considered\n\t\t\tanomalous.

" } }, "ReferenceMetric": { "target": "com.amazonaws.devopsguru#PerformanceInsightsReferenceMetric", "traits": { - "smithy.api#documentation": "

A metric that DevOps Guru compares to actual metric values. This reference metric is used \n \t\tto determine if an actual metric should be considered anomalous.

" + "smithy.api#documentation": "

A metric that DevOps Guru compares to actual metric values. This reference metric is used to\n\t\t\tdetermine if an actual metric should be considered anomalous.

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

Reference scalar values and other metrics that DevOps Guru displays on a graph in its console along with the actual metrics it \n analyzed. Compare these reference values to your actual metrics to help you understand anomalous behavior that DevOps Guru detected.

" + "smithy.api#documentation": "

Reference scalar values and other metrics that DevOps Guru displays on a graph in its\n\t\t\tconsole along with the actual metrics it analyzed. Compare these reference values to\n\t\t\tyour actual metrics to help you understand anomalous behavior that DevOps Guru\n\t\t\tdetected.

" } }, "com.amazonaws.devopsguru#PerformanceInsightsReferenceData": { @@ -3286,12 +3413,12 @@ "ComparisonValues": { "target": "com.amazonaws.devopsguru#PerformanceInsightsReferenceComparisonValues", "traits": { - "smithy.api#documentation": "

The specific reference values used to evaluate the Performance Insights. For more information, see \n\t\t\t\n PerformanceInsightsReferenceComparisonValues\n .\n\t\t

" + "smithy.api#documentation": "

The specific reference values used to evaluate the Performance Insights. For more information, see\n\t\t\t\t\t\n PerformanceInsightsReferenceComparisonValues\n .

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

Reference data used to evaluate Performance Insights to determine if its performance \n is anomalous or not.

" + "smithy.api#documentation": "

Reference data used to evaluate Performance Insights to determine if its performance is anomalous or\n\t\t\tnot.

" } }, "com.amazonaws.devopsguru#PerformanceInsightsReferenceDataList": { @@ -3328,7 +3455,7 @@ } }, "traits": { - "smithy.api#documentation": "

A reference value to compare Performance Insights metrics against to determine if the metrics \n demonstrate anomalous behavior.

" + "smithy.api#documentation": "

A reference value to compare Performance Insights metrics against to determine if the metrics\n\t\t\tdemonstrate anomalous behavior.

" } }, "com.amazonaws.devopsguru#PerformanceInsightsStat": { @@ -3452,6 +3579,18 @@ "traits": { "smithy.api#documentation": "

A threshold that was exceeded by behavior in analyzed resources. Exceeding this\n\t\t\tthreshold is related to the anomalous behavior that generated this anomaly.

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

The metadata for the anomaly.

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

Information about a resource in which DevOps Guru detected anomalous behavior.

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

A threshold that was exceeded by behavior in analyzed resources. Exceeding this\n\t\t\tthreshold is related to the anomalous behavior that generated this anomaly.

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

Returns the metadata of the source.

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

Information about a resource in which DevOps Guru detected anomalous behavior.

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

The ID of the Amazon Web Services System Manager OpsItem created for this insight. You must enable\n\t\t\tthe creation of OpstItems insights before they are created for each insight.

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

Describes the proactive insight.

" + } } }, "traits": { @@ -3659,7 +3816,7 @@ "Severity": { "target": "com.amazonaws.devopsguru#InsightSeverity", "traits": { - "smithy.api#documentation": "

An array of severity values used to search for insights. For more information, see \n\tUnderstanding \n\tinsight severities in the Amazon DevOps Guru User Guide.

" + "smithy.api#documentation": "

An array of severity values used to search for insights.\n\t\t\tFor more information, see \n\tUnderstanding \n\tinsight severities in the Amazon DevOps Guru User Guide.

" } }, "Status": { @@ -3682,7 +3839,7 @@ } }, "traits": { - "smithy.api#documentation": "

Details about a proactive insight. This object is returned by\n\t\t\tDescribeInsight.

" + "smithy.api#documentation": "

Details about a proactive insight. This object is returned by\n\t\t\t\tDescribeInsight.

" } }, "com.amazonaws.devopsguru#ProactiveOrganizationInsights": { @@ -3947,6 +4104,12 @@ "traits": { "smithy.api#documentation": "

The ID of the Amazon Web Services System Manager OpsItem created for this insight. You must enable\n\t\t\tthe creation of OpstItems insights before they are created for each insight.

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

Describes the reactive insight.

" + } } }, "traits": { @@ -4039,7 +4202,7 @@ "Severity": { "target": "com.amazonaws.devopsguru#InsightSeverity", "traits": { - "smithy.api#documentation": "

An array of severity values used to search for insights. For more information, see \n\tUnderstanding \n\tinsight severities in the Amazon DevOps Guru User Guide.

" + "smithy.api#documentation": "

An array of severity values used to search for insights.\n\t\t\tFor more information, see \n\tUnderstanding \n\tinsight severities in the Amazon DevOps Guru User Guide.

" } }, "Status": { @@ -4059,7 +4222,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about a reactive insight. This object is returned by\n\t\t\tDescribeInsight.

" + "smithy.api#documentation": "

Information about a reactive insight. This object is returned by\n\t\t\t\tDescribeInsight.

" } }, "com.amazonaws.devopsguru#ReactiveOrganizationInsights": { @@ -4106,12 +4269,21 @@ "traits": { "smithy.api#documentation": "

Anomalies that are related to the problem. Use these Anomalies to learn more about\n\t\t\twhat's happening and to help address the issue.

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

The category type of the recommendation.

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

Recommendation information to help you remediate detected anomalous behavior that\n\t\t\tgenerated an insight.

" } }, + "com.amazonaws.devopsguru#RecommendationCategory": { + "type": "string" + }, "com.amazonaws.devopsguru#RecommendationDescription": { "type": "string" }, @@ -4168,7 +4340,7 @@ "Type": { "target": "com.amazonaws.devopsguru#RecommendationRelatedAnomalyResourceType", "traits": { - "smithy.api#documentation": "

The type of the resource. Resource types take the same form that is \n\t\t\tused by Amazon Web Services CloudFormation resource type identifiers, service-provider::service-name::data-type-name. \n\t\t\tFor example, AWS::RDS::DBCluster. For more information, see \n\t\t\tAmazon Web Services resource and \n\t\t\t\tproperty types reference in the Amazon Web Services CloudFormation User Guide.

" + "smithy.api#documentation": "

The type of the resource. Resource types take the same form that is used by Amazon Web Services CloudFormation\n\t\t\tresource type identifiers, service-provider::service-name::data-type-name.\n\t\t\tFor example, AWS::RDS::DBCluster. For more information, see Amazon Web Services\n\t\t\t\tresource and property types reference in the Amazon Web Services CloudFormation User\n\t\t\t\tGuide.

" } } }, @@ -4388,7 +4560,7 @@ "Tags": { "target": "com.amazonaws.devopsguru#TagCollections", "traits": { - "smithy.api#documentation": "

The Amazon Web Services tags that are used by resources in the resource collection.

\n \t

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

The Amazon Web Services tags that are used by resources in the resource collection.

\n\t\t

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
" } } }, @@ -4408,7 +4580,7 @@ "Tags": { "target": "com.amazonaws.devopsguru#TagCollectionFilters", "traits": { - "smithy.api#documentation": "

The Amazon Web Services tags used to filter the resources in the resource collection.

\n \t

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

The Amazon Web Services tags used to filter the resources in the resource collection.

\n\t\t

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
" } } }, @@ -4663,7 +4835,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of insights in your organization. You can specify which insights are\n\t\t\treturned by their start time, one or more statuses (ONGOING,\n\t\t\tCLOSED, and CLOSED), one or more severities\n\t\t\t(LOW, MEDIUM, and HIGH), and type\n\t\t\t(REACTIVE or PROACTIVE).

\n\t\t

Use the Filters parameter to specify status and severity search\n\t\t\tparameters. Use the Type parameter to specify REACTIVE or\n\t\t\tPROACTIVE in your search.

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

Returns a list of insights in your organization. You can specify which insights are\n\t\t\treturned by their start time, one or more statuses (ONGOING,\n\t\t\t\tCLOSED, and CLOSED), one or more severities\n\t\t\t\t(LOW, MEDIUM, and HIGH), and type\n\t\t\t\t(REACTIVE or PROACTIVE).

\n\t\t

Use the Filters parameter to specify status and severity search\n\t\t\tparameters. Use the Type parameter to specify REACTIVE or\n\t\t\t\tPROACTIVE in your search.

", "smithy.api#http": { "method": "POST", "uri": "/organization/insights/search", @@ -4749,7 +4921,7 @@ "Type": { "target": "com.amazonaws.devopsguru#InsightType", "traits": { - "smithy.api#documentation": "

The type of insights you are searching for (REACTIVE or\n\t\t\tPROACTIVE).

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

The type of insights you are searching for (REACTIVE or\n\t\t\t\tPROACTIVE).

", "smithy.api#required": {} } } @@ -5155,13 +5327,13 @@ "TagValues": { "target": "com.amazonaws.devopsguru#TagValues", "traits": { - "smithy.api#documentation": "

The values in an Amazon Web Services tag collection.

\n \t

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

The values in an Amazon Web Services tag collection.

\n

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

A collection of Amazon Web Services stags.

\n \t

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

A collection of Amazon Web Services stags.

\n

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
" } }, "com.amazonaws.devopsguru#TagCollectionFilter": { @@ -5177,13 +5349,13 @@ "TagValues": { "target": "com.amazonaws.devopsguru#TagValues", "traits": { - "smithy.api#documentation": "

The values in an Amazon Web Services tag collection.

\n \t

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

The values in an Amazon Web Services tag collection.

\n

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

A collection of Amazon Web Services tags used to filter insights. This is used to return insights generated from \n only resources that contain the tags in the tag collection.

" + "smithy.api#documentation": "

A collection of Amazon Web Services tags used to filter insights. This is used to return insights\n\t\t\tgenerated from only resources that contain the tags in the tag collection.

" } }, "com.amazonaws.devopsguru#TagCollectionFilters": { @@ -5211,13 +5383,13 @@ "TagValues": { "target": "com.amazonaws.devopsguru#CostEstimationTagValues", "traits": { - "smithy.api#documentation": "

The values in an Amazon Web Services tag collection.

\n \t

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

The values in an Amazon Web Services tag collection.

\n

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

Information about a collection of Amazon Web Services resources that are identified by an \n \t\tAmazon Web Services tag. This collection of resources is used to create a monthly cost estimate\n \t\tfor DevOps Guru to analyze Amazon Web Services resources. The maximum number of tags you can specify for a\n \t\tcost estimate is one. The estimate created is for the cost to analyze the Amazon Web Services\n \t\tresources defined by the tag. For more information, see Stacks in the\n \t\tAmazon Web Services CloudFormation User Guide.

" + "smithy.api#documentation": "

Information about a collection of Amazon Web Services resources that are identified by an Amazon Web Services tag.\n\t\t\tThis collection of resources is used to create a monthly cost estimate for DevOps Guru to\n\t\t\tanalyze Amazon Web Services resources. The maximum number of tags you can specify for a cost estimate\n\t\t\tis one. The estimate created is for the cost to analyze the Amazon Web Services resources defined by\n\t\t\tthe tag. For more information, see Stacks in the\n\t\t\t\tAmazon Web Services CloudFormation User Guide.

" } }, "com.amazonaws.devopsguru#TagCostEstimationResourceCollectionFilters": { @@ -5238,18 +5410,18 @@ "TagValue": { "target": "com.amazonaws.devopsguru#TagValue", "traits": { - "smithy.api#documentation": "

The value in an Amazon Web Services tag.

\n \t

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

" + "smithy.api#documentation": "

The value in an Amazon Web Services tag.

\n

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

" } }, "Insight": { "target": "com.amazonaws.devopsguru#InsightHealth", "traits": { - "smithy.api#documentation": "

Information about the health of the Amazon Web Services resources in your account that are\n\t\t\tspecified by an Amazon Web Services tag, including the number of open proactive, open reactive\n\t\t\tinsights, and the Mean Time to Recover (MTTR) of closed insights.

" + "smithy.api#documentation": "

Information about the health of the Amazon Web Services resources in your account that are specified\n\t\t\tby an Amazon Web Services tag, including the number of open proactive, open reactive insights, and the\n\t\t\tMean Time to Recover (MTTR) of closed insights.

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

Information about the health of Amazon Web Services resources in your account that are specified by\n \t\tan Amazon Web Services tag key.

" + "smithy.api#documentation": "

Information about the health of Amazon Web Services resources in your account that are specified by\n\t\t\tan Amazon Web Services tag key.

" } }, "com.amazonaws.devopsguru#TagHealths": { @@ -5362,6 +5534,52 @@ "smithy.api#documentation": "

Contains the names of Amazon Web Services CloudFormation stacks used to update a collection of stacks.\n\t\t\tYou can specify up to 500 Amazon Web Services CloudFormation stacks.

" } }, + "com.amazonaws.devopsguru#UpdateEventSourcesConfig": { + "type": "operation", + "input": { + "target": "com.amazonaws.devopsguru#UpdateEventSourcesConfigRequest" + }, + "output": { + "target": "com.amazonaws.devopsguru#UpdateEventSourcesConfigResponse" + }, + "errors": [ + { + "target": "com.amazonaws.devopsguru#AccessDeniedException" + }, + { + "target": "com.amazonaws.devopsguru#InternalServerException" + }, + { + "target": "com.amazonaws.devopsguru#ThrottlingException" + }, + { + "target": "com.amazonaws.devopsguru#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Updates the event source configuration.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/event-sources", + "code": 200 + } + } + }, + "com.amazonaws.devopsguru#UpdateEventSourcesConfigRequest": { + "type": "structure", + "members": { + "EventSources": { + "target": "com.amazonaws.devopsguru#EventSourcesConfig", + "traits": { + "smithy.api#documentation": "

The name of the event source.

" + } + } + } + }, + "com.amazonaws.devopsguru#UpdateEventSourcesConfigResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.devopsguru#UpdateResourceCollection": { "type": "operation", "input": { @@ -5423,7 +5641,7 @@ "Tags": { "target": "com.amazonaws.devopsguru#UpdateTagCollectionFilters", "traits": { - "smithy.api#documentation": "

The updated Amazon Web Services tags used to filter the resources in the resource collection.

\n \t

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

The updated Amazon Web Services tags used to filter the resources in the resource collection.

\n\t\t

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
" } } }, @@ -5539,13 +5757,13 @@ "TagValues": { "target": "com.amazonaws.devopsguru#UpdateTagValues", "traits": { - "smithy.api#documentation": "

The values in an Amazon Web Services tag collection.

\n \t

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

The values in an Amazon Web Services tag collection.

\n

The tag's value is an optional field used to associate a string with \n\t\t\t\t\tthe tag key (for example, 111122223333, Production, or a team\n \t\t\t\tname). The key and value are the tag's key pair. \n \t\t\t\tOmitting the tag value is the same as using an empty\n \t\t\t\tstring. Like tag keys, tag values are\n \t\t\t\tcase-sensitive. You can specify a maximum of 256 characters for a tag value.

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

A new collection of Amazon Web Services resources that are defined by an Amazon Web Services tag or tag \n key/value pair.

" + "smithy.api#documentation": "

A new collection of Amazon Web Services resources that are defined by an Amazon Web Services tag or tag\n\t\t\tkey/value pair.

" } }, "com.amazonaws.devopsguru#UpdateTagCollectionFilters": { 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 7bcdea00a40..d191bb95edd 100644 --- a/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json +++ b/codegen/sdk-codegen/aws-models/ec2.2016-11-15.json @@ -10901,7 +10901,7 @@ "Type": { "target": "com.amazonaws.ec2#FleetType", "traits": { - "smithy.api#documentation": "

The fleet type. The default value is maintain.

\n \n

For more information, see EC2 Fleet\n request types in the Amazon EC2 User Guide.

" + "smithy.api#documentation": "

The fleet type. The default value is maintain.

\n \n

For more information, see EC2 Fleet\n request types in the Amazon EC2 User Guide.

" } }, "ValidFrom": { @@ -11504,7 +11504,8 @@ "AddressFamily": { "target": "com.amazonaws.ec2#AddressFamily", "traits": { - "smithy.api#documentation": "

The IP protocol assigned to this IPAM pool. You must choose either IPv4 or IPv6 protocol for a pool.

" + "smithy.api#documentation": "

The IP protocol assigned to this IPAM pool. You must choose either IPv4 or IPv6 protocol for a pool.

", + "smithy.api#required": {} } }, "AutoImport": { @@ -40723,8 +40724,17 @@ "target": "com.amazonaws.ec2#AttributeValue", "traits": { "aws.protocols#ec2QueryName": "BootMode", + "smithy.api#documentation": "

The boot mode.

", "smithy.api#xmlName": "bootMode" } + }, + "LastLaunchedTime": { + "target": "com.amazonaws.ec2#AttributeValue", + "traits": { + "aws.protocols#ec2QueryName": "LastLaunchedTime", + "smithy.api#documentation": "

The date and time, in ISO 8601 date-time\n format, when the AMI was last used to launch an EC2 instance. When the AMI is used,\n there is a 24-hour delay before that usage is reported.

\n \n

\n lastLaunchedTime data is available starting April 2017.

\n
", + "smithy.api#xmlName": "lastLaunchedTime" + } } }, "traits": { @@ -40766,6 +40776,10 @@ { "value": "bootMode", "name": "bootMode" + }, + { + "value": "lastLaunchedTime", + "name": "lastLaunchedTime" } ] } @@ -44405,7 +44419,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "SpotMaxPricePercentageOverLowestPrice", - "smithy.api#documentation": "

The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n

Default: 100\n

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

The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n
\n

Default: 100\n

", "smithy.api#xmlName": "spotMaxPricePercentageOverLowestPrice" } }, @@ -44413,7 +44427,7 @@ "target": "com.amazonaws.ec2#Integer", "traits": { "aws.protocols#ec2QueryName": "OnDemandMaxPricePercentageOverLowestPrice", - "smithy.api#documentation": "

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n

Default: 20\n

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

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n
\n

Default: 20\n

", "smithy.api#xmlName": "onDemandMaxPricePercentageOverLowestPrice" } }, @@ -44573,13 +44587,13 @@ "SpotMaxPricePercentageOverLowestPrice": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The price protection threshold for Spot Instance. This is the maximum you’ll pay for an Spot Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n

Default: 100\n

" + "smithy.api#documentation": "

The price protection threshold for Spot Instance. This is the maximum you’ll pay for an Spot Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n
\n

Default: 100\n

" } }, "OnDemandMaxPricePercentageOverLowestPrice": { "target": "com.amazonaws.ec2#Integer", "traits": { - "smithy.api#documentation": "

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n

Default: 20\n

" + "smithy.api#documentation": "

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance,\n expressed as a percentage above the cheapest M, C, or R instance type with your specified\n attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n types priced above your threshold.

\n

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

\n

To turn off price protection, specify a high value, such as 999999.

\n

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

\n \n

If you set TargetCapacityUnitType to vcpu or\n memory-mib, the price protection threshold is applied based on the\n per-vCPU or per-memory price instead of the per-instance price.

\n
\n

Default: 20\n

" } }, "BareMetal": { @@ -65406,6 +65420,10 @@ "value": "subnet", "name": "subnet" }, + { + "value": "subnet-cidr-reservation", + "name": "subnet_cidr_reservation" + }, { "value": "traffic-mirror-filter", "name": "traffic_mirror_filter" diff --git a/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json b/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json index b5860b726f2..8f99c9a69da 100644 --- a/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json +++ b/codegen/sdk-codegen/aws-models/ecr.2015-09-21.json @@ -353,7 +353,7 @@ } ], "traits": { - "smithy.api#documentation": "

Checks the availability of one or more image layers in a repository.

\n

When an image is pushed to a repository, each image layer is checked to verify if it\n has been uploaded before. If it has been uploaded, then the image layer is\n skipped.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

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

Checks the availability of one or more image layers in a repository.

\n

When an image is pushed to a repository, each image layer is checked to verify if it\n has been uploaded before. If it has been uploaded, then the image layer is\n skipped.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

\n
" } }, "com.amazonaws.ecr#BatchCheckLayerAvailabilityRequest": { @@ -651,7 +651,7 @@ } ], "traits": { - "smithy.api#documentation": "

Informs Amazon ECR that the image layer upload has completed for a specified registry,\n repository name, and upload ID. You can optionally provide a sha256 digest\n of the image layer for data validation purposes.

\n

When an image is pushed, the CompleteLayerUpload API is called once per each new image\n layer to verify that the upload has completed.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

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

Informs Amazon ECR that the image layer upload has completed for a specified registry,\n repository name, and upload ID. You can optionally provide a sha256 digest\n of the image layer for data validation purposes.

\n

When an image is pushed, the CompleteLayerUpload API is called once per each new image\n layer to verify that the upload has completed.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

\n
" } }, "com.amazonaws.ecr#CompleteLayerUploadRequest": { @@ -2143,7 +2143,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can\n only get URLs for image layers that are referenced in an image.

\n

When an image is pulled, the GetDownloadUrlForLayer API is called once per image layer\n that is not already cached.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

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

Retrieves the pre-signed Amazon S3 download URL corresponding to an image layer. You can\n only get URLs for image layers that are referenced in an image.

\n

When an image is pulled, the GetDownloadUrlForLayer API is called once per image layer\n that is not already cached.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

\n
" } }, "com.amazonaws.ecr#GetDownloadUrlForLayerRequest": { @@ -2703,6 +2703,12 @@ "traits": { "smithy.api#documentation": "

The artifact media type of the image.

" } + }, + "lastRecordedPullTime": { + "target": "com.amazonaws.ecr#RecordedPullTimestamp", + "traits": { + "smithy.api#documentation": "

The date and time, expressed in standard JavaScript date format, when Amazon ECR recorded\n the last image pull.

\n \n

Amazon ECR refreshes the last image pull timestamp at least once every 24 hours. For\n example, if you pull an image once a day then the lastRecordedPullTime\n timestamp will indicate the exact time that the image was last pulled. However, if\n you pull an image once an hour, because Amazon ECR refreshes the\n lastRecordedPullTime timestamp at least once every 24 hours, the\n result may not be the exact time that the image was last pulled.

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

Notifies Amazon ECR that you intend to upload an image layer.

\n

When an image is pushed, the InitiateLayerUpload API is called once per image layer\n that has not already been uploaded. Whether or not an image layer has been uploaded is\n determined by the BatchCheckLayerAvailability API action.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

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

Notifies Amazon ECR that you intend to upload an image layer.

\n

When an image is pushed, the InitiateLayerUpload API is called once per image layer\n that has not already been uploaded. Whether or not an image layer has been uploaded is\n determined by the BatchCheckLayerAvailability API action.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

\n
" } }, "com.amazonaws.ecr#InitiateLayerUploadRequest": { @@ -4116,7 +4122,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the image scanning configuration for the specified repository.

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

The PutImageScanningConfiguration API is being deprecated, in favor\n of specifying the image scanning configuration at the registry level. For more\n information, see PutRegistryScanningConfiguration.

\n
\n

Updates the image scanning configuration for the specified repository.

" } }, "com.amazonaws.ecr#PutImageScanningConfigurationRequest": { @@ -4390,7 +4396,7 @@ "scanType": { "target": "com.amazonaws.ecr#ScanType", "traits": { - "smithy.api#documentation": "

The scanning type to set for the registry.

\n

By default, the BASIC scan type is used. When basic scanning is set, you\n may specify filters to determine which individual repositories, or all repositories, are\n scanned when new images are pushed. Alternatively, you can do manual scans of images\n with basic scanning.

\n

When the ENHANCED scan type is set, Amazon Inspector provides automated, continuous\n scanning of all repositories in your registry.

" + "smithy.api#documentation": "

The scanning type to set for the registry.

\n

When a registry scanning configuration is not defined, by default the\n BASIC scan type is used. When basic scanning is used, you may specify\n filters to determine which individual repositories, or all repositories, are scanned\n when new images are pushed to those repositories. Alternatively, you can do manual scans\n of images with basic scanning.

\n

When the ENHANCED scan type is set, Amazon Inspector provides automated\n vulnerability scanning. You may choose between continuous scanning or scan on push and\n you may specify filters to determine which individual repositories, or all repositories,\n are scanned.

" } }, "rules": { @@ -4484,6 +4490,9 @@ "com.amazonaws.ecr#RecommendationText": { "type": "string" }, + "com.amazonaws.ecr#RecordedPullTimestamp": { + "type": "timestamp" + }, "com.amazonaws.ecr#ReferenceUrlsList": { "type": "list", "member": { @@ -4565,7 +4574,7 @@ "scanFrequency": { "target": "com.amazonaws.ecr#ScanFrequency", "traits": { - "smithy.api#documentation": "

The frequency that scans are performed at for a private registry.

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

The frequency that scans are performed at for a private registry. When the\n ENHANCED scan type is specified, the supported scan frequencies are\n CONTINUOUS_SCAN and SCAN_ON_PUSH. When the\n BASIC scan type is specified, the SCAN_ON_PUSH and\n MANUAL scan frequencies are supported.

", "smithy.api#required": {} } }, @@ -5546,12 +5555,12 @@ "Value": { "target": "com.amazonaws.ecr#TagValue", "traits": { - "smithy.api#documentation": "

The optional part of a key-value pair that make up a tag. A value acts as\n a descriptor within a tag category (key).

" + "smithy.api#documentation": "

A value acts as a descriptor within a tag category (key).

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

The metadata that you apply to a resource to help you categorize and organize them.\n Each tag consists of a key and an optional value, both of which you define.\n Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" + "smithy.api#documentation": "

The metadata to apply to a resource to help you categorize and organize them. Each tag\n consists of a key and a value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" } }, "com.amazonaws.ecr#TagKey": { @@ -5784,7 +5793,7 @@ } ], "traits": { - "smithy.api#documentation": "

Uploads an image layer part to Amazon ECR.

\n

When an image is pushed, each new image layer is uploaded in parts. The maximum size\n of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API\n is called once per each new image layer part.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

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

Uploads an image layer part to Amazon ECR.

\n

When an image is pushed, each new image layer is uploaded in parts. The maximum size\n of each image layer part can be 20971520 bytes (or about 20MB). The UploadLayerPart API\n is called once per each new image layer part.

\n \n

This operation is used by the Amazon ECR proxy and is not generally used by\n customers for pulling and pushing images. In most cases, you should use the docker CLI to pull, tag, and push images.

\n
" } }, "com.amazonaws.ecr#UploadLayerPartRequest": { diff --git a/codegen/sdk-codegen/aws-models/ecs.2014-11-13.json b/codegen/sdk-codegen/aws-models/ecs.2014-11-13.json index 612e0d730f0..18091854b8d 100644 --- a/codegen/sdk-codegen/aws-models/ecs.2014-11-13.json +++ b/codegen/sdk-codegen/aws-models/ecs.2014-11-13.json @@ -369,7 +369,7 @@ } }, "traits": { - "smithy.api#documentation": "

An attribute is a name-value pair that's associated with an Amazon ECS object. Attributes\n\t\t\tenable you to extend the Amazon ECS data model by adding custom metadata to your resources.\n\t\t\tFor more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

An attribute is a name-value pair that's associated with an Amazon ECS object. Use attributes\n\t\t\tto extend the Amazon ECS data model by adding custom metadata to your resources.\n\t\t\tFor more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#AttributeLimitExceededException": { @@ -898,7 +898,7 @@ } }, "traits": { - "smithy.api#documentation": "

The settings to use when creating a cluster. This parameter is used to enable CloudWatch\n\t\t\tContainer Insights for a cluster.

" + "smithy.api#documentation": "

The settings to use when creating a cluster. This parameter is used to turn on CloudWatch\n\t\t\tContainer Insights for a cluster.

" } }, "com.amazonaws.ecs#ClusterSettingName": { @@ -1205,19 +1205,19 @@ "dependsOn": { "target": "com.amazonaws.ecs#ContainerDependencies", "traits": { - "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies. When a dependency is defined for container startup, for container\n\t\t\tshutdown it is reversed.

\n\t\t

For tasks using the EC2 launch type, the container instances require at\n\t\t\tleast version 1.26.0 of the container agent to enable container dependencies. However,\n\t\t\twe recommend using the latest container agent version. For information about checking\n\t\t\tyour agent version and updating to the latest version, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

\n\t\t

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

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

The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies. When a dependency is defined for container startup, for container\n\t\t\tshutdown it is reversed.

\n\t\t

For tasks using the EC2 launch type, the container instances require at\n\t\t\tleast version 1.26.0 of the container agent to turn on container dependencies. However,\n\t\t\twe recommend using the latest container agent version. For information about checking\n\t\t\tyour agent version and updating to the latest version, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

\n\t\t

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n\t\t " } }, "startTimeout": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

Time duration (in seconds) to wait before giving up on resolving dependencies for a\n\t\t\tcontainer. For example, you specify two containers in a task definition with containerA\n\t\t\thaving a dependency on containerB reaching a COMPLETE,\n\t\t\tSUCCESS, or HEALTHY status. If a startTimeout\n\t\t\tvalue is specified for containerB and it doesn't reach the desired status within that\n\t\t\ttime then containerA gives up and not start. This results in the task transitioning to a\n\t\t\t\tSTOPPED state.

\n\t\t \n\t\t\t

When the ECS_CONTAINER_START_TIMEOUT container agent configuration\n\t\t\t\tvariable is used, it's enforced independently from this start timeout value.

\n\t\t
\n\t\t

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n\t\t \n\t\t

For tasks using the EC2 launch type, your container instances require at\n\t\t\tleast version 1.26.0 of the container agent to enable a container start\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\tUpdating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Time duration (in seconds) to wait before giving up on resolving dependencies for a\n\t\t\tcontainer. For example, you specify two containers in a task definition with containerA\n\t\t\thaving a dependency on containerB reaching a COMPLETE,\n\t\t\tSUCCESS, or HEALTHY status. If a startTimeout\n\t\t\tvalue is specified for containerB and it doesn't reach the desired status within that\n\t\t\ttime then containerA gives up and not start. This results in the task transitioning to a\n\t\t\t\tSTOPPED state.

\n\t\t \n\t\t\t

When the ECS_CONTAINER_START_TIMEOUT container agent configuration\n\t\t\t\tvariable is used, it's enforced independently from this start timeout value.

\n\t\t
\n\t\t

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n\t\t \n\t\t

For tasks using the EC2 launch type, your container instances require at\n\t\t\tleast version 1.26.0 of the container agent to use a container start\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\tUpdating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" } }, "stopTimeout": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

Time duration (in seconds) to wait before the container is forcefully killed if it\n\t\t\tdoesn't exit normally on its own.

\n\t\t

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n\t\t \n\t\t

The max stop timeout value is 120 seconds and if the parameter is not specified, the\n\t\t\tdefault value of 30 seconds is used.

\n\t\t

For tasks that use the EC2 launch type, if the stopTimeout\n\t\t\tparameter isn't specified, the value set for the Amazon ECS container agent configuration\n\t\t\tvariable ECS_CONTAINER_STOP_TIMEOUT is used. If neither the\n\t\t\t\tstopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT\n\t\t\tagent configuration variable are set, then the default values of 30 seconds for Linux\n\t\t\tcontainers and 30 seconds on Windows containers are used. Your container instances\n\t\t\trequire at least version 1.26.0 of the container agent to enable a container stop\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\tUpdating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Time duration (in seconds) to wait before the container is forcefully killed if it\n\t\t\tdoesn't exit normally on its own.

\n\t\t

For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:

\n\t\t \n\t\t

The max stop timeout value is 120 seconds and if the parameter is not specified, the\n\t\t\tdefault value of 30 seconds is used.

\n\t\t

For tasks that use the EC2 launch type, if the stopTimeout\n\t\t\tparameter isn't specified, the value set for the Amazon ECS container agent configuration\n\t\t\tvariable ECS_CONTAINER_STOP_TIMEOUT is used. If neither the\n\t\t\t\tstopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT\n\t\t\tagent configuration variable are set, then the default values of 30 seconds for Linux\n\t\t\tcontainers and 30 seconds on Windows containers are used. Your container instances\n\t\t\trequire at least version 1.26.0 of the container agent to use a container stop\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\tUpdating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" } }, "hostname": { @@ -1370,7 +1370,7 @@ } }, "traits": { - "smithy.api#documentation": "

The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies. When a dependency is defined for container startup, for container\n\t\t\tshutdown it is reversed.

\n\t\t

Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tto enable container dependencies. However, we recommend using the latest container agent\n\t\t\tversion. For information about checking your agent version and updating to the latest\n\t\t\tversion, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

\n\t\t \n\t\t\t

For tasks that use the Fargate launch type, the task or service\n\t\t\t\trequires the following platforms:

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

The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies. When a dependency is defined for container startup, for container\n\t\t\tshutdown it is reversed.

\n\t\t

Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tto use container dependencies. However, we recommend using the latest container agent\n\t\t\tversion. For information about checking your agent version and updating to the latest\n\t\t\tversion, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\tecs-init package. If your container instances are launched from version\n\t\t\t\t20190301 or later, then they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

\n\t\t \n\t\t\t

For tasks that use the Fargate launch type, the task or service\n\t\t\t\trequires the following platforms:

\n\t\t\t \n\t\t
" } }, "com.amazonaws.ecs#ContainerInstance": { @@ -1793,7 +1793,7 @@ "settings": { "target": "com.amazonaws.ecs#ClusterSettings", "traits": { - "smithy.api#documentation": "

The setting to use when creating a cluster. This parameter is used to enable CloudWatch\n\t\t\tContainer Insights for a cluster. If this value is specified, it overrides the\n\t\t\t\tcontainerInsights value set with PutAccountSetting or\n\t\t\t\tPutAccountSettingDefault.

" + "smithy.api#documentation": "

The setting to use when creating a cluster. This parameter is used to turn on CloudWatch\n\t\t\tContainer Insights for a cluster. If this value is specified, it overrides the\n\t\t\t\tcontainerInsights value set with PutAccountSetting or\n\t\t\t\tPutAccountSettingDefault.

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

Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the desiredCount,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, see the UpdateService action.

\n\t\t

In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see Service Load Balancing in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n\t\t

Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe RUNNING state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the RUNNING state and the container\n\t\t\tinstance that they're hosted on is reported as healthy by the load balancer.

\n\t\t

There are two service scheduler strategies available:

\n\t\t \n\t\t

You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for\n\t\t\t\tminimumHealthyPercent is 100%. The default value for a daemon service\n\t\t\tfor minimumHealthyPercent is 0%.

\n\t\t

If a service uses the ECS deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe RUNNING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the RUNNING state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\tRUNNING state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that do use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.

\n\t\t

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the RUNNING or\n\t\t\t\tPENDING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.

\n\t\t

If a service uses either the CODE_DEPLOY or EXTERNAL\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\tminimum healthy percent and maximum percent values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the RUNNING state.\n\t\t\tThis is while the container instances are in the DRAINING state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.

\n\t\t

When creating a service that uses the EXTERNAL deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

\n\t\t

When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster using the following logic:

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

Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the desiredCount,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, see the UpdateService action.

\n\t\t

In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see Service Load Balancing in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n\t\t

Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe RUNNING state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

\n\t\t

There are two service scheduler strategies available:

\n\t\t \n\t\t

You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for\n\t\t\t\tminimumHealthyPercent is 100%. The default value for a daemon service\n\t\t\tfor minimumHealthyPercent is 0%.

\n\t\t

If a service uses the ECS deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe RUNNING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the RUNNING state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\tRUNNING state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that do use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.

\n\t\t

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the RUNNING or\n\t\t\t\tPENDING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.

\n\t\t

If a service uses either the CODE_DEPLOY or EXTERNAL\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\tminimum healthy percent and maximum percent values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the RUNNING state.\n\t\t\tThis is while the container instances are in the DRAINING state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.

\n\t\t

When creating a service that uses the EXTERNAL deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

\n\t\t

When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster using the following logic:

\n\t\t " } }, "com.amazonaws.ecs#CreateServiceRequest": { @@ -1890,7 +1890,7 @@ "loadBalancers": { "target": "com.amazonaws.ecs#LoadBalancers", "traits": { - "smithy.api#documentation": "

A load balancer object representing the load balancers to use with your service. For\n\t\t\tmore information, see Service Load Balancing in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n\t\t

If the service uses the rolling update (ECS) deployment controller and\n\t\t\tusing either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach\n\t\t\tto the service. The service-linked role is required for services that use multiple\n\t\t\ttarget groups. For more information, see Using service-linked roles for Amazon ECS in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n\t\t

If the service uses the CODE_DEPLOY deployment controller, the service is\n\t\t\trequired to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you\n\t\t\tspecify two target groups (referred to as a targetGroupPair). During a\n\t\t\tdeployment, CodeDeploy determines which task set in your service has the status\n\t\t\t\tPRIMARY, and it associates one target group with it. Then, it also\n\t\t\tassociates the other target group with the replacement task set. The load balancer can\n\t\t\talso have up to two listeners: a required listener for production traffic and an\n\t\t\toptional listener that you can use to perform validation tests with Lambda functions\n\t\t\tbefore routing production traffic to it.

\n\t\t

After you create a service using the ECS deployment controller, the load\n\t\t\tbalancer name or target group ARN, container name, and container port that's specified\n\t\t\tin the service definition are immutable. If you use the CODE_DEPLOY\n\t\t\tdeployment controller, these values can be changed when updating the service.

\n\t\t

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN,\n\t\t\tthe container name, and the container port to access from the load balancer. The\n\t\t\tcontainer name must be as it appears in a container definition. The load balancer name\n\t\t\tparameter must be omitted. When a task from this service is placed on a container\n\t\t\tinstance, the container instance and port combination is registered as a target in the\n\t\t\ttarget group that's specified here.

\n\t\t

For Classic Load Balancers, this object must contain the load balancer name, the container name , and\n\t\t\tthe container port to access from the load balancer. The container name must be as it\n\t\t\tappears in a container definition. The target group ARN parameter must be omitted. When\n\t\t\ta task from this service is placed on a container instance, the container instance is\n\t\t\tregistered with the load balancer that's specified here.

\n\t\t

Services with tasks that use the awsvpc network mode (for example, those\n\t\t\twith the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers\n\t\t\taren't supported. Also, when you create any target groups for these services, you must\n\t\t\tchoose ip as the target type, not instance. This is because\n\t\t\ttasks that use the awsvpc network mode are associated with an elastic\n\t\t\tnetwork interface, not an Amazon EC2 instance.

" + "smithy.api#documentation": "

A load balancer object representing the load balancers to use with your service. For\n\t\t\tmore information, see Service Load Balancing in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n\t\t

If the service uses the rolling update (ECS) deployment controller and\n\t\t\tusing either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach\n\t\t\tto the service. The service-linked role is required for services that use multiple\n\t\t\ttarget groups. For more information, see Using service-linked roles for Amazon ECS in the\n\t\t\t\tAmazon Elastic Container Service Developer Guide.

\n\t\t

If the service uses the CODE_DEPLOY deployment controller, the service is\n\t\t\trequired to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you\n\t\t\tspecify two target groups (referred to as a targetGroupPair). During a\n\t\t\tdeployment, CodeDeploy determines which task set in your service has the status\n\t\t\t\tPRIMARY, and it associates one target group with it. Then, it also\n\t\t\tassociates the other target group with the replacement task set. The load balancer can\n\t\t\talso have up to two listeners: a required listener for production traffic and an\n\t\t\toptional listener that you can use to perform validation tests with Lambda functions\n\t\t\tbefore routing production traffic to it.

\n\t\t

If you use the CODE_DEPLOY deployment controller, these values can be changed\n\t\t\twhen updating the service.

\n\t\t

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN,\n\t\t\tthe container name, and the container port to access from the load balancer. The\n\t\t\tcontainer name must be as it appears in a container definition. The load balancer name\n\t\t\tparameter must be omitted. When a task from this service is placed on a container\n\t\t\tinstance, the container instance and port combination is registered as a target in the\n\t\t\ttarget group that's specified here.

\n\t\t

For Classic Load Balancers, this object must contain the load balancer name, the container name , and\n\t\t\tthe container port to access from the load balancer. The container name must be as it\n\t\t\tappears in a container definition. The target group ARN parameter must be omitted. When\n\t\t\ta task from this service is placed on a container instance, the container instance is\n\t\t\tregistered with the load balancer that's specified here.

\n\t\t

Services with tasks that use the awsvpc network mode (for example, those\n\t\t\twith the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers\n\t\t\taren't supported. Also, when you create any target groups for these services, you must\n\t\t\tchoose ip as the target type, not instance. This is because\n\t\t\ttasks that use the awsvpc network mode are associated with an elastic\n\t\t\tnetwork interface, not an Amazon EC2 instance.

" } }, "serviceRegistries": { @@ -1962,7 +1962,7 @@ "healthCheckGracePeriodSeconds": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing target health checks after a task has first started. This is only used when your\n\t\t\tservice is configured to use a load balancer. If your service has a load balancer\n\t\t\tdefined and you don't specify a health check grace period value, the default value of\n\t\t\t\t0 is used.

\n\t\t

If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you\n\t\t\tcan specify a health check grace period of up to\n\t\t\t2,147,483,647\n\t\t\tseconds (about 69 years). During that time, the Amazon ECS service\n\t\t\tscheduler ignores health check status. This grace period can prevent the service\n\t\t\tscheduler from marking tasks as unhealthy and stopping them before they have time to\n\t\t\tcome up.

" + "smithy.api#documentation": "

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing target health checks after a task has first started. This is only used when your\n\t\t\tservice is configured to use a load balancer. If your service has a load balancer\n\t\t\tdefined and you don't specify a health check grace period value, the default value of\n\t\t\t\t0 is used.

\n\t\t

If you do not use an Elastic Load Balancing, we recomend that you use the startPeriod in the task definition healtch check parameters. For more information, see Health check.

\n\t\t

If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you\n\t\t\tcan specify a health check grace period of up to\n\t\t\t2,147,483,647\n\t\t\tseconds (about 69 years). During that time, the Amazon ECS service\n\t\t\tscheduler ignores health check status. This grace period can prevent the service\n\t\t\tscheduler from marking tasks as unhealthy and stopping them before they have time to\n\t\t\tcome up.

" } }, "schedulingStrategy": { @@ -1986,7 +1986,7 @@ "enableECSManagedTags": { "target": "com.amazonaws.ecs#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether to enable Amazon ECS managed tags for the tasks within the service. For\n\t\t\tmore information, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For\n\t\t\tmore information, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" } }, "propagateTags": { @@ -2624,20 +2624,20 @@ "enable": { "target": "com.amazonaws.ecs#Boolean", "traits": { - "smithy.api#documentation": "

Determines whether to enable the deployment circuit breaker logic for the\n\t\t\tservice.

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

Determines whether to use the deployment circuit breaker logic for the\n\t\t\tservice.

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

Determines whether to enable Amazon ECS to roll back the service if a service deployment\n\t\t\tfails. If rollback is enabled, when a service deployment fails, the service is rolled\n\t\t\tback to the last deployment that completed successfully.

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

Determines whether to configure Amazon ECS to roll back the service if a service deployment\n\t\t\tfails. If rollback is enabled, when a service deployment fails, the service is rolled\n\t\t\tback to the last deployment that completed successfully.

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

The deployment circuit breaker can only be used for services using the rolling\n\t\t\t\tupdate (ECS) deployment type that aren't behind a Classic Load Balancer.

\n\t\t
\n\t\t

The deployment circuit breaker determines whether a\n\t\t\tservice deployment will fail if the service can't reach a steady state. If enabled, a\n\t\t\tservice deployment will transition to a failed state and stop launching new tasks. You\n\t\t\tcan also enable Amazon ECS to roll back your service to the last completed deployment after a\n\t\t\tfailure. For more information, see Rolling\n\t\t\t\tupdate in the Amazon Elastic Container Service Developer Guide.

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

The deployment circuit breaker can only be used for services using the rolling\n\t\t\t\tupdate (ECS) deployment type that aren't behind a Classic Load Balancer.

\n\t\t
\n\t\t

The deployment circuit breaker determines whether a\n\t\t\tservice deployment will fail if the service can't reach a steady state. If enabled, a\n\t\t\tservice deployment will transition to a failed state and stop launching new tasks. You\n\t\t\tcan also configure Amazon ECS to roll back your service to the last completed deployment after a\n\t\t\tfailure. For more information, see Rolling\n\t\t\t\tupdate in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#DeploymentConfiguration": { @@ -3638,7 +3638,7 @@ "transitEncryption": { "target": "com.amazonaws.ecs#EFSTransitEncryption", "traits": { - "smithy.api#documentation": "

Determines whether to enable encryption for Amazon EFS data in transit between the Amazon ECS\n\t\t\thost and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization\n\t\t\tis used. If this parameter is omitted, the default value of DISABLED is\n\t\t\tused. For more information, see Encrypting Data in Transit in\n\t\t\tthe Amazon Elastic File System User Guide.

" + "smithy.api#documentation": "

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS\n\t\t\thost and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization\n\t\t\tis used. If this parameter is omitted, the default value of DISABLED is\n\t\t\tused. For more information, see Encrypting Data in Transit in\n\t\t\tthe Amazon Elastic File System User Guide.

" } }, "transitEncryptionPort": { @@ -3715,7 +3715,7 @@ } }, "traits": { - "smithy.api#documentation": "

The amount of ephemeral storage to allocate for the task. This parameter is used to\n\t\t\texpand the total amount of ephemeral storage available, beyond the default amount, for\n\t\t\ttasks hosted on Fargate. For more information, see Fargate task\n\t\t\t\tstorage in the Amazon ECS User Guide for Fargate.

\n\t\t \n\t\t\t

This parameter is only supported for tasks hosted on Fargate using\n\t\t\t\tthe following platform versions:

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

The amount of ephemeral storage to allocate for the task. This parameter is used to\n\t\t\texpand the total amount of ephemeral storage available, beyond the default amount, for\n\t\t\ttasks hosted on Fargate. For more information, see Fargate task\n\t\t\t\tstorage in the Amazon ECS User Guide for Fargate.

\n\t\t \n\t\t\t

This parameter is only supported for tasks hosted on Fargate using Linux\n\t\t\t\tplatform version 1.4.0 or later. This parameter is not supported for\n\t\t\t\tWindows containers on Fargate.

\n\t\t
" } }, "com.amazonaws.ecs#ExecuteCommand": { @@ -3788,7 +3788,7 @@ "cloudWatchEncryptionEnabled": { "target": "com.amazonaws.ecs#Boolean", "traits": { - "smithy.api#documentation": "

Determines whether to enable encryption on the CloudWatch logs. If not specified,\n\t\t\tencryption will be disabled.

" + "smithy.api#documentation": "

Determines whether to use encryption on the CloudWatch logs. If not specified,\n\t\t\tencryption will be disabled.

" } }, "s3BucketName": { @@ -5175,7 +5175,7 @@ } }, "traits": { - "smithy.api#documentation": "

The load balancer configuration to use with a service or task set.

\n\t\t

For specific notes and restrictions regarding the use of load balancers with services\n\t\t\tand task sets, see the CreateService and CreateTaskSet actions.

" + "smithy.api#documentation": "

The load balancer configuration to use with a service or task set.

\n\t\t

For specific notes and restrictions regarding the use of load balancers with services\n\t\t\tand task sets, see the CreateService and CreateTaskSet actions.

\n\t\t

When you add, update, or remove a load blaancer configuration, Amazon ECS starts a new\n\t\t\tdeployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and\n\t\t\tderegister from load balancers.

\n\t\t

We recommend that you verify this on a test environment before you update the Elastic Load Balancing\n\t\t\tconfiguration.

\n\t\t

A service-linked role is required for services that use multiple target groups. For\n\t\t\tmore information, see Service-linked\n\t\t\t\troles in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#LoadBalancers": { @@ -5358,7 +5358,7 @@ "status": { "target": "com.amazonaws.ecs#ManagedScalingStatus", "traits": { - "smithy.api#documentation": "

Determines whether to enable managed scaling for the capacity provider.

" + "smithy.api#documentation": "

Determines whether to use managed scaling for the capacity provider.

" } }, "targetCapacity": { @@ -5859,6 +5859,10 @@ { "value": "SERVICE", "name": "SERVICE" + }, + { + "value": "NONE", + "name": "NONE" } ] } @@ -5887,7 +5891,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n\t\t

For tasks that use the EC2 launch type, the container instances require\n\t\t\tat least version 1.26.0 of the container agent and at least version 1.26.0-1 of the\n\t\t\t\tecs-init package to enable a proxy configuration. If your container\n\t\t\tinstances are launched from the Amazon ECS optimized AMI version 20190301 or\n\t\t\tlater, then they contain the required versions of the container agent and\n\t\t\t\tecs-init. For more information, see Amazon ECS-optimized Linux AMI\n\t\t

" + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n\t\t

For tasks that use the EC2 launch type, the container instances require\n\t\t\tat least version 1.26.0 of the container agent and at least version 1.26.0-1 of the\n\t\t\t\tecs-init package to use a proxy configuration. If your container\n\t\t\tinstances are launched from the Amazon ECS optimized AMI version 20190301 or\n\t\t\tlater, then they contain the required versions of the container agent and\n\t\t\t\tecs-init. For more information, see Amazon ECS-optimized Linux AMI\n\t\t

" } }, "com.amazonaws.ecs#ProxyConfigurationProperties": { @@ -5927,7 +5931,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modifies an account setting. Account settings are set on a per-Region basis.

\n\t\t

If you change the account setting for the root user, the default settings for all of\n\t\t\tthe IAM users and roles that no individual account setting was specified are reset for.\n\t\t\tFor more information, see Account\n\t\t\t\tSettings in the Amazon Elastic Container Service Developer Guide.

\n\t\t

When serviceLongArnFormat, taskLongArnFormat, or\n\t\t\t\tcontainerInstanceLongArnFormat are specified, the Amazon Resource Name\n\t\t\t(ARN) and resource ID format of the resource type for a specified IAM user, IAM role, or\n\t\t\tthe root user for an account is affected. The opt-in and opt-out account setting must be\n\t\t\tset for each Amazon ECS resource separately. The ARN and resource ID format of a resource is\n\t\t\tdefined by the opt-in status of the IAM user or role that created the resource. You must\n\t\t\tenable this setting to use Amazon ECS features such as resource tagging.

\n\t\t

When awsvpcTrunking is specified, the elastic network interface (ENI)\n\t\t\tlimit for any new container instances that support the feature is changed. If\n\t\t\t\tawsvpcTrunking is enabled, any new container instances that support the\n\t\t\tfeature are launched have the increased ENI limits available to them. For more\n\t\t\tinformation, see Elastic Network\n\t\t\t\tInterface Trunking in the Amazon Elastic Container Service Developer Guide.

\n\t\t

When containerInsights is specified, the default setting indicating\n\t\t\twhether CloudWatch Container Insights is enabled for your clusters is changed. If\n\t\t\t\tcontainerInsights is enabled, any new clusters that are created will\n\t\t\thave Container Insights enabled unless you disable it during cluster creation. For more\n\t\t\tinformation, see CloudWatch\n\t\t\t\tContainer Insights in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Modifies an account setting. Account settings are set on a per-Region basis.

\n\t\t

If you change the account setting for the root user, the default settings for all of\n\t\t\tthe IAM users and roles that no individual account setting was specified are reset for.\n\t\t\tFor more information, see Account\n\t\t\t\tSettings in the Amazon Elastic Container Service Developer Guide.

\n\t\t

When serviceLongArnFormat, taskLongArnFormat, or\n\t\t\t\tcontainerInstanceLongArnFormat are specified, the Amazon Resource Name\n\t\t\t(ARN) and resource ID format of the resource type for a specified IAM user, IAM role, or\n\t\t\tthe root user for an account is affected. The opt-in and opt-out account setting must be\n\t\t\tset for each Amazon ECS resource separately. The ARN and resource ID format of a resource is\n\t\t\tdefined by the opt-in status of the IAM user or role that created the resource. You must\n\t\t\tturn on this setting to use Amazon ECS features such as resource tagging.

\n\t\t

When awsvpcTrunking is specified, the elastic network interface (ENI)\n\t\t\tlimit for any new container instances that support the feature is changed. If\n\t\t\t\tawsvpcTrunking is enabled, any new container instances that support the\n\t\t\tfeature are launched have the increased ENI limits available to them. For more\n\t\t\tinformation, see Elastic Network\n\t\t\t\tInterface Trunking in the Amazon Elastic Container Service Developer Guide.

\n\t\t

When containerInsights is specified, the default setting indicating\n\t\t\twhether CloudWatch Container Insights is enabled for your clusters is changed. If\n\t\t\t\tcontainerInsights is enabled, any new clusters that are created will\n\t\t\thave Container Insights enabled unless you disable it during cluster creation. For more\n\t\t\tinformation, see CloudWatch\n\t\t\t\tContainer Insights in the Amazon Elastic Container Service Developer Guide.

" } }, "com.amazonaws.ecs#PutAccountSettingDefault": { @@ -6345,7 +6349,7 @@ "proxyConfiguration": { "target": "com.amazonaws.ecs#ProxyConfiguration", "traits": { - "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n\t\t

For tasks hosted on Amazon EC2 instances, the container instances require at least version\n\t\t\t\t1.26.0 of the container agent and at least version\n\t\t\t\t1.26.0-1 of the ecs-init package to enable a proxy\n\t\t\tconfiguration. If your container instances are launched from the Amazon ECS-optimized\n\t\t\tAMI version 20190301 or later, then they contain the required versions of\n\t\t\tthe container agent and ecs-init. For more information, see Amazon ECS-optimized AMI versions in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n\t\t

For tasks hosted on Amazon EC2 instances, the container instances require at least version\n\t\t\t\t1.26.0 of the container agent and at least version\n\t\t\t\t1.26.0-1 of the ecs-init package to use a proxy\n\t\t\tconfiguration. If your container instances are launched from the Amazon ECS-optimized\n\t\t\tAMI version 20190301 or later, then they contain the required versions of\n\t\t\tthe container agent and ecs-init. For more information, see Amazon ECS-optimized AMI versions in the\n\t\t\tAmazon Elastic Container Service Developer Guide.

" } }, "inferenceAccelerators": { @@ -6588,13 +6592,13 @@ "enableECSManagedTags": { "target": "com.amazonaws.ecs#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether to enable Amazon ECS managed tags for the task. For more information, see\n\t\t\t\tTagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see\n\t\t\t\tTagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

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

Determines whether to enable the execute command functionality for the containers in\n\t\t\tthis task. If true, this enables execute command functionality on all\n\t\t\tcontainers in the task.

" + "smithy.api#documentation": "

Determines whether to use the execute command functionality for the containers in\n\t\t\tthis task. If true, this enables execute command functionality on all\n\t\t\tcontainers in the task.

" } }, "group": { @@ -6783,7 +6787,7 @@ "valueFrom": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

The secret to expose to the container. The supported values are either the full ARN of\n\t\t\tthe Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store.

\n\t\t \n\t\t\t

If the SSM Parameter Store parameter exists in the same Region as the task\n\t\t\t\tyou're launching, then you can use either the full ARN or name of the parameter. If\n\t\t\t\tthe parameter exists in a different Region, then the full ARN must be\n\t\t\t\tspecified.

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

The secret to expose to the container. The supported values are either the full ARN of\n\t\t\tthe Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store.

\n\t\t

For information about the require Identity and Access Management permissions, see Required IAM permissions for Amazon ECS secrets (for Secrets Manager) or Required IAM permissions for Amazon ECS secrets (for Systems Manager Parameter store) in the Amazon Elastic Container Service Developer Guide.

\n\t\t \n\t\t\t

If the SSM Parameter Store parameter exists in the same Region as the task\n\t\t\t\tyou're launching, then you can use either the full ARN or name of the parameter. If\n\t\t\t\tthe parameter exists in a different Region, then the full ARN must be\n\t\t\t\tspecified.

\n\t\t
", "smithy.api#required": {} } } @@ -6966,7 +6970,7 @@ "schedulingStrategy": { "target": "com.amazonaws.ecs#SchedulingStrategy", "traits": { - "smithy.api#documentation": "

The scheduling strategy to use for the service. For more information, see Services.

\n\t\t

There are two service scheduler strategies available.

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

The scheduling strategy to use for the service. For more information, see Services.

\n\t\t

There are two service scheduler strategies available.

\n\t\t " } }, "deploymentController": { @@ -6990,7 +6994,7 @@ "enableECSManagedTags": { "target": "com.amazonaws.ecs#Boolean", "traits": { - "smithy.api#documentation": "

Determines whether to enable Amazon ECS managed tags for the tasks in the service. For more\n\t\t\tinformation, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Determines whether to use Amazon ECS managed tags for the tasks in the service. For more\n\t\t\tinformation, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" } }, "propagateTags": { @@ -7118,7 +7122,7 @@ } }, "traits": { - "smithy.api#documentation": "

The details for the service registry.

" + "smithy.api#documentation": "

The details for the service registry.

\n\t\t

Each service may be associated with one service registry. Multiple service registries for\n\t\t\teach service are not supported.

\n\t\t

When you add, update, or remove the service registries configuration, Amazon ECS starts a\n\t\t\tnew deployment. New tasks are registered and deregistered to the updated service\n\t\t\tregistry configuration.

" } }, "com.amazonaws.ecs#Services": { @@ -7139,7 +7143,7 @@ "streamUrl": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

A URL\n\t\t\tback\n\t\t\tto managed agent on the container that the SSM Session Manager client\n\t\t\tuses to send commands and receive output from the container.

" + "smithy.api#documentation": "

A URL\n\t\t\t\t\t\tto the managed agent on the container that the SSM Session Manager client\n\t\t\tuses to send commands and receive output from the container.

" } }, "tokenValue": { @@ -7287,7 +7291,7 @@ "enableECSManagedTags": { "target": "com.amazonaws.ecs#Boolean", "traits": { - "smithy.api#documentation": "

Specifies whether to enable Amazon ECS managed tags for the task. For more information, see\n\t\t\t\tTagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

Specifies whether to use Amazon ECS managed tags for the task. For more information, see\n\t\t\t\tTagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

" } }, "enableExecuteCommand": { @@ -8032,7 +8036,7 @@ "stopCode": { "target": "com.amazonaws.ecs#TaskStopCode", "traits": { - "smithy.api#documentation": "

The stop code indicating why a task was stopped. The stoppedReason might\n\t\t\tcontain additional details.

" + "smithy.api#documentation": "

The stop code indicating why a task was stopped. The stoppedReason might\n\t\t\tcontain additional details.

\n\t\t

The following are valid values:

\n\t\t " } }, "stoppedAt": { @@ -8208,7 +8212,7 @@ "proxyConfiguration": { "target": "com.amazonaws.ecs#ProxyConfiguration", "traits": { - "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n\t\t

Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tand at least version 1.26.0-1 of the ecs-init package to enable a proxy\n\t\t\tconfiguration. If your container instances are launched from the Amazon ECS optimized AMI\n\t\t\tversion 20190301 or later, they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" + "smithy.api#documentation": "

The configuration details for the App Mesh proxy.

\n\t\t

Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tand at least version 1.26.0-1 of the ecs-init package to use a proxy\n\t\t\tconfiguration. If your container instances are launched from the Amazon ECS optimized AMI\n\t\t\tversion 20190301 or later, they contain the required versions of the\n\t\t\tcontainer agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" } }, "registeredAt": { @@ -8978,7 +8982,7 @@ "settings": { "target": "com.amazonaws.ecs#ClusterSettings", "traits": { - "smithy.api#documentation": "

The setting to use by default for a cluster. This parameter is used to enable CloudWatch\n\t\t\tContainer Insights for a cluster. If this value is specified, it overrides the\n\t\t\t\tcontainerInsights value set with PutAccountSetting or\n\t\t\t\tPutAccountSettingDefault.

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

The setting to use by default for a cluster. This parameter is used to turn on CloudWatch\n\t\t\tContainer Insights for a cluster. If this value is specified, it overrides the\n\t\t\t\tcontainerInsights value set with PutAccountSetting or\n\t\t\t\tPutAccountSettingDefault.

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

Modifies the status of an Amazon ECS container instance.

\n\t\t

Once a container instance has reached an ACTIVE state, you can change the\n\t\t\tstatus of a container instance to DRAINING to manually remove an instance\n\t\t\tfrom a cluster, for example to perform system updates, update the Docker daemon, or\n\t\t\tscale down the cluster size.

\n\t\t \n\t\t\t

A container instance can't be changed to DRAINING until it has\n\t\t\t\treached an ACTIVE status. If the instance is in any other status, an\n\t\t\t\terror will be received.

\n\t\t
\n\t\t

When you set a container instance to DRAINING, Amazon ECS prevents new tasks\n\t\t\tfrom being scheduled for placement on the container instance and replacement service\n\t\t\ttasks are started on other container instances in the cluster if the resources are\n\t\t\tavailable. Service tasks on the container instance that are in the PENDING\n\t\t\tstate are stopped immediately.

\n\t\t

Service tasks on the container instance that are in the RUNNING state are\n\t\t\tstopped and replaced according to the service's deployment configuration parameters,\n\t\t\t\tminimumHealthyPercent and maximumPercent. You can change\n\t\t\tthe deployment configuration of your service using UpdateService.

\n\t\t \n\t\t

Any PENDING or RUNNING tasks that do not belong to a service\n\t\t\taren't affected. You must wait for them to finish or stop them manually.

\n\t\t

A container instance has completed draining when it has no more RUNNING\n\t\t\ttasks. You can verify this using ListTasks.

\n\t\t

When a container instance has been drained, you can set a container instance to\n\t\t\t\tACTIVE status and once it has reached that status the Amazon ECS scheduler\n\t\t\tcan begin scheduling tasks on the instance again.

" + "smithy.api#documentation": "

Modifies the status of an Amazon ECS container instance.

\n\t\t

Once a container instance has reached an ACTIVE state, you can change the\n\t\t\tstatus of a container instance to DRAINING to manually remove an instance\n\t\t\tfrom a cluster, for example to perform system updates, update the Docker daemon, or\n\t\t\tscale down the cluster size.

\n\t\t \n\t\t\t

A container instance can't be changed to DRAINING until it has\n\t\t\t\treached an ACTIVE status. If the instance is in any other status, an\n\t\t\t\terror will be received.

\n\t\t
\n\t\t

When you set a container instance to DRAINING, Amazon ECS prevents new tasks\n\t\t\tfrom being scheduled for placement on the container instance and replacement service\n\t\t\ttasks are started on other container instances in the cluster if the resources are\n\t\t\tavailable. Service tasks on the container instance that are in the PENDING\n\t\t\tstate are stopped immediately.

\n\t\t

Service tasks on the container instance that are in the RUNNING state are\n\t\t\tstopped and replaced according to the service's deployment configuration parameters,\n\t\t\t\tminimumHealthyPercent and maximumPercent. You can change\n\t\t\tthe deployment configuration of your service using UpdateService.

\n\t\t \n\t\t

Any PENDING or RUNNING tasks that do not belong to a service\n\t\t\taren't affected. You must wait for them to finish or stop them manually.

\n\t\t

A container instance has completed draining when it has no more RUNNING\n\t\t\ttasks. You can verify this using ListTasks.

\n\t\t

When a container instance has been drained, you can set a container instance to\n\t\t\t\tACTIVE status and once it has reached that status the Amazon ECS scheduler\n\t\t\tcan begin scheduling tasks on the instance again.

" } }, "com.amazonaws.ecs#UpdateContainerInstancesStateRequest": { @@ -9177,7 +9181,7 @@ } ], "traits": { - "smithy.api#documentation": "\n\t\t\t

Updating the task placement strategies and constraints on an Amazon ECS service remains\n\t\t\t\tin preview and is a Beta Service as defined by and subject to the Beta Service\n\t\t\t\tParticipation Service Terms located at https://aws.amazon.com/service-terms (\"Beta Terms\"). These Beta Terms\n\t\t\t\tapply to your participation in this preview.

\n\t\t
\n\t\t

Modifies the parameters of a service.

\n\t\t

For services using the rolling update (ECS) deployment controller, the\n\t\t\tdesired count, deployment configuration, network configuration, task placement\n\t\t\tconstraints and strategies, or task definition used can be updated.

\n\t\t

For services using the blue/green (CODE_DEPLOY) deployment controller,\n\t\t\tonly the desired count, deployment configuration, task placement constraints and\n\t\t\tstrategies, and health check grace period can be updated using this API. If the network\n\t\t\tconfiguration, platform version, or task definition need to be updated, a new CodeDeploy\n\t\t\tdeployment is created. For more information, see CreateDeployment in the CodeDeploy API Reference.

\n\t\t

For services using an external deployment controller, you can update only the desired\n\t\t\tcount, task placement constraints and strategies, and health check grace period using\n\t\t\tthis API. If the launch type, load balancer, network configuration, platform version, or\n\t\t\ttask definition need to be updated, create a new task set. For more information, see\n\t\t\t\tCreateTaskSet.

\n\t\t

You can add to or subtract from the number of instantiations of a task definition in a\n\t\t\tservice by specifying the cluster that the service is running in and a new\n\t\t\t\tdesiredCount parameter.

\n\t\t

If you have updated the Docker image of your application, you can create a new task\n\t\t\tdefinition with that image and deploy it to your service. The service scheduler uses the\n\t\t\tminimum healthy percent and maximum percent parameters (in the service's deployment\n\t\t\tconfiguration) to determine the deployment strategy.

\n\t\t \n\t\t\t

If your updated Docker image uses the same tag as what is in the existing task\n\t\t\t\tdefinition for your service (for example, my_image:latest), you don't\n\t\t\t\tneed to create a new revision of your task definition. You can update the service\n\t\t\t\tusing the forceNewDeployment option. The new tasks launched by the\n\t\t\t\tdeployment pull the current image/tag combination from your repository when they\n\t\t\t\tstart.

\n\t\t
\n\t\t

You can also update the deployment configuration of a service. When a deployment is\n\t\t\ttriggered by updating the task definition of a service, the service scheduler uses the\n\t\t\tdeployment configuration parameters, minimumHealthyPercent and\n\t\t\t\tmaximumPercent, to determine the deployment strategy.

\n\t\t \n\t\t

When UpdateService stops a task during a deployment, the equivalent\n\t\t\tof docker stop is issued to the containers running in the task. This\n\t\t\tresults in a SIGTERM and a 30-second timeout. After this,\n\t\t\t\tSIGKILL is sent and the containers are forcibly stopped. If the\n\t\t\tcontainer handles the SIGTERM gracefully and exits within 30 seconds from\n\t\t\treceiving it, no SIGKILL is sent.

\n\t\t

When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster with the following logic.

\n\t\t \n\t\t

When the service scheduler stops running tasks, it attempts to maintain balance across\n\t\t\tthe Availability Zones in your cluster using the following logic:

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

Updating the task placement strategies and constraints on an Amazon ECS service remains\n\t\t\t\tin preview and is a Beta Service as defined by and subject to the Beta Service\n\t\t\t\tParticipation Service Terms located at https://aws.amazon.com/service-terms (\"Beta Terms\"). These Beta Terms\n\t\t\t\tapply to your participation in this preview.

\n\t\t
\n\t\t

Modifies the parameters of a service.

\n\t\t

For services using the rolling update (ECS) you can update the desired count,\n\t\t\tthe deployment configuration, the network configuration, load balancers, service\n\t\t\tregistries, enable ECS managed tags option, propagate tags option, task placement\n\t\t\tconstraints and strategies, and the task definition. When you update any of these\n\t\t\tparameters, Amazon ECS starts new tasks with the new configuration.

\n\t\t

For services using the blue/green (CODE_DEPLOY) deployment controller, only the\n\t\t\tdesired count, deployment configuration, task placement constraints and strategies,\n\t\t\tenable ECS managed tags option, and propagate tags can be updated using this API. If the\n\t\t\tnetwork configuration, platform version, task definition, or load balancer need to be\n\t\t\tupdated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.

\n\t\t

For services using an external deployment controller, you can update only the desired count,\n\t\t\ttask placement constraints and strategies, health check grace period, enable ECS managed\n\t\t\ttags option, and propagate tags option, using this API. If the launch type, load\n\t\t\tbalancer, network configuration, platform version, or task definition need to be\n\t\t\tupdated, create a new task set For more information, see CreateTaskSet.

\n\t\t

You can add to or subtract from the number of instantiations of a task definition in a\n\t\t\tservice by specifying the cluster that the service is running in and a new\n\t\t\t\tdesiredCount parameter.

\n\t\t

If you have updated the Docker image of your application, you can create a new task\n\t\t\tdefinition with that image and deploy it to your service. The service scheduler uses the\n\t\t\tminimum healthy percent and maximum percent parameters (in the service's deployment\n\t\t\tconfiguration) to determine the deployment strategy.

\n\t\t \n\t\t\t

If your updated Docker image uses the same tag as what is in the existing task\n\t\t\t\tdefinition for your service (for example, my_image:latest), you don't\n\t\t\t\tneed to create a new revision of your task definition. You can update the service\n\t\t\t\tusing the forceNewDeployment option. The new tasks launched by the\n\t\t\t\tdeployment pull the current image/tag combination from your repository when they\n\t\t\t\tstart.

\n\t\t
\n\t\t

You can also update the deployment configuration of a service. When a deployment is\n\t\t\ttriggered by updating the task definition of a service, the service scheduler uses the\n\t\t\tdeployment configuration parameters, minimumHealthyPercent and\n\t\t\t\tmaximumPercent, to determine the deployment strategy.

\n\t\t \n\t\t

When UpdateService stops a task during a deployment, the equivalent\n\t\t\tof docker stop is issued to the containers running in the task. This\n\t\t\tresults in a SIGTERM and a 30-second timeout. After this,\n\t\t\t\tSIGKILL is sent and the containers are forcibly stopped. If the\n\t\t\tcontainer handles the SIGTERM gracefully and exits within 30 seconds from\n\t\t\treceiving it, no SIGKILL is sent.

\n\t\t

When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster with the following logic.

\n\t\t \n\t\t\n\t\t

When the service scheduler stops running tasks, it attempts to maintain balance across\n\t\t\tthe Availability Zones in your cluster using the following logic:

\n\t\t \n\t\t \n\t\t

You must have a service-linked role when you update any of the following service properties.\n\t\t\tIf you specified a custom IAM role when you created the service, Amazon ECS automatically\n\t\t\treplaces the roleARN associated with the service with the ARN of your service-linked\n\t\t\trole. For more information, see Service-linked\n\t\t\t\troles in the Amazon Elastic Container Service Developer Guide.

\n\t\t \n\t\t
" } }, "com.amazonaws.ecs#UpdateServicePrimaryTaskSet": { @@ -9253,7 +9257,7 @@ "taskSet": { "target": "com.amazonaws.ecs#TaskSet", "traits": { - "smithy.api#documentation": "

Details about the task set.

" + "smithy.api#documentation": "

etails about the task set.

" } } } @@ -9339,6 +9343,30 @@ "traits": { "smithy.api#documentation": "

If true, this enables execute command functionality on all task\n\t\t\tcontainers.

\n\t\t

If you do not want to override the value that was set when the service was created,\n\t\t\tyou can set this to null when performing this action.

" } + }, + "enableECSManagedTags": { + "target": "com.amazonaws.ecs#BoxedBoolean", + "traits": { + "smithy.api#documentation": "

Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For more\n\t\t\tinformation, see Tagging Your Amazon ECS\n\t\t\t\tResources in the Amazon Elastic Container Service Developer Guide.

\n\t\t

Only tasks launched after the update will reflect the update. To update the tags on\n\t\t\tall tasks, set forceNewDeployment to true, so that Amazon ECS\n\t\t\tstarts new tasks with the updated tags.

" + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the\n\t\t\tcontainer name, and the container port to access from the load balancer. The container\n\t\t\tname is as it appears in a container definition.

\n\t\t

When you add, update, or remove a load balancer configuration, Amazon ECS starts new tasks with\n\t\t\tthe updated Elastic Load Balancing configuration, and then stops the old tasks when the new tasks are\n\t\t\trunning.

\n\t\t

You can remove existing loadBalancers by passing an empty list.

" + } + }, + "propagateTags": { + "target": "com.amazonaws.ecs#PropagateTags", + "traits": { + "smithy.api#documentation": "

Determines whether to propagate the tags from the task definition or the service to\n\t\t\tthe task. If no value is specified, the tags aren't propagated.

\n\t\t

Only tasks launched after the update will reflect the update. To update the tags on\n\t\t\tall tasks, set forceNewDeployment to true, so that Amazon ECS\n\t\t\tstarts new tasks with the updated tags.

" + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

The details for the service discovery registries to assign to this service. For more\n\t\t\tinformation, see Service\n\t\t\t\tDiscovery.

\n\t\t

When you add, update, or remove the service registries configuration, Amazon ECS starts new tasks\n\t\t\twith the updated service registries configuration, and then stops the old tasks when the\n\t\t\tnew tasks are running.

\n\t\t

You can remove existing serviceRegistries by passing an empty\n\t\t\tlist.

" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/elasticache.2015-02-02.json b/codegen/sdk-codegen/aws-models/elasticache.2015-02-02.json index 2bd9d3273f0..366f769629d 100644 --- a/codegen/sdk-codegen/aws-models/elasticache.2015-02-02.json +++ b/codegen/sdk-codegen/aws-models/elasticache.2015-02-02.json @@ -2081,7 +2081,7 @@ "CacheNodeType": { "target": "com.amazonaws.elasticache#String", "traits": { - "smithy.api#documentation": "

The compute and memory capacity of the nodes in the node group (shard).

\n

The following node types are supported by ElastiCache. \n\t\t\t\tGenerally speaking, the current generation types provide more memory and computational power\n\t\t\tat lower cost when compared to their equivalent previous generation counterparts.

\n\t\t \n\t\t\t\t\n\t\t

\n Additional node type info\n

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

The compute and memory capacity of the nodes in the node group (shard).

\n

The following node types are supported by ElastiCache. \n\t\t\t\tGenerally speaking, the current generation types provide more memory and computational power\n\t\t\tat lower cost when compared to their equivalent previous generation counterparts.

\n\t\t \n\t\t\t\t\n\t\t

\n Additional node type info\n

\n\t\t " } }, "Engine": { 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 1011253ed4b..dd67dfc5e20 100644 --- a/codegen/sdk-codegen/aws-models/finspacedata.2020-07-13.json +++ b/codegen/sdk-codegen/aws-models/finspacedata.2020-07-13.json @@ -57,9 +57,24 @@ { "target": "com.amazonaws.finspacedata#CreateDataView" }, + { + "target": "com.amazonaws.finspacedata#CreatePermissionGroup" + }, + { + "target": "com.amazonaws.finspacedata#CreateUser" + }, { "target": "com.amazonaws.finspacedata#DeleteDataset" }, + { + "target": "com.amazonaws.finspacedata#DeletePermissionGroup" + }, + { + "target": "com.amazonaws.finspacedata#DisableUser" + }, + { + "target": "com.amazonaws.finspacedata#EnableUser" + }, { "target": "com.amazonaws.finspacedata#GetChangeset" }, @@ -72,6 +87,9 @@ { "target": "com.amazonaws.finspacedata#GetProgrammaticAccessCredentials" }, + { + "target": "com.amazonaws.finspacedata#GetUser" + }, { "target": "com.amazonaws.finspacedata#GetWorkingLocation" }, @@ -84,11 +102,26 @@ { "target": "com.amazonaws.finspacedata#ListDataViews" }, + { + "target": "com.amazonaws.finspacedata#ListPermissionGroups" + }, + { + "target": "com.amazonaws.finspacedata#ListUsers" + }, + { + "target": "com.amazonaws.finspacedata#ResetUserPassword" + }, { "target": "com.amazonaws.finspacedata#UpdateChangeset" }, { "target": "com.amazonaws.finspacedata#UpdateDataset" + }, + { + "target": "com.amazonaws.finspacedata#UpdatePermissionGroup" + }, + { + "target": "com.amazonaws.finspacedata#UpdateUser" } ] }, @@ -115,6 +148,62 @@ "smithy.api#pattern": "^alias\\/\\S+$" } }, + "com.amazonaws.finspacedata#ApiAccess": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.finspacedata#ApplicationPermission": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CreateDataset", + "name": "CreateDataset" + }, + { + "value": "ManageClusters", + "name": "ManageClusters" + }, + { + "value": "ManageUsersAndGroups", + "name": "ManageUsersAndGroups" + }, + { + "value": "ManageAttributeSets", + "name": "ManageAttributeSets" + }, + { + "value": "ViewAuditData", + "name": "ViewAuditData" + }, + { + "value": "AccessNotebooks", + "name": "AccessNotebooks" + }, + { + "value": "GetTemporaryCredentials", + "name": "GetTemporaryCredentials" + } + ] + } + }, + "com.amazonaws.finspacedata#ApplicationPermissionList": { + "type": "list", + "member": { + "target": "com.amazonaws.finspacedata#ApplicationPermission" + } + }, "com.amazonaws.finspacedata#Boolean": { "type": "boolean", "traits": { @@ -159,7 +248,7 @@ "errorCategory": { "target": "com.amazonaws.finspacedata#ErrorCategory", "traits": { - "smithy.api#documentation": "

The category of the error.

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

The category of the error.

\n " } } }, @@ -210,7 +299,7 @@ "changeType": { "target": "com.amazonaws.finspacedata#ChangeType", "traits": { - "smithy.api#documentation": "

Type that indicates how a Changeset is applied to a Dataset.

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

Type that indicates how a Changeset is applied to a Dataset.

\n " } }, "sourceParams": { @@ -228,13 +317,13 @@ "createTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The timestamp at which the Changeset was created in FinSpace. 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.

" + "smithy.api#documentation": "

The timestamp at which the Changeset was created in FinSpace. 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.

" } }, "status": { "target": "com.amazonaws.finspacedata#IngestionStatus", "traits": { - "smithy.api#documentation": "

Status of the Changeset ingestion.

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

Status of the Changeset ingestion.

\n " } }, "errorInfo": { @@ -247,14 +336,14 @@ "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { "smithy.api#box": {}, - "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.

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

Beginning time from 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.

" + "smithy.api#documentation": "

Beginning time from 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.

" } }, "updatesChangesetId": { @@ -347,13 +436,13 @@ "dataType": { "target": "com.amazonaws.finspacedata#ColumnDataType", "traits": { - "smithy.api#documentation": "

Data type of a column.

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

Data type of a column.

\n " } }, "columnName": { "target": "com.amazonaws.finspacedata#ColumnName", "traits": { - "smithy.api#documentation": "

Name for a column.

" + "smithy.api#documentation": "

The name of a column.

" } }, "columnDescription": { @@ -412,6 +501,9 @@ "members": { "message": { "target": "com.amazonaws.finspacedata#ErrorMessage2" + }, + "reason": { + "target": "com.amazonaws.finspacedata#ErrorMessage2" } }, "traits": { @@ -481,21 +573,21 @@ "changeType": { "target": "com.amazonaws.finspacedata#ChangeType", "traits": { - "smithy.api#documentation": "

Option to indicate how a Changeset will be applied to a Dataset.

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

The option to indicate how a Changeset will be applied to a Dataset.

\n ", "smithy.api#required": {} } }, "sourceParams": { "target": "com.amazonaws.finspacedata#SourceParams", "traits": { - "smithy.api#documentation": "

Options that define the location of the data being ingested (s3SourcePath) and the source of the changeset (sourceType).

\n

Both s3SourcePath and sourceType are required attributes.

\n

Here is an example of how you could specify the sourceParams:

\n

\n \n \"sourceParams\": \n {\n \"s3SourcePath\": \"s3://finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d/scratch/wr5hh8pwkpqqkxa4sxrmcw/ingestion/equity.csv\",\n \"sourceType\": \"S3\"\n }\n \n

\n

The S3 path that you specify must allow the FinSpace role access. To do that, you first need to configure the IAM policy on S3 bucket. For more information, see Loading data from an Amazon S3 Bucket using the FinSpace APIsection.

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

Options that define the location of the data being ingested (s3SourcePath) and the source of the changeset (sourceType).

\n

Both s3SourcePath and sourceType are required attributes.

\n

Here is an example of how you could specify the sourceParams:

\n

\n \n \"sourceParams\": \n {\n \"s3SourcePath\": \"s3://finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d/scratch/wr5hh8pwkpqqkxa4sxrmcw/ingestion/equity.csv\",\n \"sourceType\": \"S3\"\n }\n \n

\n

The S3 path that you specify must allow the FinSpace role access. To do that, you first need to configure the IAM policy on S3 bucket. For more information, see Loading data from an Amazon S3 Bucket using the FinSpace API section.

", "smithy.api#required": {} } }, "formatParams": { "target": "com.amazonaws.finspacedata#FormatParams", "traits": { - "smithy.api#documentation": "

Options that define the structure of the source file(s) including the format type (formatType), header row (withHeader), data separation character (separator) and the type of compression (compression).\n

\n

\n formatType is a required attribute and can have the following values:\n

\n \n \n

Here is an example of how you could specify the formatParams:

\n

\n \n \"formatParams\": \n {\n \"formatType\": \"CSV\",\n \"withHeader\": \"true\",\n \"separator\": \",\",\n \"compression\":\"None\"\n } \n \n

\n

Note that if you only provide formatType as CSV, the rest of the attributes will automatically default to CSV values as following:

\n

\n \n {\n \"withHeader\": \"true\",\n \"separator\": \",\"\n }\n \n

\n

For more information about supported file formats, see Supported Data Types and File Formats in the FinSpace User Guide.

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

Options that define the structure of the source file(s) including the format type (formatType), header row (withHeader), data separation character (separator) and the type of compression (compression).\n

\n

\n formatType is a required attribute and can have the following values:\n

\n \n \n

Here is an example of how you could specify the formatParams:

\n

\n \n \"formatParams\": \n {\n \"formatType\": \"CSV\",\n \"withHeader\": \"true\",\n \"separator\": \",\",\n \"compression\":\"None\"\n } \n \n

\n

Note that if you only provide formatType as CSV, the rest of the attributes will automatically default to CSV values as following:

\n

\n \n {\n \"withHeader\": \"true\",\n \"separator\": \",\"\n }\n \n

\n

For more information about supported file formats, see Supported Data Types and File Formats in the FinSpace User Guide.

", "smithy.api#required": {} } } @@ -601,7 +693,7 @@ "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Beginning time to use for the Dataview. 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.

" + "smithy.api#documentation": "

Beginning time to use for the Dataview. 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.

" } }, "destinationTypeParams": { @@ -696,7 +788,7 @@ "kind": { "target": "com.amazonaws.finspacedata#DatasetKind", "traits": { - "smithy.api#documentation": "

The format in which Dataset data is structured.

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

The format in which Dataset data is structured.

\n ", "smithy.api#required": {} } }, @@ -750,6 +842,184 @@ "smithy.api#documentation": "The response from a CreateDataset operation" } }, + "com.amazonaws.finspacedata#CreatePermissionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#CreatePermissionGroupRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#CreatePermissionGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#LimitExceededException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a group of permissions for various actions that a user can perform in FinSpace.

", + "smithy.api#http": { + "method": "POST", + "uri": "/permission-group", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#CreatePermissionGroupRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.finspacedata#PermissionGroupName", + "traits": { + "smithy.api#documentation": "

The name of the permission group.

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

A brief description for the permission group.

" + } + }, + "applicationPermissions": { + "target": "com.amazonaws.finspacedata#ApplicationPermissionList", + "traits": { + "smithy.api#documentation": "

The option to indicate FinSpace application permissions that are granted to a specific group.

\n ", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.finspacedata#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#CreatePermissionGroupResponse": { + "type": "structure", + "members": { + "permissionGroupId": { + "target": "com.amazonaws.finspacedata#PermissionGroupId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the permission group.

" + } + } + } + }, + "com.amazonaws.finspacedata#CreateUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#CreateUserRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#CreateUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#LimitExceededException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a new user in FinSpace.

", + "smithy.api#http": { + "method": "POST", + "uri": "/user", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#CreateUserRequest": { + "type": "structure", + "members": { + "emailAddress": { + "target": "com.amazonaws.finspacedata#Email", + "traits": { + "smithy.api#documentation": "

The email address of the user that you want to register. The email address serves as a uniquer identifier for each user and cannot be changed after it's created.

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

The option to indicate the type of user. Use one of the following options to specify this parameter:

\n ", + "smithy.api#required": {} + } + }, + "firstName": { + "target": "com.amazonaws.finspacedata#FirstName", + "traits": { + "smithy.api#documentation": "

The first name of the user that you want to register.

" + } + }, + "lastName": { + "target": "com.amazonaws.finspacedata#LastName", + "traits": { + "smithy.api#documentation": "

The last name of the user that you want to register.

" + } + }, + "ApiAccess": { + "target": "com.amazonaws.finspacedata#ApiAccess", + "traits": { + "smithy.api#documentation": "

The option to indicate whether the user can use the GetProgrammaticAccessCredentials API to obtain credentials that can then be used to access other FinSpace Data API operations.

\n " + } + }, + "apiAccessPrincipalArn": { + "target": "com.amazonaws.finspacedata#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN identifier of an AWS user or role that is allowed to call the GetProgrammaticAccessCredentials API to obtain a credentials token for a specific FinSpace user. This must be an IAM role within your FinSpace account.

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

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#CreateUserResponse": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the user.

" + } + } + } + }, "com.amazonaws.finspacedata#Credentials": { "type": "structure", "members": { @@ -794,14 +1064,14 @@ "destinationType": { "target": "com.amazonaws.finspacedata#DataViewDestinationType", "traits": { - "smithy.api#documentation": "

Destination type for a Dataview.

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

Destination type for a Dataview.

\n ", "smithy.api#required": {} } }, "s3DestinationExportFileFormat": { "target": "com.amazonaws.finspacedata#ExportFileFormat", "traits": { - "smithy.api#documentation": "

Data view export file format.

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

Data view export file format.

\n " } }, "s3DestinationExportFileFormatOptions": { @@ -827,7 +1097,7 @@ "errorCategory": { "target": "com.amazonaws.finspacedata#ErrorCategory", "traits": { - "smithy.api#documentation": "

The category of the error.

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

The category of the error.

\n " } } }, @@ -919,7 +1189,7 @@ "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Time range to use for the Dataview. 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.

" + "smithy.api#documentation": "

Time range to use for the Dataview. 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.

" } }, "partitionColumns": { @@ -937,7 +1207,7 @@ "status": { "target": "com.amazonaws.finspacedata#DataViewStatus", "traits": { - "smithy.api#documentation": "

The status of a Dataview creation.

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

The status of a Dataview creation.

\n " } }, "errorInfo": { @@ -961,13 +1231,13 @@ "createTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The timestamp at which the Dataview was created in FinSpace. 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.

" + "smithy.api#documentation": "

The timestamp at which the Dataview was created in FinSpace. 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.

" } }, "lastModifiedTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The last time that a Dataview was modified. 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.

" + "smithy.api#documentation": "

The last time that a Dataview was modified. 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.

" } } }, @@ -999,7 +1269,7 @@ "kind": { "target": "com.amazonaws.finspacedata#DatasetKind", "traits": { - "smithy.api#documentation": "

The format in which Dataset data is structured.

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

The format in which Dataset data is structured.

\n " } }, "datasetDescription": { @@ -1017,13 +1287,13 @@ "createTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The timestamp at which the Dataset was created in FinSpace. 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.

" + "smithy.api#documentation": "

The timestamp at which the Dataset was created in FinSpace. 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.

" } }, "lastModifiedTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The last time that the Dataset was modified. 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.

" + "smithy.api#documentation": "

The last time that the Dataset was modified. 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.

" } }, "schemaDefinition": { @@ -1101,7 +1371,7 @@ "name": { "target": "com.amazonaws.finspacedata#OwnerName", "traits": { - "smithy.api#documentation": "

Name of the Dataset owner.

" + "smithy.api#documentation": "

The name of the Dataset owner.

" } }, "phoneNumber": { @@ -1234,24 +1504,235 @@ "smithy.api#documentation": "The response from an DeleteDataset operation" } }, - "com.amazonaws.finspacedata#Email": { - "type": "string", + "com.amazonaws.finspacedata#DeletePermissionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#DeletePermissionGroupRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#DeletePermissionGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#LimitExceededException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], "traits": { - "smithy.api#documentation": "Email of Dataset Owner", - "smithy.api#length": { - "min": 4, - "max": 320 + "smithy.api#documentation": "

Deletes a permission group. This action is irreversible.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/permission-group/{permissionGroupId}", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#DeletePermissionGroupRequest": { + "type": "structure", + "members": { + "permissionGroupId": { + "target": "com.amazonaws.finspacedata#PermissionGroupId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the permission group that you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } }, - "smithy.api#pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$" + "clientToken": { + "target": "com.amazonaws.finspacedata#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + } } }, - "com.amazonaws.finspacedata#ErrorCategory": { - "type": "string", - "traits": { - "smithy.api#documentation": "Changeset Error Category", - "smithy.api#enum": [ - { - "value": "VALIDATION", + "com.amazonaws.finspacedata#DeletePermissionGroupResponse": { + "type": "structure", + "members": { + "permissionGroupId": { + "target": "com.amazonaws.finspacedata#PermissionGroupId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the deleted permission group.

" + } + } + } + }, + "com.amazonaws.finspacedata#DisableUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#DisableUserRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#DisableUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Denies access to the FinSpace web application and API for the specified user.

", + "smithy.api#http": { + "method": "POST", + "uri": "/user/{userId}/disable", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#DisableUserRequest": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the user account that you want to disable.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.finspacedata#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#DisableUserResponse": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the disabled user account.

" + } + } + } + }, + "com.amazonaws.finspacedata#Email": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 4, + "max": 320 + }, + "smithy.api#pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.finspacedata#EnableUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#EnableUserRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#EnableUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#LimitExceededException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Allows the specified user to access the FinSpace web application and API.

", + "smithy.api#http": { + "method": "POST", + "uri": "/user/{userId}/enable", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#EnableUserRequest": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the user account that you want to enable.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.finspacedata#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#EnableUserResponse": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the enabled user account.

" + } + } + } + }, + "com.amazonaws.finspacedata#ErrorCategory": { + "type": "string", + "traits": { + "smithy.api#documentation": "Changeset Error Category", + "smithy.api#enum": [ + { + "value": "VALIDATION", "name": "VALIDATION" }, { @@ -1314,6 +1795,17 @@ ] } }, + "com.amazonaws.finspacedata#FirstName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + }, + "smithy.api#pattern": "\\S", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.finspacedata#FormatParams": { "type": "map", "key": { @@ -1411,7 +1903,7 @@ "changeType": { "target": "com.amazonaws.finspacedata#ChangeType", "traits": { - "smithy.api#documentation": "

Type that indicates how a Changeset is applied to a Dataset.

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

Type that indicates how a Changeset is applied to a Dataset.

\n " } }, "sourceParams": { @@ -1429,7 +1921,7 @@ "createTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The timestamp at which the Changeset was created in FinSpace. 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.

" + "smithy.api#documentation": "

The timestamp at which the Changeset was created in FinSpace. 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.

" } }, "status": { @@ -1448,14 +1940,14 @@ "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { "smithy.api#box": {}, - "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.

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

Beginning time from 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.

" + "smithy.api#documentation": "

Beginning time from 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.

" } }, "updatesChangesetId": { @@ -1558,7 +2050,7 @@ "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

Time range to use for the Dataview. 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.

" + "smithy.api#documentation": "

Time range to use for the Dataview. 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.

" } }, "errorInfo": { @@ -1570,13 +2062,13 @@ "lastModifiedTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The last time that a Dataview was modified. 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.

" + "smithy.api#documentation": "

The last time that a Dataview was modified. 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.

" } }, "createTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The timestamp at which the Dataview was created in FinSpace. 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.

" + "smithy.api#documentation": "

The timestamp at which the Dataview was created in FinSpace. 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.

" } }, "sortColumns": { @@ -1606,7 +2098,7 @@ "status": { "target": "com.amazonaws.finspacedata#DataViewStatus", "traits": { - "smithy.api#documentation": "

The status of a Dataview creation.

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

The status of a Dataview creation.

\n " } } }, @@ -1691,7 +2183,7 @@ "kind": { "target": "com.amazonaws.finspacedata#DatasetKind", "traits": { - "smithy.api#documentation": "

The format in which Dataset data is structured.

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

The format in which Dataset data is structured.

\n " } }, "datasetDescription": { @@ -1703,13 +2195,13 @@ "createTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The timestamp at which the Dataset was created in FinSpace. 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.

" + "smithy.api#documentation": "

The timestamp at which the Dataset was created in FinSpace. 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.

" } }, "lastModifiedTime": { "target": "com.amazonaws.finspacedata#TimestampEpoch", "traits": { - "smithy.api#documentation": "

The last time that the Dataset was modified. 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.

" + "smithy.api#documentation": "

The last time that the Dataset was modified. 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.

" } }, "schemaDefinition": { @@ -1727,7 +2219,7 @@ "status": { "target": "com.amazonaws.finspacedata#DatasetStatus", "traits": { - "smithy.api#documentation": "

Status of the Dataset creation.

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

Status of the Dataset creation.

\n " } } }, @@ -1809,6 +2301,136 @@ "smithy.api#documentation": "Response for GetProgrammaticAccessCredentials operation" } }, + "com.amazonaws.finspacedata#GetUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#GetUserRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#GetUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieves details for a specific user.

", + "smithy.api#http": { + "method": "GET", + "uri": "/user/{userId}", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#GetUserRequest": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the user to get data for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.finspacedata#GetUserResponse": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the user account that is retrieved.

" + } + }, + "status": { + "target": "com.amazonaws.finspacedata#UserStatus", + "traits": { + "smithy.api#documentation": "

The current status of the user account.

\n " + } + }, + "firstName": { + "target": "com.amazonaws.finspacedata#FirstName", + "traits": { + "smithy.api#documentation": "

The first name of the user.

" + } + }, + "lastName": { + "target": "com.amazonaws.finspacedata#LastName", + "traits": { + "smithy.api#documentation": "

The last name of the user.

" + } + }, + "emailAddress": { + "target": "com.amazonaws.finspacedata#Email", + "traits": { + "smithy.api#documentation": "

The email address that is associated with the user.

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

Indicates the type of user.

\n \n " + } + }, + "apiAccess": { + "target": "com.amazonaws.finspacedata#ApiAccess", + "traits": { + "smithy.api#documentation": "

Indicates whether the user can use the GetProgrammaticAccessCredentials API to obtain credentials that can then be used to access other FinSpace Data API operations.

\n " + } + }, + "apiAccessPrincipalArn": { + "target": "com.amazonaws.finspacedata#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN identifier of an AWS user or role that is allowed to call the GetProgrammaticAccessCredentials API to obtain a credentials token for a specific FinSpace user. This must be an IAM role within your FinSpace account.

" + } + }, + "createTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

The timestamp at which the user account was created in FinSpace. The value is determined as epoch time in milliseconds.

" + } + }, + "lastEnabledTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the user account was enabled. The value is determined as epoch time in milliseconds.

" + } + }, + "lastDisabledTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the user account was disabled. The value is determined as epoch time in milliseconds.

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the user account was updated. The value is determined as epoch time in milliseconds.

" + } + }, + "lastLoginTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time that the user logged into their account. The value is determined as epoch time in milliseconds.

" + } + } + } + }, "com.amazonaws.finspacedata#GetWorkingLocation": { "type": "operation", "input": { @@ -1846,7 +2468,7 @@ "locationType": { "target": "com.amazonaws.finspacedata#locationType", "traits": { - "smithy.api#documentation": "

Specify the type of the working location.

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

Specify the type of the working location.

\n " } } } @@ -1924,6 +2546,17 @@ "smithy.api#httpError": 500 } }, + "com.amazonaws.finspacedata#LastName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + }, + "smithy.api#pattern": "\\S", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.finspacedata#LimitExceededException": { "type": "structure", "members": { @@ -2001,7 +2634,7 @@ "nextToken": { "target": "com.amazonaws.finspacedata#PaginationToken", "traits": { - "smithy.api#documentation": "

A token indicating where a results page should begin.

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

A token that indicates where a results page should begin.

", "smithy.api#httpQuery": "nextToken" } } @@ -2022,7 +2655,7 @@ "nextToken": { "target": "com.amazonaws.finspacedata#PaginationToken", "traits": { - "smithy.api#documentation": "

A token indicating where a results page should begin.

" + "smithy.api#documentation": "

A token that indicates where a results page should begin.

" } } }, @@ -2083,7 +2716,7 @@ "nextToken": { "target": "com.amazonaws.finspacedata#PaginationToken", "traits": { - "smithy.api#documentation": "

A token indicating where a results page should begin.

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

A token that indicates where a results page should begin.

", "smithy.api#httpQuery": "nextToken" } }, @@ -2106,7 +2739,7 @@ "nextToken": { "target": "com.amazonaws.finspacedata#PaginationToken", "traits": { - "smithy.api#documentation": "

A token indicating where a results page should begin.

" + "smithy.api#documentation": "

A token that indicates where a results page should begin.

" } }, "dataViews": { @@ -2162,7 +2795,7 @@ "nextToken": { "target": "com.amazonaws.finspacedata#PaginationToken", "traits": { - "smithy.api#documentation": "

A token indicating where a results page should begin.

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

A token that indicates where a results page should begin.

", "smithy.api#httpQuery": "nextToken" } }, @@ -2191,7 +2824,7 @@ "nextToken": { "target": "com.amazonaws.finspacedata#PaginationToken", "traits": { - "smithy.api#documentation": "

A token indicating where a results page should begin.

" + "smithy.api#documentation": "

A token that indicates where a results page should begin.

" } } }, @@ -2199,20 +2832,166 @@ "smithy.api#documentation": "Response for the ListDatasets operation" } }, - "com.amazonaws.finspacedata#OwnerName": { - "type": "string", - "traits": { - "smithy.api#documentation": "1 - 250 character String", - "smithy.api#length": { - "min": 1, - "max": 250 - }, - "smithy.api#pattern": "\\S" - } - }, - "com.amazonaws.finspacedata#PaginationToken": { - "type": "string", - "traits": { + "com.amazonaws.finspacedata#ListPermissionGroups": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#ListPermissionGroupsRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#ListPermissionGroupsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all available permission groups in FinSpace.

", + "smithy.api#http": { + "method": "GET", + "uri": "/permission-group", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.finspacedata#ListPermissionGroupsRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.finspacedata#PaginationToken", + "traits": { + "smithy.api#documentation": "

A token that indicates where a results page should begin.

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

The maximum number of results per page.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.finspacedata#ListPermissionGroupsResponse": { + "type": "structure", + "members": { + "permissionGroups": { + "target": "com.amazonaws.finspacedata#PermissionGroupList", + "traits": { + "smithy.api#documentation": "

A list of all the permission groups.

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

A token that indicates where a results page should begin.

" + } + } + } + }, + "com.amazonaws.finspacedata#ListUsers": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#ListUsersRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#ListUsersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists all available user accounts in FinSpace.

", + "smithy.api#http": { + "method": "GET", + "uri": "/user", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults" + } + } + }, + "com.amazonaws.finspacedata#ListUsersRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.finspacedata#PaginationToken", + "traits": { + "smithy.api#documentation": "

A token that indicates where a results page should begin.

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

The maximum number of results per page.

", + "smithy.api#httpQuery": "maxResults", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.finspacedata#ListUsersResponse": { + "type": "structure", + "members": { + "users": { + "target": "com.amazonaws.finspacedata#UserList", + "traits": { + "smithy.api#documentation": "

A list of all the user accounts.

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

A token that indicates where a results page should begin.

" + } + } + } + }, + "com.amazonaws.finspacedata#OwnerName": { + "type": "string", + "traits": { + "smithy.api#documentation": "1 - 250 character String", + "smithy.api#length": { + "min": 1, + "max": 250 + }, + "smithy.api#pattern": "\\S" + } + }, + "com.amazonaws.finspacedata#PaginationToken": { + "type": "string", + "traits": { "smithy.api#documentation": "Pagination token for list operations" } }, @@ -2225,14 +3004,97 @@ "smithy.api#documentation": "DataView Partition Column List" } }, + "com.amazonaws.finspacedata#Password": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 8, + "max": 20 + }, + "smithy.api#pattern": "\\S", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.finspacedata#PermissionGroup": { + "type": "structure", + "members": { + "permissionGroupId": { + "target": "com.amazonaws.finspacedata#PermissionGroupId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the permission group.

" + } + }, + "name": { + "target": "com.amazonaws.finspacedata#PermissionGroupName", + "traits": { + "smithy.api#documentation": "

The name of the permission group.

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

A brief description for the permission group.

" + } + }, + "applicationPermissions": { + "target": "com.amazonaws.finspacedata#ApplicationPermissionList", + "traits": { + "smithy.api#documentation": "

Indicates the permissions that are granted to a specific group for accessing the FinSpace application.

\n " + } + }, + "createTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

The timestamp at which the group was created in FinSpace. The value is determined as epoch time in milliseconds.\n

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the permission group was updated. The value is determined as epoch time in milliseconds.\n

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

The structure for a permission group.

" + } + }, + "com.amazonaws.finspacedata#PermissionGroupDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 4000 + }, + "smithy.api#pattern": "\\S", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.finspacedata#PermissionGroupId": { "type": "string", "traits": { - "smithy.api#documentation": "Id of the associated PermissionGroup", "smithy.api#length": { "min": 1, "max": 26 - } + }, + "smithy.api#pattern": "\\S" + } + }, + "com.amazonaws.finspacedata#PermissionGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.finspacedata#PermissionGroup" + } + }, + "com.amazonaws.finspacedata#PermissionGroupName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "\\S", + "smithy.api#sensitive": {} } }, "com.amazonaws.finspacedata#PermissionGroupParams": { @@ -2241,7 +3103,7 @@ "permissionGroupId": { "target": "com.amazonaws.finspacedata#PermissionGroupId", "traits": { - "smithy.api#documentation": "

The unique identifier of the PermissionGroup.

" + "smithy.api#documentation": "

The unique identifier for the PermissionGroup.

" } }, "datasetPermissions": { @@ -2266,11 +3128,88 @@ "smithy.api#pattern": "^[\\+0-9\\#\\,\\(][\\+0-9\\-\\.\\/\\(\\)\\,\\#\\s]+$" } }, + "com.amazonaws.finspacedata#ResetUserPassword": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#ResetUserPasswordRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#ResetUserPasswordResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Resets the password for a specified user ID and generates a temporary one. Only a superuser can reset password for other users. Resetting the password immediately invalidates the previous password associated with the user.

", + "smithy.api#http": { + "method": "POST", + "uri": "/user/{userId}/password", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#ResetUserPasswordRequest": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the user that a temporary password is requested for.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.finspacedata#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#ResetUserPasswordResponse": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the user that a new password is generated for.

" + } + }, + "temporaryPassword": { + "target": "com.amazonaws.finspacedata#Password", + "traits": { + "smithy.api#documentation": "

A randomly generated temporary password for the requested user account. This password expires in 7 days.

" + } + } + } + }, "com.amazonaws.finspacedata#ResourceNotFoundException": { "type": "structure", "members": { "message": { "target": "com.amazonaws.finspacedata#ErrorMessage2" + }, + "reason": { + "target": "com.amazonaws.finspacedata#ErrorMessage2" } }, "traits": { @@ -2290,7 +3229,7 @@ } }, "traits": { - "smithy.api#documentation": "

Resource permission for a dataset. When you create a dataset, all the other members of the same user group inherit access to the dataset. You can only create a dataset if your user group has application permission for Create Datasets.

\n

The following is a list of valid dataset permissions that you can apply:\n \n

\n \n

For more information on the ataset permissions, see Supported Dataset Permissions in the FinSpace User Guide.

" + "smithy.api#documentation": "

Resource permission for a dataset. When you create a dataset, all the other members of the same user group inherit access to the dataset. You can only create a dataset if your user group has application permission for Create Datasets.

\n

The following is a list of valid dataset permissions that you can apply:\n \n

\n \n

For more information on the dataset permissions, see Supported Dataset Permissions in the FinSpace User Guide.

" } }, "com.amazonaws.finspacedata#ResourcePermissionsList": { @@ -2312,6 +3251,16 @@ } } }, + "com.amazonaws.finspacedata#RoleArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" + } + }, "com.amazonaws.finspacedata#S3DestinationFormatOptions": { "type": "map", "key": { @@ -2524,7 +3473,7 @@ "formatParams": { "target": "com.amazonaws.finspacedata#FormatParams", "traits": { - "smithy.api#documentation": "

Options that define the structure of the source file(s) including the format type (formatType), header row (withHeader), data separation character (separator) and the type of compression (compression).\n

\n

\n formatType is a required attribute and can have the following values:\n

\n \n \n

Here is an example of how you could specify the formatParams:

\n

\n \n \"formatParams\": \n {\n \"formatType\": \"CSV\",\n \"withHeader\": \"true\",\n \"separator\": \",\",\n \"compression\":\"None\"\n } \n \n

\n

Note that if you only provide formatType as CSV, the rest of the attributes will automatically default to CSV values as following:

\n

\n \n {\n \"withHeader\": \"true\",\n \"separator\": \",\"\n }\n \n

\n

For more information about supported file formats, see Supported Data Types and File Formats in the FinSpace User Guide.

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

Options that define the structure of the source file(s) including the format type (formatType), header row (withHeader), data separation character (separator) and the type of compression (compression).\n

\n

\n formatType is a required attribute and can have the following values:\n

\n \n \n

Here is an example of how you could specify the formatParams:

\n

\n \n \"formatParams\": \n {\n \"formatType\": \"CSV\",\n \"withHeader\": \"true\",\n \"separator\": \",\",\n \"compression\":\"None\"\n } \n \n

\n

Note that if you only provide formatType as CSV, the rest of the attributes will automatically default to CSV values as following:

\n

\n \n {\n \"withHeader\": \"true\",\n \"separator\": \",\"\n }\n \n

\n

For more information about supported file formats, see Supported Data Types and File Formats in the FinSpace User Guide.

", "smithy.api#required": {} } } @@ -2618,7 +3567,7 @@ "kind": { "target": "com.amazonaws.finspacedata#DatasetKind", "traits": { - "smithy.api#documentation": "

The format in which the Dataset data is structured.

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

The format in which the Dataset data is structured.

\n ", "smithy.api#required": {} } }, @@ -2659,11 +3608,334 @@ "smithy.api#documentation": "The response from an UpdateDataset operation" } }, + "com.amazonaws.finspacedata#UpdatePermissionGroup": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#UpdatePermissionGroupRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#UpdatePermissionGroupResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the details of a permission group. You cannot modify a permissionGroupID.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/permission-group/{permissionGroupId}", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#UpdatePermissionGroupRequest": { + "type": "structure", + "members": { + "permissionGroupId": { + "target": "com.amazonaws.finspacedata#PermissionGroupId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the permission group to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.finspacedata#PermissionGroupName", + "traits": { + "smithy.api#documentation": "

The name of the permission group.

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

A brief description for the permission group.

" + } + }, + "applicationPermissions": { + "target": "com.amazonaws.finspacedata#ApplicationPermissionList", + "traits": { + "smithy.api#documentation": "

The permissions that are granted to a specific group for accessing the FinSpace application.

\n " + } + }, + "clientToken": { + "target": "com.amazonaws.finspacedata#ClientToken", + "traits": { + "smithy.api#documentation": "

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#UpdatePermissionGroupResponse": { + "type": "structure", + "members": { + "permissionGroupId": { + "target": "com.amazonaws.finspacedata#PermissionGroupId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the updated permission group.

" + } + } + } + }, + "com.amazonaws.finspacedata#UpdateUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.finspacedata#UpdateUserRequest" + }, + "output": { + "target": "com.amazonaws.finspacedata#UpdateUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.finspacedata#AccessDeniedException" + }, + { + "target": "com.amazonaws.finspacedata#ConflictException" + }, + { + "target": "com.amazonaws.finspacedata#InternalServerException" + }, + { + "target": "com.amazonaws.finspacedata#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.finspacedata#ThrottlingException" + }, + { + "target": "com.amazonaws.finspacedata#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies the details of the specified user account. You cannot update the userId for a user.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/user/{userId}", + "code": 200 + } + } + }, + "com.amazonaws.finspacedata#UpdateUserRequest": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the user account to update.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "type": { + "target": "com.amazonaws.finspacedata#UserType", + "traits": { + "smithy.api#documentation": "

The option to indicate the type of user.

\n " + } + }, + "firstName": { + "target": "com.amazonaws.finspacedata#FirstName", + "traits": { + "smithy.api#documentation": "

The first name of the user.

" + } + }, + "lastName": { + "target": "com.amazonaws.finspacedata#LastName", + "traits": { + "smithy.api#documentation": "

The last name of the user.

" + } + }, + "apiAccess": { + "target": "com.amazonaws.finspacedata#ApiAccess", + "traits": { + "smithy.api#documentation": "

The option to indicate whether the user can use the GetProgrammaticAccessCredentials API to obtain credentials that can then be used to access other FinSpace Data API operations.

\n " + } + }, + "apiAccessPrincipalArn": { + "target": "com.amazonaws.finspacedata#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN identifier of an AWS user or role that is allowed to call the GetProgrammaticAccessCredentials API to obtain a credentials token for a specific FinSpace user. This must be an IAM role within your FinSpace account.

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

A token that ensures idempotency. This token expires in 10 minutes.

", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.finspacedata#UpdateUserResponse": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the updated user account.

" + } + } + } + }, + "com.amazonaws.finspacedata#User": { + "type": "structure", + "members": { + "userId": { + "target": "com.amazonaws.finspacedata#UserId", + "traits": { + "smithy.api#documentation": "

The unique identifier for the user.

" + } + }, + "status": { + "target": "com.amazonaws.finspacedata#UserStatus", + "traits": { + "smithy.api#documentation": "

The current status of the user account.

\n " + } + }, + "firstName": { + "target": "com.amazonaws.finspacedata#FirstName", + "traits": { + "smithy.api#documentation": "

The first name of the user.

" + } + }, + "lastName": { + "target": "com.amazonaws.finspacedata#LastName", + "traits": { + "smithy.api#documentation": "

The last name of the user.

" + } + }, + "emailAddress": { + "target": "com.amazonaws.finspacedata#Email", + "traits": { + "smithy.api#documentation": "

The email address of the user. The email address serves as a uniquer identifier for each user and cannot be changed after it's created.

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

Indicates the type of user.

\n " + } + }, + "apiAccess": { + "target": "com.amazonaws.finspacedata#ApiAccess", + "traits": { + "smithy.api#documentation": "

Indicates whether the user can use the GetProgrammaticAccessCredentials API to obtain credentials that can then be used to access other FinSpace Data API operations.

\n " + } + }, + "apiAccessPrincipalArn": { + "target": "com.amazonaws.finspacedata#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN identifier of an AWS user or role that is allowed to call the GetProgrammaticAccessCredentials API to obtain a credentials token for a specific FinSpace user. This must be an IAM role within your FinSpace account.

" + } + }, + "createTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

The timestamp at which the user account was created in FinSpace. The value is determined as epoch time in milliseconds.

" + } + }, + "lastEnabledTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the user account was enabled. The value is determined as epoch time in milliseconds.\n

" + } + }, + "lastDisabledTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the user account was disabled. The value is determined as epoch time in milliseconds.

" + } + }, + "lastModifiedTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time the user account was updated. The value is determined as epoch time in milliseconds.\n

" + } + }, + "lastLoginTime": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#documentation": "

Describes the last time that the user logged into their account. The value is determined as epoch time in milliseconds.\n

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

The details of the user account.

" + } + }, + "com.amazonaws.finspacedata#UserId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 26 + }, + "smithy.api#pattern": "\\S" + } + }, + "com.amazonaws.finspacedata#UserList": { + "type": "list", + "member": { + "target": "com.amazonaws.finspacedata#User" + } + }, + "com.amazonaws.finspacedata#UserStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.finspacedata#UserType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SUPER_USER", + "name": "SUPER_USER" + }, + { + "value": "APP_USER", + "name": "APP_USER" + } + ] + } + }, "com.amazonaws.finspacedata#ValidationException": { "type": "structure", "members": { "message": { "target": "com.amazonaws.finspacedata#ErrorMessage2" + }, + "reason": { + "target": "com.amazonaws.finspacedata#ErrorMessage2" } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/fis.2020-12-01.json b/codegen/sdk-codegen/aws-models/fis.2020-12-01.json index b387b750496..702190d6263 100644 --- a/codegen/sdk-codegen/aws-models/fis.2020-12-01.json +++ b/codegen/sdk-codegen/aws-models/fis.2020-12-01.json @@ -221,6 +221,16 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#CloudWatchLogGroupArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^[\\S]+$" + } + }, "com.amazonaws.fis#ConflictException": { "type": "structure", "members": { @@ -317,6 +327,33 @@ "target": "com.amazonaws.fis#CreateExperimentTemplateActionInput" } }, + "com.amazonaws.fis#CreateExperimentTemplateLogConfigurationInput": { + "type": "structure", + "members": { + "cloudWatchLogsConfiguration": { + "target": "com.amazonaws.fis#ExperimentTemplateCloudWatchLogsLogConfigurationInput", + "traits": { + "smithy.api#documentation": "

The configuration for experiment logging to Amazon CloudWatch Logs.

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

The configuration for experiment logging to Amazon S3.

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

The schema version.

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

Specifies the configuration for experiment logging.

" + } + }, "com.amazonaws.fis#CreateExperimentTemplateRequest": { "type": "structure", "members": { @@ -367,6 +404,12 @@ "traits": { "smithy.api#documentation": "

The tags to apply to the experiment template.

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

The configuration for experiment logging.

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

The tags for the experiment.

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

The configuration for experiment logging.

" + } } }, "traits": { @@ -823,6 +872,20 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#ExperimentCloudWatchLogsLogConfiguration": { + "type": "structure", + "members": { + "logGroupArn": { + "target": "com.amazonaws.fis#CloudWatchLogGroupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log group.

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

Describes the configuration for experiment logging to Amazon CloudWatch Logs.

" + } + }, "com.amazonaws.fis#ExperimentEndTime": { "type": "timestamp" }, @@ -836,6 +899,52 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#ExperimentLogConfiguration": { + "type": "structure", + "members": { + "cloudWatchLogsConfiguration": { + "target": "com.amazonaws.fis#ExperimentCloudWatchLogsLogConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for experiment logging to Amazon CloudWatch Logs.

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

The configuration for experiment logging to Amazon S3.

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

The schema version.

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

Describes the configuration for experiment logging.

" + } + }, + "com.amazonaws.fis#ExperimentS3LogConfiguration": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.fis#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the destination bucket.

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

The bucket prefix.

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

Describes the configuration for experiment logging to Amazon S3.

" + } + }, "com.amazonaws.fis#ExperimentStartTime": { "type": "timestamp" }, @@ -1183,6 +1292,12 @@ "traits": { "smithy.api#documentation": "

The tags for the experiment template.

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

The configuration for experiment logging.

" + } } }, "traits": { @@ -1320,6 +1435,35 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#ExperimentTemplateCloudWatchLogsLogConfiguration": { + "type": "structure", + "members": { + "logGroupArn": { + "target": "com.amazonaws.fis#CloudWatchLogGroupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log group.

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

Describes the configuration for experiment logging to Amazon CloudWatch Logs.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateCloudWatchLogsLogConfigurationInput": { + "type": "structure", + "members": { + "logGroupArn": { + "target": "com.amazonaws.fis#CloudWatchLogGroupArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log group.

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

Specifies the configuration for experiment logging to Amazon CloudWatch Logs.

" + } + }, "com.amazonaws.fis#ExperimentTemplateDescription": { "type": "string", "traits": { @@ -1340,6 +1484,73 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#ExperimentTemplateLogConfiguration": { + "type": "structure", + "members": { + "cloudWatchLogsConfiguration": { + "target": "com.amazonaws.fis#ExperimentTemplateCloudWatchLogsLogConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for experiment logging to Amazon CloudWatch Logs.

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

The configuration for experiment logging to Amazon S3.

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

The schema version.

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

Describes the configuration for experiment logging.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateS3LogConfiguration": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.fis#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the destination bucket.

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

The bucket prefix.

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

Describes the configuration for experiment logging to Amazon S3.

" + } + }, + "com.amazonaws.fis#ExperimentTemplateS3LogConfigurationInput": { + "type": "structure", + "members": { + "bucketName": { + "target": "com.amazonaws.fis#S3BucketName", + "traits": { + "smithy.api#documentation": "

The name of the destination bucket.

", + "smithy.api#required": {} + } + }, + "prefix": { + "target": "com.amazonaws.fis#S3ObjectKey", + "traits": { + "smithy.api#documentation": "

The bucket prefix.

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

Specifies the configuration for experiment logging to Amazon S3.

" + } + }, "com.amazonaws.fis#ExperimentTemplateStopCondition": { "type": "structure", "members": { @@ -2193,6 +2404,12 @@ } } }, + "com.amazonaws.fis#LogSchemaVersion": { + "type": "integer", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.fis#NextToken": { "type": "string", "traits": { @@ -2252,6 +2469,26 @@ "smithy.api#pattern": "^[\\S]+$" } }, + "com.amazonaws.fis#S3BucketName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 + }, + "smithy.api#pattern": "^[\\S]+$" + } + }, + "com.amazonaws.fis#S3ObjectKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\s\\S]+$" + } + }, "com.amazonaws.fis#ServiceQuotaExceededException": { "type": "structure", "members": { @@ -2729,6 +2966,32 @@ "target": "com.amazonaws.fis#UpdateExperimentTemplateActionInputItem" } }, + "com.amazonaws.fis#UpdateExperimentTemplateLogConfigurationInput": { + "type": "structure", + "members": { + "cloudWatchLogsConfiguration": { + "target": "com.amazonaws.fis#ExperimentTemplateCloudWatchLogsLogConfigurationInput", + "traits": { + "smithy.api#documentation": "

The configuration for experiment logging to Amazon CloudWatch Logs.

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

The configuration for experiment logging to Amazon S3.

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

The schema version.

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

Specifies the configuration for experiment logging.

" + } + }, "com.amazonaws.fis#UpdateExperimentTemplateRequest": { "type": "structure", "members": { @@ -2769,6 +3032,12 @@ "traits": { "smithy.api#documentation": "

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

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

The configuration for experiment logging.

" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json index e720d004d0c..27f3bd7a5a6 100644 --- a/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json +++ b/codegen/sdk-codegen/aws-models/fsx.2018-03-01.json @@ -1208,7 +1208,7 @@ "FileSystemPath": { "target": "com.amazonaws.fsx#Namespace", "traits": { - "smithy.api#documentation": "

A path on the file system that points to a high-level directory (such\n as /ns1/) or subdirectory (such as /ns1/subdir/)\n that will be mapped 1-1 with DataRepositoryPath.\n The leading forward slash in the name is required. Two data repository\n associations cannot have overlapping file system paths. For example, if\n a data repository is associated with file system path /ns1/,\n then you cannot link another data repository with file system\n path /ns1/ns2.

\n

This path specifies where in your file system files will be exported\n from or imported to. This file system directory can be linked to only one\n Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

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

A path on the file system that points to a high-level directory (such\n as /ns1/) or subdirectory (such as /ns1/subdir/)\n that will be mapped 1-1 with DataRepositoryPath.\n The leading forward slash in the name is required. Two data repository\n associations cannot have overlapping file system paths. For example, if\n a data repository is associated with file system path /ns1/,\n then you cannot link another data repository with file system\n path /ns1/ns2.

\n

This path specifies where in your file system files will be exported\n from or imported to. This file system directory can be linked to only one\n Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

\n \n

If you specify only a forward slash (/) as the file system\n path, you can link only 1 data repository to the file system. You can only specify\n \"/\" as the file system path for the first data repository associated with a file system.

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

Creates a new Amazon FSx for Lustre, Amazon FSx for Windows File\n Server, or Amazon FSx for OpenZFS file system from an existing Amazon FSx backup.

\n \n

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

\n \n \n\n

Parameters like the Active Directory, default share name, automatic backup, and backup\n settings default to the parameters of the file system that was backed up, unless\n overridden. You can explicitly supply other settings.

\n\n

By using the idempotent operation, you can retry a\n CreateFileSystemFromBackup call without the risk of creating an extra\n file system. This approach can be useful when an initial call fails in a way that makes\n it unclear whether a file system was created. Examples are if a transport level timeout\n occurred, or your connection was reset. If you use the same client request token and the\n initial call created a file system, the client receives a success message as long as the\n parameters are the same.

\n \n

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

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

Creates a new Amazon FSx for Lustre, Amazon FSx for Windows File\n Server, or Amazon FSx for OpenZFS file system from an existing Amazon FSx backup.

\n \n

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

\n \n \n\n

Parameters like the Active Directory, default share name, automatic backup, and backup\n settings default to the parameters of the file system that was backed up, unless\n overridden. You can explicitly supply other settings.

\n\n

By using the idempotent operation, you can retry a\n CreateFileSystemFromBackup call without the risk of creating an extra\n file system. This approach can be useful when an initial call fails in a way that makes\n it unclear whether a file system was created. Examples are if a transport level timeout\n occurred, or your connection was reset. If you use the same client request token and the\n initial call created a file system, the client receives a success message as long as the\n parameters are the same.

\n \n

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

\n
" } }, "com.amazonaws.fsx#CreateFileSystemFromBackupRequest": { @@ -1551,7 +1551,7 @@ "AutoImportPolicy": { "target": "com.amazonaws.fsx#AutoImportPolicyType", "traits": { - "smithy.api#documentation": "

(Optional) Available with Scratch and Persistent_1 deployment types. When you \n create your file system, your existing S3 objects appear as file and directory listings. \n Use this property to choose how Amazon FSx keeps your file and directory listings up to date \n as you add or modify objects in your linked S3 bucket. AutoImportPolicy can\n have the following values:

\n \n

For more information, see \n Automatically import updates from your S3 bucket.

\n \n

This parameter is not supported for file systems with the Persistent_2 deployment type.\n Instead, use CreateDataRepositoryAssociation\" to create\n a data repository association to link your Lustre file system to a data repository.

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

(Optional) Available with Scratch and Persistent_1 deployment types. When you \n create your file system, your existing S3 objects appear as file and directory listings. \n Use this property to choose how Amazon FSx keeps your file and directory listings up to date \n as you add or modify objects in your linked S3 bucket. AutoImportPolicy can\n have the following values:

\n \n

For more information, see \n Automatically import updates from your S3 bucket.

\n \n

This parameter is not supported for file systems with the Persistent_2 deployment type.\n Instead, use CreateDataRepositoryAssociation to create\n a data repository association to link your Lustre file system to a data repository.

\n
" } }, "PerUnitStorageThroughput": { @@ -1614,7 +1614,7 @@ "EndpointIpAddressRange": { "target": "com.amazonaws.fsx#IpAddressRange", "traits": { - "smithy.api#documentation": "

Specifies the IP address range in which the endpoints to access your file system\n will be created. By default, Amazon FSx selects an unused IP address range for you\n from the 198.19.* range.

" + "smithy.api#documentation": "

Specifies the IP address range in which the endpoints to access your file system\n will be created. By default, Amazon FSx selects an unused IP address range for you\n from the 198.19.* range.

\n \n

The Endpoint IP address range you select for your file system\n must exist outside the VPC's CIDR range and must be at least /30 or larger.

\n
" } }, "FsxAdminPassword": { @@ -1680,7 +1680,7 @@ "DeploymentType": { "target": "com.amazonaws.fsx#OpenZFSDeploymentType", "traits": { - "smithy.api#documentation": "

Specifies the file system deployment type. Amazon FSx for OpenZFS supports\n SINGLE_AZ_1. SINGLE_AZ_1 is a file system configured for a\n single Availability Zone (AZ) of redundancy.

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

Specifies the file system deployment type. Amazon FSx for OpenZFS supports\n SINGLE_AZ_1. SINGLE_AZ_1 deployment type is configured for redundancy\n within a single Availability Zone.

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

The OpenZFS configuration properties for the file system that you are creating.

" + "smithy.api#documentation": "

The Amazon FSx for OpenZFS configuration properties for the file system that you are creating.

" } }, "com.amazonaws.fsx#CreateFileSystemRequest": { @@ -1947,32 +1947,38 @@ "ParentVolumeId": { "target": "com.amazonaws.fsx#VolumeId", "traits": { - "smithy.api#documentation": "

The ID of the volume to use as the parent volume.

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

The ID of the volume to use as the parent volume of the volume that you are creating.

", "smithy.api#required": {} } }, "StorageCapacityReservationGiB": { - "target": "com.amazonaws.fsx#IntegerNoMax", + "target": "com.amazonaws.fsx#IntegerNoMaxFromNegativeOne", "traits": { - "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to reserve from the parent volume. You can't\n reserve more storage than the parent volume has reserved.

" + "smithy.api#documentation": "

Specifies the amount of storage in gibibytes (GiB) to reserve from the parent volume. Setting\n StorageCapacityReservationGiB guarantees that the specified amount of storage space\n on the parent volume will always be available for the volume. \n You can't reserve more storage than the parent volume has. To not specify a storage capacity \n reservation, set this to 0 or -1. For more information, see \n Volume properties \n in the Amazon FSx for OpenZFS User Guide.

" } }, "StorageCapacityQuotaGiB": { - "target": "com.amazonaws.fsx#IntegerNoMax", + "target": "com.amazonaws.fsx#IntegerNoMaxFromNegativeOne", + "traits": { + "smithy.api#documentation": "

Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify \n a quota that is larger than the storage on the parent volume. A volume quota limits \n the amount of storage that the volume can consume to the configured amount, but does not \n guarantee the space will be available on the parent volume. To guarantee quota space, you must also set \n StorageCapacityReservationGiB. To not specify a storage capacity quota, set this to -1.\n

\n

For more information, see \n Volume properties \n in the Amazon FSx for OpenZFS User Guide.

" + } + }, + "RecordSizeKiB": { + "target": "com.amazonaws.fsx#IntegerRecordSizeKiB", "traits": { - "smithy.api#documentation": "

The maximum amount of storage in gibibytes (GiB) that the volume can use from its\n parent. You can specify a quota larger than the storage on the parent volume.

" + "smithy.api#documentation": "

Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes (KiB). Valid values are 4, 8,\n 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB.\n We recommend using the default setting for the majority of use cases. \n Generally, workloads that write in fixed small or large record sizes \n may benefit from setting a custom record size, like database workloads \n (small record size) or media streaming workloads (large record size). \n For additional guidance on when\n to set a custom record size, see \n \n ZFS Record size in the Amazon FSx for OpenZFS User Guide.

" } }, "DataCompressionType": { "target": "com.amazonaws.fsx#OpenZFSDataCompressionType", "traits": { - "smithy.api#documentation": "

Specifies the method used to compress the data on the volume. Unless the compression\n type is specified, volumes inherit the DataCompressionType value of their\n parent volume.

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

Specifies the method used to compress the data on the volume. The compression\n type is NONE by default.

\n \n

For more information about volume compression types and the performance of your Amazon FSx for OpenZFS file system,\n see \n Tips for maximizing performance File system and volume settings in the Amazon FSx for OpenZFS User Guide.

" } }, "CopyTagsToSnapshots": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true, and you specify one or more tags, only the specified tags\n are copied to snapshots. If you specify one or more tags when creating the snapshot, no\n tags are copied from the volume, regardless of this value.

" + "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true, and you specify one or more tags, only the specified tags\n are copied to snapshots. If you specify one or more tags when creating the snapshot, no\n tags are copied from the volume, regardless of this value.

" } }, "OriginSnapshot": { @@ -1984,24 +1990,24 @@ "ReadOnly": { "target": "com.amazonaws.fsx#ReadOnly", "traits": { - "smithy.api#documentation": "

A Boolean value indicating whether the volume is read-only.

" + "smithy.api#documentation": "

A Boolean value indicating whether the volume is read-only.

" } }, "NfsExports": { "target": "com.amazonaws.fsx#OpenZFSNfsExports", "traits": { - "smithy.api#documentation": "

The configuration object for mounting a Network File System (NFS) file system.

" + "smithy.api#documentation": "

The configuration object for mounting a Network File System (NFS) file system.

" } }, "UserAndGroupQuotas": { "target": "com.amazonaws.fsx#OpenZFSUserAndGroupQuotas", "traits": { - "smithy.api#documentation": "

An object specifying how much storage users or groups can use on the volume.

" + "smithy.api#documentation": "

An object specifying how much storage users or groups can use on the volume.

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

Specifies the configuration of the OpenZFS volume that you are creating.

" + "smithy.api#documentation": "

Specifies the configuration of the Amazon FSx for OpenZFS volume that you are creating.

" } }, "com.amazonaws.fsx#CreateSnapshot": { @@ -2027,7 +2033,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a snapshot of an existing Amazon FSx for OpenZFS file system. With\n snapshots, you can easily undo file changes and compare file versions by restoring the\n volume to a previous version.

\n

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

\n \n

By using the idempotent operation, you can retry a CreateSnapshot\n operation without the risk of creating an extra snapshot. This approach can be useful\n when an initial call fails in a way that makes it unclear whether a snapshot was\n created. If you use the same client request token and the initial call created a\n snapshot, the operation returns a successful result because all the parameters are the\n same.

\n

The CreateSnapshot operation returns while the snapshot's lifecycle state\n is still CREATING. You can check the snapshot creation status by calling\n the DescribeSnapshots operation, which returns the snapshot state along with\n other information.

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

Creates a snapshot of an existing Amazon FSx for OpenZFS volume. With\n snapshots, you can easily undo file changes and compare file versions by restoring the\n volume to a previous version.

\n

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

\n \n

By using the idempotent operation, you can retry a CreateSnapshot\n operation without the risk of creating an extra snapshot. This approach can be useful\n when an initial call fails in a way that makes it unclear whether a snapshot was\n created. If you use the same client request token and the initial call created a\n snapshot, the operation returns a successful result because all the parameters are the\n same.

\n

The CreateSnapshot operation returns while the snapshot's lifecycle state\n is still CREATING. You can check the snapshot creation status by calling\n the DescribeSnapshots operation, which returns the snapshot state along with\n other information.

", "smithy.api#idempotent": {} } }, @@ -2214,7 +2220,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS storage\n volume.

" + "smithy.api#documentation": "

Creates an FSx for ONTAP or Amazon FSx for OpenZFS storage volume.

" } }, "com.amazonaws.fsx#CreateVolumeFromBackup": { @@ -2420,7 +2426,7 @@ "FileSystemPath": { "target": "com.amazonaws.fsx#Namespace", "traits": { - "smithy.api#documentation": "

A path on the file system that points to a high-level directory (such\n as /ns1/) or subdirectory (such as /ns1/subdir/)\n that will be mapped 1-1 with DataRepositoryPath.\n The leading forward slash in the name is required. Two data repository\n associations cannot have overlapping file system paths. For example, if\n a data repository is associated with file system path /ns1/,\n then you cannot link another data repository with file system\n path /ns1/ns2.

\n

This path specifies where in your file system files will be exported\n from or imported to. This file system directory can be linked to only one\n Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

" + "smithy.api#documentation": "

A path on the file system that points to a high-level directory (such\n as /ns1/) or subdirectory (such as /ns1/subdir/)\n that will be mapped 1-1 with DataRepositoryPath.\n The leading forward slash in the name is required. Two data repository\n associations cannot have overlapping file system paths. For example, if\n a data repository is associated with file system path /ns1/,\n then you cannot link another data repository with file system\n path /ns1/ns2.

\n

This path specifies where in your file system files will be exported\n from or imported to. This file system directory can be linked to only one\n Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

\n \n

If you specify only a forward slash (/) as the file system\n path, you can link only 1 data repository to the file system. You can only specify\n \"/\" as the file system path for the first data repository associated with a file system.

\n
" } }, "DataRepositoryPath": { @@ -3137,15 +3143,47 @@ "SkipFinalBackup": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

By default, Amazon FSx for OpenZFS takes a final backup on your behalf when\n the DeleteFileSystem operation is invoked. Doing this helps protect you\n from data loss, and we highly recommend taking the final backup. If you want to skip\n this backup, use this\n value\n to do so.

" + "smithy.api#documentation": "

By default, Amazon FSx for OpenZFS takes a final backup on your behalf when\n the DeleteFileSystem operation is invoked. Doing this helps protect you\n from data loss, and we highly recommend taking the final backup. If you want to skip\n taking a final backup, set this value to true.

" } }, "FinalBackupTags": { - "target": "com.amazonaws.fsx#Tags" + "target": "com.amazonaws.fsx#Tags", + "traits": { + "smithy.api#documentation": "

A list of tags to apply to the file system's final backup.

" + } + }, + "Options": { + "target": "com.amazonaws.fsx#DeleteFileSystemOpenZFSOptions", + "traits": { + "smithy.api#documentation": "

To delete a file system if there are child volumes present below the root volume,\n use the string DELETE_CHILD_VOLUMES_AND_SNAPSHOTS. If your file system\n has child volumes and you don't use this option, the delete request will fail.

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

The configuration object for the OpenZFS file system used in the\n DeleteFileSystem operation.

" + "smithy.api#documentation": "

The configuration object for the Amazon FSx for OpenZFS file system used in the\n DeleteFileSystem operation.

" + } + }, + "com.amazonaws.fsx#DeleteFileSystemOpenZFSOption": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DELETE_CHILD_VOLUMES_AND_SNAPSHOTS", + "name": "DELETE_CHILD_VOLUMES_AND_SNAPSHOTS" + } + ] + } + }, + "com.amazonaws.fsx#DeleteFileSystemOpenZFSOptions": { + "type": "list", + "member": { + "target": "com.amazonaws.fsx#DeleteFileSystemOpenZFSOption" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1 + } } }, "com.amazonaws.fsx#DeleteFileSystemOpenZFSResponse": { @@ -3311,7 +3349,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes the Amazon FSx snapshot. After deletion, the snapshot no longer\n exists, and its data is gone. Deleting a snapshot doesn't affect snapshots stored in a\n file system backup.

\n

The DeleteSnapshot operation returns instantly. The snapshot appears with\n the lifecycle status of DELETING until the deletion is complete.

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

Deletes an Amazon FSx for OpenZFS snapshot. After deletion, the snapshot no longer\n exists, and its data is gone. Deleting a snapshot doesn't affect snapshots stored in a\n file system backup.

\n

The DeleteSnapshot operation returns instantly. The snapshot appears with\n the lifecycle status of DELETING until the deletion is complete.

", "smithy.api#idempotent": {} } }, @@ -3936,7 +3974,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the description of specific Amazon FSx snapshots, if a\n SnapshotIds value is provided. Otherwise, this operation returns all\n snapshots owned by your Amazon Web Services account in the Amazon Web Services Region of\n the endpoint that you're calling.

\n

When retrieving all snapshots, you can optionally specify the MaxResults\n parameter to limit the number of snapshots in a response. If more backups remain,\n Amazon FSx returns a NextToken value in the response. In this\n case, send a later request with the NextToken request parameter set to the\n value of NextToken from the last response.

\n

Use this operation in an iterative process to retrieve a list of your snapshots.\n DescribeSnapshots is called first without a NextToken\n value. Then the operation continues to be called with the NextToken\n parameter set to the value of the last NextToken value until a response has\n no NextToken value.

\n

When using this operation, keep the following in mind:

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

Returns the description of specific Amazon FSx for OpenZFS snapshots, if a\n SnapshotIds value is provided. Otherwise, this operation returns all\n snapshots owned by your Amazon Web Services account in the Amazon Web Services Region of\n the endpoint that you're calling.

\n

When retrieving all snapshots, you can optionally specify the MaxResults\n parameter to limit the number of snapshots in a response. If more backups remain,\n Amazon FSx returns a NextToken value in the response. In this\n case, send a later request with the NextToken request parameter set to the\n value of NextToken from the last response.

\n

Use this operation in an iterative process to retrieve a list of your snapshots.\n DescribeSnapshots is called first without a NextToken\n value. Then the operation continues to be called with the NextToken\n parameter set to the value of the last NextToken value until a response has\n no NextToken value.

\n

When using this operation, keep the following in mind:

\n ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -4813,6 +4851,26 @@ } } }, + "com.amazonaws.fsx#IntegerNoMaxFromNegativeOne": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": -1, + "max": 2147483647 + } + } + }, + "com.amazonaws.fsx#IntegerRecordSizeKiB": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 4, + "max": 1024 + } + } + }, "com.amazonaws.fsx#InternalServerError": { "type": "structure", "members": { @@ -5324,7 +5382,7 @@ "min": 1, "max": 4096 }, - "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4096}$" + "smithy.api#pattern": "^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,4096}$" } }, "com.amazonaws.fsx#NetBiosAlias": { @@ -5432,7 +5490,7 @@ "EndpointIpAddressRange": { "target": "com.amazonaws.fsx#IpAddressRange", "traits": { - "smithy.api#documentation": "

The IP address range in which the endpoints to access your file system\n are created.

" + "smithy.api#documentation": "

The IP address range in which the endpoints to access your file system\n are created.

\n \n

The Endpoint IP address range you select for your file system\n must exist outside the VPC's CIDR range and must be at least /30 or larger.\n If you do not specify this optional parameter, Amazon FSx will automatically\n select a CIDR block for you.

\n
" } }, "Endpoints": { @@ -5560,14 +5618,14 @@ "Clients": { "target": "com.amazonaws.fsx#OpenZFSClients", "traits": { - "smithy.api#documentation": "

A value that specifies who can mount the file system. You can provide a wildcard\n character (*), an IP address (0.0.0.0), or a CIDR address\n (192.0.2.0/24. By default, Amazon FSx uses the wildcard\n character when specifying the client.

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

A value that specifies who can mount the file system. You can provide a wildcard\n character (*), an IP address (0.0.0.0), or a CIDR address\n (192.0.2.0/24). By default, Amazon FSx uses the wildcard\n character when specifying the client.

", "smithy.api#required": {} } }, "Options": { "target": "com.amazonaws.fsx#OpenZFSNfsExportOptions", "traits": { - "smithy.api#documentation": "

The options to use when mounting the file system. For a list of options that you can\n use with Network File System (NFS), see the exports(5) - Linux man page. When\n choosing your options, consider the following:

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

The options to use when mounting the file system. For a list of options that you can\n use with Network File System (NFS), see the exports(5) - Linux man page. When\n choosing your options, consider the following:

\n ", "smithy.api#required": {} } } @@ -5616,10 +5674,16 @@ "com.amazonaws.fsx#OpenZFSCreateRootVolumeConfiguration": { "type": "structure", "members": { + "RecordSizeKiB": { + "target": "com.amazonaws.fsx#IntegerRecordSizeKiB", + "traits": { + "smithy.api#documentation": "

Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are 4, 8,\n 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. Most workloads should use the \n default record size. Database workflows can benefit from a smaller record size, while streaming \n workflows can benefit from a larger record size. For additional guidance on setting a custom record \n size, see \n Tips for maximizing performance in the\n Amazon FSx for OpenZFS User Guide.

" + } + }, "DataCompressionType": { "target": "com.amazonaws.fsx#OpenZFSDataCompressionType", "traits": { - "smithy.api#documentation": "

Specifies the method used to compress the data on the volume. Unless the compression\n type is specified, volumes inherit the DataCompressionType value of their\n parent volume.

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

Specifies the method used to compress the data on the volume. The compression\n type is NONE by default.

\n " } }, "NfsExports": { @@ -5637,7 +5701,7 @@ "CopyTagsToSnapshots": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true and you specify one or more tags, only the specified tags are\n copied to snapshots. If you specify one or more tags when creating the snapshot, no tags\n are copied from the volume, regardless of this value.

" + "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots\n of the volume. This value defaults to false. If it's set to true,\n all tags for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true and you specify one or more tags, only the specified tags are\n copied to snapshots. If you specify one or more tags when creating the snapshot, no tags\n are copied from the volume, regardless of this value.

" } }, "ReadOnly": { @@ -5662,6 +5726,10 @@ { "value": "ZSTD", "name": "ZSTD" + }, + { + "value": "LZ4", + "name": "LZ4" } ] } @@ -5707,7 +5775,7 @@ "ThroughputCapacity": { "target": "com.amazonaws.fsx#MegabytesPerSecond", "traits": { - "smithy.api#documentation": "

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

" + "smithy.api#documentation": "

The throughput of an Amazon FSx file system, measured in megabytes per second\n (MBps). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.

" } }, "WeeklyMaintenanceStartTime": { @@ -5739,7 +5807,7 @@ } }, "traits": { - "smithy.api#documentation": "

The Network File System NFS) configurations for mounting an Amazon FSx for\n OpenZFS file system.

" + "smithy.api#documentation": "

The Network File System (NFS) configurations for mounting an Amazon FSx for\n OpenZFS file system.

" } }, "com.amazonaws.fsx#OpenZFSNfsExportOption": { @@ -5876,16 +5944,22 @@ "smithy.api#documentation": "

The maximum amount of storage in gibibtyes (GiB) that the volume can use from its\n parent. You can specify a quota larger than the storage on the parent volume.

" } }, + "RecordSizeKiB": { + "target": "com.amazonaws.fsx#IntegerRecordSizeKiB", + "traits": { + "smithy.api#documentation": "

The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are 4, 8,\n 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB.\n Most workloads should use the default record size. For guidance on when\n to set a custom record size, see the\n Amazon FSx for OpenZFS User Guide.

" + } + }, "DataCompressionType": { "target": "com.amazonaws.fsx#OpenZFSDataCompressionType", "traits": { - "smithy.api#documentation": "

The method used to compress the data on the volume. Unless a compression type is\n specified, volumes inherit the DataCompressionType value of their parent\n volume.

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

Specifies the method used to compress the data on the volume. The compression\n type is NONE by default.

\n " } }, "CopyTagsToSnapshots": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true and you specify one or more tags, only the specified tags are\n copied to snapshots. If you specify one or more tags when creating the snapshot, no tags\n are copied from the volume, regardless of this value.

" + "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true and you specify one or more tags, only the specified tags are\n copied to snapshots. If you specify one or more tags when creating the snapshot, no tags\n are copied from the volume, regardless of this value.

" } }, "OriginSnapshot": { @@ -5903,13 +5977,13 @@ "NfsExports": { "target": "com.amazonaws.fsx#OpenZFSNfsExports", "traits": { - "smithy.api#documentation": "

The configuration object for mounting a Network File System (NFS) file\n system.

" + "smithy.api#documentation": "

The configuration object for mounting a Network File System (NFS)\n file system.

" } }, "UserAndGroupQuotas": { "target": "com.amazonaws.fsx#OpenZFSUserAndGroupQuotas", "traits": { - "smithy.api#documentation": "

An object specifying how much storage users or groups can use on the volume.

" + "smithy.api#documentation": "

An object specifying how much storage users or groups can use on the volume.

" } } }, @@ -6509,6 +6583,9 @@ "smithy.api#documentation": "

The lifecycle status of the snapshot.

\n " } }, + "LifecycleTransitionReason": { + "target": "com.amazonaws.fsx#LifecycleTransitionReason" + }, "Tags": { "target": "com.amazonaws.fsx#Tags" }, @@ -6963,7 +7040,7 @@ } }, "traits": { - "smithy.api#documentation": "

No Amazon FSx for NetApp ONTAP SVMs were found based upon the supplied parameters.

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

No FSx for ONTAP SVMs were found based upon the supplied parameters.

", "smithy.api#error": "client" } }, @@ -7580,13 +7657,13 @@ "CopyTagsToBackups": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

A Boolean value indicating whether tags for the file system should be copied to\n backups. This value defaults to false. If it's set to true,\n all tags for the file system are copied to all automatic and user-initiated backups\n where the user doesn't specify tags. If this value is true and you specify\n one or more tags, only the specified tags are copied to backups. If you specify one or\n more tags when creating a user-initiated backup, no tags are copied from the file\n system, regardless of this value.

" + "smithy.api#documentation": "

A Boolean value indicating whether tags for the file system should be copied to\n backups. This value defaults to false. If it's set to true,\n all tags for the file system are copied to all automatic and user-initiated backups\n where the user doesn't specify tags. If this value is true and you specify\n one or more tags, only the specified tags are copied to backups. If you specify one or\n more tags when creating a user-initiated backup, no tags are copied from the file\n system, regardless of this value.

" } }, "CopyTagsToVolumes": { "target": "com.amazonaws.fsx#Flag", "traits": { - "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true and you specify one or more tags, only the specified tags are\n copied to snapshots. If you specify one or more tags when creating the snapshot, no tags\n are copied from the volume, regardless of this value.

" + "smithy.api#documentation": "

A Boolean value indicating whether tags for the volume should be copied to snapshots.\n This value defaults to false. If it's set to true, all tags\n for the volume are copied to snapshots where the user doesn't specify tags. If this\n value is true and you specify one or more tags, only the specified tags are\n copied to snapshots. If you specify one or more tags when creating the snapshot, no tags\n are copied from the volume, regardless of this value.

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

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

" + "smithy.api#documentation": "

The throughput of an Amazon FSx file system, measured in megabytes per second\n (MBps). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.

" } }, "WeeklyMaintenanceStartTime": { @@ -7755,21 +7832,27 @@ "type": "structure", "members": { "StorageCapacityReservationGiB": { - "target": "com.amazonaws.fsx#IntegerNoMax", + "target": "com.amazonaws.fsx#IntegerNoMaxFromNegativeOne", "traits": { - "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to reserve from the parent volume. You can't\n reserve more storage than the parent volume has reserved.

" + "smithy.api#documentation": "

The amount of storage in gibibytes (GiB) to reserve from the parent volume.\n You can't reserve more storage than the parent volume has reserved. You can specify\n a value of -1 to unset a volume's storage capacity reservation.

" } }, "StorageCapacityQuotaGiB": { - "target": "com.amazonaws.fsx#IntegerNoMax", + "target": "com.amazonaws.fsx#IntegerNoMaxFromNegativeOne", + "traits": { + "smithy.api#documentation": "

The maximum amount of storage in gibibytes (GiB) that the volume can use from its\n parent. You can specify a quota larger than the storage on the parent volume. You\n can specify a value of -1 to unset a volume's storage capacity quota.

" + } + }, + "RecordSizeKiB": { + "target": "com.amazonaws.fsx#IntegerRecordSizeKiB", "traits": { - "smithy.api#documentation": "

\n

The maximum amount of storage in gibibytes (GiB) that the volume can use from its\n parent. You can specify a quota larger than the storage on the parent volume.

" + "smithy.api#documentation": "

Specifies the record size of an OpenZFS volume, in kibibytes (KiB). Valid values are 4, 8,\n 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB.\n Most workloads should use the default record size. Database workflows can benefit from a smaller \n record size, while streaming workflows can benefit from a larger record size. For additional guidance on when\n to set a custom record size, see \n Tips for maximizing performance in the\n Amazon FSx for OpenZFS User Guide.

" } }, "DataCompressionType": { "target": "com.amazonaws.fsx#OpenZFSDataCompressionType", "traits": { - "smithy.api#documentation": "

\n

Specifies the method used to compress the data on the volume. Unless the compression\n type is specified, volumes inherit the DataCompressionType value of their\n parent volume.

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

Specifies the method used to compress the data on the volume. The compression\n type is NONE by default.

\n " } }, "NfsExports": { @@ -7792,7 +7875,7 @@ } }, "traits": { - "smithy.api#documentation": "

Used to specify changes to the OpenZFS configuration for the volume that you are\n updating.

" + "smithy.api#documentation": "

Used to specify changes to the OpenZFS configuration for the volume\n that you are updating.

" } }, "com.amazonaws.fsx#UpdateSnapshot": { @@ -7815,7 +7898,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the name of a snapshot.

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

Updates the name of an Amazon FSx for OpenZFS snapshot.

", "smithy.api#idempotent": {} } }, @@ -7831,7 +7914,7 @@ "Name": { "target": "com.amazonaws.fsx#SnapshotName", "traits": { - "smithy.api#documentation": "

The name of the snapshot to update.

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

The name of the snapshot to update.

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

No Amazon FSx for NetApp ONTAP volumes were found based upon the supplied parameters.

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

No Amazon FSx volumes were found based upon the supplied parameters.

", "smithy.api#error": "client" } }, diff --git a/codegen/sdk-codegen/aws-models/gamelift.2015-10-01.json b/codegen/sdk-codegen/aws-models/gamelift.2015-10-01.json index f9a27e38b33..51bf6b03724 100644 --- a/codegen/sdk-codegen/aws-models/gamelift.2015-10-01.json +++ b/codegen/sdk-codegen/aws-models/gamelift.2015-10-01.json @@ -2676,7 +2676,7 @@ } ], "traits": { - "smithy.api#documentation": "

The GameLift service limits and current utilization for an Amazon Web Services Region or location.\n Instance limits control the number of instances, per instance type, per location, that\n your Amazon Web Services account can use. Learn more at Amazon EC2 Instance Types. The information\n returned includes the maximum number of instances allowed and your account's current\n usage across all fleets. This information can affect your ability to scale your GameLift\n fleets. You can request a limit increase for your account by using the Service limits page in the GameLift console.

\n

Instance limits differ based on whether the instances are deployed in a fleet's home\n Region or in a remote location. For remote locations, limits also differ based on the\n combination of home Region and remote location. All requests must specify an Amazon Web Services Region\n (either explicitly or as your default settings). To get the limit for a remote location,\n you must also specify the location. For example, the following requests all return\n different results:

\n \n

This operation can be used in the following ways:

\n \n

If successful, an EC2InstanceLimits object is returned with limits and\n usage data for each requested instance type.

\n

\n Learn more\n

\n

\n Setting up GameLift fleets\n

\n \n

\n Related actions\n

\n

\n CreateFleet | \n UpdateFleetCapacity | \n PutScalingPolicy | \n DescribeEC2InstanceLimits | \n DescribeFleetAttributes | \n DescribeFleetLocationAttributes | \n UpdateFleetAttributes | \n StopFleetActions | \n DeleteFleet | \n All APIs by task\n

" + "smithy.api#documentation": "

Retrieves the instance limits and current utilization for an Amazon Web Services Region or location.\n Instance limits control the number of instances, per instance type, per location, that\n your Amazon Web Services account can use. Learn more at Amazon EC2 Instance Types. The information\n returned includes the maximum number of instances allowed and your account's current\n usage across all fleets. This information can affect your ability to scale your GameLift\n fleets. You can request a limit increase for your account by using the Service limits page in the GameLift console.

\n

Instance limits differ based on whether the instances are deployed in a fleet's home\n Region or in a remote location. For remote locations, limits also differ based on the\n combination of home Region and remote location. All requests must specify an Amazon Web Services Region\n (either explicitly or as your default settings). To get the limit for a remote location,\n you must also specify the location. For example, the following requests all return\n different results:

\n \n

This operation can be used in the following ways:

\n \n

If successful, an EC2InstanceLimits object is returned with limits and\n usage data for each requested instance type.

\n

\n Learn more\n

\n

\n Setting up GameLift fleets\n

\n \n

\n Related actions\n

\n

\n CreateFleet | \n UpdateFleetCapacity | \n PutScalingPolicy | \n DescribeEC2InstanceLimits | \n DescribeFleetAttributes | \n DescribeFleetLocationAttributes | \n UpdateFleetAttributes | \n StopFleetActions | \n DeleteFleet | \n All APIs by task\n

" } }, "com.amazonaws.gamelift#DescribeEC2InstanceLimitsInput": { @@ -3990,7 +3990,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves one or more matchmaking tickets. Use this operation to retrieve ticket\n information, including--after a successful match is made--connection information for the\n resulting new game session.

\n

To request matchmaking tickets, provide a list of up to 10 ticket IDs. If the\n request is successful, a ticket object is returned for each requested ID that currently\n exists.

\n

This operation is not designed to be continually called to track matchmaking ticket\n status. This practice can cause you to exceed your API limit, which results in errors.\n Instead, as a best practice, set up an Amazon Simple Notification Service to receive notifications, and provide\n the topic ARN in the matchmaking configuration. Continuously poling ticket status with\n DescribeMatchmaking should only be used for games in development\n with low matchmaking usage.

\n

\n

\n Learn more\n

\n

\n \n Add FlexMatch to a game client\n

\n

\n \n Set Up FlexMatch event notification\n

\n

\n Related actions\n

\n

\n StartMatchmaking | \n DescribeMatchmaking | \n StopMatchmaking | \n AcceptMatch | \n StartMatchBackfill | \n All APIs by task\n

" + "smithy.api#documentation": "

Retrieves one or more matchmaking tickets. Use this operation to retrieve ticket\n information, including--after a successful match is made--connection information for the\n resulting new game session.

\n

To request matchmaking tickets, provide a list of up to 10 ticket IDs. If the\n request is successful, a ticket object is returned for each requested ID that currently\n exists.

\n

This operation is not designed to be continually called to track matchmaking ticket\n status. This practice can cause you to exceed your API limit, which results in errors.\n Instead, as a best practice, set up an Amazon Simple Notification Service to receive notifications, and provide\n the topic ARN in the matchmaking configuration. Continuously polling ticket status with\n DescribeMatchmaking should only be used for games in development\n with low matchmaking usage.

\n

\n

\n Learn more\n

\n

\n \n Add FlexMatch to a game client\n

\n

\n \n Set Up FlexMatch event notification\n

\n

\n Related actions\n

\n

\n StartMatchmaking | \n DescribeMatchmaking | \n StopMatchmaking | \n AcceptMatch | \n StartMatchBackfill | \n All APIs by task\n

" } }, "com.amazonaws.gamelift#DescribeMatchmakingConfigurations": { diff --git a/codegen/sdk-codegen/aws-models/greengrassv2.2020-11-30.json b/codegen/sdk-codegen/aws-models/greengrassv2.2020-11-30.json index 4305dcc48dc..be660326920 100644 --- a/codegen/sdk-codegen/aws-models/greengrassv2.2020-11-30.json +++ b/codegen/sdk-codegen/aws-models/greengrassv2.2020-11-30.json @@ -1101,7 +1101,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a continuous deployment for a target, which is a Greengrass core device or group of core\n devices. When you add a new core device to a group of core devices that has a deployment, IoT Greengrass\n deploys that group's deployment to the new device.

\n

You can define one deployment for each target. When you create a new deployment for a\n target that has an existing deployment, you replace the previous deployment. IoT Greengrass applies the\n new deployment to the target devices.

\n

Every deployment has a revision number that indicates how many deployment revisions you\n define for a target. Use this operation to create a new revision of an existing deployment.\n This operation returns the revision number of the new deployment when you create it.

\n

For more information, see the Create deployments in the\n IoT Greengrass V2 Developer Guide.

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

Creates a continuous deployment for a target, which is a Greengrass core device or group of core\n devices. When you add a new core device to a group of core devices that has a deployment, IoT Greengrass\n deploys that group's deployment to the new device.

\n

You can define one deployment for each target. When you create a new deployment for a\n target that has an existing deployment, you replace the previous deployment. IoT Greengrass applies the\n new deployment to the target devices.

\n

Every deployment has a revision number that indicates how many deployment revisions you\n define for a target. Use this operation to create a new revision of an existing\n deployment.

\n

For more information, see the Create deployments in the\n IoT Greengrass V2 Developer Guide.

", "smithy.api#http": { "method": "POST", "uri": "/greengrass/v2/deployments", @@ -2023,7 +2023,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves connectivity information for a Greengrass core device.

\n

Connectivity information includes endpoints and ports where client devices\n can connect to an MQTT broker on the core device. When a client device\n calls the Greengrass discovery API,\n IoT Greengrass returns connectivity information for all of the core devices where the client device can\n connect. For more information, see Connect client devices to\n core devices in the IoT Greengrass Version 2 Developer Guide.

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

Retrieves connectivity information for a Greengrass core device.

\n

Connectivity information includes endpoints and ports where client devices\n can connect to an MQTT broker on the core device. When a client device\n calls the IoT Greengrass discovery API,\n IoT Greengrass returns connectivity information for all of the core devices where the client device can\n connect. For more information, see Connect client devices to\n core devices in the IoT Greengrass Version 2 Developer Guide.

", "smithy.api#http": { "method": "GET", "uri": "/greengrass/things/{thingName}/connectivityInfo", @@ -4347,7 +4347,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates connectivity information for a Greengrass core device.

\n

Connectivity information includes endpoints and ports where client devices\n can connect to an MQTT broker on the core device. When a client device\n calls the Greengrass discovery API,\n IoT Greengrass returns connectivity information for all of the core devices where the client device can\n connect. For more information, see Connect client devices to\n core devices in the IoT Greengrass Version 2 Developer Guide.

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

Updates connectivity information for a Greengrass core device.

\n

Connectivity information includes endpoints and ports where client devices\n can connect to an MQTT broker on the core device. When a client device\n calls the IoT Greengrass discovery API,\n IoT Greengrass returns connectivity information for all of the core devices where the client device can\n connect. For more information, see Connect client devices to\n core devices in the IoT Greengrass Version 2 Developer Guide.

", "smithy.api#http": { "method": "PUT", "uri": "/greengrass/things/{thingName}/connectivityInfo", diff --git a/codegen/sdk-codegen/aws-models/kafkaconnect.2021-09-14.json b/codegen/sdk-codegen/aws-models/kafkaconnect.2021-09-14.json index 6804798fb64..c773589d2d0 100644 --- a/codegen/sdk-codegen/aws-models/kafkaconnect.2021-09-14.json +++ b/codegen/sdk-codegen/aws-models/kafkaconnect.2021-09-14.json @@ -14,7 +14,7 @@ "vpc": { "target": "com.amazonaws.kafkaconnect#Vpc", "traits": { - "smithy.api#documentation": "

Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.

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

Details of an Amazon VPC which has network connectivity to the Apache Kafka\n cluster.

", "smithy.api#required": {} } } @@ -35,7 +35,7 @@ "vpc": { "target": "com.amazonaws.kafkaconnect#VpcDescription", "traits": { - "smithy.api#documentation": "

Details of an Amazon VPC which has network connectivity to the Apache Kafka cluster.

" + "smithy.api#documentation": "

Details of an Amazon VPC which has network connectivity to the Apache Kafka\n cluster.

" } } }, @@ -56,7 +56,7 @@ "mcuCount": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max8", "traits": { - "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid values are 1,2,4,8.

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

The number of microcontroller units (MCUs) allocated to each connector worker. The valid\n values are 1,2,4,8.

", "smithy.api#required": {} } }, @@ -96,7 +96,7 @@ "mcuCount": { "target": "com.amazonaws.kafkaconnect#__integer", "traits": { - "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid values are 1,2,4,8.

" + "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid\n values are 1,2,4,8.

" } }, "minWorkerCount": { @@ -135,7 +135,7 @@ "mcuCount": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max8", "traits": { - "smithy.api#documentation": "

The target number of microcontroller units (MCUs) allocated to each connector worker. The valid values are 1,2,4,8.

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

The target number of microcontroller units (MCUs) allocated to each connector worker.\n The valid values are 1,2,4,8.

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

HTTP Status Code 400: Bad request due to incorrect input. Correct your request and then retry it.

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

HTTP Status Code 400: Bad request due to incorrect input. Correct your request and then\n retry it.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -195,7 +195,7 @@ } }, "traits": { - "smithy.api#documentation": "

Information about the capacity of the connector, whether it is auto scaled or provisioned.

" + "smithy.api#documentation": "

Information about the capacity of the connector, whether it is auto scaled or\n provisioned.

" } }, "com.amazonaws.kafkaconnect#CapacityDescription": { @@ -235,7 +235,7 @@ } }, "traits": { - "smithy.api#documentation": "

The target capacity for the connector. The capacity can be auto scaled or provisioned.

" + "smithy.api#documentation": "

The target capacity for the connector. The capacity can be auto scaled or\n provisioned.

" } }, "com.amazonaws.kafkaconnect#CloudWatchLogsLogDelivery": { @@ -287,7 +287,7 @@ } }, "traits": { - "smithy.api#documentation": "

HTTP Status Code 409: Conflict. A resource with this name already exists. Retry your request with another name.

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

HTTP Status Code 409: Conflict. A resource with this name already exists. Retry your\n request with another name.

", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -373,7 +373,7 @@ "kafkaClusterClientAuthentication": { "target": "com.amazonaws.kafkaconnect#KafkaClusterClientAuthenticationDescription", "traits": { - "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. The value is NONE when no client authentication is used.

" + "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. The value\n is NONE when no client authentication is used.

" } }, "kafkaClusterEncryptionInTransit": { @@ -385,7 +385,7 @@ "kafkaConnectVersion": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The version of Kafka Connect. It has to be compatible with both the Apache Kafka cluster's version and the plugins.

" + "smithy.api#documentation": "

The version of Kafka Connect. It has to be compatible with both the Apache Kafka\n cluster's version and the plugins.

" } }, "logDelivery": { @@ -403,7 +403,7 @@ "serviceExecutionRoleArn": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used by the connector to access Amazon Web Services resources.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used by the connector to access Amazon\n Web Services resources.

" } }, "workerConfiguration": { @@ -466,7 +466,7 @@ "capacity": { "target": "com.amazonaws.kafkaconnect#Capacity", "traits": { - "smithy.api#documentation": "

Information about the capacity allocated to the connector. Exactly one of the two properties must be specified.

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

Information about the capacity allocated to the connector. Exactly one of the two\n properties must be specified.

", "smithy.api#required": {} } }, @@ -474,7 +474,8 @@ "target": "com.amazonaws.kafkaconnect#__mapOf__string", "traits": { "smithy.api#documentation": "

A map of keys to values that represent the configuration for the connector.

", - "smithy.api#required": {} + "smithy.api#required": {}, + "smithy.api#sensitive": {} } }, "connectorDescription": { @@ -514,7 +515,7 @@ "kafkaConnectVersion": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The version of Kafka Connect. It has to be compatible with both the Apache Kafka cluster's version and the plugins.

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

The version of Kafka Connect. It has to be compatible with both the Apache Kafka\n cluster's version and the plugins.

", "smithy.api#required": {} } }, @@ -534,7 +535,7 @@ "serviceExecutionRoleArn": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used by the connector to access the Amazon Web Services resources that it needs. The types of resources depends on the logic of the connector. For example, a connector that has Amazon S3 as a destination must have permissions that allow it to write to the S3 destination bucket.

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

The Amazon Resource Name (ARN) of the IAM role used by the connector to access the\n Amazon Web Services resources that it needs. The types of resources depends on the logic of\n the connector. For example, a connector that has Amazon S3 as a destination must have\n permissions that allow it to write to the S3 destination bucket.

", "smithy.api#required": {} } }, @@ -736,7 +737,8 @@ "target": "com.amazonaws.kafkaconnect#__string", "traits": { "smithy.api#documentation": "

Base64 encoded contents of connect-distributed.properties file.

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

A plugin is an AWS resource that contains the code that defines a connector's logic.

" + "smithy.api#documentation": "

A plugin is an AWS resource that contains the code that defines a connector's\n logic.

" } }, "com.amazonaws.kafkaconnect#CustomPluginContentType": { @@ -833,7 +835,7 @@ "fileMd5": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file.

" + "smithy.api#documentation": "

The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the\n file.

" } }, "fileSize": { @@ -853,7 +855,7 @@ "s3Location": { "target": "com.amazonaws.kafkaconnect#S3Location", "traits": { - "smithy.api#documentation": "

The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3.

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

The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin\n file stored in Amazon S3.

", "smithy.api#required": {} } } @@ -868,7 +870,7 @@ "s3Location": { "target": "com.amazonaws.kafkaconnect#S3LocationDescription", "traits": { - "smithy.api#documentation": "

The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3.

" + "smithy.api#documentation": "

The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin\n file stored in Amazon S3.

" } } }, @@ -1073,6 +1075,77 @@ } } }, + "com.amazonaws.kafkaconnect#DeleteCustomPlugin": { + "type": "operation", + "input": { + "target": "com.amazonaws.kafkaconnect#DeleteCustomPluginRequest" + }, + "output": { + "target": "com.amazonaws.kafkaconnect#DeleteCustomPluginResponse" + }, + "errors": [ + { + "target": "com.amazonaws.kafkaconnect#BadRequestException" + }, + { + "target": "com.amazonaws.kafkaconnect#ForbiddenException" + }, + { + "target": "com.amazonaws.kafkaconnect#InternalServerErrorException" + }, + { + "target": "com.amazonaws.kafkaconnect#NotFoundException" + }, + { + "target": "com.amazonaws.kafkaconnect#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.kafkaconnect#TooManyRequestsException" + }, + { + "target": "com.amazonaws.kafkaconnect#UnauthorizedException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a custom plugin.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/v1/custom-plugins/{customPluginArn}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.kafkaconnect#DeleteCustomPluginRequest": { + "type": "structure", + "members": { + "customPluginArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom plugin that you want to delete.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.kafkaconnect#DeleteCustomPluginResponse": { + "type": "structure", + "members": { + "customPluginArn": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the custom plugin that you requested to delete.

" + } + }, + "customPluginState": { + "target": "com.amazonaws.kafkaconnect#CustomPluginState", + "traits": { + "smithy.api#documentation": "

The state of the custom plugin.

" + } + } + } + }, "com.amazonaws.kafkaconnect#DescribeConnector": { "type": "operation", "input": { @@ -1133,7 +1206,7 @@ "capacity": { "target": "com.amazonaws.kafkaconnect#CapacityDescription", "traits": { - "smithy.api#documentation": "

Information about the capacity of the connector, whether it is auto scaled or provisioned.

" + "smithy.api#documentation": "

Information about the capacity of the connector, whether it is auto scaled or\n provisioned.

" } }, "connectorArn": { @@ -1145,7 +1218,8 @@ "connectorConfiguration": { "target": "com.amazonaws.kafkaconnect#__mapOf__string", "traits": { - "smithy.api#documentation": "

A map of keys to values that represent the configuration for the connector.

" + "smithy.api#documentation": "

A map of keys to values that represent the configuration for the connector.

", + "smithy.api#sensitive": {} } }, "connectorDescription": { @@ -1187,7 +1261,7 @@ "kafkaClusterClientAuthentication": { "target": "com.amazonaws.kafkaconnect#KafkaClusterClientAuthenticationDescription", "traits": { - "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. The value is NONE when no client authentication is used.

" + "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. The value\n is NONE when no client authentication is used.

" } }, "kafkaClusterEncryptionInTransit": { @@ -1199,7 +1273,7 @@ "kafkaConnectVersion": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The version of Kafka Connect. It has to be compatible with both the Apache Kafka cluster's version and the plugins.

" + "smithy.api#documentation": "

The version of Kafka Connect. It has to be compatible with both the Apache Kafka\n cluster's version and the plugins.

" } }, "logDelivery": { @@ -1217,7 +1291,7 @@ "serviceExecutionRoleArn": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used by the connector to access Amazon Web Services resources.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role used by the connector to access Amazon\n Web Services resources.

" } }, "workerConfiguration": { @@ -1225,6 +1299,12 @@ "traits": { "smithy.api#documentation": "

Specifies which worker configuration was used for the connector.

" } + }, + "stateDescription": { + "target": "com.amazonaws.kafkaconnect#StateDescription", + "traits": { + "smithy.api#documentation": "

Details about the state of a connector.

" + } } } }, @@ -1312,7 +1392,7 @@ "latestRevision": { "target": "com.amazonaws.kafkaconnect#CustomPluginRevisionSummary", "traits": { - "smithy.api#documentation": "

The latest successfully created revision of the custom plugin. If there are no successfully created revisions, this field will be absent.

" + "smithy.api#documentation": "

The latest successfully created revision of the custom plugin. If there are no\n successfully created revisions, this field will be absent.

" } }, "name": { @@ -1320,6 +1400,12 @@ "traits": { "smithy.api#documentation": "

The name of the custom plugin.

" } + }, + "stateDescription": { + "target": "com.amazonaws.kafkaconnect#StateDescription", + "traits": { + "smithy.api#documentation": "

Details about the state of a custom plugin.

" + } } } }, @@ -1370,7 +1456,7 @@ "workerConfigurationArn": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the worker configuration that you want to get information about.

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

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

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1418,7 +1504,7 @@ "deliveryStream": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery.

" + "smithy.api#documentation": "

The name of the Kinesis Data Firehose delivery stream that is the destination for log\n delivery.

" } }, "enabled": { @@ -1439,7 +1525,7 @@ "deliveryStream": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

The name of the Kinesis Data Firehose delivery stream that is the destination for log delivery.

" + "smithy.api#documentation": "

The name of the Kinesis Data Firehose delivery stream that is the destination for log\n delivery.

" } }, "enabled": { @@ -1450,7 +1536,7 @@ } }, "traits": { - "smithy.api#documentation": "

A description of the settings for delivering logs to Amazon Kinesis Data Firehose.

" + "smithy.api#documentation": "

A description of the settings for delivering logs to Amazon Kinesis Data\n Firehose.

" } }, "com.amazonaws.kafkaconnect#ForbiddenException": { @@ -1461,7 +1547,7 @@ } }, "traits": { - "smithy.api#documentation": "

HTTP Status Code 403: Access forbidden. Correct your credentials and then retry your request.

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

HTTP Status Code 403: Access forbidden. Correct your credentials and then retry your\n request.

", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -1474,7 +1560,7 @@ } }, "traits": { - "smithy.api#documentation": "

HTTP Status Code 500: Unexpected internal server error. Retrying your request might resolve the issue.

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

HTTP Status Code 500: Unexpected internal server error. Retrying your request might\n resolve the issue.

", "smithy.api#error": "server", "smithy.api#httpError": 500 } @@ -1500,13 +1586,13 @@ "authenticationType": { "target": "com.amazonaws.kafkaconnect#KafkaClusterClientAuthenticationType", "traits": { - "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. Value NONE means that no client authentication is used.

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

The type of client authentication used to connect to the Apache Kafka cluster. Value\n NONE means that no client authentication is used.

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

The client authentication information used in order to authenticate with the Apache Kafka cluster.

" + "smithy.api#documentation": "

The client authentication information used in order to authenticate with the Apache\n Kafka cluster.

" } }, "com.amazonaws.kafkaconnect#KafkaClusterClientAuthenticationDescription": { @@ -1515,12 +1601,12 @@ "authenticationType": { "target": "com.amazonaws.kafkaconnect#KafkaClusterClientAuthenticationType", "traits": { - "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. Value NONE means that no client authentication is used.

" + "smithy.api#documentation": "

The type of client authentication used to connect to the Apache Kafka cluster. Value\n NONE means that no client authentication is used.

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

The client authentication information used in order to authenticate with the Apache Kafka cluster.

" + "smithy.api#documentation": "

The client authentication information used in order to authenticate with the Apache\n Kafka cluster.

" } }, "com.amazonaws.kafkaconnect#KafkaClusterClientAuthenticationType": { @@ -1598,6 +1684,29 @@ }, "com.amazonaws.kafkaconnect#KafkaConnect": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "KafkaConnect", + "name": "kafkaconnect", + "arnNamespace": "kafkaconnect", + "cloudFormationName": "KafkaConnect", + "cloudTrailEventSource": "kafkaconnect.amazonaws.com", + "endpointPrefix": "kafkaconnect" + }, + "aws.auth#sigv4": { + "name": "kafkaconnect" + }, + "aws.protocols#restJson1": {}, + "smithy.api#cors": { + "additionalAllowedHeaders": [ + "X-Api-Key", + "Content-Type", + "Content-Length" + ] + }, + "smithy.api#documentation": "

", + "smithy.api#title": "Managed Streaming for Kafka Connect" + }, "version": "2021-09-14", "operations": [ { @@ -1612,6 +1721,9 @@ { "target": "com.amazonaws.kafkaconnect#DeleteConnector" }, + { + "target": "com.amazonaws.kafkaconnect#DeleteCustomPlugin" + }, { "target": "com.amazonaws.kafkaconnect#DescribeConnector" }, @@ -1633,27 +1745,7 @@ { "target": "com.amazonaws.kafkaconnect#UpdateConnector" } - ], - "traits": { - "aws.api#service": { - "sdkId": "KafkaConnect", - "arnNamespace": "kafkaconnect", - "cloudFormationName": "KafkaConnect", - "cloudTrailEventSource": "kafkaconnect.amazonaws.com", - "endpointPrefix": "kafkaconnect" - }, - "aws.auth#sigv4": { - "name": "kafkaconnect" - }, - "aws.protocols#restJson1": {}, - "smithy.api#cors": { - "additionalAllowedHeaders": [ - "X-Api-Key" - ] - }, - "smithy.api#documentation": "

", - "smithy.api#title": "Managed Streaming for Kafka Connect" - } + ] }, "com.amazonaws.kafkaconnect#ListConnectors": { "type": "operation", @@ -1687,7 +1779,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of all the connectors in this account and Region. The list is limited to connectors whose name starts with the specified prefix. The response also includes a description of each of the listed connectors.

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

Returns a list of all the connectors in this account and Region. The list is limited to\n connectors whose name starts with the specified prefix. The response also includes a\n description of each of the listed connectors.

", "smithy.api#http": { "method": "GET", "uri": "/v1/connectors", @@ -1696,8 +1788,8 @@ "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", - "items": "connectors", - "pageSize": "maxResults" + "pageSize": "maxResults", + "items": "connectors" }, "smithy.api#readonly": {} } @@ -1722,7 +1814,7 @@ "nextToken": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

If the response of a ListConnectors operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

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

If the response of a ListConnectors operation is truncated, it will include a NextToken.\n Send this NextToken in a subsequent request to continue listing from where the previous\n operation left off.

", "smithy.api#httpQuery": "nextToken" } } @@ -1740,7 +1832,7 @@ "nextToken": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

If the response of a ListConnectors operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where it left off.

" + "smithy.api#documentation": "

If the response of a ListConnectors operation is truncated, it will include a NextToken.\n Send this NextToken in a subsequent request to continue listing from where it left\n off.

" } } } @@ -1786,8 +1878,8 @@ "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", - "items": "customPlugins", - "pageSize": "maxResults" + "pageSize": "maxResults", + "items": "customPlugins" }, "smithy.api#readonly": {} } @@ -1805,7 +1897,7 @@ "nextToken": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

If the response of a ListCustomPlugins operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

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

If the response of a ListCustomPlugins operation is truncated, it will include a\n NextToken. Send this NextToken in a subsequent request to continue listing from where the\n previous operation left off.

", "smithy.api#httpQuery": "nextToken" } } @@ -1823,7 +1915,7 @@ "nextToken": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

If the response of a ListCustomPlugins operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

" + "smithy.api#documentation": "

If the response of a ListCustomPlugins operation is truncated, it will include a\n NextToken. Send this NextToken in a subsequent request to continue listing from where the\n previous operation left off.

" } } } @@ -1869,8 +1961,8 @@ "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", - "items": "workerConfigurations", - "pageSize": "maxResults" + "pageSize": "maxResults", + "items": "workerConfigurations" }, "smithy.api#readonly": {} } @@ -1888,7 +1980,7 @@ "nextToken": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

If the response of a ListWorkerConfigurations operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

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

If the response of a ListWorkerConfigurations operation is truncated, it will include a\n NextToken. Send this NextToken in a subsequent request to continue listing from where the\n previous operation left off.

", "smithy.api#httpQuery": "nextToken" } } @@ -1900,7 +1992,7 @@ "nextToken": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

If the response of a ListWorkerConfigurations operation is truncated, it will include a NextToken. Send this NextToken in a subsequent request to continue listing from where the previous operation left off.

" + "smithy.api#documentation": "

If the response of a ListWorkerConfigurations operation is truncated, it will include a\n NextToken. Send this NextToken in a subsequent request to continue listing from where the\n previous operation left off.

" } }, "workerConfigurations": { @@ -1917,7 +2009,7 @@ "workerLogDelivery": { "target": "com.amazonaws.kafkaconnect#WorkerLogDelivery", "traits": { - "smithy.api#documentation": "

The workers can send worker logs to different destination types. This configuration specifies the details of these destinations.

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

The workers can send worker logs to different destination types. This configuration\n specifies the details of these destinations.

", "smithy.api#required": {} } } @@ -1932,7 +2024,7 @@ "workerLogDelivery": { "target": "com.amazonaws.kafkaconnect#WorkerLogDeliveryDescription", "traits": { - "smithy.api#documentation": "

The workers can send worker logs to different destination types. This configuration specifies the details of these destinations.

" + "smithy.api#documentation": "

The workers can send worker logs to different destination types. This configuration\n specifies the details of these destinations.

" } } }, @@ -1957,7 +2049,7 @@ } }, "traits": { - "smithy.api#documentation": "

HTTP Status Code 404: Resource not found due to incorrect input. Correct your request and then retry it.

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

HTTP Status Code 404: Resource not found due to incorrect input. Correct your request\n and then retry it.

", "smithy.api#error": "client", "smithy.api#httpError": 404 } @@ -1974,7 +2066,7 @@ } }, "traits": { - "smithy.api#documentation": "

A plugin is an AWS resource that contains the code that defines your connector logic.

" + "smithy.api#documentation": "

A plugin is an AWS resource that contains the code that defines your connector logic.\n

" } }, "com.amazonaws.kafkaconnect#PluginDescription": { @@ -1997,7 +2089,7 @@ "mcuCount": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max8", "traits": { - "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid values are 1,2,4,8.

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

The number of microcontroller units (MCUs) allocated to each connector worker. The valid\n values are 1,2,4,8.

", "smithy.api#required": {} } }, @@ -2019,7 +2111,7 @@ "mcuCount": { "target": "com.amazonaws.kafkaconnect#__integer", "traits": { - "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid values are 1,2,4,8.

" + "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid\n values are 1,2,4,8.

" } }, "workerCount": { @@ -2039,7 +2131,7 @@ "mcuCount": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max8", "traits": { - "smithy.api#documentation": "

The number of microcontroller units (MCUs) allocated to each connector worker. The valid values are 1,2,4,8.

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

The number of microcontroller units (MCUs) allocated to each connector worker. The valid\n values are 1,2,4,8.

", "smithy.api#required": {} } }, @@ -2168,7 +2260,7 @@ "cpuUtilizationPercentage": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max100", "traits": { - "smithy.api#documentation": "

Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered.

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

Specifies the CPU utilization percentage threshold at which you want connector scale in\n to be triggered.

", "smithy.api#required": {} } } @@ -2183,7 +2275,7 @@ "cpuUtilizationPercentage": { "target": "com.amazonaws.kafkaconnect#__integer", "traits": { - "smithy.api#documentation": "

Specifies the CPU utilization percentage threshold at which you want connector scale in to be triggered.

" + "smithy.api#documentation": "

Specifies the CPU utilization percentage threshold at which you want connector scale in\n to be triggered.

" } } }, @@ -2197,7 +2289,7 @@ "cpuUtilizationPercentage": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max100", "traits": { - "smithy.api#documentation": "

The target CPU utilization percentage threshold at which you want connector scale in to be triggered.

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

The target CPU utilization percentage threshold at which you want connector scale in to\n be triggered.

", "smithy.api#required": {} } } @@ -2212,7 +2304,7 @@ "cpuUtilizationPercentage": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max100", "traits": { - "smithy.api#documentation": "

The CPU utilization percentage threshold at which you want connector scale out to be triggered.

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

The CPU utilization percentage threshold at which you want connector scale out to be\n triggered.

", "smithy.api#required": {} } } @@ -2227,7 +2319,7 @@ "cpuUtilizationPercentage": { "target": "com.amazonaws.kafkaconnect#__integer", "traits": { - "smithy.api#documentation": "

The CPU utilization percentage threshold at which you want connector scale out to be triggered.

" + "smithy.api#documentation": "

The CPU utilization percentage threshold at which you want connector scale out to be\n triggered.

" } } }, @@ -2241,7 +2333,7 @@ "cpuUtilizationPercentage": { "target": "com.amazonaws.kafkaconnect#__integerMin1Max100", "traits": { - "smithy.api#documentation": "

The target CPU utilization percentage threshold at which you want connector scale out to be triggered.

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

The target CPU utilization percentage threshold at which you want connector scale out to\n be triggered.

", "smithy.api#required": {} } } @@ -2258,11 +2350,31 @@ } }, "traits": { - "smithy.api#documentation": "

HTTP Status Code 503: Service Unavailable. Retrying your request in some time might resolve the issue.

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

HTTP Status Code 503: Service Unavailable. Retrying your request in some time might\n resolve the issue.

", "smithy.api#error": "server", "smithy.api#httpError": 503 } }, + "com.amazonaws.kafkaconnect#StateDescription": { + "type": "structure", + "members": { + "code": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

A code that describes the state of a resource.

" + } + }, + "message": { + "target": "com.amazonaws.kafkaconnect#__string", + "traits": { + "smithy.api#documentation": "

A message that describes the state of a resource.

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

Details about the state of a resource.

" + } + }, "com.amazonaws.kafkaconnect#TooManyRequestsException": { "type": "structure", "members": { @@ -2284,7 +2396,7 @@ } }, "traits": { - "smithy.api#documentation": "

HTTP Status Code 401: Unauthorized request. The provided credentials couldn't be validated.

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

HTTP Status Code 401: Unauthorized request. The provided credentials couldn't be\n validated.

", "smithy.api#error": "client", "smithy.api#httpError": 401 } @@ -2435,7 +2547,7 @@ } }, "traits": { - "smithy.api#documentation": "

The configuration of the workers, which are the processes that run the connector logic.

" + "smithy.api#documentation": "

The configuration of the workers, which are the processes that run the connector\n logic.

" } }, "com.amazonaws.kafkaconnect#WorkerConfigurationDescription": { @@ -2476,7 +2588,8 @@ "propertiesFileContent": { "target": "com.amazonaws.kafkaconnect#__string", "traits": { - "smithy.api#documentation": "

Base64 encoded contents of the connect-distributed.properties file.

" + "smithy.api#documentation": "

Base64 encoded contents of the connect-distributed.properties file.

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

Workers can send worker logs to different destination types. This configuration specifies the details of these destinations.

" + "smithy.api#documentation": "

Workers can send worker logs to different destination types. This configuration\n specifies the details of these destinations.

" } }, "com.amazonaws.kafkaconnect#WorkerLogDeliveryDescription": { @@ -2603,7 +2716,7 @@ } }, "traits": { - "smithy.api#documentation": "

Workers can send worker logs to different destination types. This configuration specifies the details of these destinations.

" + "smithy.api#documentation": "

Workers can send worker logs to different destination types. This configuration\n specifies the details of these destinations.

" } }, "com.amazonaws.kafkaconnect#__boolean": { diff --git a/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json b/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json index 75319ca73b3..5625a1eec76 100644 --- a/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json +++ b/codegen/sdk-codegen/aws-models/kendra.2019-02-03.json @@ -1438,7 +1438,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for data sources that connect\n to Confluence.

" + "smithy.api#documentation": "

Provides the configuration information to connect to Confluence \n as your data source.

" } }, "com.amazonaws.kendra#ConfluencePageConfiguration": { @@ -1723,7 +1723,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the information necessary to connect to a\n database.

" + "smithy.api#documentation": "

Provides the configuration information that's required to connect to a\n database.

" } }, "com.amazonaws.kendra#ContentSourceConfiguration": { @@ -1749,7 +1749,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration information for your content sources, such as data sources, \n FAQs, and content indexed directly via BatchPutDocument.

" + "smithy.api#documentation": "

Provides the configuration information for your content sources, such as data sources, \n FAQs, and content indexed directly via BatchPutDocument.

" } }, "com.amazonaws.kendra#ContentType": { @@ -1779,6 +1779,44 @@ ] } }, + "com.amazonaws.kendra#Correction": { + "type": "structure", + "members": { + "BeginOffset": { + "target": "com.amazonaws.kendra#Integer", + "traits": { + "smithy.api#documentation": "

The zero-based location in the response string or text where \n the corrected word starts.

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

The zero-based location in the response string or text where \n the corrected word ends.

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

The string or text of a misspelled word in a query.

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

The string or text of a corrected misspelled word in a query.

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

A corrected misspelled word in a query.

" + } + }, + "com.amazonaws.kendra#CorrectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.kendra#Correction" + } + }, "com.amazonaws.kendra#CrawlDepth": { "type": "integer", "traits": { @@ -1854,7 +1892,7 @@ "Configuration": { "target": "com.amazonaws.kendra#DataSourceConfiguration", "traits": { - "smithy.api#documentation": "

The connector configuration information that is required to access the\n repository.

\n

You can't specify the Configuration parameter when the\n Type parameter is set to CUSTOM. If you do,\n you receive a ValidationException exception.

\n

The Configuration parameter is required for all other\n data sources.

" + "smithy.api#documentation": "

Configuration information that is required to access the data source \n repository.

\n

You can't specify the Configuration parameter when the\n Type parameter is set to CUSTOM. If you do,\n you receive a ValidationException exception.

\n

The Configuration parameter is required for all other\n data sources.

" } }, "Description": { @@ -1975,7 +2013,7 @@ "Configuration": { "target": "com.amazonaws.kendra#ExperienceConfiguration", "traits": { - "smithy.api#documentation": "

Provides the configuration information for your Amazon Kendra experience. This includes\n ContentSourceConfiguration, which specifies the data source IDs \n and/or FAQ IDs, and UserIdentityConfiguration, which specifies the \n user or group information to grant access to your Amazon Kendra experience.

" + "smithy.api#documentation": "

Configuration information for your Amazon Kendra experience. This includes\n ContentSourceConfiguration, which specifies the data source IDs \n and/or FAQ IDs, and UserIdentityConfiguration, which specifies the \n user or group information to grant access to your Amazon Kendra experience.

" } }, "Description": { @@ -2463,37 +2501,37 @@ "S3Configuration": { "target": "com.amazonaws.kendra#S3DataSourceConfiguration", "traits": { - "smithy.api#documentation": "

Provides information to create a data source connector for a\n document repository in an Amazon S3 bucket.

" + "smithy.api#documentation": "

Provides the configuration information to connect to an Amazon S3 \n bucket as your data source.

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

Provides information necessary to create a data source connector\n for a Microsoft SharePoint site.

" + "smithy.api#documentation": "

Provides the configuration information to connect to Microsoft SharePoint \n as your data source.

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

Provides information necessary to create a data source connector\n for a database.

" + "smithy.api#documentation": "

Provides the configuration information to connect to a database as \n your data source.

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

Provides configuration information for data sources that connect\n to a Salesforce site.

" + "smithy.api#documentation": "

Provides the configuration information to connect to \n Salesforce as your data source.

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

Provides configuration for data sources that connect to Microsoft\n OneDrive.

" + "smithy.api#documentation": "

Provides the configuration information to connect to Microsoft\n OneDrive as your data source.

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

Provides configuration for data sources that connect to ServiceNow\n instances.

" + "smithy.api#documentation": "

Provides the configuration information to connect to ServiceNow\n as your data source.

" } }, "ConfluenceConfiguration": { @@ -2505,7 +2543,7 @@ "GoogleDriveConfiguration": { "target": "com.amazonaws.kendra#GoogleDriveConfiguration", "traits": { - "smithy.api#documentation": "

Provides configuration for data sources that connect to Google\n Drive.

" + "smithy.api#documentation": "

Provides the configuration information to connect to Google\n Drive as your data source.

" } }, "WebCrawlerConfiguration": { @@ -2525,7 +2563,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration information for an Amazon Kendra data source.

" + "smithy.api#documentation": "

Provides the configuration information for an Amazon Kendra data source.

" } }, "com.amazonaws.kendra#DataSourceDateFieldFormat": { @@ -2567,7 +2605,7 @@ } }, "traits": { - "smithy.api#documentation": "

\n Data source information for user context filtering.\n

" + "smithy.api#documentation": "

Data source information for user context filtering.

" } }, "com.amazonaws.kendra#DataSourceGroups": { @@ -2998,7 +3036,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information for connecting to an Amazon VPC.

" + "smithy.api#documentation": "

Provides the configuration information to connect to an Amazon VPC.

" } }, "com.amazonaws.kendra#DatabaseConfiguration": { @@ -3014,7 +3052,7 @@ "ConnectionConfiguration": { "target": "com.amazonaws.kendra#ConnectionConfiguration", "traits": { - "smithy.api#documentation": "

The information necessary to connect to a database.

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

Configuration information that's required to connect to a database.

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

Provides the information necessary to connect a database to an\n index.

" + "smithy.api#documentation": "

Provides the configuration information to connect to a \n index.

" } }, "com.amazonaws.kendra#DatabaseEngineType": { @@ -3523,7 +3561,7 @@ "Configuration": { "target": "com.amazonaws.kendra#DataSourceConfiguration", "traits": { - "smithy.api#documentation": "

Information that describes where the data source is located and how\n the data source is configured. The specific information in the description\n depends on the data source provider.

" + "smithy.api#documentation": "

Describes how the data source is configured. The specific information in the description\n depends on the data source provider.

" } }, "CreatedAt": { @@ -5070,7 +5108,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information of users or groups in \n your Amazon Web Services SSO identity source to grant access your Amazon Kendra \n experience.

" + "smithy.api#documentation": "

Provides the configuration information for users or groups in \n your Amazon Web Services SSO identity source to grant access your Amazon Kendra \n experience.

" } }, "com.amazonaws.kendra#EntityDisplayData": { @@ -5152,7 +5190,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information of users or groups in your \n Amazon Web Services SSO identity source for access to your Amazon Kendra experience. \n Specific permissions are defined for each user or group once they are \n granted access to your Amazon Kendra experience.

" + "smithy.api#documentation": "

Provides the configuration information for users or groups in your \n Amazon Web Services SSO identity source for access to your Amazon Kendra experience. \n Specific permissions are defined for each user or group once they are \n granted access to your Amazon Kendra experience.

" } }, "com.amazonaws.kendra#EntityPersonaConfigurationList": { @@ -5260,7 +5298,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies the configuration information for your Amazon Kendra experience. This includes \n the data source IDs and/or FAQ IDs, and user or group information to grant access \n to your Amazon Kendra experience.

" + "smithy.api#documentation": "

Provides the configuration information for your Amazon Kendra experience. This includes \n the data source IDs and/or FAQ IDs, and user or group information to grant access \n to your Amazon Kendra experience.

" } }, "com.amazonaws.kendra#ExperienceEndpoint": { @@ -5280,7 +5318,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information of the endpoint for your Amazon Kendra\n experience.

" + "smithy.api#documentation": "

Provides the configuration information for the endpoint for your Amazon Kendra\n experience.

" } }, "com.amazonaws.kendra#ExperienceEndpoints": { @@ -5697,14 +5735,14 @@ "VpcConfiguration": { "target": "com.amazonaws.kendra#DataSourceVpcConfiguration", "traits": { - "smithy.api#documentation": "

Provides the configuration information for connecting to an \n Amazon Virtual Private Cloud for your Amazon FSx. Your Amazon FSx \n instance must reside inside your VPC.

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

Configuration information for connecting to an \n Amazon Virtual Private Cloud for your Amazon FSx. Your Amazon FSx \n instance must reside inside your VPC.

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

The Amazon Resource Name (ARN) of an Secrets Manager secret that \n contains the key-value pairs required to connect to your Amazon FSx \n file system. Windows is currently the only supported type. The secret must \n contain a JSON structure with the following keys:

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

The Amazon Resource Name (ARN) of an Secrets Manager secret that \n contains the key-value pairs required to connect to your Amazon FSx \n file system. Windows is currently the only supported type. The secret must \n contain a JSON structure with the following keys:

\n " } }, "InclusionPatterns": { @@ -5722,7 +5760,7 @@ "FieldMappings": { "target": "com.amazonaws.kendra#DataSourceToIndexFieldMappingList", "traits": { - "smithy.api#documentation": "

A list of DataSourceToIndexFieldMapping objects that \n map Amazon FSx data source attributes or field names to Amazon Kendra \n index field names in Amazon Kendra. To create custom fields, use the \n UpdateIndex API before you map to Amazon FSx fields. \n For more information, see Mapping \n data source fields. The Amazon FSx data source field names \n must exist in your Amazon FSx custom metadata.

" + "smithy.api#documentation": "

A list of DataSourceToIndexFieldMapping objects that \n map Amazon FSx data source attributes or field names to Amazon Kendra \n index field names. To create custom fields, use the \n UpdateIndex API before you map to Amazon FSx fields. \n For more information, see Mapping \n data source fields. The Amazon FSx data source field names \n must exist in your Amazon FSx custom metadata.

" } } }, @@ -5964,7 +6002,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for data sources that connect\n to Google Drive.

" + "smithy.api#documentation": "

Provides the configuration information to connect to \n Google Drive as your data source.

" } }, "com.amazonaws.kendra#GroupAttributeField": { @@ -6280,7 +6318,7 @@ } }, "traits": { - "smithy.api#documentation": "

A summary of information about an index.

" + "smithy.api#documentation": "

A summary of information on the configuration of an index.

" } }, "com.amazonaws.kendra#IndexConfigurationSummaryList": { @@ -6541,7 +6579,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration information for the JSON token type.

" + "smithy.api#documentation": "

Provides the configuration information for the JSON token type.

" } }, "com.amazonaws.kendra#JwtTokenTypeConfiguration": { @@ -6592,7 +6630,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration information for the JWT token type.

" + "smithy.api#documentation": "

Provides the configuration information for the JWT token type.

" } }, "com.amazonaws.kendra#KeyLocation": { @@ -7255,7 +7293,7 @@ "IndexConfigurationSummaryItems": { "target": "com.amazonaws.kendra#IndexConfigurationSummaryList", "traits": { - "smithy.api#documentation": "

An array of summary information for one or more indexes.

" + "smithy.api#documentation": "

An array of summary information on the configuration of one or more indexes.

" } }, "NextToken": { @@ -7808,7 +7846,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for data sources that connect\n to OneDrive.

" + "smithy.api#documentation": "

Provides the configuration information to connect\n to OneDrive as your data source.

" } }, "com.amazonaws.kendra#OneDriveUser": { @@ -8292,6 +8330,12 @@ "traits": { "smithy.api#documentation": "

Provides an identifier for a specific user. The\n VisitorId should be a unique identifier, such as a\n GUID. Don't use personally identifiable information, such as the user's\n email address, as the VisitorId.

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

Enables suggested spell corrections for queries.

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

A list of warning codes and their messages on problems with your query.

\n

Amazon Kendra currently only supports one type of warning, which is a warning \n on invalid syntax used in the query. For examples of invalid query syntax, \n see Searching \n with advanced query syntax.

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

A list of information related to suggested spell corrections for a query.

" + } } } }, @@ -8773,7 +8823,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for a data source to index\n documents in an Amazon S3 bucket.

" + "smithy.api#documentation": "

Provides the configuration information to connect to \n an Amazon S3 bucket.

" } }, "com.amazonaws.kendra#S3ObjectKey": { @@ -8837,7 +8887,7 @@ } }, "traits": { - "smithy.api#documentation": "

Defines configuration for syncing a Salesforce chatter feed. The\n contents of the object comes from the Salesforce FeedItem\n table.

" + "smithy.api#documentation": "

The configuration information for syncing a Salesforce chatter feed. The\n contents of the object comes from the Salesforce FeedItem\n table.

" } }, "com.amazonaws.kendra#SalesforceChatterFeedIncludeFilterType": { @@ -8911,7 +8961,7 @@ "StandardObjectAttachmentConfiguration": { "target": "com.amazonaws.kendra#SalesforceStandardObjectAttachmentConfiguration", "traits": { - "smithy.api#documentation": "

Provides configuration information for processing attachments to\n Salesforce standard objects.

" + "smithy.api#documentation": "

Configuration information for processing attachments to\n Salesforce standard objects.

" } }, "IncludeAttachmentFilePatterns": { @@ -9000,18 +9050,18 @@ "StandardKnowledgeArticleTypeConfiguration": { "target": "com.amazonaws.kendra#SalesforceStandardKnowledgeArticleTypeConfiguration", "traits": { - "smithy.api#documentation": "

Provides configuration information for standard Salesforce\n knowledge articles.

" + "smithy.api#documentation": "

Configuration information for standard Salesforce\n knowledge articles.

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

Provides configuration information for custom Salesforce knowledge\n articles.

" + "smithy.api#documentation": "

Configuration information for custom Salesforce knowledge\n articles.

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

Specifies configuration information for the knowledge article\n types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge\n articles and the standard fields of knowledge articles, or the\n custom fields of custom knowledge articles, but not both

" + "smithy.api#documentation": "

Provides the configuration information for the knowledge article\n types that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge\n articles and the standard fields of knowledge articles, or the\n custom fields of custom knowledge articles, but not both

" } }, "com.amazonaws.kendra#SalesforceKnowledgeArticleState": { @@ -9069,7 +9119,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for standard Salesforce\n knowledge articles.

" + "smithy.api#documentation": "

Configuration information for standard Salesforce\n knowledge articles.

" } }, "com.amazonaws.kendra#SalesforceStandardObjectAttachmentConfiguration": { @@ -9089,7 +9139,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for processing attachments to\n Salesforce standard objects.

" + "smithy.api#documentation": "

Provides the configuration information for processing attachments to\n Salesforce standard objects.

" } }, "com.amazonaws.kendra#SalesforceStandardObjectConfiguration": { @@ -9123,7 +9173,7 @@ } }, "traits": { - "smithy.api#documentation": "

Specifies configuration information for indexing a single standard\n object.

" + "smithy.api#documentation": "

Provides the configuration information for indexing a single standard\n object.

" } }, "com.amazonaws.kendra#SalesforceStandardObjectConfigurationList": { @@ -9340,7 +9390,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information of the seed or starting point URLs to crawl.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use Amazon Kendra Web \n Crawler to index your own webpages, or webpages that you have authorization \n to index.\n

" + "smithy.api#documentation": "

Provides the configuration information for the seed or starting point URLs to crawl.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use Amazon Kendra Web \n Crawler to index your own webpages, or webpages that you have authorization \n to index.\n

" } }, "com.amazonaws.kendra#SeedUrlList": { @@ -9426,13 +9476,13 @@ "KnowledgeArticleConfiguration": { "target": "com.amazonaws.kendra#ServiceNowKnowledgeArticleConfiguration", "traits": { - "smithy.api#documentation": "

Provides configuration information for crawling knowledge articles\n in the ServiceNow site.

" + "smithy.api#documentation": "

Configuration information for crawling knowledge articles\n in the ServiceNow site.

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

Provides configuration information for crawling service catalogs\n in the ServiceNow site.

" + "smithy.api#documentation": "

Configuration information for crawling service catalogs\n in the ServiceNow site.

" } }, "AuthenticationType": { @@ -9443,7 +9493,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information required to connect to a\n ServiceNow data source.

" + "smithy.api#documentation": "

Provides the configuration information to connect to \n ServiceNow as your data source.

" } }, "com.amazonaws.kendra#ServiceNowHostUrl": { @@ -9504,7 +9554,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for crawling knowledge articles\n in the ServiceNow site.

" + "smithy.api#documentation": "

Provides the configuration information for crawling knowledge articles\n in the ServiceNow site.

" } }, "com.amazonaws.kendra#ServiceNowKnowledgeArticleFilterQuery": { @@ -9559,7 +9609,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for crawling service catalog\n items in the ServiceNow site

" + "smithy.api#documentation": "

Provides the configuration information for crawling service catalog\n items in the ServiceNow site

" } }, "com.amazonaws.kendra#ServiceQuotaExceededException": { @@ -9649,7 +9699,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for connecting to a Microsoft\n SharePoint data source.

" + "smithy.api#documentation": "

Provides the configuration information to connect to Microsoft\n SharePoint as your data source.

" } }, "com.amazonaws.kendra#SharePointUrlList": { @@ -9715,7 +9765,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides the configuration information of the sitemap URLs to crawl.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use Amazon Kendra Web \n Crawler to index your own webpages, or webpages that you have authorization \n to index.\n

" + "smithy.api#documentation": "

Provides the configuration information for the sitemap URLs to crawl.

\n

\n When selecting websites to index, you must adhere to \n the Amazon Acceptable Use Policy \n and all other Amazon terms. Remember that you must only use Amazon Kendra Web \n Crawler to index your own webpages, or webpages that you have authorization \n to index.\n

" } }, "com.amazonaws.kendra#SiteMapsList": { @@ -9785,6 +9835,47 @@ "smithy.api#documentation": "

Specifies the document attribute to use to sort the response to a\n Amazon Kendra query. You can specify a single attribute for sorting. The\n attribute must have the Sortable flag set to\n true, otherwise Amazon Kendra returns an exception.

\n

You can sort attributes of the following types.

\n \n

You can't sort attributes of the following type.

\n " } }, + "com.amazonaws.kendra#SpellCorrectedQuery": { + "type": "structure", + "members": { + "SuggestedQueryText": { + "target": "com.amazonaws.kendra#SuggestedQueryText", + "traits": { + "smithy.api#documentation": "

The query with the suggested spell corrections.

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

The corrected misspelled word or words in a query.

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

A query with suggested spell corrections.

" + } + }, + "com.amazonaws.kendra#SpellCorrectedQueryList": { + "type": "list", + "member": { + "target": "com.amazonaws.kendra#SpellCorrectedQuery" + } + }, + "com.amazonaws.kendra#SpellCorrectionConfiguration": { + "type": "structure", + "members": { + "IncludeQuerySpellCheckSuggestions": { + "target": "com.amazonaws.kendra#Boolean", + "traits": { + "smithy.api#documentation": "

\n TRUE to suggest spell corrections for queries.

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

Provides the configuration information for suggested query spell corrections.

\n

Suggested spell corrections are based on words that appear in your indexed documents \n and how closely a corrected word matches a misspelled word.

\n

This feature is designed with certain defaults or limits. For information on the \n current limits and how to request more support for some limits, see the \n Spell \n Checker documentation.

" + } + }, "com.amazonaws.kendra#SqlConfiguration": { "type": "structure", "members": { @@ -9796,7 +9887,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides information that configures Amazon Kendra to use a SQL\n database.

" + "smithy.api#documentation": "

Provides the configuration information to use a SQL\n database.

" } }, "com.amazonaws.kendra#StartDataSourceSyncJob": { @@ -10041,6 +10132,15 @@ } } }, + "com.amazonaws.kendra#SuggestedQueryText": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1000 + } + } + }, "com.amazonaws.kendra#Suggestion": { "type": "structure", "members": { @@ -10562,7 +10662,7 @@ "Configuration": { "target": "com.amazonaws.kendra#DataSourceConfiguration", "traits": { - "smithy.api#documentation": "

Configuration information for an Amazon Kendra data source.

" + "smithy.api#documentation": "

Configuration information for an Amazon Kendra data source you want to update.

" } }, "Description": { @@ -10658,7 +10758,7 @@ "Configuration": { "target": "com.amazonaws.kendra#ExperienceConfiguration", "traits": { - "smithy.api#documentation": "

Provides the user configuration information. This includes the Amazon Web Services SSO\n field name that contains the identifiers of your users, such as their emails.

" + "smithy.api#documentation": "

Configuration information for your Amazon Kendra you want to update.

" } }, "Description": { @@ -10732,7 +10832,7 @@ "DocumentMetadataConfigurationUpdates": { "target": "com.amazonaws.kendra#DocumentMetadataConfigurationList", "traits": { - "smithy.api#documentation": "

The document metadata to update.

" + "smithy.api#documentation": "

The document metadata you want to update.

" } }, "CapacityUnits": { @@ -10989,13 +11089,13 @@ "SeedUrlConfiguration": { "target": "com.amazonaws.kendra#SeedUrlConfiguration", "traits": { - "smithy.api#documentation": "

Provides the configuration of the seed or starting point URLs of the websites \n you want to crawl.

\n

You can choose to crawl only the website host names, or the website host names \n with subdomains, or the website host names with subdomains and other domains \n that the webpages link to.

\n

You can list up to 100 seed URLs.

" + "smithy.api#documentation": "

Configuration of the seed or starting point URLs of the websites \n you want to crawl.

\n

You can choose to crawl only the website host names, or the website host names \n with subdomains, or the website host names with subdomains and other domains \n that the webpages link to.

\n

You can list up to 100 seed URLs.

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

Provides the configuration of the sitemap URLs of the websites you want to crawl.

\n

Only URLs belonging to the same website host names are crawled. You can list up to \n three sitemap URLs.

" + "smithy.api#documentation": "

Configuration of the sitemap URLs of the websites you want to crawl.

\n

Only URLs belonging to the same website host names are crawled. You can list up to \n three sitemap URLs.

" } } }, @@ -11111,7 +11211,7 @@ } }, "traits": { - "smithy.api#documentation": "

Configuration information for the identifiers of your users.

" + "smithy.api#documentation": "

Provides the configuration information for the identifiers of your users.

" } }, "com.amazonaws.kendra#UserNameAttributeField": { @@ -11141,7 +11241,7 @@ } }, "traits": { - "smithy.api#documentation": "

Provides configuration information for a token configuration.

" + "smithy.api#documentation": "

Provides the configuration information for a token.

" } }, "com.amazonaws.kendra#UserTokenConfigurationList": { @@ -11309,13 +11409,13 @@ "ProxyConfiguration": { "target": "com.amazonaws.kendra#ProxyConfiguration", "traits": { - "smithy.api#documentation": "

Provides configuration information required to connect to your internal \n websites via a web proxy.

\n

You must provide the website host name and port number. For example, the \n host name of https://a.example.com/page1.html is \"a.example.com\" and the \n port is 443, the standard port for HTTPS.

\n

Web proxy credentials are optional and you can use them to connect to a \n web proxy server that requires basic authentication. To store web proxy \n credentials, you use a secret in Secrets Manager.

" + "smithy.api#documentation": "

Configuration information required to connect to your internal \n websites via a web proxy.

\n

You must provide the website host name and port number. For example, the \n host name of https://a.example.com/page1.html is \"a.example.com\" and the \n port is 443, the standard port for HTTPS.

\n

Web proxy credentials are optional and you can use them to connect to a \n web proxy server that requires basic authentication. To store web proxy \n credentials, you use a secret in Secrets Manager.

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

Provides configuration information required to connect to websites using \n authentication.

\n

You can connect to websites using basic authentication of user name and password.

\n

You must provide the website host name and port number. For example, the host name \n of https://a.example.com/page1.html is \"a.example.com\" and the port is 443, the \n standard port for HTTPS. You use a secret in Secrets Manager to store \n your authentication credentials.

" + "smithy.api#documentation": "

Configuration information required to connect to websites using \n authentication.

\n

You can connect to websites using basic authentication of user name and password.

\n

You must provide the website host name and port number. For example, the host name \n of https://a.example.com/page1.html is \"a.example.com\" and the port is 443, the \n standard port for HTTPS. You use a secret in Secrets Manager to store \n your authentication credentials.

" } } }, diff --git a/codegen/sdk-codegen/aws-models/keyspaces.2022-02-10.json b/codegen/sdk-codegen/aws-models/keyspaces.2022-02-10.json new file mode 100644 index 00000000000..204d9859475 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/keyspaces.2022-02-10.json @@ -0,0 +1,1762 @@ +{ + "smithy": "1.0", + "shapes": { + "com.amazonaws.keyspaces#ARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 20, + "max": 1000 + }, + "smithy.api#pattern": "^arn:(aws[a-zA-Z0-9-]*):cassandra:.+" + } + }, + "com.amazonaws.keyspaces#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AccessDeniedException", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

You do not have sufficient access to perform this action.

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.keyspaces#CapacitySpecification": { + "type": "structure", + "members": { + "throughputMode": { + "target": "com.amazonaws.keyspaces#ThroughputMode", + "traits": { + "smithy.api#documentation": "

The read/write throughput capacity mode for a table. The options are:

\n \n

The default is throughput_mode:PAY_PER_REQUEST.

\n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

", + "smithy.api#required": {} + } + }, + "readCapacityUnits": { + "target": "com.amazonaws.keyspaces#CapacityUnits", + "traits": { + "smithy.api#documentation": "

The throughput capacity specified for read operations defined in read capacity units \n (RCUs).

" + } + }, + "writeCapacityUnits": { + "target": "com.amazonaws.keyspaces#CapacityUnits", + "traits": { + "smithy.api#documentation": "

The throughput capacity specified for write operations defined in write capacity units \n (WCUs).

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

Amazon Keyspaces has two read/write capacity modes for processing reads and writes on your tables:

\n \n \n

The read/write capacity mode that you choose controls how you are charged for read and\n write throughput and how table throughput capacity is managed.

\n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#CapacitySpecificationSummary": { + "type": "structure", + "members": { + "throughputMode": { + "target": "com.amazonaws.keyspaces#ThroughputMode", + "traits": { + "smithy.api#documentation": "

The read/write throughput capacity mode for a table. The options are:

\n \n

The default is throughput_mode:PAY_PER_REQUEST.

\n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

", + "smithy.api#required": {} + } + }, + "readCapacityUnits": { + "target": "com.amazonaws.keyspaces#CapacityUnits", + "traits": { + "smithy.api#documentation": "

The throughput capacity specified for read operations defined in read capacity units \n (RCUs).

" + } + }, + "writeCapacityUnits": { + "target": "com.amazonaws.keyspaces#CapacityUnits", + "traits": { + "smithy.api#documentation": "

The throughput capacity specified for write operations defined in write capacity units \n (WCUs).

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

The timestamp of the last operation that changed the provisioned throughput capacity of a table.

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

The read/write throughput capacity mode for a table. The options are:

\n \n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#CapacityUnits": { + "type": "long", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.keyspaces#ClusteringKey": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.keyspaces#GenericString", + "traits": { + "smithy.api#documentation": "

The name(s) of the clustering column(s).

", + "smithy.api#required": {} + } + }, + "orderBy": { + "target": "com.amazonaws.keyspaces#SortOrder", + "traits": { + "smithy.api#documentation": "

Sets the ascendant (ASC) or descendant (DESC) order modifier.

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

The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.

" + } + }, + "com.amazonaws.keyspaces#ClusteringKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#ClusteringKey" + } + }, + "com.amazonaws.keyspaces#ColumnDefinition": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.keyspaces#GenericString", + "traits": { + "smithy.api#documentation": "

The name of the column.

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

The data type of the column. For a list of available data types, see Data types in the Amazon Keyspaces Developer\n Guide.

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

The names and data types of regular columns.

" + } + }, + "com.amazonaws.keyspaces#ColumnDefinitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#ColumnDefinition" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.keyspaces#Comment": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

An optional description of the table.

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

An optional comment that describes the table.

" + } + }, + "com.amazonaws.keyspaces#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConflictException", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

Amazon Keyspaces could not complete the requested action. This error may occur if you try to \n perform an action and the same or a different action is already\n in progress, or if you try to create a resource that already exists.

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.keyspaces#CreateKeyspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#CreateKeyspaceRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#CreateKeyspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

The CreateKeyspace operation adds a new keyspace to your account. In an Amazon Web Services account, keyspace names\n must be unique within each Region.

\n

\n CreateKeyspace is an asynchronous operation. You can monitor the creation status of the new keyspace \n by using the GetKeyspace operation.

\n

For more information, see Creating keyspaces in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#CreateKeyspaceRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace to be created.

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

A list of key-value pair tags to be attached to the keyspace.

\n

For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer\n Guide.

" + } + } + } + }, + "com.amazonaws.keyspaces#CreateKeyspaceResponse": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the keyspace in the format of an Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#CreateTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#CreateTableRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#CreateTableResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

The CreateTable operation adds a new table to the specified keyspace. Within a keyspace, table names\n must be unique.

\n

\n CreateTable is an asynchronous operation. When the request is received, the status of the table is set to CREATING.\n You can monitor the creation status of the new table by using the GetTable \n operation, which returns the current status of the table. You can start using a table when the status is ACTIVE.

\n

For more information, see Creating tables in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#CreateTableRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace that the table is going to be created in.

", + "smithy.api#required": {} + } + }, + "tableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the table.

", + "smithy.api#required": {} + } + }, + "schemaDefinition": { + "target": "com.amazonaws.keyspaces#SchemaDefinition", + "traits": { + "smithy.api#documentation": "

The schemaDefinition consists of the\n following parameters.

\n

For each column to be created:

\n \n \n

The primary key of the table consists of the\n following columns:

\n \n

To define a column as static use \n staticColumns\n - \n Static columns store values that are shared by all rows in the same partition:

\n ", + "smithy.api#required": {} + } + }, + "comment": { + "target": "com.amazonaws.keyspaces#Comment", + "traits": { + "smithy.api#documentation": "

This parameter allows to enter a description of the table.

" + } + }, + "capacitySpecification": { + "target": "com.amazonaws.keyspaces#CapacitySpecification", + "traits": { + "smithy.api#documentation": "

Specifies the read/write throughput capacity mode for the table. The options are:

\n \n

The default is\n throughput_mode:PAY_PER_REQUEST.

\n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "encryptionSpecification": { + "target": "com.amazonaws.keyspaces#EncryptionSpecification", + "traits": { + "smithy.api#documentation": "

Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):

\n \n \n

The default is type:AWS_OWNED_KMS_KEY.

\n

For more information, see Encryption at rest in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "pointInTimeRecovery": { + "target": "com.amazonaws.keyspaces#PointInTimeRecovery", + "traits": { + "smithy.api#documentation": "

\n Specifies if pointInTimeRecovery is enabled or disabled for the\n table. The options are:

\n \n

If it's not specified, the default is DISABLED.

\n

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "ttl": { + "target": "com.amazonaws.keyspaces#TimeToLive", + "traits": { + "smithy.api#documentation": "

\n Enables Time to Live custom settings for the\n table. The options are:

\n \n

The default is status:disabled. After\n ttl is enabled, you can't disable it\n for the table.

\n

For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "defaultTimeToLive": { + "target": "com.amazonaws.keyspaces#DefaultTimeToLive", + "traits": { + "smithy.api#documentation": "

The default Time to Live setting in seconds for the\n table.

\n

For more information, see Setting the default TTL value for a table in the Amazon Keyspaces Developer\n Guide.

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

A list of key-value pair tags to be\n attached to the resource.

\n

For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer\n Guide.

" + } + } + } + }, + "com.amazonaws.keyspaces#CreateTableResponse": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the table in the format of an Amazon Resource Name (ARN).

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#DefaultTimeToLive": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 630720000 + } + } + }, + "com.amazonaws.keyspaces#DeleteKeyspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#DeleteKeyspaceRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#DeleteKeyspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

The DeleteKeyspace operation deletes a keyspace and all of its tables.

" + } + }, + "com.amazonaws.keyspaces#DeleteKeyspaceRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace to be deleted.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#DeleteKeyspaceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.keyspaces#DeleteTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#DeleteTableRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#DeleteTableResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

\n The DeleteTable operation deletes a table and all of its data. After a DeleteTable request is received, \n the specified table is in the DELETING state until Amazon Keyspaces completes the deletion. If the table \n is in the ACTIVE state, you can delete it. If a table is either in the CREATING or UPDATING states, then \n Amazon Keyspaces returns a ResourceInUseException. If the specified table does not exist, Amazon Keyspaces returns\n a ResourceNotFoundException. If the table is already in the DELETING state, no error is returned.

" + } + }, + "com.amazonaws.keyspaces#DeleteTableRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace of the to be deleted table.

", + "smithy.api#required": {} + } + }, + "tableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the table to be deleted.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#DeleteTableResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.keyspaces#EncryptionSpecification": { + "type": "structure", + "members": { + "type": { + "target": "com.amazonaws.keyspaces#EncryptionType", + "traits": { + "smithy.api#documentation": "

\n The encryption option specified for the table. You can choose one of the following KMS keys (KMS keys):

\n \n

The default is type:AWS_OWNED_KMS_KEY.

\n

For more information, see Encryption at rest in the Amazon Keyspaces Developer\n Guide.

", + "smithy.api#required": {} + } + }, + "kmsKeyIdentifier": { + "target": "com.amazonaws.keyspaces#kmsKeyARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the customer managed KMS key, for example kms_key_identifier:ARN.\n

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

\n Amazon Keyspaces encrypts and decrypts the table data at rest transparently and integrates with Key Management Service for storing and managing the encryption key. \n You can choose one of the following KMS keys (KMS keys):

\n \n

For more information about encryption at rest in Amazon Keyspaces, see Encryption at rest in the Amazon Keyspaces Developer\n Guide.

\n

For more information about KMS, see KMS management service concepts in the Key Management Service Developer Guide.

" + } + }, + "com.amazonaws.keyspaces#EncryptionType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CUSTOMER_MANAGED_KMS_KEY", + "name": "CUSTOMER_MANAGED_KMS_KEY" + }, + { + "value": "AWS_OWNED_KMS_KEY", + "name": "AWS_OWNED_KMS_KEY" + } + ] + } + }, + "com.amazonaws.keyspaces#GenericString": { + "type": "string" + }, + "com.amazonaws.keyspaces#GetKeyspace": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#GetKeyspaceRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#GetKeyspaceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns the name and the Amazon Resource Name (ARN) of the specified table.

" + } + }, + "com.amazonaws.keyspaces#GetKeyspaceRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#GetKeyspaceResponse": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace.

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

The ARN of the keyspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#GetTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#GetTableRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#GetTableResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about the table, including the table's name and current status, the keyspace name, configuration settings, and metadata.

" + } + }, + "com.amazonaws.keyspaces#GetTableRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace that the table is stored in.

", + "smithy.api#required": {} + } + }, + "tableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the table.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#GetTableResponse": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace that the specified table is stored in.

", + "smithy.api#required": {} + } + }, + "tableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the specified table.

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

The Amazon Resource Name (ARN) of the specified table.

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

The creation timestamp of the specified table.

" + } + }, + "status": { + "target": "com.amazonaws.keyspaces#TableStatus", + "traits": { + "smithy.api#documentation": "

The current status of the specified table.

" + } + }, + "schemaDefinition": { + "target": "com.amazonaws.keyspaces#SchemaDefinition", + "traits": { + "smithy.api#documentation": "

The schema definition of the specified table.

" + } + }, + "capacitySpecification": { + "target": "com.amazonaws.keyspaces#CapacitySpecificationSummary", + "traits": { + "smithy.api#documentation": "

The read/write throughput capacity mode for a table. The options are:

\n " + } + }, + "encryptionSpecification": { + "target": "com.amazonaws.keyspaces#EncryptionSpecification", + "traits": { + "smithy.api#documentation": "

The encryption settings of the specified table.

" + } + }, + "pointInTimeRecovery": { + "target": "com.amazonaws.keyspaces#PointInTimeRecoverySummary", + "traits": { + "smithy.api#documentation": "

The point-in-time recovery status of the specified table.

" + } + }, + "ttl": { + "target": "com.amazonaws.keyspaces#TimeToLive", + "traits": { + "smithy.api#documentation": "

The custom Time to Live settings of the specified table.

" + } + }, + "defaultTimeToLive": { + "target": "com.amazonaws.keyspaces#DefaultTimeToLive", + "traits": { + "smithy.api#documentation": "

The default Time to Live settings of the specified table.

" + } + }, + "comment": { + "target": "com.amazonaws.keyspaces#Comment", + "traits": { + "smithy.api#documentation": "

The the description of the specified table.

" + } + } + } + }, + "com.amazonaws.keyspaces#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "InternalServerException", + "httpResponseCode": 500 + }, + "smithy.api#documentation": "

Amazon Keyspaces was unable to fully process this request because of an internal server error.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.keyspaces#KeyspaceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 48 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$" + } + }, + "com.amazonaws.keyspaces#KeyspaceSummary": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace.

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

The unique identifier of the keyspace in the format of an Amazon Resource Name (ARN).

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

Represents the properties of a keyspace.

" + } + }, + "com.amazonaws.keyspaces#KeyspaceSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#KeyspaceSummary" + } + }, + "com.amazonaws.keyspaces#KeyspacesService": { + "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Keyspaces", + "cloudFormationName": "Cassandra", + "arnNamespace": "cassandra", + "cloudTrailEventSource": "cassandra.amazonaws.com", + "endpointPrefix": "cassandra" + }, + "aws.auth#sigv4": { + "name": "cassandra" + }, + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "

Amazon Keyspaces (for Apache Cassandra) is a scalable,\n highly available, and managed Apache Cassandra-compatible database service. Amazon Keyspaces makes it easy to migrate,\n run, and scale Cassandra workloads in the Amazon Web Services Cloud. With just a few clicks on the Amazon Web Services Management Console or a few lines of code, \n you can create keyspaces and tables in Amazon Keyspaces, without deploying any infrastructure or installing software.

\n \n

In addition to supporting Cassandra Query Language (CQL) requests via open-source Cassandra drivers, \n Amazon Keyspaces supports data definition language (DDL) operations to manage keyspaces and tables using the Amazon Web Services SDK and CLI. This API reference describes\n the supported DDL operations in detail.

\n \n \n

For the list of all supported CQL APIs, see Supported Cassandra APIs, operations, and data types in Amazon Keyspaces in the Amazon Keyspaces Developer\n Guide.

\n \n

For more information about Amazon Web Services APIs, for example how to implement retry logic or how to sign Amazon Web Services API requests, see Amazon Web Services APIs in the General Reference.

\n
", + "smithy.api#title": "Amazon Keyspaces" + }, + "version": "2022-02-10", + "operations": [ + { + "target": "com.amazonaws.keyspaces#CreateKeyspace" + }, + { + "target": "com.amazonaws.keyspaces#CreateTable" + }, + { + "target": "com.amazonaws.keyspaces#DeleteKeyspace" + }, + { + "target": "com.amazonaws.keyspaces#DeleteTable" + }, + { + "target": "com.amazonaws.keyspaces#GetKeyspace" + }, + { + "target": "com.amazonaws.keyspaces#GetTable" + }, + { + "target": "com.amazonaws.keyspaces#ListKeyspaces" + }, + { + "target": "com.amazonaws.keyspaces#ListTables" + }, + { + "target": "com.amazonaws.keyspaces#ListTagsForResource" + }, + { + "target": "com.amazonaws.keyspaces#RestoreTable" + }, + { + "target": "com.amazonaws.keyspaces#TagResource" + }, + { + "target": "com.amazonaws.keyspaces#UntagResource" + }, + { + "target": "com.amazonaws.keyspaces#UpdateTable" + } + ] + }, + "com.amazonaws.keyspaces#ListKeyspaces": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#ListKeyspacesRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#ListKeyspacesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of keyspaces.

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "keyspaces" + } + } + }, + "com.amazonaws.keyspaces#ListKeyspacesRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.keyspaces#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.

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

The total number of keyspaces to return in the output. If the total number of keyspaces available \n is more than the value specified, a NextToken is provided in the output. To resume pagination, \n provide the NextToken value as an argument of a subsequent API invocation.

" + } + } + } + }, + "com.amazonaws.keyspaces#ListKeyspacesResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.keyspaces#NextToken", + "traits": { + "smithy.api#documentation": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + } + }, + "keyspaces": { + "target": "com.amazonaws.keyspaces#KeyspaceSummaryList", + "traits": { + "smithy.api#documentation": "

A list of keyspaces.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#ListTables": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#ListTablesRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#ListTablesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of tables for a specified keyspace.

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "tables" + } + } + }, + "com.amazonaws.keyspaces#ListTablesRequest": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.keyspaces#NextToken", + "traits": { + "smithy.api#documentation": "

The pagination token. To resume pagination, provide the NextToken value as an argument of a subsequent API invocation.

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

The total number of tables to return in the output. If the total number of tables available \n is more than the value specified, a NextToken is provided in the output. To resume pagination, \n provide the NextToken value as an argument of a subsequent API invocation.

" + } + }, + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#ListTablesResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.keyspaces#NextToken", + "traits": { + "smithy.api#documentation": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

" + } + }, + "tables": { + "target": "com.amazonaws.keyspaces#TableSummaryList", + "traits": { + "smithy.api#documentation": "

A list of tables.

" + } + } + } + }, + "com.amazonaws.keyspaces#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a list of all tags associated with the specified Amazon Keyspaces resource.

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "tags" + } + } + }, + "com.amazonaws.keyspaces#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Keyspaces resource.

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

The pagination token. To resume pagination, provide the NextToken value as argument of a subsequent API invocation.

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

The total number of tags to return in the output. If the total number of tags available \n is more than the value specified, a NextToken is provided in the output. To resume pagination, \n provide the NextToken value as an argument of a subsequent API invocation.

" + } + } + } + }, + "com.amazonaws.keyspaces#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "nextToken": { + "target": "com.amazonaws.keyspaces#NextToken", + "traits": { + "smithy.api#documentation": "

A token to specify where to start paginating. This is the NextToken from a previously truncated response.

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

A list of tags.

" + } + } + } + }, + "com.amazonaws.keyspaces#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 1, + "max": 1000 + } + } + }, + "com.amazonaws.keyspaces#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2048 + } + } + }, + "com.amazonaws.keyspaces#PartitionKey": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.keyspaces#GenericString", + "traits": { + "smithy.api#documentation": "

The name(s) of the partition key column(s).

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

The partition key portion of the primary key is required \n and determines how Amazon Keyspaces stores the data. \n The partition key can be a single column, or it can be a compound value composed of two or more columns.

" + } + }, + "com.amazonaws.keyspaces#PartitionKeyList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#PartitionKey" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.keyspaces#PointInTimeRecovery": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.keyspaces#PointInTimeRecoveryStatus", + "traits": { + "smithy.api#documentation": "

The options are:

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

Point-in-time recovery (PITR) helps protect your Amazon Keyspaces tables from accidental write or delete operations by providing you continuous backups of your table data.

\n

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#PointInTimeRecoveryStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, + "com.amazonaws.keyspaces#PointInTimeRecoverySummary": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.keyspaces#PointInTimeRecoveryStatus", + "traits": { + "smithy.api#documentation": "

Shows if point-in-time recovery is enabled or disabled for the specified table.

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

Specifies the earliest possible restore point of the table in ISO 8601 format.

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

The point-in-time recovery status of the specified table.

" + } + }, + "com.amazonaws.keyspaces#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + }, + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier in the format of Amazon Resource Name (ARN), for the resource not found.

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceNotFoundException", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

The operation tried to access a keyspace or table that doesn't exist. The resource might not be specified correctly, or its status might not be ACTIVE.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.keyspaces#RestoreTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#RestoreTableRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#RestoreTableResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Restores the specified table to the specified point in time within the\n earliest_restorable_timestamp and the current time. For more information about restore points, see \n \n Time window for PITR continuous backups in the Amazon Keyspaces Developer Guide. \n

\n

\n Any number of users can execute up to 4 concurrent restores (any type of restore) in a given account.

\n

When you restore using point in time recovery, Amazon Keyspaces restores your source table's schema and data to the state \n based on the selected timestamp (day:hour:minute:second) to a new table. The Time to Live (TTL) settings\n are also restored to the state based on the selected timestamp.

\n

In addition to the table's schema, data, and TTL settings, RestoreTable restores the capacity mode, encryption, and\n point-in-time recovery settings from the source table. \n Unlike the table's schema data and TTL settings, which are restored based on the selected timestamp, \n these settings are always restored based on the table's settings as of the current time or when the table was deleted.

\n

You can also overwrite these settings during restore:

\n \n

For more information, see PITR restore settings in the Amazon Keyspaces Developer\n Guide.

\n

The following settings are not restored, and you must configure them manually for the\n new table.

\n " + } + }, + "com.amazonaws.keyspaces#RestoreTableRequest": { + "type": "structure", + "members": { + "sourceKeyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The keyspace name of the source table.

", + "smithy.api#required": {} + } + }, + "sourceTableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the source table.

", + "smithy.api#required": {} + } + }, + "targetKeyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the target keyspace.

", + "smithy.api#required": {} + } + }, + "targetTableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the target table.

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

The restore timestamp in ISO 8601 format.

" + } + }, + "capacitySpecificationOverride": { + "target": "com.amazonaws.keyspaces#CapacitySpecification", + "traits": { + "smithy.api#documentation": "

Specifies the read/write throughput capacity mode for the target table. The options are:

\n \n

The default is throughput_mode:PAY_PER_REQUEST.

\n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "encryptionSpecificationOverride": { + "target": "com.amazonaws.keyspaces#EncryptionSpecification", + "traits": { + "smithy.api#documentation": "

\n Specifies the encryption settings for the target table. You can choose one of the following KMS key (KMS key):

\n \n \n

The default is type:AWS_OWNED_KMS_KEY.

\n

For more information, see Encryption at rest in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "pointInTimeRecoveryOverride": { + "target": "com.amazonaws.keyspaces#PointInTimeRecovery", + "traits": { + "smithy.api#documentation": "

\n Specifies the pointInTimeRecovery settings for the target\n table. The options are:

\n \n

If it's not specified, the default is DISABLED.

\n

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer\n Guide.

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

A list of key-value pair tags to be\n attached to the restored table.

\n

For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer\n Guide.

" + } + } + } + }, + "com.amazonaws.keyspaces#RestoreTableResponse": { + "type": "structure", + "members": { + "restoredTableARN": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the restored table.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#SchemaDefinition": { + "type": "structure", + "members": { + "allColumns": { + "target": "com.amazonaws.keyspaces#ColumnDefinitionList", + "traits": { + "smithy.api#documentation": "

The regular columns of the table.

", + "smithy.api#required": {} + } + }, + "partitionKeys": { + "target": "com.amazonaws.keyspaces#PartitionKeyList", + "traits": { + "smithy.api#documentation": "

The columns that are part of the partition key of the table .

", + "smithy.api#required": {} + } + }, + "clusteringKeys": { + "target": "com.amazonaws.keyspaces#ClusteringKeyList", + "traits": { + "smithy.api#documentation": "

The columns that are part of the clustering key of the table.

" + } + }, + "staticColumns": { + "target": "com.amazonaws.keyspaces#StaticColumnList", + "traits": { + "smithy.api#documentation": "

The columns that have been defined as STATIC. Static columns store values that are shared by all rows in the same partition.

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

Describes the schema of the table.

" + } + }, + "com.amazonaws.keyspaces#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ServiceQuotaExceededException", + "httpResponseCode": 402 + }, + "smithy.api#documentation": "

The operation exceeded the service quota for this resource. For more information on service quotas, see Quotas in the Amazon Keyspaces Developer\n Guide.

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.keyspaces#SortOrder": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ASC", + "name": "ASC" + }, + { + "value": "DESC", + "name": "DESC" + } + ] + } + }, + "com.amazonaws.keyspaces#StaticColumn": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.keyspaces#GenericString", + "traits": { + "smithy.api#documentation": "

The name of the static column.

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

The static columns of the table. Static columns store values that are shared by all rows in the same partition.

" + } + }, + "com.amazonaws.keyspaces#StaticColumnList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#StaticColumn" + } + }, + "com.amazonaws.keyspaces#TableName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 48 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$" + } + }, + "com.amazonaws.keyspaces#TableStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "UPDATING", + "name": "UPDATING" + }, + { + "value": "DELETING", + "name": "DELETING" + }, + { + "value": "DELETED", + "name": "DELETED" + }, + { + "value": "RESTORING", + "name": "RESTORING" + }, + { + "value": "INACCESSIBLE_ENCRYPTION_CREDENTIALS", + "name": "INACCESSIBLE_ENCRYPTION_CREDENTIALS" + } + ] + } + }, + "com.amazonaws.keyspaces#TableSummary": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace that the table is stored in.

", + "smithy.api#required": {} + } + }, + "tableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the table.

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

The unique identifier of the table in the format of an Amazon Resource Name (ARN).

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

Returns the name of the specified table, the keyspace it is stored in, and the unique identifier in the format of an Amazon Resource Name (ARN).

" + } + }, + "com.amazonaws.keyspaces#TableSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#TableSummary" + } + }, + "com.amazonaws.keyspaces#Tag": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.keyspaces#TagKey", + "traits": { + "smithy.api#documentation": "

The key of the tag. Tag keys are case sensitive. Each Amazon Keyspaces resource can only have up to one tag with the same key. If you try to add an \n existing tag (same key), the existing tag value will be updated to the new value.

", + "smithy.api#required": {} + } + }, + "value": { + "target": "com.amazonaws.keyspaces#TagValue", + "traits": { + "smithy.api#documentation": "

The value of the tag. Tag values are case-sensitive and can be null.

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

Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a single Amazon Keyspaces resource.

\n

Amazon Web Services-assigned tag names and values are automatically assigned the aws: prefix, which the user cannot assign. \n Amazon Web Services-assigned tag names do not count towards the tag limit of 50. User-assigned tag names have the \n prefix user: in the Cost Allocation Report. You cannot backdate the application of a tag.

\n

For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.keyspaces#TagList": { + "type": "list", + "member": { + "target": "com.amazonaws.keyspaces#Tag" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 60 + } + } + }, + "com.amazonaws.keyspaces#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Associates a set of tags with a Amazon Keyspaces resource. You can then \n activate these user-defined tags so that they appear on the Cost Management Console for cost allocation tracking.

\n

For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#TagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Amazon Keyspaces resource to which to add tags.

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

The tags to be assigned to the Amazon Keyspaces resource.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#TagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.keyspaces#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.keyspaces#ThroughputMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PAY_PER_REQUEST", + "name": "PAY_PER_REQUEST" + }, + { + "value": "PROVISIONED", + "name": "PROVISIONED" + } + ] + } + }, + "com.amazonaws.keyspaces#TimeToLive": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.keyspaces#TimeToLiveStatus", + "traits": { + "smithy.api#documentation": "

Shows how to enable custom Time to Live (TTL) settings for the specified table.

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

Enable custom Time to Live (TTL) settings for rows and columns without setting a TTL default for the specified table.

\n

For more information, see Enabling TTL on tables in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "com.amazonaws.keyspaces#TimeToLiveStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ENABLED", + "name": "ENABLED" + } + ] + } + }, + "com.amazonaws.keyspaces#Timestamp": { + "type": "timestamp" + }, + "com.amazonaws.keyspaces#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Removes the association of tags from a Amazon Keyspaces resource.

" + } + }, + "com.amazonaws.keyspaces#UntagResourceRequest": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Keyspaces resource that the tags will be removed from. This value is an Amazon Resource Name (ARN).

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

A list of existing tags to be removed from the Amazon Keyspaces resource.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#UntagResourceResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.keyspaces#UpdateTable": { + "type": "operation", + "input": { + "target": "com.amazonaws.keyspaces#UpdateTableRequest" + }, + "output": { + "target": "com.amazonaws.keyspaces#UpdateTableResponse" + }, + "errors": [ + { + "target": "com.amazonaws.keyspaces#AccessDeniedException" + }, + { + "target": "com.amazonaws.keyspaces#ConflictException" + }, + { + "target": "com.amazonaws.keyspaces#InternalServerException" + }, + { + "target": "com.amazonaws.keyspaces#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.keyspaces#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.keyspaces#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Adds new columns to the table or updates one of the table's settings, for example\n capacity mode, encryption, point-in-time recovery, or ttl settings.\n Note that you can only update one specific table setting per update operation.

" + } + }, + "com.amazonaws.keyspaces#UpdateTableRequest": { + "type": "structure", + "members": { + "keyspaceName": { + "target": "com.amazonaws.keyspaces#KeyspaceName", + "traits": { + "smithy.api#documentation": "

The name of the keyspace the specified table is stored in.

", + "smithy.api#required": {} + } + }, + "tableName": { + "target": "com.amazonaws.keyspaces#TableName", + "traits": { + "smithy.api#documentation": "

The name of the table.

", + "smithy.api#required": {} + } + }, + "addColumns": { + "target": "com.amazonaws.keyspaces#ColumnDefinitionList", + "traits": { + "smithy.api#documentation": "

For each column to be added to the specified table:

\n " + } + }, + "capacitySpecification": { + "target": "com.amazonaws.keyspaces#CapacitySpecification", + "traits": { + "smithy.api#documentation": "

Modifies the read/write throughput capacity mode for the table. The options are:

\n \n

The default is throughput_mode:PAY_PER_REQUEST.

\n

For more information, see Read/write capacity modes in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "encryptionSpecification": { + "target": "com.amazonaws.keyspaces#EncryptionSpecification", + "traits": { + "smithy.api#documentation": "

\n Modifies the encryption settings of the table. You can choose one of the following KMS key (KMS key):

\n \n \n

The default is AWS_OWNED_KMS_KEY.

\n

For more information, see Encryption at rest in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "pointInTimeRecovery": { + "target": "com.amazonaws.keyspaces#PointInTimeRecovery", + "traits": { + "smithy.api#documentation": "

\n Modifies the pointInTimeRecovery settings of the table. The options are:

\n \n

If it's not specified, the default is DISABLED.

\n

For more information, see Point-in-time recovery in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "ttl": { + "target": "com.amazonaws.keyspaces#TimeToLive", + "traits": { + "smithy.api#documentation": "

Modifies Time to Live custom settings for the table. The options are:

\n \n

The default is status:disabled. After\n ttl is enabled, you can't disable it\n for the table.

\n

For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer\n Guide.

" + } + }, + "defaultTimeToLive": { + "target": "com.amazonaws.keyspaces#DefaultTimeToLive", + "traits": { + "smithy.api#documentation": "

The default Time to Live setting in seconds for the table.

\n

For more information, see Setting the default TTL value for a table in the Amazon Keyspaces Developer\n Guide.

" + } + } + } + }, + "com.amazonaws.keyspaces#UpdateTableResponse": { + "type": "structure", + "members": { + "resourceArn": { + "target": "com.amazonaws.keyspaces#ARN", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the modified table.

", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.keyspaces#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ValidationException", + "httpResponseCode": 400 + }, + "smithy.api#documentation": "

The operation failed due to an invalid or malformed request.

", + "smithy.api#error": "client" + } + }, + "com.amazonaws.keyspaces#kmsKeyARN": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 5096 + } + } + } + } +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/macie.2017-12-19.json b/codegen/sdk-codegen/aws-models/macie.2017-12-19.json index 05f7f6c7f49..bd9c3c4b71a 100644 --- a/codegen/sdk-codegen/aws-models/macie.2017-12-19.json +++ b/codegen/sdk-codegen/aws-models/macie.2017-12-19.json @@ -32,7 +32,7 @@ "com.amazonaws.macie#AWSAccountId": { "type": "string", "traits": { - "smithy.api#pattern": "[0-9]{12}" + "smithy.api#pattern": "^[0-9]{12}$" } }, "com.amazonaws.macie#AccessDeniedException": { @@ -46,7 +46,7 @@ } }, "traits": { - "smithy.api#documentation": "

You do not have required permissions to access the requested resource.

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

(Discontinued) You do not have required permissions to access the requested resource.

", "smithy.api#error": "client" } }, @@ -67,7 +67,7 @@ } ], "traits": { - "smithy.api#documentation": "

Associates a specified AWS account with Amazon Macie Classic as a member\n account.

" + "smithy.api#documentation": "

(Discontinued) Associates a specified Amazon Web Services account with Amazon Macie Classic as a member\n account.

" } }, "com.amazonaws.macie#AssociateMemberAccountRequest": { @@ -76,7 +76,7 @@ "memberAccountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The ID of the AWS account that you want to associate with Amazon Macie Classic as a\n member account.

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

(Discontinued) The ID of the Amazon Web Services account that you want to associate with Amazon Macie\n Classic as a member account.

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

Associates specified S3 resources with Amazon Macie Classic for monitoring and data\n classification. If memberAccountId isn't specified, the action associates specified S3\n resources with Macie Classic for the current Macie Classic administrator account. If memberAccountId is specified,\n the action associates specified S3 resources with Macie Classic for the specified member\n account.

" + "smithy.api#documentation": "

(Discontinued) Associates specified S3 resources with Amazon Macie Classic for\n monitoring and data classification. If memberAccountId isn't specified, the action associates\n specified S3 resources with Macie Classic for the current Macie Classic administrator account.\n If memberAccountId is specified, the action associates specified S3 resources with Macie\n Classic for the specified member account.

" } }, "com.amazonaws.macie#AssociateS3ResourcesRequest": { @@ -114,13 +114,13 @@ "memberAccountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Macie Classic member account whose resources you want to associate\n with Macie Classic.

" + "smithy.api#documentation": "

(Discontinued) The ID of the Amazon Macie Classic member account whose resources you\n want to associate with Macie Classic.

" } }, "s3Resources": { "target": "com.amazonaws.macie#S3ResourcesClassification", "traits": { - "smithy.api#documentation": "

The S3 resources that you want to associate with Amazon Macie Classic for monitoring\n and data classification.

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

(Discontinued) The S3 resources that you want to associate with Amazon Macie Classic\n for monitoring and data classification.

", "smithy.api#required": {} } } @@ -132,7 +132,7 @@ "failedS3Resources": { "target": "com.amazonaws.macie#FailedS3Resources", "traits": { - "smithy.api#documentation": "

S3 resources that couldn't be associated with Amazon Macie Classic. An error code and\n an error message are provided for each failed item.

" + "smithy.api#documentation": "

(Discontinued) S3 resources that couldn't be associated with Amazon Macie Classic. An\n error code and an error message are provided for each failed item.

" } } } @@ -152,20 +152,20 @@ "oneTime": { "target": "com.amazonaws.macie#S3OneTimeClassificationType", "traits": { - "smithy.api#documentation": "

A one-time classification of all of the existing objects in a specified S3 bucket.\n

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

(Discontinued) A one-time classification of all of the existing objects in a specified\n S3 bucket.

", "smithy.api#required": {} } }, "continuous": { "target": "com.amazonaws.macie#S3ContinuousClassificationType", "traits": { - "smithy.api#documentation": "

A continuous classification of the objects that are added to a specified S3 bucket.\n Amazon Macie Classic begins performing continuous classification after a bucket is\n successfully associated with Macie Classic.

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

(Discontinued) A continuous classification of the objects that are added to a specified\n S3 bucket. Amazon Macie Classic begins performing continuous classification after a bucket is\n successfully associated with Macie Classic.

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

The classification type that Amazon Macie Classic applies to the associated S3\n resources.

" + "smithy.api#documentation": "

(Discontinued) The classification type that Amazon Macie Classic applies to the\n associated S3 resources.

" } }, "com.amazonaws.macie#ClassificationTypeUpdate": { @@ -174,18 +174,18 @@ "oneTime": { "target": "com.amazonaws.macie#S3OneTimeClassificationType", "traits": { - "smithy.api#documentation": "

A one-time classification of all of the existing objects in a specified S3 bucket.\n

" + "smithy.api#documentation": "

(Discontinued) A one-time classification of all of the existing objects in a specified\n S3 bucket.

" } }, "continuous": { "target": "com.amazonaws.macie#S3ContinuousClassificationType", "traits": { - "smithy.api#documentation": "

A continuous classification of the objects that are added to a specified S3 bucket.\n Amazon Macie Classic begins performing continuous classification after a bucket is\n successfully associated with Macie Classic.

" + "smithy.api#documentation": "

(Discontinued) A continuous classification of the objects that are added to a specified\n S3 bucket. Amazon Macie Classic begins performing continuous classification after a bucket is\n successfully associated with Macie Classic.

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

The classification type that Amazon Macie Classic applies to the associated S3\n resources. At least one of the classification types (oneTime or continuous) must be specified.\n

" + "smithy.api#documentation": "

(Discontinued) The classification type that Amazon Macie Classic applies to the\n associated S3 resources. At least one of the classification types (oneTime or continuous) must\n be specified.

" } }, "com.amazonaws.macie#DisassociateMemberAccount": { @@ -202,7 +202,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the specified member account from Amazon Macie Classic.

" + "smithy.api#documentation": "

(Discontinued) Removes the specified member account from Amazon Macie\n Classic.

" } }, "com.amazonaws.macie#DisassociateMemberAccountRequest": { @@ -211,7 +211,7 @@ "memberAccountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The ID of the member account that you want to remove from Amazon Macie\n Classic.

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

(Discontinued) The ID of the member account that you want to remove from Amazon Macie\n Classic.

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

Removes specified S3 resources from being monitored by Amazon Macie Classic. If\n memberAccountId isn't specified, the action removes specified S3 resources from Macie Classic\n for the current Macie Classic administrator account. If memberAccountId is specified, the action removes specified\n S3 resources from Macie Classic for the specified member account.

" + "smithy.api#documentation": "

(Discontinued) Removes specified S3 resources from being monitored by Amazon Macie\n Classic. If memberAccountId isn't specified, the action removes specified S3 resources from\n Macie Classic for the current Macie Classic administrator account. If memberAccountId is\n specified, the action removes specified S3 resources from Macie Classic for the specified\n member account.

" } }, "com.amazonaws.macie#DisassociateS3ResourcesRequest": { @@ -246,13 +246,13 @@ "memberAccountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The ID of the Amazon Macie Classic member account whose resources you want to remove\n from being monitored by Macie Classic.

" + "smithy.api#documentation": "

(Discontinued) The ID of the Amazon Macie Classic member account whose resources you\n want to remove from being monitored by Macie Classic.

" } }, "associatedS3Resources": { "target": "com.amazonaws.macie#S3Resources", "traits": { - "smithy.api#documentation": "

The S3 resources (buckets or prefixes) that you want to remove from being monitored and\n classified by Amazon Macie Classic.

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

(Discontinued) The S3 resources (buckets or prefixes) that you want to remove from\n being monitored and classified by Amazon Macie Classic.

", "smithy.api#required": {} } } @@ -264,7 +264,7 @@ "failedS3Resources": { "target": "com.amazonaws.macie#FailedS3Resources", "traits": { - "smithy.api#documentation": "

S3 resources that couldn't be removed from being monitored and classified by Amazon\n Macie Classic. An error code and an error message are provided for each failed item.\n

" + "smithy.api#documentation": "

(Discontinued) S3 resources that couldn't be removed from being monitored and\n classified by Amazon Macie Classic. An error code and an error message are provided for each\n failed item.

" } } } @@ -294,24 +294,24 @@ "failedItem": { "target": "com.amazonaws.macie#S3Resource", "traits": { - "smithy.api#documentation": "

The failed S3 resources.

" + "smithy.api#documentation": "

(Discontinued) The failed S3 resources.

" } }, "errorCode": { "target": "com.amazonaws.macie#ErrorCode", "traits": { - "smithy.api#documentation": "

The status code of a failed item.

" + "smithy.api#documentation": "

(Discontinued) The status code of a failed item.

" } }, "errorMessage": { "target": "com.amazonaws.macie#ExceptionMessage", "traits": { - "smithy.api#documentation": "

The error message of a failed item.

" + "smithy.api#documentation": "

(Discontinued) The error message of a failed item.

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

Includes details about the failed S3 resources.

" + "smithy.api#documentation": "

(Discontinued) Includes details about the failed S3 resources.

" } }, "com.amazonaws.macie#FailedS3Resources": { @@ -341,7 +341,7 @@ } }, "traits": { - "smithy.api#documentation": "

Internal server error.

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

(Discontinued) Internal server error.

", "smithy.api#error": "server" } }, @@ -359,7 +359,7 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because an invalid or out-of-range value was supplied for an\n input parameter.

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

(Discontinued) The request was rejected because an invalid or out-of-range value was supplied for an\n input parameter.

", "smithy.api#error": "client" } }, @@ -377,7 +377,7 @@ } }, "traits": { - "smithy.api#documentation": "

The request was rejected because it attempted to create resources beyond the current\n AWS account limits. The error code describes the limit exceeded.

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

(Discontinued) The request was rejected because it attempted to create resources beyond the current\n Amazon Web Services account quotas. The error code describes the quota exceeded.

", "smithy.api#error": "client" } }, @@ -398,7 +398,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all Amazon Macie Classic member accounts for the current Macie Classic administrator account.

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

(Discontinued) Lists all Amazon Macie Classic member accounts for the current Macie\n Classic administrator account.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -412,13 +412,13 @@ "nextToken": { "target": "com.amazonaws.macie#NextToken", "traits": { - "smithy.api#documentation": "

Use this parameter when paginating results. Set the value of this parameter to null on\n your first call to the ListMemberAccounts action. Subsequent calls to the action fill\n nextToken in the request with the value of nextToken from the previous response to continue\n listing data.

" + "smithy.api#documentation": "

(Discontinued) Use this parameter when paginating results. Set the value of this\n parameter to null on your first call to the ListMemberAccounts action. Subsequent calls to the\n action fill nextToken in the request with the value of nextToken from the previous response to\n continue listing data.

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

Use this parameter to indicate the maximum number of items that you want in the\n response. The default value is 250.

" + "smithy.api#documentation": "

(Discontinued) Use this parameter to indicate the maximum number of items that you want\n in the response. The default value is 250.

" } } } @@ -429,13 +429,13 @@ "memberAccounts": { "target": "com.amazonaws.macie#MemberAccounts", "traits": { - "smithy.api#documentation": "

A list of the Amazon Macie Classic member accounts returned by the action. The current\n Macie Classic administrator account is also included in this list.

" + "smithy.api#documentation": "

(Discontinued) A list of the Amazon Macie Classic member accounts returned by the\n action. The current Macie Classic administrator account is also included in this\n list.

" } }, "nextToken": { "target": "com.amazonaws.macie#NextToken", "traits": { - "smithy.api#documentation": "

When a response is generated, if there is more data to be listed, this parameter is\n present in the response and contains the value to use for the nextToken parameter in a\n subsequent pagination request. If there is no more data to be listed, this parameter is set to\n null.

" + "smithy.api#documentation": "

(Discontinued) When a response is generated, if there is more data to be listed, this\n parameter is present in the response and contains the value to use for the nextToken parameter\n in a subsequent pagination request. If there is no more data to be listed, this parameter is\n set to null.

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

Lists all the S3 resources associated with Amazon Macie Classic. If memberAccountId\n isn't specified, the action lists the S3 resources associated with Macie Classic for\n the current Macie Classic administrator account. If memberAccountId is specified, the action lists the S3 resources\n associated with Macie Classic for the specified member account.

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

(Discontinued) Lists all the S3 resources associated with Amazon Macie Classic. If\n memberAccountId isn't specified, the action lists the S3 resources associated with Macie\n Classic for the current Macie Classic administrator account. If memberAccountId is specified,\n the action lists the S3 resources associated with Macie Classic for the specified member\n account.

", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -474,19 +474,19 @@ "memberAccountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The Amazon Macie Classic member account ID whose associated S3 resources you want to\n list.

" + "smithy.api#documentation": "

(Discontinued) The Amazon Macie Classic member account ID whose associated S3 resources\n you want to list.

" } }, "nextToken": { "target": "com.amazonaws.macie#NextToken", "traits": { - "smithy.api#documentation": "

Use this parameter when paginating results. Set its value to null on your first call to\n the ListS3Resources action. Subsequent calls to the action fill nextToken in the request with\n the value of nextToken from the previous response to continue listing data.

" + "smithy.api#documentation": "

(Discontinued) Use this parameter when paginating results. Set its value to null on\n your first call to the ListS3Resources action. Subsequent calls to the action fill nextToken\n in the request with the value of nextToken from the previous response to continue listing\n data.

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

Use this parameter to indicate the maximum number of items that you want in the\n response. The default value is 250.

" + "smithy.api#documentation": "

(Discontinued) Use this parameter to indicate the maximum number of items that you want\n in the response. The default value is 250.

" } } } @@ -497,19 +497,34 @@ "s3Resources": { "target": "com.amazonaws.macie#S3ResourcesClassification", "traits": { - "smithy.api#documentation": "

A list of the associated S3 resources returned by the action.

" + "smithy.api#documentation": "

(Discontinued) A list of the associated S3 resources returned by the action.

" } }, "nextToken": { "target": "com.amazonaws.macie#NextToken", "traits": { - "smithy.api#documentation": "

When a response is generated, if there is more data to be listed, this parameter is\n present in the response and contains the value to use for the nextToken parameter in a\n subsequent pagination request. If there is no more data to be listed, this parameter is set to\n null.

" + "smithy.api#documentation": "

(Discontinued) When a response is generated, if there is more data to be listed, this\n parameter is present in the response and contains the value to use for the nextToken parameter\n in a subsequent pagination request. If there is no more data to be listed, this parameter is\n set to null.

" } } } }, "com.amazonaws.macie#MacieService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Macie", + "arnNamespace": "macie", + "cloudFormationName": "Macie", + "cloudTrailEventSource": "macie.amazonaws.com", + "endpointPrefix": "macie" + }, + "aws.auth#sigv4": { + "name": "macie" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Macie Classic\n

Amazon Macie Classic has been discontinued and is no longer available.

\n \n

A new Amazon Macie is now available with significant design improvements and additional\n features, at a lower price and in most Amazon Web Services Regions. We encourage you to take advantage of the\n new and improved features, and benefit from the reduced cost. To learn about features and pricing for the new Macie, see Amazon Macie. To learn how to use the new Macie, see the Amazon Macie User\n Guide.

", + "smithy.api#title": "Amazon Macie" + }, "version": "2017-12-19", "operations": [ { @@ -533,22 +548,7 @@ { "target": "com.amazonaws.macie#UpdateS3Resources" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Macie", - "arnNamespace": "macie", - "cloudFormationName": "Macie", - "cloudTrailEventSource": "macie.amazonaws.com", - "endpointPrefix": "macie" - }, - "aws.auth#sigv4": { - "name": "macie" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Amazon Macie Classic\n

Amazon Macie Classic is a security service that uses machine learning to automatically\n discover, classify, and protect sensitive data in AWS. Macie Classic recognizes sensitive data\n such as personally identifiable information (PII) or intellectual property, and provides you\n with dashboards and alerts that give visibility into how this data is being accessed or moved.\n For more information, see the Amazon Macie\n Classic User Guide.

", - "smithy.api#title": "Amazon Macie" - } + ] }, "com.amazonaws.macie#MaxResults": { "type": "integer", @@ -565,12 +565,12 @@ "accountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The AWS account ID of the Amazon Macie Classic member account.

" + "smithy.api#documentation": "

(Discontinued) The Amazon Web Services account ID of the Amazon Macie Classic member account.

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

Contains information about the Amazon Macie Classic member account.

" + "smithy.api#documentation": "

(Discontinued) Contains information about the Amazon Macie Classic member\n account.

" } }, "com.amazonaws.macie#MemberAccounts": { @@ -639,19 +639,19 @@ "bucketName": { "target": "com.amazonaws.macie#BucketName", "traits": { - "smithy.api#documentation": "

The name of the S3 bucket.

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

(Discontinued) The name of the S3 bucket.

", "smithy.api#required": {} } }, "prefix": { "target": "com.amazonaws.macie#Prefix", "traits": { - "smithy.api#documentation": "

The prefix of the S3 bucket.

" + "smithy.api#documentation": "

(Discontinued) The prefix of the S3 bucket.

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

Contains information about the S3 resource. This data type is used as a request\n parameter in the DisassociateS3Resources action and can be used as a response parameter in the\n AssociateS3Resources and UpdateS3Resources actions.

" + "smithy.api#documentation": "

(Discontinued) Contains information about the S3 resource. This data type is used as a\n request parameter in the DisassociateS3Resources action and can be used as a response\n parameter in the AssociateS3Resources and UpdateS3Resources actions.

" } }, "com.amazonaws.macie#S3ResourceClassification": { @@ -660,26 +660,26 @@ "bucketName": { "target": "com.amazonaws.macie#BucketName", "traits": { - "smithy.api#documentation": "

The name of the S3 bucket that you want to associate with Amazon Macie\n Classic.

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

(Discontinued) The name of the S3 bucket that you want to associate with Amazon Macie\n Classic.

", "smithy.api#required": {} } }, "prefix": { "target": "com.amazonaws.macie#Prefix", "traits": { - "smithy.api#documentation": "

The prefix of the S3 bucket that you want to associate with Amazon Macie\n Classic.

" + "smithy.api#documentation": "

(Discontinued) The prefix of the S3 bucket that you want to associate with Amazon Macie\n Classic.

" } }, "classificationType": { "target": "com.amazonaws.macie#ClassificationType", "traits": { - "smithy.api#documentation": "

The classification type that you want to specify for the resource associated with\n Amazon Macie Classic.

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

(Discontinued) The classification type that you want to specify for the resource\n associated with Amazon Macie Classic.

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

The S3 resources that you want to associate with Amazon Macie Classic for monitoring\n and data classification. This data type is used as a request parameter in the\n AssociateS3Resources action and a response parameter in the ListS3Resources action.

" + "smithy.api#documentation": "

(Discontinued) The S3 resources that you want to associate with Amazon Macie Classic\n for monitoring and data classification. This data type is used as a request parameter in the\n AssociateS3Resources action and a response parameter in the ListS3Resources action.

" } }, "com.amazonaws.macie#S3ResourceClassificationUpdate": { @@ -688,26 +688,26 @@ "bucketName": { "target": "com.amazonaws.macie#BucketName", "traits": { - "smithy.api#documentation": "

The name of the S3 bucket whose classification types you want to update.

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

(Discontinued) The name of the S3 bucket whose classification types you want to\n update.

", "smithy.api#required": {} } }, "prefix": { "target": "com.amazonaws.macie#Prefix", "traits": { - "smithy.api#documentation": "

The prefix of the S3 bucket whose classification types you want to update.

" + "smithy.api#documentation": "

(Discontinued) The prefix of the S3 bucket whose classification types you want to\n update.

" } }, "classificationTypeUpdate": { "target": "com.amazonaws.macie#ClassificationTypeUpdate", "traits": { - "smithy.api#documentation": "

The classification type that you want to update for the resource associated with Amazon\n Macie Classic.

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

(Discontinued) The classification type that you want to update for the resource\n associated with Amazon Macie Classic.

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

The S3 resources whose classification types you want to update. This data type is used\n as a request parameter in the UpdateS3Resources action.

" + "smithy.api#documentation": "

(Discontinued) The S3 resources whose classification types you want to update. This\n data type is used as a request parameter in the UpdateS3Resources action.

" } }, "com.amazonaws.macie#S3Resources": { @@ -748,7 +748,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the classification types for the specified S3 resources. If memberAccountId\n isn't specified, the action updates the classification types of the S3 resources associated\n with Amazon Macie Classic for the current Macie Classic administrator account. If memberAccountId is specified, the\n action updates the classification types of the S3 resources associated with Macie\n Classic for the specified member account.

" + "smithy.api#documentation": "

(Discontinued) Updates the classification types for the specified S3 resources. If\n memberAccountId isn't specified, the action updates the classification types of the S3\n resources associated with Amazon Macie Classic for the current Macie Classic administrator\n account. If memberAccountId is specified, the action updates the classification types of the\n S3 resources associated with Macie Classic for the specified member account.

" } }, "com.amazonaws.macie#UpdateS3ResourcesRequest": { @@ -757,13 +757,13 @@ "memberAccountId": { "target": "com.amazonaws.macie#AWSAccountId", "traits": { - "smithy.api#documentation": "

The AWS ID of the Amazon Macie Classic member account whose S3 resources'\n classification types you want to update.

" + "smithy.api#documentation": "

(Discontinued) The Amazon Web Services account ID of the Amazon Macie Classic member account whose S3\n resources' classification types you want to update.

" } }, "s3ResourcesUpdate": { "target": "com.amazonaws.macie#S3ResourcesClassificationUpdate", "traits": { - "smithy.api#documentation": "

The S3 resources whose classification types you want to update.

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

(Discontinued) The S3 resources whose classification types you want to\n update.

", "smithy.api#required": {} } } @@ -775,7 +775,7 @@ "failedS3Resources": { "target": "com.amazonaws.macie#FailedS3Resources", "traits": { - "smithy.api#documentation": "

The S3 resources whose classification types can't be updated. An error code and an\n error message are provided for each failed item.

" + "smithy.api#documentation": "

(Discontinued) The S3 resources whose classification types can't be updated. An error\n code and an error message are provided for each failed item.

" } } } diff --git a/codegen/sdk-codegen/aws-models/mediapackage.2017-10-12.json b/codegen/sdk-codegen/aws-models/mediapackage.2017-10-12.json index aeba6134cc3..47e766e66fe 100644 --- a/codegen/sdk-codegen/aws-models/mediapackage.2017-10-12.json +++ b/codegen/sdk-codegen/aws-models/mediapackage.2017-10-12.json @@ -2339,6 +2339,21 @@ }, "com.amazonaws.mediapackage#MediaPackage": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "MediaPackage", + "arnNamespace": "mediapackage", + "cloudFormationName": "MediaPackage", + "cloudTrailEventSource": "mediapackage.amazonaws.com", + "endpointPrefix": "mediapackage" + }, + "aws.auth#sigv4": { + "name": "mediapackage" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "AWS Elemental MediaPackage", + "smithy.api#title": "AWS Elemental MediaPackage" + }, "version": "2017-10-12", "operations": [ { @@ -2398,22 +2413,7 @@ { "target": "com.amazonaws.mediapackage#UpdateOriginEndpoint" } - ], - "traits": { - "aws.api#service": { - "sdkId": "MediaPackage", - "arnNamespace": "mediapackage", - "cloudFormationName": "MediaPackage", - "cloudTrailEventSource": "mediapackage.amazonaws.com", - "endpointPrefix": "mediapackage" - }, - "aws.auth#sigv4": { - "name": "mediapackage" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "AWS Elemental MediaPackage", - "smithy.api#title": "AWS Elemental MediaPackage" - } + ] }, "com.amazonaws.mediapackage#MssEncryption": { "type": "structure", @@ -2661,6 +2661,10 @@ { "value": "HBBTV_1_5", "name": "HBBTV_1_5" + }, + { + "value": "HYBRIDCAST", + "name": "HYBRIDCAST" } ] } diff --git a/codegen/sdk-codegen/aws-models/mgn.2020-02-26.json b/codegen/sdk-codegen/aws-models/mgn.2020-02-26.json index 26586cbc317..4a81ea02397 100644 --- a/codegen/sdk-codegen/aws-models/mgn.2020-02-26.json +++ b/codegen/sdk-codegen/aws-models/mgn.2020-02-26.json @@ -108,6 +108,21 @@ } ] }, + "com.amazonaws.mgn#BootMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LEGACY_BIOS", + "name": "LEGACY_BIOS" + }, + { + "value": "UEFI", + "name": "UEFI" + } + ] + } + }, "com.amazonaws.mgn#BoundedString": { "type": "string", "traits": { @@ -233,13 +248,13 @@ "resourceId": { "target": "com.amazonaws.mgn#LargeBoundedString", "traits": { - "smithy.api#documentation": "

A conflict occured when prompting for the Resource ID.

" + "smithy.api#documentation": "

A conflict occurred when prompting for the Resource ID.

" } }, "resourceType": { "target": "com.amazonaws.mgn#LargeBoundedString", "traits": { - "smithy.api#documentation": "

A conflict occured when prompting for resource type.

" + "smithy.api#documentation": "

A conflict occurred when prompting for resource type.

" } } }, @@ -309,7 +324,7 @@ "replicationServersSecurityGroupsIDs": { "target": "com.amazonaws.mgn#ReplicationServersSecurityGroupsIDs", "traits": { - "smithy.api#documentation": "

Request to configure the Replication Server Secuirity group ID during Replication Settings template creation.

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

Request to configure the Replication Server Security group ID during Replication Settings template creation.

", "smithy.api#required": {} } }, @@ -330,21 +345,21 @@ "defaultLargeStagingDiskType": { "target": "com.amazonaws.mgn#ReplicationConfigurationDefaultLargeStagingDiskType", "traits": { - "smithy.api#documentation": "

Request to configure the Staging Disk EBS volume type to \"gp2\" during Replication Settings template creation.

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

Request to configure the default large staging disk EBS volume type during Replication Settings template creation.

", "smithy.api#required": {} } }, "ebsEncryption": { "target": "com.amazonaws.mgn#ReplicationConfigurationEbsEncryption", "traits": { - "smithy.api#documentation": "

Request to configure EBS enryption during Replication Settings template creation.

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

Request to configure EBS encryption during Replication Settings template creation.

", "smithy.api#required": {} } }, "ebsEncryptionKeyArn": { "target": "com.amazonaws.mgn#ARN", "traits": { - "smithy.api#documentation": "

Request to configure an EBS enryption key during Replication Settings template creation.

" + "smithy.api#documentation": "

Request to configure an EBS encryption key during Replication Settings template creation.

" } }, "bandwidthThrottling": { @@ -371,7 +386,7 @@ "stagingAreaTags": { "target": "com.amazonaws.mgn#TagsMap", "traits": { - "smithy.api#documentation": "

Request to configure Staiging Area tags during Replication Settings template creation.

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

Request to configure Staging Area tags during Replication Settings template creation.

", "smithy.api#required": {} } }, @@ -480,7 +495,7 @@ "lagDuration": { "target": "com.amazonaws.mgn#ISO8601DatetimeString", "traits": { - "smithy.api#documentation": "

Request to query data replication lag durating.

" + "smithy.api#documentation": "

Request to query data replication lag duration.

" } }, "etaDateTime": { @@ -617,7 +632,7 @@ } }, "traits": { - "smithy.api#documentation": "

Data replication intiation step.

" + "smithy.api#documentation": "

Data replication initiation step.

" } }, "com.amazonaws.mgn#DataReplicationInitiationStepName": { @@ -899,6 +914,9 @@ "input": { "target": "com.amazonaws.mgn#DeleteVcenterClientRequest" }, + "output": { + "target": "smithy.api#Unit" + }, "errors": [ { "target": "com.amazonaws.mgn#ResourceNotFoundException" @@ -911,7 +929,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a single vCenter client by ID.

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

Deletes a given vCenter client by ID.

", "smithy.api#http": { "method": "POST", "uri": "/DeleteVcenterClient", @@ -949,7 +967,7 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieves detailed Job log with paging.

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

Retrieves detailed job log items with paging.

", "smithy.api#http": { "method": "POST", "uri": "/DescribeJobLogItems", @@ -1022,7 +1040,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a list of Jobs. Use the JobsID and fromDate and toData filters to limit which jobs are returned. The response is sorted by creationDataTime - latest date first. Jobs are normaly created by the StartTest, StartCutover, and TerminateTargetInstances APIs. Jobs are also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available only to *Support* and only used in response to relevant support tickets.

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

Returns a list of Jobs. Use the JobsID and fromDate and toData filters to limit which jobs are returned. The response is sorted by creationDataTime - latest date first. Jobs are normally created by the StartTest, StartCutover, and TerminateTargetInstances APIs. Jobs are also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available only to *Support* and only used in response to relevant support tickets.

", "smithy.api#http": { "method": "POST", "uri": "/DescribeJobs", @@ -1050,13 +1068,13 @@ "maxResults": { "target": "com.amazonaws.mgn#StrictlyPositiveInteger", "traits": { - "smithy.api#documentation": "

Request to describe Job log by max results.

" + "smithy.api#documentation": "

Request to describe job log items by max results.

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

Request to describe Job logby next token.

" + "smithy.api#documentation": "

Request to describe job log items by next token.

" } } } @@ -1079,7 +1097,7 @@ "toDate": { "target": "com.amazonaws.mgn#ISO8601DatetimeString", "traits": { - "smithy.api#documentation": "

Request to describe Job log by last date.

" + "smithy.api#documentation": "

Request to describe job log items by last date.

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

Lists all vCenter clients.

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

Returns a list of the installed vCenter clients.

", "smithy.api#http": { "method": "GET", "uri": "/DescribeVcenterClients", @@ -1400,7 +1418,7 @@ } ], "traits": { - "smithy.api#documentation": "

Disconnects specific Source Servers from Application Migration Service. Data replication is stopped immediately. All AWS resources created by Application Migration Service for enabling the replication of these source servers will be terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be terminated. If the agent on the source server has not been prevented from communciating with the Application Migration Service service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be nullified.

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

Disconnects specific Source Servers from Application Migration Service. Data replication is stopped immediately. All AWS resources created by Application Migration Service for enabling the replication of these source servers will be terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be terminated. If the agent on the source server has not been prevented from communicating with the Application Migration Service service, then it will receive a command to uninstall itself (within approximately 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be nullified.

", "smithy.api#http": { "method": "POST", "uri": "/DisconnectFromService", @@ -1494,7 +1512,7 @@ } ], "traits": { - "smithy.api#documentation": "

Finalizes the cutover immediately for specific Source Servers. All AWS resources created by Application Migration Service for enabling the replication of these source servers will be terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be terminated. The AWS Replication Agent will receive a command to uninstall itself (within 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be to DISCONNECTED; The SourceServer.lifeCycle.state will be changed to CUTOVER; The totalStorageBytes property fo each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be nullified.

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

Finalizes the cutover immediately for specific Source Servers. All AWS resources created by Application Migration Service for enabling the replication of these source servers will be terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be terminated. The AWS Replication Agent will receive a command to uninstall itself (within 10 minutes). The following properties of the SourceServer will be changed immediately: dataReplicationInfo.dataReplicationState will be changed to DISCONNECTED; The SourceServer.lifeCycle.state will be changed to CUTOVER; The totalStorageBytes property fo each of dataReplicationInfo.replicatedDisks will be set to zero; dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be nullified.

", "smithy.api#http": { "method": "POST", "uri": "/FinalizeCutover", @@ -1508,7 +1526,7 @@ "sourceServerID": { "target": "com.amazonaws.mgn#SourceServerID", "traits": { - "smithy.api#documentation": "

Request to finalize Cutover by Soure Server ID.

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

Request to finalize Cutover by Source Server ID.

", "smithy.api#required": {} } } @@ -1607,7 +1625,7 @@ "sourceServerID": { "target": "com.amazonaws.mgn#SourceServerID", "traits": { - "smithy.api#documentation": "

Request to get Replication Configuaration by Source Server ID.

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

Request to get Replication Configuration by Source Server ID.

", "smithy.api#required": {} } } @@ -1801,7 +1819,7 @@ "tags": { "target": "com.amazonaws.mgn#TagsMap", "traits": { - "smithy.api#documentation": "

Tags associated with spcific Job.

" + "smithy.api#documentation": "

Tags associated with specific Job.

" } } }, @@ -2036,31 +2054,31 @@ "sourceServerID": { "target": "com.amazonaws.mgn#SourceServerID", "traits": { - "smithy.api#documentation": "

Configure launch configuration Source Server ID.

" + "smithy.api#documentation": "

Launch configuration Source Server ID.

" } }, "name": { "target": "com.amazonaws.mgn#SmallBoundedString", "traits": { - "smithy.api#documentation": "

Configure launch configuration name.

" + "smithy.api#documentation": "

Launch configuration name.

" } }, "ec2LaunchTemplateID": { "target": "com.amazonaws.mgn#BoundedString", "traits": { - "smithy.api#documentation": "

Configure EC2 lauch configuration template ID.

" + "smithy.api#documentation": "

Launch configuration EC2 Launch template ID.

" } }, "launchDisposition": { "target": "com.amazonaws.mgn#LaunchDisposition", "traits": { - "smithy.api#documentation": "

Configure launch dispostion for launch configuration.

" + "smithy.api#documentation": "

Launch disposition for launch configuration.

" } }, "targetInstanceTypeRightSizingMethod": { "target": "com.amazonaws.mgn#TargetInstanceTypeRightSizingMethod", "traits": { - "smithy.api#documentation": "

Configure launch configuration Target instance type right sizing method.

" + "smithy.api#documentation": "

Launch configuration Target instance type right sizing method.

" } }, "copyPrivateIp": { @@ -2078,7 +2096,13 @@ "licensing": { "target": "com.amazonaws.mgn#Licensing", "traits": { - "smithy.api#documentation": "

Configure launch configuration OS licensing.

" + "smithy.api#documentation": "

Launch configuration OS licensing.

" + } + }, + "bootMode": { + "target": "com.amazonaws.mgn#BootMode", + "traits": { + "smithy.api#documentation": "

Launch configuration boot mode.

" } } } @@ -2131,24 +2155,24 @@ "ec2InstanceID": { "target": "com.amazonaws.mgn#EC2InstanceID", "traits": { - "smithy.api#documentation": "

Configure launced instance EC2 ID.

" + "smithy.api#documentation": "

Launched instance EC2 ID.

" } }, "jobID": { "target": "com.amazonaws.mgn#JobID", "traits": { - "smithy.api#documentation": "

Configure launced instance Job ID.

" + "smithy.api#documentation": "

Launched instance Job ID.

" } }, "firstBoot": { "target": "com.amazonaws.mgn#FirstBoot", "traits": { - "smithy.api#documentation": "

Configure launced instance first boot.

" + "smithy.api#documentation": "

Launched instance first boot.

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

Configure launced instance.

" + "smithy.api#documentation": "

Launched instance.

" } }, "com.amazonaws.mgn#Licensing": { @@ -2307,7 +2331,7 @@ "finalized": { "target": "com.amazonaws.mgn#LifeCycleLastTestFinalized", "traits": { - "smithy.api#documentation": "

Lifecycle last Test finlized.

" + "smithy.api#documentation": "

Lifecycle last Test finalized.

" } } }, @@ -2326,7 +2350,7 @@ } }, "traits": { - "smithy.api#documentation": "

Lifecycle last Test finlized.

" + "smithy.api#documentation": "

Lifecycle last Test finalized.

" } }, "com.amazonaws.mgn#LifeCycleLastTestInitiated": { @@ -2497,7 +2521,7 @@ } ], "traits": { - "smithy.api#documentation": "

Archives specific Source Servers by setting the SourceServer.isArchived property to true for specified SourceServers by ID. This command only works for SourceServers with a lifecycle.state which equals DISCONNECTED or CUTOVER.

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

Archives specific Source Servers by setting the SourceServer.isArchived property to true for specified SourceServers by ID. This command only works for SourceServers with a lifecycle. state which equals DISCONNECTED or CUTOVER.

", "smithy.api#http": { "method": "POST", "uri": "/MarkAsArchived", @@ -2733,6 +2757,10 @@ { "value": "ST1", "name": "ST1" + }, + { + "value": "GP3", + "name": "GP3" } ] } @@ -2778,6 +2806,12 @@ "traits": { "smithy.api#documentation": "

Replication Configuration replicated disk IOPs.

" } + }, + "throughput": { + "target": "com.amazonaws.mgn#PositiveInteger", + "traits": { + "smithy.api#documentation": "

Replication Configuration replicated disk throughput.

" + } } }, "traits": { @@ -2811,6 +2845,14 @@ { "value": "STANDARD", "name": "STANDARD" + }, + { + "value": "GP3", + "name": "GP3" + }, + { + "value": "IO2", + "name": "IO2" } ] } @@ -2833,7 +2875,7 @@ "replicationConfigurationTemplateID": { "target": "com.amazonaws.mgn#ReplicationConfigurationTemplateID", "traits": { - "smithy.api#documentation": "

Replication Configuration template template ID.

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

Replication Configuration template ID.

", "smithy.api#required": {} } }, @@ -2876,7 +2918,7 @@ "defaultLargeStagingDiskType": { "target": "com.amazonaws.mgn#ReplicationConfigurationDefaultLargeStagingDiskType", "traits": { - "smithy.api#documentation": "

Replication Configuration template use dedault large Staging Disk type.

" + "smithy.api#documentation": "

Replication Configuration template use default large Staging Disk type.

" } }, "ebsEncryption": { @@ -2894,7 +2936,7 @@ "bandwidthThrottling": { "target": "com.amazonaws.mgn#PositiveInteger", "traits": { - "smithy.api#documentation": "

Replication Configuration template bandwidth throtting.

" + "smithy.api#documentation": "

Replication Configuration template bandwidth throttling.

" } }, "dataPlaneRouting": { @@ -3108,7 +3150,7 @@ "resourceId": { "target": "com.amazonaws.mgn#LargeBoundedString", "traits": { - "smithy.api#documentation": "

Exceeded the service quota resource Id.

" + "smithy.api#documentation": "

Exceeded the service quota resource ID.

" } }, "resourceType": { @@ -3452,7 +3494,7 @@ } ], "traits": { - "smithy.api#documentation": "

Starts replication on source server by ID.

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

Starts replication for SNAPSHOT_SHIPPING agents.

", "smithy.api#http": { "method": "POST", "uri": "/StartReplication", @@ -3492,7 +3534,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lauches a Test Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartTest and changes the SourceServer.lifeCycle.state property to TESTING.

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

Launches a Test Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartTest and changes the SourceServer.lifeCycle.state property to TESTING.

", "smithy.api#http": { "method": "POST", "uri": "/StartTest", @@ -3582,6 +3624,9 @@ "input": { "target": "com.amazonaws.mgn#TagResourceRequest" }, + "output": { + "target": "smithy.api#Unit" + }, "errors": [ { "target": "com.amazonaws.mgn#AccessDeniedException" @@ -3780,7 +3825,7 @@ } }, "traits": { - "smithy.api#documentation": "

Unitialized account exception.

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

Uninitialized account exception.

", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3790,6 +3835,9 @@ "input": { "target": "com.amazonaws.mgn#UntagResourceRequest" }, + "output": { + "target": "smithy.api#Unit" + }, "errors": [ { "target": "com.amazonaws.mgn#AccessDeniedException" @@ -3915,6 +3963,12 @@ "traits": { "smithy.api#documentation": "

Update Launch configuration licensing request.

" } + }, + "bootMode": { + "target": "com.amazonaws.mgn#BootMode", + "traits": { + "smithy.api#documentation": "

Update Launch configuration boot mode request.

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

Updates source server Replication Type by ID.

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

Allows you to change between the AGENT_BASED replication type and the SNAPSHOT_SHIPPING replication type.

", "smithy.api#http": { "method": "POST", "uri": "/UpdateSourceServerReplicationType", diff --git a/codegen/sdk-codegen/aws-models/migrationhubrefactorspaces.2021-10-26.json b/codegen/sdk-codegen/aws-models/migrationhubrefactorspaces.2021-10-26.json index 263702ddf86..b96cd6c3cc4 100644 --- a/codegen/sdk-codegen/aws-models/migrationhubrefactorspaces.2021-10-26.json +++ b/codegen/sdk-codegen/aws-models/migrationhubrefactorspaces.2021-10-26.json @@ -109,7 +109,7 @@ "NlbName": { "target": "com.amazonaws.migrationhubrefactorspaces#NlbName", "traits": { - "smithy.api#documentation": "

The name of the Network Load Balancer that is configured by the API Gateway proxy.

" + "smithy.api#documentation": "

The name of the Network Load Balancer that is configured by the API Gateway proxy.\n

" } }, "EndpointType": { @@ -179,7 +179,7 @@ "NlbName": { "target": "com.amazonaws.migrationhubrefactorspaces#NlbName", "traits": { - "smithy.api#documentation": "

The name of the Network Load Balancer that is configured by the API Gateway proxy.

" + "smithy.api#documentation": "

The name of the Network Load Balancer that is configured by the API Gateway proxy.\n

" } }, "EndpointType": { @@ -264,13 +264,13 @@ "Arn": { "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn", "traits": { - "smithy.api#documentation": "

he Amazon Resource Name (ARN) of the application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the application.

" } }, "OwnerAccountId": { "target": "com.amazonaws.migrationhubrefactorspaces#AccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID of the application owner.

" + "smithy.api#documentation": "

The Amazon Web Services account ID of the application owner (which is always the same as\n the environment owner account ID).

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

Creates an Amazon Web Services Migration Hub Refactor Spaces application. The account that owns the environment also owns the\n applications created inside the environment, regardless of the account that creates the\n application. Refactor Spaces provisions the Amazon API Gateway and Network Load Balancer for\n the application proxy inside your account.

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

Creates an Amazon Web Services Migration Hub Refactor Spaces application. The account that owns the environment also owns the\n applications created inside the environment, regardless of the account that creates the\n application. Refactor Spaces provisions an Amazon API Gateway, API Gateway VPC link, and\n Network Load Balancer for the application proxy inside your account.

", "smithy.api#http": { "method": "POST", "uri": "/environments/{EnvironmentIdentifier}/applications", @@ -515,7 +515,7 @@ "OwnerAccountId": { "target": "com.amazonaws.migrationhubrefactorspaces#AccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID of the application owner.

" + "smithy.api#documentation": "

The Amazon Web Services account ID of the application owner (which is always the same as\n the environment owner account ID).

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

Creates an Amazon Web Services Migration Hub Refactor Spaces environment. The caller owns the environment resource, and they\n are referred to as the environment owner. The environment owner has\n cross-account visibility and control of Refactor Spaces resources that are added to the environment\n by other accounts that the environment is shared with. When creating an environment, Refactor Spaces\n provisions a transit gateway in your account.

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

Creates an Amazon Web Services Migration Hub Refactor Spaces environment. The caller owns the environment resource, and all\n Refactor Spaces applications, services, and routes created within the environment. They are referred\n to as the environment owner. The environment owner has cross-account\n visibility and control of Refactor Spaces resources that are added to the environment by other\n accounts that the environment is shared with. When creating an environment, Refactor Spaces\n provisions a transit gateway in your account.

", "smithy.api#http": { "method": "POST", "uri": "/environments", @@ -755,7 +755,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an Amazon Web Services Migration Hub Refactor Spaces route. The account owner of the service resource is always the\n environment owner, regardless of which account creates the route. Routes target a service in\n the application. If an application does not have any routes, then the first route must be\n created as a DEFAULT\n RouteType.

\n

When you create a route, Refactor Spaces configures the Amazon API Gateway to send traffic\n to the target service as follows:

\n \n

A health check is performed on the service when the route is created. If the health check\n fails, the route transitions to FAILED, and no traffic is sent to the service.

\n

For Lambda functions, the Lambda function state is checked. If\n the function is not active, the function configuration is updated so that Lambda\n resources are provisioned. If the Lambda state is Failed, then the\n route creation fails. For more information, see the GetFunctionConfiguration's State response parameter in the Lambda Developer Guide.

\n

For public URLs, a connection is opened to the public endpoint. If the URL is not reachable,\n the health check fails. For private URLs, a target group is created and the target group\n health check is run.

\n

The HealthCheckProtocol, HealthCheckPort, and\n HealthCheckPath are the same protocol, port, and path specified in the URL or\n health URL, if used. All other settings use the default values, as described in Health checks\n for your target groups. The health check is considered successful if at least one\n target within the target group transitions to a healthy state.

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

Creates an Amazon Web Services Migration Hub Refactor Spaces route. The account owner of the service resource is always the\n environment owner, regardless of which account creates the route. Routes target a service in\n the application. If an application does not have any routes, then the first route must be\n created as a DEFAULT\n RouteType.

\n

When you create a route, Refactor Spaces configures the Amazon API Gateway to send traffic\n to the target service as follows:

\n \n

A one-time health check is performed on the service when the route is created. If the\n health check fails, the route transitions to FAILED, and no traffic is sent to\n the service.

\n

For Lambda functions, the Lambda function state is checked. If the\n function is not active, the function configuration is updated so that Lambda\n resources are provisioned. If the Lambda state is Failed, then the\n route creation fails. For more information, see the GetFunctionConfiguration's State response parameter in the Lambda Developer Guide.

\n

For public URLs, a connection is opened to the public endpoint. If the URL is not\n reachable, the health check fails. For private URLs, a target group is created and the target\n group health check is run.

\n

The HealthCheckProtocol, HealthCheckPort, and\n HealthCheckPath are the same protocol, port, and path specified in the URL or\n health URL, if used. All other settings use the default values, as described in Health checks\n for your target groups. The health check is considered successful if at least one\n target within the target group transitions to a healthy state.

\n

Services can have HTTP or HTTPS URL endpoints. For HTTPS URLs, publicly-signed\n certificates are supported. Private Certificate Authorities (CAs) are permitted only if the\n CA's domain is publicly resolvable.

", "smithy.api#http": { "method": "POST", "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/routes", @@ -853,7 +853,7 @@ "ServiceId": { "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId", "traits": { - "smithy.api#documentation": "

The ID of service in which the rute iscreated. Traffic that matches this route is\n forwarded to this service.

" + "smithy.api#documentation": "

The ID of service in which the route is created. Traffic that matches this route is\n forwarded to this service.

" } }, "ApplicationId": { @@ -871,7 +871,7 @@ "State": { "target": "com.amazonaws.migrationhubrefactorspaces#RouteState", "traits": { - "smithy.api#documentation": "

he current state of the route.

" + "smithy.api#documentation": "

The current state of the route.

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

Creates an Amazon Web Services Migration Hub Refactor Spaces service. The account owner of the service is always the\n environment owner, regardless of which account in the environment creates the service.\n Services have either a URL endpoint in a virtual private cloud (VPC), or a Lambda\n function endpoint.

\n \n

If an Amazon Web Services resourceis launched in a service VPC, and you want it to be\n accessible to all of an environment’s services with VPCs and routes, apply the\n RefactorSpacesSecurityGroup to the resource. Alternatively, to add more\n cross-account constraints, apply your own security group.

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

Creates an Amazon Web Services Migration Hub Refactor Spaces service. The account owner of the service is always the\n environment owner, regardless of which account in the environment creates the service.\n Services have either a URL endpoint in a virtual private cloud (VPC), or a Lambda\n function endpoint.

\n \n

If an Amazon Web Services resource is launched in a service VPC, and you want it to be\n accessible to all of an environment’s services with VPCs and routes, apply the\n RefactorSpacesSecurityGroup to the resource. Alternatively, to add more\n cross-account constraints, apply your own security group.

\n
", "smithy.api#http": { "method": "POST", "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/services", @@ -1436,7 +1436,7 @@ "ApplicationId": { "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId", "traits": { - "smithy.api#documentation": "

he ID of the application that the route belongs to.

" + "smithy.api#documentation": "

The ID of the application that the route belongs to.

" } }, "State": { @@ -1713,7 +1713,7 @@ } }, "traits": { - "smithy.api#documentation": "

The summary information for environments as a response to ListEnvironments.

" + "smithy.api#documentation": "

The summary information for environments as a response to ListEnvironments.\n

" } }, "com.amazonaws.migrationhubrefactorspaces#EnvironmentVpc": { @@ -2038,7 +2038,7 @@ "OwnerAccountId": { "target": "com.amazonaws.migrationhubrefactorspaces#AccountId", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID of the application owner.

" + "smithy.api#documentation": "

The Amazon Web Services account ID of the application owner (which is always the same as\n the environment owner account ID).

" } }, "CreatedByAccountId": { @@ -2802,8 +2802,8 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "ApplicationSummaryList", - "pageSize": "MaxResults" + "pageSize": "MaxResults", + "items": "ApplicationSummaryList" }, "smithy.api#readonly": {} } @@ -2878,7 +2878,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists all the virtual private clouds (VPCs) that are part of an Amazon Web Services Migration Hub Refactor Spaces environment.

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

Lists all Amazon Web Services Migration Hub Refactor Spaces service virtual private clouds (VPCs) that are part of the\n environment.

", "smithy.api#http": { "method": "GET", "uri": "/environments/{EnvironmentIdentifier}/vpcs", @@ -2887,8 +2887,8 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "EnvironmentVpcList", - "pageSize": "MaxResults" + "pageSize": "MaxResults", + "items": "EnvironmentVpcList" }, "smithy.api#readonly": {} } @@ -2972,8 +2972,8 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "EnvironmentSummaryList", - "pageSize": "MaxResults" + "pageSize": "MaxResults", + "items": "EnvironmentSummaryList" }, "smithy.api#readonly": {} } @@ -3055,8 +3055,8 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "RouteSummaryList", - "pageSize": "MaxResults" + "pageSize": "MaxResults", + "items": "RouteSummaryList" }, "smithy.api#readonly": {} } @@ -3154,8 +3154,8 @@ "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "ServiceSummaryList", - "pageSize": "MaxResults" + "pageSize": "MaxResults", + "items": "ServiceSummaryList" }, "smithy.api#readonly": {} } @@ -3235,8 +3235,7 @@ "smithy.api#documentation": "

Lists the tags of a resource. The caller account must be the same as the resource’s\n OwnerAccountId. Listing tags in other accounts is not supported.

", "smithy.api#http": { "method": "GET", - "uri": "/tags/{ResourceArn}", - "code": 200 + "uri": "/tags/{ResourceArn}" }, "smithy.api#readonly": {} } @@ -3394,7 +3393,7 @@ } ], "traits": { - "smithy.api#documentation": "

Attaches a resource-based permission policy to the Amazon Web Services Migration Hub Refactor Spaces environment. The policy\n must contain the same actions and condition statements as the\n arn:aws:ram::aws:permission/AWSRAMDefaultPermissionRefactorSpacesEnvironment\n permission in Resource Access Manager. The policy must not contain new lines or blank lines.

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

Attaches a resource-based permission policy to the Amazon Web Services Migration Hub Refactor Spaces environment. The policy\n must contain the same actions and condition statements as the\n arn:aws:ram::aws:permission/AWSRAMDefaultPermissionRefactorSpacesEnvironment\n permission in Resource Access Manager. The policy must not contain new lines or blank lines.\n

", "smithy.api#http": { "method": "PUT", "uri": "/resourcepolicy", @@ -3431,29 +3430,27 @@ "traits": { "aws.api#service": { "sdkId": "Migration Hub Refactor Spaces", - "arnNamespace": "refactor-spaces", - "cloudFormationName": "RefactorSpaces", - "cloudTrailEventSource": "refactor-spaces.amazonaws.com", - "endpointPrefix": "refactor-spaces" + "arnNamespace": "refactor-spaces" }, "aws.auth#sigv4": { "name": "refactor-spaces" }, "aws.protocols#restJson1": {}, "smithy.api#cors": { - "additionalAllowedHeaders": [ - "content-type" - ], "additionalExposedHeaders": [ - "date", - "x-amz-apigw-id", - "x-amzn-trace-id", "x-amzn-errortype", "x-amzn-requestid", - "x-amzn-errormessage" - ] + "x-amzn-errormessage", + "x-amzn-trace-id", + "x-amz-apigw-id", + "date" + ], + "additionalAllowedHeaders": [ + "content-type" + ], + "origin": "*" }, - "smithy.api#documentation": "Amazon Web Services Migration Hub Refactor Spaces\n\n

This API reference provides descriptions, syntax, and other details about each of the\n actions and data types for Amazon Web Services Migration Hub Refactor Spaces (Refactor Spaces). The topic for each action shows the API\n request parameters and the response. Alternatively, you can use one of the Amazon Web Services SDKs to\n access an API that is tailored to the programming language or platform that you're using. For\n more information, see Amazon Web Services SDKs.

", + "smithy.api#documentation": "Amazon Web Services Migration Hub Refactor Spaces\n \n

This API reference provides descriptions, syntax, and other details about each of the\n actions and data types for Amazon Web Services Migration Hub Refactor Spaces (Refactor Spaces). The topic for each action shows the API\n request parameters and the response. Alternatively, you can use one of the Amazon Web Services SDKs to\n access an API that is tailored to the programming language or platform that you're using. For\n more information, see Amazon Web Services SDKs.

\n \n

To share Refactor Spaces environments with other Amazon Web Services accounts or with Organizations\n and their OUs, use Resource Access Manager's CreateResourceShare API. See CreateResourceShare in the Amazon Web Services RAM API Reference.

", "smithy.api#title": "AWS Migration Hub Refactor Spaces" }, "version": "2021-10-26", @@ -4065,8 +4062,7 @@ "smithy.api#documentation": "

Removes the tags of a given resource. Tags are metadata which can be used to manage a\n resource. To tag a resource, the caller account must be the same as the resource’s\n OwnerAccountId. Tagging resources in other accounts is not supported.

\n \n

Amazon Web Services Migration Hub Refactor Spaces does not propagate tags to orchestrated resources, such as an\n environment’s transit gateway.

\n
", "smithy.api#http": { "method": "POST", - "uri": "/tags/{ResourceArn}", - "code": 200 + "uri": "/tags/{ResourceArn}" } } }, @@ -4165,8 +4161,7 @@ "smithy.api#documentation": "

Adds to or modifies the tags of the given resource. Tags are metadata which can be used to\n manage a resource. To untag a resource, the caller account must be the same as the resource’s\n OwnerAccountId. Untagging resources across accounts is not supported.

", "smithy.api#http": { "method": "DELETE", - "uri": "/tags/{ResourceArn}", - "code": 200 + "uri": "/tags/{ResourceArn}" }, "smithy.api#idempotent": {} } @@ -4229,7 +4224,7 @@ "ActivationState": { "target": "com.amazonaws.migrationhubrefactorspaces#RouteActivationState", "traits": { - "smithy.api#documentation": "

Indicates whether traffic is forwarded to this route’s service after the route is created.

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

Indicates whether traffic is forwarded to this route’s service after the route is created.\n

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

The input does not satisfy the constraints specified by an Amazon Web Service.

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

The input does not satisfy the constraints specified by an Amazon Web Service.\n

", "smithy.api#error": "client", "smithy.api#httpError": 400 } diff --git a/codegen/sdk-codegen/aws-models/panorama.2019-07-24.json b/codegen/sdk-codegen/aws-models/panorama.2019-07-24.json index c924d997e9d..532f7a2e695 100644 --- a/codegen/sdk-codegen/aws-models/panorama.2019-07-24.json +++ b/codegen/sdk-codegen/aws-models/panorama.2019-07-24.json @@ -1,33 +1,5 @@ { "smithy": "1.0", - "metadata": { - "suppressions": [ - { - "id": "HttpMethodSemantics", - "namespace": "*" - }, - { - "id": "HttpResponseCodeSemantics", - "namespace": "*" - }, - { - "id": "PaginatedTrait", - "namespace": "*" - }, - { - "id": "HttpHeaderTrait", - "namespace": "*" - }, - { - "id": "HttpUriConflict", - "namespace": "*" - }, - { - "id": "Service", - "namespace": "*" - } - ] - }, "shapes": { "com.amazonaws.panorama#AccessDeniedException": { "type": "structure", @@ -45,6 +17,26 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.panorama#AlternateSoftwareMetadata": { + "type": "structure", + "members": { + "Version": { + "target": "com.amazonaws.panorama#Version", + "traits": { + "smithy.api#documentation": "

The appliance software version.

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

Details about a beta appliance software update.

" + } + }, + "com.amazonaws.panorama#AlternateSoftwares": { + "type": "list", + "member": { + "target": "com.amazonaws.panorama#AlternateSoftwareMetadata" + } + }, "com.amazonaws.panorama#ApplicationInstance": { "type": "structure", "members": { @@ -230,10 +222,7 @@ } }, "com.amazonaws.panorama#Boolean": { - "type": "boolean", - "traits": { - "smithy.api#box": {} - } + "type": "boolean" }, "com.amazonaws.panorama#Bucket": { "type": "string" @@ -882,7 +871,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a package.

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

Deletes a package.

\n \n

To delete a package, you need permission to call s3:DeleteObject\n in addition to permissions for the AWS Panorama API.

\n
", "smithy.api#http": { "method": "DELETE", "uri": "/packages/{PackageId}", @@ -1467,6 +1456,18 @@ "traits": { "smithy.api#documentation": "

The device's lease expiration time.

" } + }, + "AlternateSoftwares": { + "target": "com.amazonaws.panorama#AlternateSoftwares", + "traits": { + "smithy.api#documentation": "

Beta software releases available for the device.

" + } + }, + "LatestAlternateSoftware": { + "target": "com.amazonaws.panorama#LatestAlternateSoftware", + "traits": { + "smithy.api#documentation": "

The most recent beta software release.

" + } } } }, @@ -2488,6 +2489,16 @@ "smithy.api#pattern": "^((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))(:(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3}))?$" } }, + "com.amazonaws.panorama#IpAddressOrServerName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "(^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$)|(^((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d))(:(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[1-5]\\d{4}|[1-9]\\d{0,3}))?$)" + } + }, "com.amazonaws.panorama#Job": { "type": "structure", "members": { @@ -2577,6 +2588,15 @@ "com.amazonaws.panorama#LastUpdatedTime": { "type": "timestamp" }, + "com.amazonaws.panorama#LatestAlternateSoftware": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.panorama#LatestSoftware": { "type": "string", "traits": { @@ -3398,10 +3418,7 @@ } }, "com.amazonaws.panorama#MarkLatestPatch": { - "type": "boolean", - "traits": { - "smithy.api#box": {} - } + "type": "boolean" }, "com.amazonaws.panorama#Mask": { "type": "string", @@ -3436,6 +3453,10 @@ { "value": "NOT_CONNECTED", "name": "NOT_CONNECTED" + }, + { + "value": "CONNECTING", + "name": "CONNECTING" } ] } @@ -3454,6 +3475,12 @@ "traits": { "smithy.api#documentation": "

Settings for Ethernet port 1.

" } + }, + "Ntp": { + "target": "com.amazonaws.panorama#NtpPayload", + "traits": { + "smithy.api#documentation": "

Network time protocol (NTP) server settings.

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

The status of Ethernet port 1.

" } + }, + "NtpStatus": { + "target": "com.amazonaws.panorama#NtpStatus", + "traits": { + "smithy.api#documentation": "

Details about a network time protocol (NTP) server connection.

" + } + }, + "LastUpdatedTime": { + "target": "com.amazonaws.panorama#LastUpdatedTime", + "traits": { + "smithy.api#documentation": "

When the network status changed.

" + } } }, "traits": { @@ -3925,6 +3964,67 @@ "target": "com.amazonaws.panorama#Node" } }, + "com.amazonaws.panorama#NtpPayload": { + "type": "structure", + "members": { + "NtpServers": { + "target": "com.amazonaws.panorama#NtpServerList", + "traits": { + "smithy.api#documentation": "

NTP servers to use, in order of preference.

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

Network time protocol (NTP) server settings. Use this option to connect to local NTP\n servers instead of pool.ntp.org.

" + } + }, + "com.amazonaws.panorama#NtpServerList": { + "type": "list", + "member": { + "target": "com.amazonaws.panorama#IpAddressOrServerName" + }, + "traits": { + "smithy.api#length": { + "max": 5 + } + } + }, + "com.amazonaws.panorama#NtpServerName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.panorama#NtpStatus": { + "type": "structure", + "members": { + "ConnectionStatus": { + "target": "com.amazonaws.panorama#NetworkConnectionStatus", + "traits": { + "smithy.api#documentation": "

The connection's status.

" + } + }, + "IpAddress": { + "target": "com.amazonaws.panorama#IpAddress", + "traits": { + "smithy.api#documentation": "

The IP address of the server.

" + } + }, + "NtpServerName": { + "target": "com.amazonaws.panorama#NtpServerName", + "traits": { + "smithy.api#documentation": "

The domain name of the server.

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

Details about an NTP server connection.

" + } + }, "com.amazonaws.panorama#OTAJobConfig": { "type": "structure", "members": { @@ -3955,6 +4055,22 @@ }, "com.amazonaws.panorama#OmniCloudServiceLambda": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Panorama", + "arnNamespace": "panorama", + "cloudFormationName": "OmniCloudServiceLambda", + "cloudTrailEventSource": "panorama.amazonaws.com", + "endpointPrefix": "panorama" + }, + "aws.auth#sigv4": { + "name": "panorama" + }, + "aws.protocols#restJson1": {}, + "smithy.api#cors": {}, + "smithy.api#documentation": "AWS Panorama\n

\n Overview\n

\n

This is the AWS Panorama API Reference. For an introduction to the service, see \n What is AWS Panorama? \n in the AWS Panorama Developer Guide.

", + "smithy.api#title": "AWS Panorama" + }, "version": "2019-07-24", "operations": [ { @@ -4056,22 +4172,7 @@ { "target": "com.amazonaws.panorama#UpdateDeviceMetadata" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Panorama", - "arnNamespace": "panorama", - "cloudFormationName": "Panorama", - "cloudTrailEventSource": "panorama.amazonaws.com", - "endpointPrefix": "panorama" - }, - "aws.auth#sigv4": { - "name": "panorama" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "AWS Panorama\n

\n Overview\n

\n

This is the AWS Panorama API Reference. For an introduction to the service, see \n What is AWS Panorama? \n in the AWS Panorama Developer Guide.

", - "smithy.api#title": "AWS Panorama" - } + ] }, "com.amazonaws.panorama#OutPutS3Location": { "type": "structure", @@ -4244,6 +4345,10 @@ { "value": "NODE_PACKAGE_VERSION", "name": "NODE_PACKAGE_VERSION" + }, + { + "value": "MARKETPLACE_NODE_PACKAGE_VERSION", + "name": "MARKETPLACE_NODE_PACKAGE_VERSION" } ] } @@ -5374,6 +5479,15 @@ } ] } + }, + "com.amazonaws.panorama#Version": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } } } -} +} \ No newline at end of file diff --git a/codegen/sdk-codegen/aws-models/rds.2014-10-31.json b/codegen/sdk-codegen/aws-models/rds.2014-10-31.json index 19fc883ac63..bb7c05fd14c 100644 --- a/codegen/sdk-codegen/aws-models/rds.2014-10-31.json +++ b/codegen/sdk-codegen/aws-models/rds.2014-10-31.json @@ -1541,7 +1541,7 @@ } ], "traits": { - "smithy.api#documentation": "

Copies a snapshot of a DB cluster.

\n

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier\n must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

\n\n

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot action \n is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, \n you must provide the following values:

\n \n \n

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified\n by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

\n

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see \n \n Copying a Snapshot in the Amazon Aurora User Guide.\n

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Copies a snapshot of a DB cluster.

\n

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier\n must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

\n\n

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot action \n is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, \n you must provide the following values:

\n \n \n

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified\n by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

\n

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see \n \n Copying a Snapshot in the Amazon Aurora User Guide.\n

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#CopyDBClusterSnapshotMessage": { @@ -2023,7 +2023,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

\n

You can use the ReplicationSourceIdentifier parameter to create an Amazon\n Aurora DB cluster as a read replica of another DB cluster or Amazon RDS MySQL or\n PostgreSQL DB instance. For cross-Region replication where the DB cluster identified by\n ReplicationSourceIdentifier is encrypted, also specify the\n PreSignedUrl parameter.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

\n

You can use the ReplicationSourceIdentifier parameter to create an Amazon\n Aurora DB cluster as a read replica of another DB cluster or Amazon RDS MySQL or\n PostgreSQL DB instance. For cross-Region replication where the DB cluster identified by\n ReplicationSourceIdentifier is encrypted, also specify the\n PreSignedUrl parameter.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#CreateDBClusterEndpoint": { @@ -2248,7 +2248,7 @@ "EnableCloudwatchLogsExports": { "target": "com.amazonaws.rds#LogTypeList", "traits": { - "smithy.api#documentation": "

The list of log types that need to be enabled for exporting to CloudWatch Logs. The values\n in the list depend on the DB engine being used. For more information, see \n Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

\n

\n Aurora MySQL\n

\n

Possible values are audit, error, general, and slowquery.

\n

\n Aurora PostgreSQL\n

\n

Possible value is postgresql.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

The list of log types that need to be enabled for exporting to CloudWatch Logs. The values\n in the list depend on the DB engine being used.

\n

\n RDS for MySQL\n

\n

Possible values are error, general, and slowquery.

\n

\n RDS for PostgreSQL\n

\n

Possible values are postgresql and upgrade.

\n

\n Aurora MySQL\n

\n

Possible values are audit, error, general, and slowquery.

\n

\n Aurora PostgreSQL\n

\n

Possible value is postgresql.

\n

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Relational Database\n Service User Guide.

\n

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" } }, "EngineMode": { @@ -2284,7 +2284,7 @@ "CopyTagsToSnapshot": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { - "smithy.api#documentation": "

A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. \n The default is not to copy them.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. \n The default is not to copy them.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

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

Creates a new DB cluster parameter group.

\n

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

\n

\n A DB cluster parameter group is initially created with the default parameters for the\n database engine used by instances in the DB cluster. To provide custom values for any of the\n parameters, you must modify the group after creating it using\n ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to\n associate it with your DB cluster using ModifyDBCluster.

\n

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB\n instances in the DB cluster without failover for the new DB cluster parameter group and \n associated settings to take effect. \n

\n

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB\n cluster without failover for the new DB cluster parameter group and associated settings to take effect. \n

\n \n

After you create a DB cluster parameter group, you should wait at least 5 minutes\n before creating your first DB cluster\n that uses that DB cluster parameter group as the default parameter \n group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter \n group is used as the default for a new DB cluster. This is especially important for parameters \n that are critical when creating the default database for a DB cluster, such as the character set \n for the default database defined by the character_set_database parameter. You can use the \n Parameter Groups option of the Amazon RDS console or the \n DescribeDBClusterParameters action to verify \n that your DB cluster parameter group has been created or modified.

\n
\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Creates a new DB cluster parameter group.

\n

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

\n

\n A DB cluster parameter group is initially created with the default parameters for the\n database engine used by instances in the DB cluster. To provide custom values for any of the\n parameters, you must modify the group after creating it using\n ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to\n associate it with your DB cluster using ModifyDBCluster.

\n

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB\n instances in the DB cluster without failover for the new DB cluster parameter group and \n associated settings to take effect. \n

\n

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB\n cluster without failover for the new DB cluster parameter group and associated settings to take effect. \n

\n \n

After you create a DB cluster parameter group, you should wait at least 5 minutes\n before creating your first DB cluster\n that uses that DB cluster parameter group as the default parameter \n group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter \n group is used as the default for a new DB cluster. This is especially important for parameters \n that are critical when creating the default database for a DB cluster, such as the character set \n for the default database defined by the character_set_database parameter. You can use the \n Parameter Groups option of the Amazon RDS console or the \n DescribeDBClusterParameters action to verify \n that your DB cluster parameter group has been created or modified.

\n
\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#CreateDBClusterParameterGroupMessage": { @@ -2473,7 +2473,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a snapshot of a DB cluster.

\n

For more information on Amazon Aurora, see What is Amazon\n Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Creates a snapshot of a DB cluster.

\n

For more information on Amazon Aurora, see What is Amazon\n Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#CreateDBClusterSnapshotMessage": { @@ -4474,7 +4474,7 @@ } }, "traits": { - "smithy.api#documentation": "

Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n

\n

For an Amazon Aurora DB cluster, this data type is used as a response element in the operations \n CreateDBCluster, DeleteDBCluster, DescribeDBClusters, \n FailoverDBCluster, ModifyDBCluster, PromoteReadReplicaDBCluster, \n RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, \n RestoreDBClusterToPointInTime, StartDBCluster, and StopDBCluster.

\n

For a Multi-AZ DB cluster, this data type is used as a response element in the operations \n CreateDBCluster, DeleteDBCluster, DescribeDBClusters, \n FailoverDBCluster, ModifyDBCluster, RebootDBCluster, \n RestoreDBClusterFromSnapshot, and RestoreDBClusterToPointInTime.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n

\n

For an Amazon Aurora DB cluster, this data type is used as a response element in the operations \n CreateDBCluster, DeleteDBCluster, DescribeDBClusters, \n FailoverDBCluster, ModifyDBCluster, PromoteReadReplicaDBCluster, \n RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, \n RestoreDBClusterToPointInTime, StartDBCluster, and StopDBCluster.

\n

For a Multi-AZ DB cluster, this data type is used as a response element in the operations \n CreateDBCluster, DeleteDBCluster, DescribeDBClusters, \n FailoverDBCluster, ModifyDBCluster, RebootDBCluster, \n RestoreDBClusterFromSnapshot, and RestoreDBClusterToPointInTime.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#DBClusterAlreadyExistsFault": { @@ -7974,7 +7974,7 @@ } ], "traits": { - "smithy.api#documentation": "

The DeleteDBCluster action deletes a previously provisioned DB cluster. \n When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. \n Manual DB cluster snapshots of the specified DB cluster are not deleted.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

The DeleteDBCluster action deletes a previously provisioned DB cluster. \n When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. \n Manual DB cluster snapshots of the specified DB cluster are not deleted.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#DeleteDBClusterEndpoint": { @@ -8053,7 +8053,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Deletes a specified DB cluster parameter group. The DB cluster parameter group to be deleted can't be associated with any DB clusters.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#DeleteDBClusterParameterGroupMessage": { @@ -8096,7 +8096,7 @@ } ], "traits": { - "smithy.api#documentation": "

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

\n \n

The DB cluster snapshot must be in the available state to be\n deleted.

\n
\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Deletes a DB cluster snapshot. If the snapshot is being copied, the copy operation is terminated.

\n \n

The DB cluster snapshot must be in the available state to be\n deleted.

\n
\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#DeleteDBClusterSnapshotMessage": { @@ -8938,7 +8938,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Returns a list of DBClusterParameterGroup descriptions. If a \n DBClusterParameterGroupName parameter is specified,\n the list will contain only the description of the specified DB cluster parameter group.\n

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

\n Returns a list of DBClusterParameterGroup descriptions. If a \n DBClusterParameterGroupName parameter is specified,\n the list will contain only the description of the specified DB cluster parameter group.\n

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -8993,7 +8993,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the detailed parameter list for a particular DB cluster parameter group.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Returns the detailed parameter list for a particular DB cluster parameter group.

\n

For more information on Amazon Aurora, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -9095,7 +9095,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about DB cluster snapshots. This API action supports pagination.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Returns information about DB cluster snapshots. This API action supports pagination.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -9302,7 +9302,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about Amazon Aurora DB clusters and Multi-AZ DB clusters. This API supports pagination.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

\n
\n

This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances.

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

Returns information about Amazon Aurora DB clusters and Multi-AZ DB clusters. This API supports pagination.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n

This operation can also return information for Amazon Neptune DB instances and Amazon DocumentDB instances.

", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "Marker", @@ -12312,7 +12312,7 @@ } ], "traits": { - "smithy.api#documentation": "

Forces a failover for a DB cluster.

\n

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances)\n in the DB cluster to be the primary DB instance (the cluster writer).

\n

For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances)\n in the DB cluster to be the primary DB instance (the cluster writer).

\n

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists,\n when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readbable standby \n DB instance when the primary DB instance fails.

\n

To simulate a failure of a primary instance for testing, you can force a failover. \n Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing \n connections that use those endpoint addresses when the failover is complete.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Forces a failover for a DB cluster.

\n

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances)\n in the DB cluster to be the primary DB instance (the cluster writer).

\n

For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances)\n in the DB cluster to be the primary DB instance (the cluster writer).

\n

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists,\n when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readbable standby \n DB instance when the primary DB instance fails.

\n

To simulate a failure of a primary instance for testing, you can force a failover. \n Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing \n connections that use those endpoint addresses when the failover is complete.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#FailoverDBClusterMessage": { @@ -13807,7 +13807,7 @@ } ], "traits": { - "smithy.api#documentation": "

Modify the settings for an Amazon Aurora DB cluster or a Multi-AZ DB cluster. \n You can change one or more settings by specifying these parameters and the new values in the\n request.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Modify the settings for an Amazon Aurora DB cluster or a Multi-AZ DB cluster. \n You can change one or more settings by specifying these parameters and the new values in the\n request.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#ModifyDBClusterEndpoint": { @@ -13954,7 +13954,7 @@ "CloudwatchLogsExportConfiguration": { "target": "com.amazonaws.rds#CloudwatchLogsExportConfiguration", "traits": { - "smithy.api#documentation": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB cluster.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB cluster. The values\n in the list depend on the DB engine being used.

\n

\n RDS for MySQL\n

\n

Possible values are error, general, and slowquery.

\n

\n RDS for PostgreSQL\n

\n

Possible values are postgresql and upgrade.

\n

\n Aurora MySQL\n

\n

Possible values are audit, error, general, and slowquery.

\n

\n Aurora PostgreSQL\n

\n

Possible value is postgresql.

\n

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Relational Database\n Service User Guide.

\n

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" } }, "EngineVersion": { @@ -14008,7 +14008,7 @@ "CopyTagsToSnapshot": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { - "smithy.api#documentation": "

A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. \n The default is not to copy them.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. \n The default is not to copy them.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

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

\n Modifies the parameters of a DB cluster parameter group. To modify more than one parameter,\n submit a list of the following: ParameterName, ParameterValue, \n and ApplyMethod. A maximum of 20\n parameters can be modified in a single request.\n

\n \n

After you create a DB cluster parameter group, you should wait at least 5 minutes\n before creating your first DB cluster that uses that DB cluster parameter group as the default parameter \n group. This allows Amazon RDS to fully complete the create action before the parameter \n group is used as the default for a new DB cluster. This is especially important for parameters \n that are critical when creating the default database for a DB cluster, such as the character set \n for the default database defined by the character_set_database parameter. You can use the \n Parameter Groups option of the Amazon RDS console or the \n DescribeDBClusterParameters action to verify \n that your DB cluster parameter group has been created or modified.

\n

If the modified DB cluster parameter group is used by an Aurora Serverless cluster, Aurora\n applies the update immediately. The cluster restart might interrupt your workload. In that case,\n your application must reopen any connections and retry any transactions that were active\n when the parameter changes took effect.

\n
\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

\n Modifies the parameters of a DB cluster parameter group. To modify more than one parameter,\n submit a list of the following: ParameterName, ParameterValue, \n and ApplyMethod. A maximum of 20\n parameters can be modified in a single request.\n

\n \n

After you create a DB cluster parameter group, you should wait at least 5 minutes\n before creating your first DB cluster that uses that DB cluster parameter group as the default parameter \n group. This allows Amazon RDS to fully complete the create action before the parameter \n group is used as the default for a new DB cluster. This is especially important for parameters \n that are critical when creating the default database for a DB cluster, such as the character set \n for the default database defined by the character_set_database parameter. You can use the \n Parameter Groups option of the Amazon RDS console or the \n DescribeDBClusterParameters action to verify \n that your DB cluster parameter group has been created or modified.

\n

If the modified DB cluster parameter group is used by an Aurora Serverless cluster, Aurora\n applies the update immediately. The cluster restart might interrupt your workload. In that case,\n your application must reopen any connections and retry any transactions that were active\n when the parameter changes took effect.

\n
\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#ModifyDBClusterParameterGroupMessage": { @@ -16006,7 +16006,7 @@ "SupportsClusters": { "target": "com.amazonaws.rds#Boolean", "traits": { - "smithy.api#documentation": "

Whether DB instances can be configured as a Multi-AZ DB cluster.

\n

The Multi-AZ DB clusters feature is in preview and is subject to change.

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" + "smithy.api#documentation": "

Whether DB instances can be configured as a Multi-AZ DB cluster.

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

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

You might need to reboot your DB cluster, usually for maintenance reasons. \n For example, if you make certain modifications, \n or if you change the DB cluster parameter group associated with the DB cluster, \n reboot the DB cluster for the changes to take effect.\n

\n \n

Rebooting a DB cluster restarts the database engine service. Rebooting a DB \n cluster results in a momentary outage, during which the DB cluster status is set to rebooting.\n

\n \n

Use this operation only for a non-Aurora Multi-AZ DB cluster. \n The Multi-AZ DB clusters feature is in preview and is subject to change.

\n \n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the \n Amazon RDS User Guide.\n

" + "smithy.api#documentation": "

You might need to reboot your DB cluster, usually for maintenance reasons. \n For example, if you make certain modifications, \n or if you change the DB cluster parameter group associated with the DB cluster, \n reboot the DB cluster for the changes to take effect.\n

\n \n

Rebooting a DB cluster restarts the database engine service. Rebooting a DB \n cluster results in a momentary outage, during which the DB cluster status is set to rebooting.\n

\n \n

Use this operation only for a non-Aurora Multi-AZ DB cluster.

\n \n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the \n Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#RebootDBClusterMessage": { @@ -16913,7 +16913,7 @@ } ], "traits": { - "smithy.api#documentation": "

Removes the asssociation of an Amazon Web Services Identity and Access Management (IAM) role from a\n DB cluster.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Removes the asssociation of an Amazon Web Services Identity and Access Management (IAM) role from a\n DB cluster.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#RemoveRoleFromDBClusterMessage": { @@ -17415,7 +17415,7 @@ } ], "traits": { - "smithy.api#documentation": "

\n Modifies the parameters of a DB cluster parameter group to the default value. To\n reset specific parameters submit a list of the following: ParameterName \n and ApplyMethod. To reset the\n entire DB cluster parameter group, specify the DBClusterParameterGroupName \n and ResetAllParameters parameters.\n

\n

\n When resetting the entire group, dynamic parameters are updated immediately and static parameters\n are set to pending-reboot to take effect on the next DB instance restart \n or RebootDBInstance request. You must call RebootDBInstance for every\n DB instance in your DB cluster that you want the updated static parameter to apply to.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

\n Modifies the parameters of a DB cluster parameter group to the default value. To\n reset specific parameters submit a list of the following: ParameterName \n and ApplyMethod. To reset the\n entire DB cluster parameter group, specify the DBClusterParameterGroupName \n and ResetAllParameters parameters.\n

\n

\n When resetting the entire group, dynamic parameters are updated immediately and static parameters\n are set to pending-reboot to take effect on the next DB instance restart \n or RebootDBInstance request. You must call RebootDBInstance for every\n DB instance in your DB cluster that you want the updated static parameter to apply to.

\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#ResetDBClusterParameterGroupMessage": { @@ -17752,7 +17752,7 @@ "EnableCloudwatchLogsExports": { "target": "com.amazonaws.rds#LogTypeList", "traits": { - "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values\n in the list depend on the DB engine being used. For more information, see \n Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

" + "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values\n in the list depend on the DB engine being used.

\n

\n Aurora MySQL\n

\n

Possible values are audit, error, general, and slowquery.

\n

\n Aurora PostgreSQL\n

\n

Possible value is postgresql.

\n

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

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

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

\n

The target DB cluster is created from the source snapshot with a default\n configuration. If you don't specify a security group, the new DB cluster is\n associated with the default security group.

\n \n

This action only restores the DB cluster, not the DB instances for that DB\n cluster. You must invoke the CreateDBInstance action to create DB\n instances for the restored DB cluster, specifying the identifier of the restored DB\n cluster in DBClusterIdentifier. You can create DB instances only after\n the RestoreDBClusterFromSnapshot action has completed and the DB\n cluster is available.

\n
\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

\n

The target DB cluster is created from the source snapshot with a default\n configuration. If you don't specify a security group, the new DB cluster is\n associated with the default security group.

\n \n

This action only restores the DB cluster, not the DB instances for that DB\n cluster. You must invoke the CreateDBInstance action to create DB\n instances for the restored DB cluster, specifying the identifier of the restored DB\n cluster in DBClusterIdentifier. You can create DB instances only after\n the RestoreDBClusterFromSnapshot action has completed and the DB\n cluster is available.

\n
\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#RestoreDBClusterFromSnapshotMessage": { @@ -17947,7 +17947,7 @@ "EnableCloudwatchLogsExports": { "target": "com.amazonaws.rds#LogTypeList", "traits": { - "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs.\n The values in the list depend on the DB engine being used.

\n

For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon\n Aurora User Guide.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs.\n The values in the list depend on the DB engine being used.

\n

\n RDS for MySQL\n

\n

Possible values are error, general, and slowquery.

\n

\n RDS for PostgreSQL\n

\n

Possible values are postgresql and upgrade.

\n

\n Aurora MySQL\n

\n

Possible values are audit, error, general, and slowquery.

\n

\n Aurora PostgreSQL\n

\n

Possible value is postgresql.

\n

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Relational Database\n Service User Guide.

\n

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" } }, "EngineMode": { @@ -17977,7 +17977,7 @@ "CopyTagsToSnapshot": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { - "smithy.api#documentation": "

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

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

Restores a DB cluster to an arbitrary point in time. Users can restore to any point\n in time before LatestRestorableTime for up to\n BackupRetentionPeriod days. The target DB cluster is created from the\n source DB cluster with the same configuration as the original DB cluster, except that\n the new DB cluster is created with the default DB security group.

\n \n

For Aurora, this action only restores the DB cluster, not the DB instances for that DB\n cluster. You must invoke the CreateDBInstance action to create DB\n instances for the restored DB cluster, specifying the identifier of the restored DB\n cluster in DBClusterIdentifier. You can create DB instances only after\n the RestoreDBClusterToPointInTime action has completed and the DB\n cluster is available.

\n
\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

\n \n

The Multi-AZ DB clusters feature is in preview and is subject to change.

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

Restores a DB cluster to an arbitrary point in time. Users can restore to any point\n in time before LatestRestorableTime for up to\n BackupRetentionPeriod days. The target DB cluster is created from the\n source DB cluster with the same configuration as the original DB cluster, except that\n the new DB cluster is created with the default DB security group.

\n \n

For Aurora, this action only restores the DB cluster, not the DB instances for that DB\n cluster. You must invoke the CreateDBInstance action to create DB\n instances for the restored DB cluster, specifying the identifier of the restored DB\n cluster in DBClusterIdentifier. You can create DB instances only after\n the RestoreDBClusterToPointInTime action has completed and the DB\n cluster is available.

\n
\n

For more information on Amazon Aurora DB clusters, see \n \n What is Amazon Aurora? in the Amazon Aurora User Guide.\n

\n

For more information on Multi-AZ DB clusters, see \n \n Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.\n

" } }, "com.amazonaws.rds#RestoreDBClusterToPointInTimeMessage": { @@ -18180,7 +18180,7 @@ "EnableCloudwatchLogsExports": { "target": "com.amazonaws.rds#LogTypeList", "traits": { - "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values\n in the list depend on the DB engine being used.

\n

For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values\n in the list depend on the DB engine being used.

\n

\n RDS for MySQL\n

\n

Possible values are error, general, and slowquery.

\n

\n RDS for PostgreSQL\n

\n

Possible values are postgresql and upgrade.

\n

\n Aurora MySQL\n

\n

Possible values are audit, error, general, and slowquery.

\n

\n Aurora PostgreSQL\n

\n

Possible value is postgresql.

\n

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Relational Database\n Service User Guide.

\n

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" } }, "DBClusterParameterGroupName": { @@ -18198,7 +18198,7 @@ "CopyTagsToSnapshot": { "target": "com.amazonaws.rds#BooleanOptional", "traits": { - "smithy.api#documentation": "

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

\n

Valid for: Aurora DB clusters only

" + "smithy.api#documentation": "

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

\n

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" } }, "Domain": { diff --git a/codegen/sdk-codegen/aws-models/route53recoverycluster.2019-12-02.json b/codegen/sdk-codegen/aws-models/route53recoverycluster.2019-12-02.json index 5f5cf9ccd22..38f24ce160b 100644 --- a/codegen/sdk-codegen/aws-models/route53recoverycluster.2019-12-02.json +++ b/codegen/sdk-codegen/aws-models/route53recoverycluster.2019-12-02.json @@ -52,7 +52,13 @@ "min": 1, "max": 255 }, - "smithy.api#pattern": "^[A-Za-z0-9:\\/_-]*$" + "smithy.api#pattern": "^[A-Za-z0-9:.\\/_-]*$" + } + }, + "com.amazonaws.route53recoverycluster#Arns": { + "type": "list", + "member": { + "target": "com.amazonaws.route53recoverycluster#Arn" } }, "com.amazonaws.route53recoverycluster#ConflictException": { @@ -131,7 +137,7 @@ } ], "traits": { - "smithy.api#documentation": "

Get the state for a routing control. A routing control is a simple on/off switch\n\t\t\t\tthat you can use to route traffic to cells. When the state is On, traffic flows to a cell. When it's off, traffic does not flow.

\n\t\t\t

Before you can create a routing control, you first must create a cluster to host the control.\n\t\t\t\tFor more information, see \n\t\t\t\tCreateCluster.\n\t\t\t\tAccess one of the endpoints for the cluster to get or update the routing control state to\n\t\t\t\tredirect traffic.

\n\t\t\t

For more information about working with routing controls, see \n\t\t\t\tRouting control\n\t\t\t\tin the Route 53 Application Recovery Controller Developer Guide.

" + "smithy.api#documentation": "

Get the state for a routing control. A routing control is a simple on/off switch that you\n\t\t\tcan use to route traffic to cells. When the state is On, traffic flows to a cell. When\n\t\t\tit's Off, traffic does not flow.

\n\t\t\t

Before you can create a routing control, you must first create a cluster to host the control\n\t\t\t\tin a control panel. For more information, see \n\t\t\t\t\tCreate routing control structures in the Amazon Route 53 Application Recovery Controller Developer Guide. \n\t\t\t\tThen you access one of the endpoints for the cluster to get or update the routing control state to\n\t\t\t\tredirect traffic.

\n\t\t\t

\n You must specify Regional endpoints when you work with API cluster operations \n\t\t\t\tto get or update routing control states in Application Recovery Controller.\n

\n\t\t\t

To see a code example for getting a routing control state, including accessing Regional cluster endpoints\n\t\t\t\tin sequence, see API examples\n\t\t\t\tin the Amazon Route 53 Application Recovery Controller Developer Guide.

\n\t\t\t

Learn more about working with routing controls in the following topics in the \n\t\t\t\tAmazon Route 53 Application Recovery Controller Developer Guide:

\n\t\t\t " } }, "com.amazonaws.route53recoverycluster#GetRoutingControlStateRequest": { @@ -265,18 +271,6 @@ }, "com.amazonaws.route53recoverycluster#ToggleCustomerAPI": { "type": "service", - "version": "2019-12-02", - "operations": [ - { - "target": "com.amazonaws.route53recoverycluster#GetRoutingControlState" - }, - { - "target": "com.amazonaws.route53recoverycluster#UpdateRoutingControlState" - }, - { - "target": "com.amazonaws.route53recoverycluster#UpdateRoutingControlStates" - } - ], "traits": { "aws.api#service": { "sdkId": "Route53 Recovery Cluster", @@ -289,9 +283,21 @@ "name": "route53-recovery-cluster" }, "aws.protocols#awsJson1_0": {}, - "smithy.api#documentation": "

Welcome to the Amazon Route 53 Application Recovery Controller API Reference Guide for Recovery Control Data Plane .

\n\t\t\t

Recovery control in Route 53 Application Recovery Controller includes extremely reliable routing controls that enable you to recover applications \n\t\t\t\tby rerouting traffic, for example, across Availability Zones or AWS Regions. Routing controls are simple on/off switches \n\t\t\t\thosted on a cluster. A cluster is a set of five redundant regional endpoints against which you can execute API calls to update or \n\t\t\t\tget the state of routing controls. You use routing controls to failover traffic to recover your application \n\t\t\t\tacross Availability Zones or Regions.

\n\t\t\t

This API guide includes information about how to get and update routing control states in Route 53 Application Recovery Controller.

\n\t\t\t

For more information about Route 53 Application Recovery Controller, see the following:

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

Welcome to the Routing Control (Recovery Cluster) API Reference Guide for Amazon Route 53 Application Recovery Controller.

\n\t\t\t

With Amazon Route 53 Application Recovery Controller, you can use routing control with extreme reliability to\n\t\t\trecover applications by rerouting traffic across\n\t\t\tAvailability Zones or AWS Regions. Routing controls are simple on/off switches hosted\n\t\t\ton a highly available cluster in Application Recovery Controller. A cluster provides a set of five redundant Regional endpoints against which you\n\t\t\tcan run API calls to get or update the state of routing controls. To implement failover, you set \n\t\t\tone routing control on and another one off, to reroute traffic from one Availability Zone or Amazon Web Services Region \n\t\t\tto another.

\n\t\t\t

\n Be aware that you must specify the Regional endpoints for a cluster when you work with API cluster operations \n\t\t\t\tto get or update routing control states in Application Recovery Controller. In addition, you must specify the US West (Oregon) Region \n\t\t\t\tfor Application Recovery Controller API calls. For example, use the parameter region us-west-2 with AWS CLI commands.\n\t\t\t\tFor more information, see\n\t\t\t\t\n\t\t\t\t\tGet and update routing control states using the API in the Amazon Route 53 Application Recovery Controller Developer Guide.

\n\t\t

This API guide includes information about the API operations for how to get and update routing control states\n\t\t\tin Application Recovery Controller. You also must set up the structures to support routing controls: clusters and control panels.

\n\t\t\t

For more information about working with routing control in Application Recovery Controller, see the following:

\n\t\t ", "smithy.api#title": "Route53 Recovery Cluster" - } + }, + "version": "2019-12-02", + "operations": [ + { + "target": "com.amazonaws.route53recoverycluster#GetRoutingControlState" + }, + { + "target": "com.amazonaws.route53recoverycluster#UpdateRoutingControlState" + }, + { + "target": "com.amazonaws.route53recoverycluster#UpdateRoutingControlStates" + } + ] }, "com.amazonaws.route53recoverycluster#UpdateRoutingControlState": { "type": "operation", @@ -325,7 +331,7 @@ } ], "traits": { - "smithy.api#documentation": "

Set the state of the routing control to reroute traffic. You can set the value to be On or Off.\n\t\t\t\tWhen the state is On, traffic flows to a cell. When it's off, traffic does not flow.

\n\t\t\t

For more information about working with routing controls, see \n\t\t\t\tRouting control\n\t\t\t\tin the Route 53 Application Recovery Controller Developer Guide.

" + "smithy.api#documentation": "

Set the state of the routing control to reroute traffic. You can set the value to be On or\n\t\t\tOff. When the state is On, traffic flows to a cell. When it's Off, traffic does not\n\t\t\tflow.

\n\t\t\t

With Application Recovery Controller, you can add safety rules for routing controls, which are safeguards for routing \n\t\t\t\tcontrol state updates that help prevent unexpected outcomes, like fail open traffic routing. However, \n\t\t\t\tthere are scenarios when you might want to bypass the routing control safeguards that are enforced with \n\t\t\t\tsafety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, \n\t\t\t\tand one or more safety rules might be unexpectedly preventing you from updating a routing control state to \n\t\t\t\treroute traffic. In a \"break glass\" scenario like this, you can override one or more safety rules to change \n\t\t\t\ta routing control state and fail over your application.

\n\t\t\t

The SafetyRulesToOverride property enables you override one or more safety rules and \n\t\t\t\tupdate routing control states. For more information, see \n\t\t\t\t\n\t\t\t\t\tOverride safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

\n\t\t\t

\n You must specify Regional endpoints when you work with API cluster operations \n\t\t\t\tto get or update routing control states in Application Recovery Controller.\n

\n\t\t\t

To see a code example for getting a routing control state, including accessing Regional cluster endpoints\n\t\t\t\tin sequence, see API examples\n\t\t\t\tin the Amazon Route 53 Application Recovery Controller Developer Guide.

\n\t\t\t " } }, "com.amazonaws.route53recoverycluster#UpdateRoutingControlStateEntries": { @@ -340,7 +346,7 @@ "RoutingControlArn": { "target": "com.amazonaws.route53recoverycluster#Arn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Number (ARN) for the routing control state entry.

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

The Amazon Resource Number (ARN) for a routing control state entry.

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

A routing control state.

" + "smithy.api#documentation": "

A routing control state entry.

" } }, "com.amazonaws.route53recoverycluster#UpdateRoutingControlStateRequest": { @@ -372,6 +378,12 @@ "smithy.api#documentation": "

The state of the routing control. You can set the value to be On or Off.

", "smithy.api#required": {} } + }, + "SafetyRulesToOverride": { + "target": "com.amazonaws.route53recoverycluster#Arns", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Numbers (ARNs) for the safety rules that you want to override when you're updating the state of\n\t\t\ta routing control. You can override one safety rule or multiple safety rules by including one or more ARNs, separated \n\t\t\tby commas.

\n\t\t

For more information, see \n\t\t\tOverride safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

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

Set multiple routing control states. You can set the value for each state to be On or Off.\n\t\t\tWhen the state is On, traffic flows to a cell. When it's off, traffic does not flow.

\n\t\t\t

For more information about working with routing controls, see \n\t\t\t\tRouting control\n\t\t\t\tin the Route 53 Application Recovery Controller Developer Guide.

" + "smithy.api#documentation": "

Set multiple routing control states. You can set the value for each state to be On or Off.\n\t\t\tWhen the state is On, traffic flows to a cell. When it's Off, traffic does not\n\t\t\tflow.

\n\t\t\t

With Application Recovery Controller, you can add safety rules for routing controls, which are safeguards for routing \n\t\t\t\tcontrol state updates that help prevent unexpected outcomes, like fail open traffic routing. However, \n\t\t\t\tthere are scenarios when you might want to bypass the routing control safeguards that are enforced with \n\t\t\t\tsafety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, \n\t\t\t\tand one or more safety rules might be unexpectedly preventing you from updating a routing control state to \n\t\t\t\treroute traffic. In a \"break glass\" scenario like this, you can override one or more safety rules to change \n\t\t\t\ta routing control state and fail over your application.

\n\t\t\t

The SafetyRulesToOverride property enables you override one or more safety rules and \n\t\t\t\tupdate routing control states. For more information, see \n\t\t\t\t\n\t\t\t\t\tOverride safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

\t\t\t\n

\n You must specify Regional endpoints when you work with API cluster operations \n\t\t\t\tto get or update routing control states in Application Recovery Controller.\n

\n\t\t\t

To see a code example for getting a routing control state, including accessing Regional cluster endpoints\n\t\t\t\tin sequence, see API examples\n\t\t\t\tin the Amazon Route 53 Application Recovery Controller Developer Guide.

\n\t\t\t " } }, "com.amazonaws.route53recoverycluster#UpdateRoutingControlStatesRequest": { @@ -423,6 +435,12 @@ "smithy.api#documentation": "

A set of routing control entries that you want to update.

", "smithy.api#required": {} } + }, + "SafetyRulesToOverride": { + "target": "com.amazonaws.route53recoverycluster#Arns", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Numbers (ARNs) for the safety rules that you want to override when you're updating routing\n\t\t\tcontrol states. You can override one safety rule or multiple safety rules by including one or more ARNs, separated \n\t\t\tby commas.

\n\t\t

For more information, see \n\t\t\tOverride safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + } } } }, diff --git a/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json b/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json index 34209543aea..9cae82b8896 100644 --- a/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json +++ b/codegen/sdk-codegen/aws-models/servicecatalogappregistry.2020-06-24.json @@ -31,6 +31,21 @@ "shapes": { "com.amazonaws.servicecatalogappregistry#AWS242AppRegistry": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Service Catalog AppRegistry", + "arnNamespace": "servicecatalog", + "cloudFormationName": "ServiceCatalogAppRegistry", + "cloudTrailEventSource": "servicecatalogappregistry.amazonaws.com", + "endpointPrefix": "servicecatalog-appregistry" + }, + "aws.auth#sigv4": { + "name": "servicecatalog" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

Amazon Web Services Service Catalog AppRegistry enables organizations to understand the application context of their Amazon Web Services resources. AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise.

", + "smithy.api#title": "AWS Service Catalog App Registry" + }, "version": "2020-06-24", "operations": [ { @@ -96,22 +111,7 @@ { "target": "com.amazonaws.servicecatalogappregistry#UpdateAttributeGroup" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Service Catalog AppRegistry", - "arnNamespace": "servicecatalog", - "cloudFormationName": "ServiceCatalogAppRegistry", - "cloudTrailEventSource": "servicecatalogappregistry.amazonaws.com", - "endpointPrefix": "servicecatalog-appregistry" - }, - "aws.auth#sigv4": { - "name": "servicecatalog" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

Amazon Web Services Service Catalog AppRegistry enables organizations to understand the application context of their Amazon Web Services resources. AppRegistry provides a repository of your applications, their resources, and the application metadata that you use within your enterprise.

", - "smithy.api#title": "AWS Service Catalog App Registry" - } + ] }, "com.amazonaws.servicecatalogappregistry#Application": { "type": "structure", @@ -2107,6 +2107,9 @@ "name": { "target": "com.amazonaws.servicecatalogappregistry#Name", "traits": { + "smithy.api#deprecated": { + "message": "Name update for application is deprecated." + }, "smithy.api#documentation": "

The new name of the application. The name must be unique in the region in which you are updating the application.

" } }, @@ -2174,6 +2177,9 @@ "name": { "target": "com.amazonaws.servicecatalogappregistry#Name", "traits": { + "smithy.api#deprecated": { + "message": "Name update for attribute group is deprecated." + }, "smithy.api#documentation": "

The new name of the attribute group. The name must be unique in the region in which you are\n updating the attribute group.

" } }, diff --git a/codegen/sdk-codegen/aws-models/sts.2011-06-15.json b/codegen/sdk-codegen/aws-models/sts.2011-06-15.json index 85099f3845d..a1cb802e727 100644 --- a/codegen/sdk-codegen/aws-models/sts.2011-06-15.json +++ b/codegen/sdk-codegen/aws-models/sts.2011-06-15.json @@ -100,7 +100,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of temporary security credentials that you can use to access Amazon Web Services\n resources that you might not normally have access to. These temporary credentials consist\n of an access key ID, a secret access key, and a security token. Typically, you use\n AssumeRole within your account or for cross-account access. For a\n comparison of AssumeRole with other API operations that produce temporary\n credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRole can be used to\n make API calls to any Amazon Web Services service with the following exception: You cannot call the\n Amazon Web Services STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policies to use as managed session policies.\n The plaintext that you use for both inline and managed session policies can't exceed 2,048\n characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

When you create a role, you create two policies: A role trust policy that specifies\n who can assume the role and a permissions policy that specifies\n what can be done with the role. You specify the trusted principal\n who is allowed to assume the role in the role trust policy.

\n

To assume a role from a different account, your Amazon Web Services account must be trusted by the\n role. The trust relationship is defined in the role's trust policy when the role is\n created. That trust policy states which accounts are allowed to delegate that access to\n users in the account.

\n

A user who wants to access a role in a different account must also have permissions that\n are delegated from the user account administrator. The administrator must attach a policy\n that allows the user to call AssumeRole for the ARN of the role in the other\n account.

\n

To allow a user to assume a role in the same account, you can do either of the\n following:

\n \n

You can do either because the role’s trust policy acts as an IAM resource-based\n policy. When a resource-based policy grants access to a principal in the same account, no\n additional identity-based policy is required. For more information about trust policies and\n resource-based policies, see IAM Policies in the\n IAM User Guide.

\n\n

\n Tags\n

\n

(Optional) You can pass tag key-value pairs to your session. These tags are called\n session tags. For more information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Using MFA with AssumeRole\n

\n

(Optional) You can include multi-factor authentication (MFA) information when you call\n AssumeRole. This is useful for cross-account scenarios to ensure that the\n user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that\n scenario, the trust policy of the role being assumed includes a condition that tests for\n MFA authentication. If the caller does not include valid MFA information, the request to\n assume the role is denied. The condition in a trust policy that tests for MFA\n authentication might look like the following example.

\n

\n \"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}\n

\n

For more information, see Configuring MFA-Protected API Access\n in the IAM User Guide guide.

\n

To use MFA with AssumeRole, you pass values for the\n SerialNumber and TokenCode parameters. The\n SerialNumber value identifies the user's hardware or virtual MFA device.\n The TokenCode is the time-based one-time password (TOTP) that the MFA device\n produces.

" + "smithy.api#documentation": "

Returns a set of temporary security credentials that you can use to access Amazon Web Services\n resources that you might not normally have access to. These temporary credentials consist\n of an access key ID, a secret access key, and a security token. Typically, you use\n AssumeRole within your account or for cross-account access. For a\n comparison of AssumeRole with other API operations that produce temporary\n credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRole can be used to\n make API calls to any Amazon Web Services service with the following exception: You cannot call the\n Amazon Web Services STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policies to use as managed session policies.\n The plaintext that you use for both inline and managed session policies can't exceed 2,048\n characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

When you create a role, you create two policies: A role trust policy that specifies\n who can assume the role and a permissions policy that specifies\n what can be done with the role. You specify the trusted principal\n who is allowed to assume the role in the role trust policy.

\n

To assume a role from a different account, your Amazon Web Services account must be trusted by the\n role. The trust relationship is defined in the role's trust policy when the role is\n created. That trust policy states which accounts are allowed to delegate that access to\n users in the account.

\n

A user who wants to access a role in a different account must also have permissions that\n are delegated from the user account administrator. The administrator must attach a policy\n that allows the user to call AssumeRole for the ARN of the role in the other\n account.

\n

To allow a user to assume a role in the same account, you can do either of the\n following:

\n \n

You can do either because the role’s trust policy acts as an IAM resource-based\n policy. When a resource-based policy grants access to a principal in the same account, no\n additional identity-based policy is required. For more information about trust policies and\n resource-based policies, see IAM Policies in the\n IAM User Guide.

\n\n

\n Tags\n

\n

(Optional) You can pass tag key-value pairs to your session. These tags are called\n session tags. For more information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Using MFA with AssumeRole\n

\n

(Optional) You can include multi-factor authentication (MFA) information when you call\n AssumeRole. This is useful for cross-account scenarios to ensure that the\n user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that\n scenario, the trust policy of the role being assumed includes a condition that tests for\n MFA authentication. If the caller does not include valid MFA information, the request to\n assume the role is denied. The condition in a trust policy that tests for MFA\n authentication might look like the following example.

\n

\n \"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}\n

\n

For more information, see Configuring MFA-Protected API Access\n in the IAM User Guide guide.

\n

To use MFA with AssumeRole, you pass values for the\n SerialNumber and TokenCode parameters. The\n SerialNumber value identifies the user's hardware or virtual MFA device.\n The TokenCode is the time-based one-time password (TOTP) that the MFA device\n produces.

" } }, "com.amazonaws.sts#AssumeRoleRequest": { @@ -141,7 +141,7 @@ "Tags": { "target": "com.amazonaws.sts#tagListType", "traits": { - "smithy.api#documentation": "

A list of session tags that you want to pass. Each session tag consists of a key name\n and an associated value. For more information about session tags, see Tagging Amazon Web Services STS\n Sessions in the IAM User Guide.

\n

This parameter is optional. You can pass up to 50 session tags. The plaintext session\n tag keys can’t exceed 128 characters, and the values can’t exceed 256 characters. For these\n and additional limits, see IAM\n and STS Character Limits in the IAM User Guide.

\n \n \n

An Amazon Web Services conversion compresses the passed session policies and session tags into a\n packed binary format that has a separate limit. Your request can fail for this limit\n even if your plaintext meets the other requirements. The PackedPolicySize\n response element indicates by percentage how close the policies and tags for your\n request are to the upper size limit.\n

\n
\n \n

You can pass a session tag with the same key as a tag that is already attached to the\n role. When you do, session tags override a role tag with the same key.

\n

Tag key–value pairs are not case sensitive, but case is preserved. This means that you\n cannot have separate Department and department tag keys. Assume\n that the role has the Department=Marketing tag and you pass the\n department=engineering session tag. Department\n and department are not saved as separate tags, and the session tag passed in\n the request takes precedence over the role tag.

\n

Additionally, if you used temporary credentials to perform this operation, the new\n session inherits any transitive session tags from the calling session. If you pass a\n session tag with the same key as an inherited tag, the operation fails. To view the\n inherited tags for a session, see the CloudTrail logs. For more information, see Viewing Session Tags in CloudTrail in the\n IAM User Guide.

" + "smithy.api#documentation": "

A list of session tags that you want to pass. Each session tag consists of a key name\n and an associated value. For more information about session tags, see Tagging Amazon Web Services STS\n Sessions in the IAM User Guide.

\n

This parameter is optional. You can pass up to 50 session tags. The plaintext session\n tag keys can’t exceed 128 characters, and the values can’t exceed 256 characters. For these\n and additional limits, see IAM\n and STS Character Limits in the IAM User Guide.

\n \n \n

An Amazon Web Services conversion compresses the passed session policies and session tags into a\n packed binary format that has a separate limit. Your request can fail for this limit\n even if your plaintext meets the other requirements. The PackedPolicySize\n response element indicates by percentage how close the policies and tags for your\n request are to the upper size limit.\n

\n
\n \n

You can pass a session tag with the same key as a tag that is already attached to the\n role. When you do, session tags override a role tag with the same key.

\n

Tag key–value pairs are not case sensitive, but case is preserved. This means that you\n cannot have separate Department and department tag keys. Assume\n that the role has the Department=Marketing tag and you pass the\n department=engineering session tag. Department\n and department are not saved as separate tags, and the session tag passed in\n the request takes precedence over the role tag.

\n

Additionally, if you used temporary credentials to perform this operation, the new\n session inherits any transitive session tags from the calling session. If you pass a\n session tag with the same key as an inherited tag, the operation fails. To view the\n inherited tags for a session, see the CloudTrail logs. For more information, see Viewing Session Tags in CloudTrail in the\n IAM User Guide.

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

Returns a set of temporary security credentials for users who have been authenticated in\n a mobile or web application with a web identity provider. Example providers include Amazon Cognito,\n Login with Amazon, Facebook, Google, or any OpenID Connect-compatible identity\n provider.

\n \n

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the\n Amazon Web Services SDK for iOS Developer Guide and the Amazon Web Services SDK for Android Developer Guide to uniquely\n identify a user. You can also supply the user with a consistent identity throughout the\n lifetime of an application.

\n

To learn more about Amazon Cognito, see Amazon Cognito Overview in\n Amazon Web Services SDK for Android Developer Guide and Amazon Cognito Overview in the\n Amazon Web Services SDK for iOS Developer Guide.

\n
\n

Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web Services\n security credentials. Therefore, you can distribute an application (for example, on mobile\n devices) that requests temporary security credentials without including long-term Amazon Web Services\n credentials in the application. You also don't need to deploy server-based proxy services\n that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by\n using a token from the web identity provider. For a comparison of\n AssumeRoleWithWebIdentity with the other API operations that produce\n temporary credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

The temporary security credentials returned by this API consist of an access key ID, a\n secret access key, and a security token. Applications can use these temporary security\n credentials to sign calls to Amazon Web Services service API operations.

\n

\n Session Duration\n

\n

By default, the temporary security credentials created by\n AssumeRoleWithWebIdentity last for one hour. However, you can use the\n optional DurationSeconds parameter to specify the duration of your session.\n You can provide a value from 900 seconds (15 minutes) up to the maximum session duration\n setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how\n to view the maximum value for your role, see View the\n Maximum Session Duration Setting for a Role in the\n IAM User Guide. The maximum session duration limit applies when\n you use the AssumeRole* API operations or the assume-role* CLI\n commands. However the limit does not apply when you use those operations to create a\n console URL. For more information, see Using IAM Roles in the\n IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRoleWithWebIdentity can\n be used to make API calls to any Amazon Web Services service with the following exception: you cannot\n call the STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policies to use as managed session policies.\n The plaintext that you use for both inline and managed session policies can't exceed 2,048\n characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

\n Tags\n

\n

(Optional) You can configure your IdP to pass attributes into your web identity token as\n session tags. Each session tag consists of a key name and an associated value. For more\n information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n characters and the values can’t exceed 256 characters. For these and additional limits, see\n IAM\n and STS Character Limits in the IAM User Guide.

\n \n \n

An Amazon Web Services conversion compresses the passed session policies and session tags into a\n packed binary format that has a separate limit. Your request can fail for this limit\n even if your plaintext meets the other requirements. The PackedPolicySize\n response element indicates by percentage how close the policies and tags for your\n request are to the upper size limit.\n

\n
\n \n

You can pass a session tag with the same key as a tag that is attached to the role. When\n you do, the session tag overrides the role tag with the same key.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Identities\n

\n

Before your application can call AssumeRoleWithWebIdentity, you must have\n an identity token from a supported identity provider and create a role that the application\n can assume. The role that your application assumes must trust the identity provider that is\n associated with the identity token. In other words, the identity provider must be specified\n in the role's trust policy.

\n \n

Calling AssumeRoleWithWebIdentity can result in an entry in your\n CloudTrail logs. The entry includes the Subject of\n the provided web identity token. We recommend that you avoid using any personally\n identifiable information (PII) in this field. For example, you could instead use a GUID\n or a pairwise identifier, as suggested\n in the OIDC specification.

\n
\n

For more information about how to use web identity federation and the\n AssumeRoleWithWebIdentity API, see the following resources:

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

Returns a set of temporary security credentials for users who have been authenticated in\n a mobile or web application with a web identity provider. Example providers include the\n OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible\n identity provider such as Google or Amazon Cognito federated identities.

\n \n

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the\n Amazon Web Services SDK for iOS Developer Guide and the Amazon Web Services SDK for Android Developer Guide to uniquely\n identify a user. You can also supply the user with a consistent identity throughout the\n lifetime of an application.

\n

To learn more about Amazon Cognito, see Amazon Cognito Overview in\n Amazon Web Services SDK for Android Developer Guide and Amazon Cognito Overview in the\n Amazon Web Services SDK for iOS Developer Guide.

\n
\n

Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web Services\n security credentials. Therefore, you can distribute an application (for example, on mobile\n devices) that requests temporary security credentials without including long-term Amazon Web Services\n credentials in the application. You also don't need to deploy server-based proxy services\n that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by\n using a token from the web identity provider. For a comparison of\n AssumeRoleWithWebIdentity with the other API operations that produce\n temporary credentials, see Requesting Temporary Security\n Credentials and Comparing the\n Amazon Web Services STS API operations in the IAM User Guide.

\n

The temporary security credentials returned by this API consist of an access key ID, a\n secret access key, and a security token. Applications can use these temporary security\n credentials to sign calls to Amazon Web Services service API operations.

\n

\n Session Duration\n

\n

By default, the temporary security credentials created by\n AssumeRoleWithWebIdentity last for one hour. However, you can use the\n optional DurationSeconds parameter to specify the duration of your session.\n You can provide a value from 900 seconds (15 minutes) up to the maximum session duration\n setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how\n to view the maximum value for your role, see View the\n Maximum Session Duration Setting for a Role in the\n IAM User Guide. The maximum session duration limit applies when\n you use the AssumeRole* API operations or the assume-role* CLI\n commands. However the limit does not apply when you use those operations to create a\n console URL. For more information, see Using IAM Roles in the\n IAM User Guide.

\n

\n Permissions\n

\n

The temporary security credentials created by AssumeRoleWithWebIdentity can\n be used to make API calls to any Amazon Web Services service with the following exception: you cannot\n call the STS GetFederationToken or GetSessionToken API\n operations.

\n

(Optional) You can pass inline or managed session policies to\n this operation. You can pass a single JSON policy document to use as an inline session\n policy. You can also specify up to 10 managed policies to use as managed session policies.\n The plaintext that you use for both inline and managed session policies can't exceed 2,048\n characters. Passing policies to this operation returns new \n temporary credentials. The resulting session's permissions are the intersection of the \n role's identity-based policy and the session policies. You can use the role's temporary \n credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n the role. You cannot use session policies to grant more permissions than those allowed \n by the identity-based policy of the role that is being assumed. For more information, see\n Session\n Policies in the IAM User Guide.

\n

\n Tags\n

\n

(Optional) You can configure your IdP to pass attributes into your web identity token as\n session tags. Each session tag consists of a key name and an associated value. For more\n information about session tags, see Passing Session Tags in STS in the\n IAM User Guide.

\n

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n characters and the values can’t exceed 256 characters. For these and additional limits, see\n IAM\n and STS Character Limits in the IAM User Guide.

\n \n \n

An Amazon Web Services conversion compresses the passed session policies and session tags into a\n packed binary format that has a separate limit. Your request can fail for this limit\n even if your plaintext meets the other requirements. The PackedPolicySize\n response element indicates by percentage how close the policies and tags for your\n request are to the upper size limit.\n

\n
\n \n

You can pass a session tag with the same key as a tag that is attached to the role. When\n you do, the session tag overrides the role tag with the same key.

\n

An administrator must grant you the permissions necessary to pass session tags. The\n administrator can also create granular permissions to allow you to pass only specific\n session tags. For more information, see Tutorial: Using Tags\n for Attribute-Based Access Control in the\n IAM User Guide.

\n

You can set the session tags as transitive. Transitive tags persist during role\n chaining. For more information, see Chaining Roles\n with Session Tags in the IAM User Guide.

\n

\n Identities\n

\n

Before your application can call AssumeRoleWithWebIdentity, you must have\n an identity token from a supported identity provider and create a role that the application\n can assume. The role that your application assumes must trust the identity provider that is\n associated with the identity token. In other words, the identity provider must be specified\n in the role's trust policy.

\n \n

Calling AssumeRoleWithWebIdentity can result in an entry in your\n CloudTrail logs. The entry includes the Subject of\n the provided web identity token. We recommend that you avoid using any personally\n identifiable information (PII) in this field. For example, you could instead use a GUID\n or a pairwise identifier, as suggested\n in the OIDC specification.

\n
\n

For more information about how to use web identity federation and the\n AssumeRoleWithWebIdentity API, see the following resources:

\n " } }, "com.amazonaws.sts#AssumeRoleWithWebIdentityRequest": { @@ -408,7 +408,7 @@ "ProviderId": { "target": "com.amazonaws.sts#urlType", "traits": { - "smithy.api#documentation": "

The fully qualified host component of the domain name of the identity provider.

\n

Specify this value only for OAuth 2.0 access tokens. Currently\n www.amazon.com and graph.facebook.com are the only supported\n identity providers for OAuth 2.0 access tokens. Do not include URL schemes and port\n numbers.

\n

Do not specify this value for OpenID Connect ID tokens.

" + "smithy.api#documentation": "

The fully qualified host component of the domain name of the OAuth 2.0 identity\n provider. Do not specify this value for an OpenID Connect identity provider.

\n

Currently www.amazon.com and graph.facebook.com are the only\n supported identity providers for OAuth 2.0 access tokens. Do not include URL schemes and\n port numbers.

\n

Do not specify this value for OpenID Connect ID tokens.

" } }, "PolicyArns": { diff --git a/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json b/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json index 4f53264ebe6..9482d1469ed 100644 --- a/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json +++ b/codegen/sdk-codegen/aws-models/synthetics.2017-10-11.json @@ -262,9 +262,9 @@ } }, "Handler": { - "target": "com.amazonaws.synthetics#String", + "target": "com.amazonaws.synthetics#CodeHandler", "traits": { - "smithy.api#documentation": "

The entry point to use for the source code when running the canary. This value must end\n with the string .handler. The string is limited to 29 characters or fewer.

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

The entry point to use for the source code when running the canary. For canaries that use the \n syn-python-selenium-1.0 runtime\n or a syn-nodejs.puppeteer runtime earlier than syn-nodejs.puppeteer-3.4, \n the handler must be specified as \n fileName.handler. For \n syn-python-selenium-1.1, syn-nodejs.puppeteer-3.4, and later runtimes, the handler can be specified as \n \n fileName.functionName\n , or\n you can specify a folder where canary scripts reside as \n\n folder/fileName.functionName\n .

", "smithy.api#required": {} } } @@ -658,6 +658,16 @@ "smithy.api#documentation": "

This structure contains information about when the canary was created and modified.

" } }, + "com.amazonaws.synthetics#CodeHandler": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^([0-9a-zA-Z_-]+\\/)*[0-9A-Za-z_\\\\-]+\\.[A-Za-z_][A-Za-z0-9_]*$" + } + }, "com.amazonaws.synthetics#ConflictException": { "type": "structure", "members": { diff --git a/codegen/sdk-codegen/aws-models/timestreamquery.2018-11-01.json b/codegen/sdk-codegen/aws-models/timestreamquery.2018-11-01.json index d63d85b1393..63b5ca04f19 100644 --- a/codegen/sdk-codegen/aws-models/timestreamquery.2018-11-01.json +++ b/codegen/sdk-codegen/aws-models/timestreamquery.2018-11-01.json @@ -84,7 +84,7 @@ "aws.api#clientDiscoveredEndpoint": { "required": true }, - "smithy.api#documentation": "

Cancels a query that has been issued. Cancellation is provided only if the query has\n not completed running before the cancellation request was issued. Because cancellation\n is an idempotent operation, subsequent cancellation requests will return a\n CancellationMessage, indicating that the query has already been\n canceled. See code\n sample for details.

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

Cancels a query that has been issued. Cancellation is provided only if the query has\n not completed running before the cancellation request was issued. Because cancellation\n is an idempotent operation, subsequent cancellation requests will return a\n CancellationMessage, indicating that the query has already been\n canceled. See code\n sample for details.

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

DescribeEndpoints returns a list of available endpoints to make Timestream\n API calls against. This API is available through both Write and Query.

\n

Because the Timestream SDKs are designed to transparently work with the\n service’s architecture, including the management and mapping of the service endpoints,\n it is not recommended that you use this API unless:

\n \n

For detailed information on how and when to use and implement DescribeEndpoints, see\n The Endpoint Discovery Pattern.

" + "smithy.api#documentation": "

DescribeEndpoints returns a list of available endpoints to make Timestream\n API calls against. This API is available through both Write and Query.

\n

Because the Timestream SDKs are designed to transparently work with the\n service’s architecture, including the management and mapping of the service endpoints,\n it is not recommended that you use this API unless:

\n \n

For detailed information on how and when to use and implement DescribeEndpoints, see\n The Endpoint Discovery Pattern.

" } }, "com.amazonaws.timestreamquery#DescribeEndpointsRequest": { @@ -1199,7 +1199,7 @@ "aws.api#clientDiscoveredEndpoint": { "required": true }, - "smithy.api#documentation": "

\n Query is a synchronous operation that enables you to run a query against\n your Amazon Timestream data. Query will time out after 60 seconds.\n You must update the default timeout in the SDK to support a timeout of 60 seconds. See\n the code\n sample for details.

\n

Your query request will fail in the following cases:

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

\n Query is a synchronous operation that enables you to run a query against\n your Amazon Timestream data. Query will time out after 60 seconds.\n You must update the default timeout in the SDK to support a timeout of 60 seconds. See\n the code\n sample for details.

\n

Your query request will fail in the following cases:

\n ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", 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 7fa54319b31..7b7c229721c 100644 --- a/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json +++ b/codegen/sdk-codegen/aws-models/transfer.2018-11-05.json @@ -1062,7 +1062,59 @@ } ], "traits": { - "smithy.api#documentation": "

Describes a file transfer protocol-enabled server that you specify by passing the\n ServerId parameter.

\n\n

The response contains a description of a server's properties. When you set\n EndpointType to VPC, the response will contain the\n EndpointDetails.

" + "smithy.api#documentation": "

Describes a file transfer protocol-enabled server that you specify by passing the\n ServerId parameter.

\n\n

The response contains a description of a server's properties. When you set\n EndpointType to VPC, the response will contain the\n EndpointDetails.

", + "smithy.waiters#waitable": { + "ServerOffline": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Server.State", + "expected": "OFFLINE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Server.State", + "expected": "STOP_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 30 + }, + "ServerOnline": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Server.State", + "expected": "ONLINE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Server.State", + "expected": "START_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 30 + } + } } }, "com.amazonaws.transfer#DescribeServerRequest": { 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 cfae92934a4..a6ad871f14b 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 @@ -426,6 +426,27 @@ "us-west-2" : { } } }, + "amplifyuibuilder" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-north-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" : { } + } + }, "api.detective" : { "defaults" : { "protocols" : [ "https" ] @@ -1229,9 +1250,45 @@ "endpoints" : { "ap-northeast-1" : { }, "eu-west-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-2" : { } + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "apprunner-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "apprunner-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "apprunner-fips.us-west-2.amazonaws.com" + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "apprunner-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "apprunner-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "apprunner-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } } }, "appstream2" : { @@ -1578,6 +1635,7 @@ }, "braket" : { "endpoints" : { + "eu-west-2" : { }, "us-east-1" : { }, "us-west-1" : { }, "us-west-2" : { } @@ -7984,6 +8042,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -16845,6 +16904,12 @@ } }, "sqs" : { + "defaults" : { + "variants" : [ { + "hostname" : "sqs.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, "endpoints" : { "us-gov-east-1" : { "credentialScope" : { From 18dd1784f7410bf06b1c226b600884e894c1a71d Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Mon, 7 Mar 2022 18:14:04 -0800 Subject: [PATCH 2/4] feature: Updated API Clients --- .../41575353444b40ffbf474f4155544f00.json | 8 + .../amplify/api_op_UpdateDomainAssociation.go | 8 +- service/amplify/deserializers.go | 9 + service/amplify/types/enums.go | 24 +- service/amplify/types/types.go | 8 +- service/amplify/validators.go | 4 +- .../api_op_ExportComponents.go | 85 + .../amplifyuibuilder/api_op_ExportThemes.go | 84 + service/amplifyuibuilder/deserializers.go | 278 ++ service/amplifyuibuilder/doc.go | 2 +- .../internal/endpoints/endpoints.go | 53 + service/amplifyuibuilder/serializers.go | 179 + service/amplifyuibuilder/types/types.go | 141 +- service/amplifyuibuilder/validators.go | 127 + service/appflow/deserializers.go | 50 + service/appflow/serializers.go | 26 + service/appflow/types/types.go | 22 + service/appflow/validators.go | 20 + .../apprunner/internal/endpoints/endpoints.go | 45 + service/athena/api_op_UpdateNamedQuery.go | 129 + service/athena/deserializers.go | 190 + service/athena/generated.json | 1 + service/athena/serializers.go | 113 + service/athena/types/enums.go | 16 + service/athena/types/types.go | 59 +- service/athena/validators.go | 70 + .../braket/internal/endpoints/endpoints.go | 3 + .../chimesdkmeetings/api_op_CreateMeeting.go | 13 +- .../api_op_CreateMeetingWithAttendees.go | 10 +- service/chimesdkmeetings/doc.go | 2 +- service/chimesdkmeetings/serializers.go | 15 + service/chimesdkmeetings/types/types.go | 23 +- service/chimesdkmeetings/validators.go | 20 - service/cloudtrail/api_op_CancelQuery.go | 8 +- service/cloudtrail/api_op_DescribeQuery.go | 2 +- service/cloudtrail/api_op_GetQueryResults.go | 4 +- service/cloudtrail/api_op_ListQueries.go | 4 +- service/cloudtrail/deserializers.go | 26 + service/cloudtrail/types/enums.go | 2 + service/cloudtrail/types/errors.go | 4 +- service/cloudtrail/types/types.go | 14 +- service/connect/types/enums.go | 14 +- .../api_op_DescribeEventSourcesConfig.go | 113 + .../api_op_UpdateEventSourcesConfig.go | 112 + service/devopsguru/deserializers.go | 429 ++ service/devopsguru/generated.json | 2 + service/devopsguru/serializers.go | 141 + service/devopsguru/types/enums.go | 18 + service/devopsguru/types/types.go | 55 + service/ec2/api_op_CreateFleet.go | 2 +- service/ec2/api_op_CreateIpamPool.go | 10 +- service/ec2/api_op_DescribeImageAttribute.go | 8 +- service/ec2/deserializers.go | 6 + service/ec2/types/enums.go | 4 + service/ec2/types/types.go | 16 +- service/ec2/validators.go | 3 + .../api_op_PutImageScanningConfiguration.go | 5 +- ...api_op_PutRegistryScanningConfiguration.go | 15 +- service/ecr/deserializers.go | 16 + service/ecr/types/types.go | 25 +- service/ecs/api_op_CreateCluster.go | 2 +- service/ecs/api_op_CreateService.go | 69 +- service/ecs/api_op_PutAccountSetting.go | 2 +- service/ecs/api_op_RegisterTaskDefinition.go | 4 +- service/ecs/api_op_RunTask.go | 8 +- service/ecs/api_op_StartTask.go | 2 +- service/ecs/api_op_UpdateClusterSettings.go | 2 +- .../api_op_UpdateContainerInstancesState.go | 31 +- service/ecs/api_op_UpdateService.go | 121 +- .../ecs/api_op_UpdateServicePrimaryTaskSet.go | 2 +- service/ecs/serializers.go | 24 + service/ecs/types/enums.go | 2 + service/ecs/types/types.go | 104 +- .../finspacedata/api_op_CreateChangeset.go | 27 +- service/finspacedata/api_op_CreateDataView.go | 2 +- service/finspacedata/api_op_CreateDataset.go | 4 +- .../api_op_CreatePermissionGroup.go | 194 + service/finspacedata/api_op_CreateUser.go | 201 + .../api_op_DeletePermissionGroup.go | 163 + service/finspacedata/api_op_DisableUser.go | 163 + service/finspacedata/api_op_EnableUser.go | 163 + service/finspacedata/api_op_GetChangeset.go | 12 +- service/finspacedata/api_op_GetDataView.go | 22 +- service/finspacedata/api_op_GetDataset.go | 16 +- service/finspacedata/api_op_GetUser.go | 189 + .../finspacedata/api_op_GetWorkingLocation.go | 4 +- service/finspacedata/api_op_ListChangesets.go | 4 +- service/finspacedata/api_op_ListDataViews.go | 4 +- service/finspacedata/api_op_ListDatasets.go | 4 +- .../api_op_ListPermissionGroups.go | 218 + service/finspacedata/api_op_ListUsers.go | 216 + .../finspacedata/api_op_ResetUserPassword.go | 169 + .../finspacedata/api_op_UpdateChangeset.go | 8 +- service/finspacedata/api_op_UpdateDataset.go | 4 +- .../api_op_UpdatePermissionGroup.go | 195 + service/finspacedata/api_op_UpdateUser.go | 197 + service/finspacedata/deserializers.go | 3364 +++++++++++++--- service/finspacedata/generated.json | 11 + service/finspacedata/serializers.go | 1115 ++++- service/finspacedata/types/enums.go | 84 + service/finspacedata/types/errors.go | 6 + service/finspacedata/types/types.go | 232 +- service/finspacedata/validators.go | 429 ++ .../fis/api_op_CreateExperimentTemplate.go | 3 + .../fis/api_op_UpdateExperimentTemplate.go | 3 + service/fis/deserializers.go | 296 ++ service/fis/serializers.go | 95 + service/fis/types/types.go | 138 + service/fis/validators.go | 87 + .../api_op_CreateDataRepositoryAssociation.go | 5 +- .../fsx/api_op_CreateFileSystemFromBackup.go | 43 +- service/fsx/api_op_CreateSnapshot.go | 41 +- service/fsx/api_op_CreateVolume.go | 2 +- service/fsx/api_op_DeleteSnapshot.go | 9 +- service/fsx/api_op_DescribeSnapshots.go | 37 +- service/fsx/api_op_UpdateSnapshot.go | 2 +- service/fsx/deserializers.go | 18 + service/fsx/serializers.go | 33 + service/fsx/types/enums.go | 19 + service/fsx/types/errors.go | 6 +- service/fsx/types/types.go | 229 +- .../kafkaconnect/api_op_DeleteCustomPlugin.go | 125 + .../kafkaconnect/api_op_DescribeConnector.go | 3 + .../api_op_DescribeCustomPlugin.go | 3 + service/kafkaconnect/deserializers.go | 237 ++ service/kafkaconnect/generated.json | 1 + service/kafkaconnect/serializers.go | 58 + service/kafkaconnect/types/types.go | 12 + service/kafkaconnect/validators.go | 39 + service/kendra/api_op_CreateDataSource.go | 8 +- service/kendra/api_op_CreateExperience.go | 8 +- service/kendra/api_op_DescribeDataSource.go | 5 +- service/kendra/api_op_ListIndices.go | 2 +- service/kendra/api_op_Query.go | 6 + service/kendra/api_op_UpdateDataSource.go | 2 +- service/kendra/api_op_UpdateExperience.go | 4 +- service/kendra/api_op_UpdateIndex.go | 2 +- service/kendra/deserializers.go | 193 + service/kendra/serializers.go | 19 + service/kendra/types/types.go | 225 +- service/kendra/validators.go | 17 + service/keyspaces/LICENSE.txt | 202 + service/keyspaces/api_client.go | 433 ++ service/keyspaces/api_client_test.go | 123 + service/keyspaces/api_op_CreateKeyspace.go | 136 + service/keyspaces/api_op_CreateTable.go | 252 ++ service/keyspaces/api_op_DeleteKeyspace.go | 116 + service/keyspaces/api_op_DeleteTable.go | 127 + service/keyspaces/api_op_GetKeyspace.go | 127 + service/keyspaces/api_op_GetTable.go | 172 + service/keyspaces/api_op_ListKeyspaces.go | 222 + service/keyspaces/api_op_ListTables.go | 228 ++ .../keyspaces/api_op_ListTagsForResource.go | 231 ++ service/keyspaces/api_op_RestoreTable.go | 232 ++ service/keyspaces/api_op_TagResource.go | 128 + service/keyspaces/api_op_UntagResource.go | 123 + service/keyspaces/api_op_UpdateTable.go | 206 + service/keyspaces/deserializers.go | 3580 +++++++++++++++++ service/keyspaces/doc.go | 24 + service/keyspaces/endpoints.go | 200 + service/keyspaces/generated.json | 40 + service/keyspaces/go.mod | 16 + service/keyspaces/go.sum | 13 + service/keyspaces/go_module_metadata.go | 6 + .../keyspaces/internal/endpoints/endpoints.go | 250 ++ .../internal/endpoints/endpoints_test.go | 11 + service/keyspaces/protocol_test.go | 3 + service/keyspaces/serializers.go | 1345 +++++++ service/keyspaces/types/enums.go | 119 + service/keyspaces/types/errors.go | 131 + service/keyspaces/types/types.go | 353 ++ service/keyspaces/validators.go | 881 ++++ service/mediapackage/types/enums.go | 6 +- ..._CreateReplicationConfigurationTemplate.go | 18 +- service/mgn/api_op_DeleteVcenterClient.go | 2 +- service/mgn/api_op_DescribeJobLogItems.go | 2 +- service/mgn/api_op_DescribeJobs.go | 8 +- service/mgn/api_op_DescribeVcenterClients.go | 2 +- service/mgn/api_op_DisconnectFromService.go | 4 +- service/mgn/api_op_FinalizeCutover.go | 6 +- service/mgn/api_op_GetLaunchConfiguration.go | 15 +- .../mgn/api_op_GetReplicationConfiguration.go | 2 +- service/mgn/api_op_MarkAsArchived.go | 2 +- service/mgn/api_op_StartReplication.go | 2 +- service/mgn/api_op_StartTest.go | 2 +- .../mgn/api_op_UpdateLaunchConfiguration.go | 18 +- ..._UpdateReplicationConfigurationTemplate.go | 6 +- ...pi_op_UpdateSourceServerReplicationType.go | 3 +- service/mgn/deserializers.go | 31 + service/mgn/serializers.go | 10 + service/mgn/types/enums.go | 24 + service/mgn/types/errors.go | 2 +- service/mgn/types/types.go | 29 +- service/mq/internal/endpoints/endpoints.go | 3 + service/panorama/api_op_DeletePackage.go | 5 +- service/panorama/api_op_DescribeDevice.go | 6 + .../panorama/api_op_DescribePackageVersion.go | 2 +- .../panorama/api_op_RegisterPackageVersion.go | 2 +- service/panorama/deserializers.go | 248 +- service/panorama/serializers.go | 44 +- service/panorama/types/enums.go | 6 +- service/panorama/types/types.go | 47 +- service/panorama/validators.go | 20 + .../api_op_GetRoutingControlState.go | 32 +- .../api_op_UpdateRoutingControlState.go | 43 +- .../api_op_UpdateRoutingControlStates.go | 42 +- service/route53recoverycluster/doc.go | 66 +- service/route53recoverycluster/serializers.go | 25 + service/route53recoverycluster/types/types.go | 4 +- service/sqs/internal/endpoints/endpoints.go | 2 +- service/transfer/api_op_DescribeServer.go | 365 ++ service/transfer/generated.json | 3 +- service/transfer/go.mod | 1 + service/transfer/go.sum | 6 + 214 files changed, 22583 insertions(+), 1336 deletions(-) create mode 100644 .changelog/41575353444b40ffbf474f4155544f00.json create mode 100644 service/athena/api_op_UpdateNamedQuery.go create mode 100644 service/devopsguru/api_op_DescribeEventSourcesConfig.go create mode 100644 service/devopsguru/api_op_UpdateEventSourcesConfig.go create mode 100644 service/finspacedata/api_op_CreatePermissionGroup.go create mode 100644 service/finspacedata/api_op_CreateUser.go create mode 100644 service/finspacedata/api_op_DeletePermissionGroup.go create mode 100644 service/finspacedata/api_op_DisableUser.go create mode 100644 service/finspacedata/api_op_EnableUser.go create mode 100644 service/finspacedata/api_op_GetUser.go create mode 100644 service/finspacedata/api_op_ListPermissionGroups.go create mode 100644 service/finspacedata/api_op_ListUsers.go create mode 100644 service/finspacedata/api_op_ResetUserPassword.go create mode 100644 service/finspacedata/api_op_UpdatePermissionGroup.go create mode 100644 service/finspacedata/api_op_UpdateUser.go create mode 100644 service/kafkaconnect/api_op_DeleteCustomPlugin.go create mode 100644 service/keyspaces/LICENSE.txt create mode 100644 service/keyspaces/api_client.go create mode 100644 service/keyspaces/api_client_test.go create mode 100644 service/keyspaces/api_op_CreateKeyspace.go create mode 100644 service/keyspaces/api_op_CreateTable.go create mode 100644 service/keyspaces/api_op_DeleteKeyspace.go create mode 100644 service/keyspaces/api_op_DeleteTable.go create mode 100644 service/keyspaces/api_op_GetKeyspace.go create mode 100644 service/keyspaces/api_op_GetTable.go create mode 100644 service/keyspaces/api_op_ListKeyspaces.go create mode 100644 service/keyspaces/api_op_ListTables.go create mode 100644 service/keyspaces/api_op_ListTagsForResource.go create mode 100644 service/keyspaces/api_op_RestoreTable.go create mode 100644 service/keyspaces/api_op_TagResource.go create mode 100644 service/keyspaces/api_op_UntagResource.go create mode 100644 service/keyspaces/api_op_UpdateTable.go create mode 100644 service/keyspaces/deserializers.go create mode 100644 service/keyspaces/doc.go create mode 100644 service/keyspaces/endpoints.go create mode 100644 service/keyspaces/generated.json create mode 100644 service/keyspaces/go.mod create mode 100644 service/keyspaces/go.sum create mode 100644 service/keyspaces/go_module_metadata.go create mode 100644 service/keyspaces/internal/endpoints/endpoints.go create mode 100644 service/keyspaces/internal/endpoints/endpoints_test.go create mode 100644 service/keyspaces/protocol_test.go create mode 100644 service/keyspaces/serializers.go create mode 100644 service/keyspaces/types/enums.go create mode 100644 service/keyspaces/types/errors.go create mode 100644 service/keyspaces/types/types.go create mode 100644 service/keyspaces/validators.go diff --git a/.changelog/41575353444b40ffbf474f4155544f00.json b/.changelog/41575353444b40ffbf474f4155544f00.json new file mode 100644 index 00000000000..e1a4c2f8d8b --- /dev/null +++ b/.changelog/41575353444b40ffbf474f4155544f00.json @@ -0,0 +1,8 @@ +{ + "id": "41575353-444b-40ff-bf47-4f4155544f00", + "type": "release", + "description": "New AWS service client module", + "modules": [ + "service/keyspaces" + ] +} \ No newline at end of file diff --git a/service/amplify/api_op_UpdateDomainAssociation.go b/service/amplify/api_op_UpdateDomainAssociation.go index ea0bac7a0fa..910bf65bcd3 100644 --- a/service/amplify/api_op_UpdateDomainAssociation.go +++ b/service/amplify/api_op_UpdateDomainAssociation.go @@ -40,11 +40,6 @@ type UpdateDomainAssociationInput struct { // This member is required. DomainName *string - // Describes the settings for the subdomain. - // - // This member is required. - SubDomainSettings []types.SubDomainSetting - // Sets the branch patterns for automatic subdomain creation. AutoSubDomainCreationPatterns []string @@ -55,6 +50,9 @@ type UpdateDomainAssociationInput struct { // Enables the automated creation of subdomains for branches. EnableAutoSubDomain *bool + // Describes the settings for the subdomain. + SubDomainSettings []types.SubDomainSetting + noSmithyDocumentSerde } diff --git a/service/amplify/deserializers.go b/service/amplify/deserializers.go index f725d0f5654..e9a0e0dcd38 100644 --- a/service/amplify/deserializers.go +++ b/service/amplify/deserializers.go @@ -6259,6 +6259,15 @@ func awsRestjson1_deserializeDocumentApp(v **types.App, value interface{}) error sv.Repository = ptr.String(jtv) } + case "repositoryCloneMethod": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RepositoryCloneMethod to be of type string, got %T instead", value) + } + sv.RepositoryCloneMethod = types.RepositoryCloneMethod(jtv) + } + case "tags": if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { return err diff --git a/service/amplify/types/enums.go b/service/amplify/types/enums.go index 4794603724a..d18e1b06662 100644 --- a/service/amplify/types/enums.go +++ b/service/amplify/types/enums.go @@ -86,7 +86,8 @@ type Platform string // Enum values for Platform const ( - PlatformWeb Platform = "WEB" + PlatformWeb Platform = "WEB" + PlatformWebDynamic Platform = "WEB_DYNAMIC" ) // Values returns all known values for Platform. Note that this can be expanded in @@ -95,6 +96,27 @@ const ( func (Platform) Values() []Platform { return []Platform{ "WEB", + "WEB_DYNAMIC", + } +} + +type RepositoryCloneMethod string + +// Enum values for RepositoryCloneMethod +const ( + RepositoryCloneMethodSsh RepositoryCloneMethod = "SSH" + RepositoryCloneMethodToken RepositoryCloneMethod = "TOKEN" + RepositoryCloneMethodSigv4 RepositoryCloneMethod = "SIGV4" +) + +// Values returns all known values for RepositoryCloneMethod. 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 (RepositoryCloneMethod) Values() []RepositoryCloneMethod { + return []RepositoryCloneMethod{ + "SSH", + "TOKEN", + "SIGV4", } } diff --git a/service/amplify/types/types.go b/service/amplify/types/types.go index 44081f0b313..29d59d2389e 100644 --- a/service/amplify/types/types.go +++ b/service/amplify/types/types.go @@ -61,7 +61,7 @@ type App struct { // This member is required. Platform Platform - // The repository for the Amplify app. + // The Git repository for the Amplify app. // // This member is required. Repository *string @@ -106,6 +106,12 @@ type App struct { // Describes the information about a production branch of the Amplify app. ProductionBranch *ProductionBranch + // The authentication protocol to use to access the Git repository for an Amplify + // app. For a GitHub repository, specify TOKEN. For an Amazon Web Services + // CodeCommit repository, specify SIGV4. For GitLab and Bitbucket repositories, + // specify SSH. + RepositoryCloneMethod RepositoryCloneMethod + // The tag for the Amplify app. Tags map[string]string diff --git a/service/amplify/validators.go b/service/amplify/validators.go index f0306adead9..7673f28e9e2 100644 --- a/service/amplify/validators.go +++ b/service/amplify/validators.go @@ -1563,9 +1563,7 @@ func validateOpUpdateDomainAssociationInput(v *UpdateDomainAssociationInput) err if v.DomainName == nil { invalidParams.Add(smithy.NewErrParamRequired("DomainName")) } - if v.SubDomainSettings == nil { - invalidParams.Add(smithy.NewErrParamRequired("SubDomainSettings")) - } else if v.SubDomainSettings != nil { + if v.SubDomainSettings != nil { if err := validateSubDomainSettings(v.SubDomainSettings); err != nil { invalidParams.AddNested("SubDomainSettings", err.(smithy.InvalidParamsError)) } diff --git a/service/amplifyuibuilder/api_op_ExportComponents.go b/service/amplifyuibuilder/api_op_ExportComponents.go index 1e2209442a4..f2c56665347 100644 --- a/service/amplifyuibuilder/api_op_ExportComponents.go +++ b/service/amplifyuibuilder/api_op_ExportComponents.go @@ -4,6 +4,7 @@ package amplifyuibuilder 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/amplifyuibuilder/types" @@ -40,6 +41,9 @@ type ExportComponentsInput struct { // This member is required. EnvironmentName *string + // The token to request the next page of results. + NextToken *string + noSmithyDocumentSerde } @@ -50,6 +54,9 @@ type ExportComponentsOutput struct { // This member is required. Entities []types.Component + // The pagination token that's included if more results are available. + NextToken *string + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata @@ -119,6 +126,84 @@ func (c *Client) addOperationExportComponentsMiddlewares(stack *middleware.Stack return nil } +// ExportComponentsAPIClient is a client that implements the ExportComponents +// operation. +type ExportComponentsAPIClient interface { + ExportComponents(context.Context, *ExportComponentsInput, ...func(*Options)) (*ExportComponentsOutput, error) +} + +var _ ExportComponentsAPIClient = (*Client)(nil) + +// ExportComponentsPaginatorOptions is the paginator options for ExportComponents +type ExportComponentsPaginatorOptions struct { + // 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 +} + +// ExportComponentsPaginator is a paginator for ExportComponents +type ExportComponentsPaginator struct { + options ExportComponentsPaginatorOptions + client ExportComponentsAPIClient + params *ExportComponentsInput + nextToken *string + firstPage bool +} + +// NewExportComponentsPaginator returns a new ExportComponentsPaginator +func NewExportComponentsPaginator(client ExportComponentsAPIClient, params *ExportComponentsInput, optFns ...func(*ExportComponentsPaginatorOptions)) *ExportComponentsPaginator { + if params == nil { + params = &ExportComponentsInput{} + } + + options := ExportComponentsPaginatorOptions{} + + for _, fn := range optFns { + fn(&options) + } + + return &ExportComponentsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ExportComponentsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ExportComponents page. +func (p *ExportComponentsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ExportComponentsOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + result, err := p.client.ExportComponents(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_opExportComponents(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/amplifyuibuilder/api_op_ExportThemes.go b/service/amplifyuibuilder/api_op_ExportThemes.go index d2ccda2a622..f17be231089 100644 --- a/service/amplifyuibuilder/api_op_ExportThemes.go +++ b/service/amplifyuibuilder/api_op_ExportThemes.go @@ -4,6 +4,7 @@ package amplifyuibuilder 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/amplifyuibuilder/types" @@ -40,6 +41,9 @@ type ExportThemesInput struct { // This member is required. EnvironmentName *string + // The token to request the next page of results. + NextToken *string + noSmithyDocumentSerde } @@ -50,6 +54,9 @@ type ExportThemesOutput struct { // This member is required. Entities []types.Theme + // The pagination token that's included if more results are available. + NextToken *string + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata @@ -119,6 +126,83 @@ func (c *Client) addOperationExportThemesMiddlewares(stack *middleware.Stack, op return nil } +// ExportThemesAPIClient is a client that implements the ExportThemes operation. +type ExportThemesAPIClient interface { + ExportThemes(context.Context, *ExportThemesInput, ...func(*Options)) (*ExportThemesOutput, error) +} + +var _ ExportThemesAPIClient = (*Client)(nil) + +// ExportThemesPaginatorOptions is the paginator options for ExportThemes +type ExportThemesPaginatorOptions struct { + // 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 +} + +// ExportThemesPaginator is a paginator for ExportThemes +type ExportThemesPaginator struct { + options ExportThemesPaginatorOptions + client ExportThemesAPIClient + params *ExportThemesInput + nextToken *string + firstPage bool +} + +// NewExportThemesPaginator returns a new ExportThemesPaginator +func NewExportThemesPaginator(client ExportThemesAPIClient, params *ExportThemesInput, optFns ...func(*ExportThemesPaginatorOptions)) *ExportThemesPaginator { + if params == nil { + params = &ExportThemesInput{} + } + + options := ExportThemesPaginatorOptions{} + + for _, fn := range optFns { + fn(&options) + } + + return &ExportThemesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ExportThemesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ExportThemes page. +func (p *ExportThemesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ExportThemesOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + result, err := p.client.ExportThemes(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_opExportThemes(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/amplifyuibuilder/deserializers.go b/service/amplifyuibuilder/deserializers.go index 82b28f78261..8b07601f6d2 100644 --- a/service/amplifyuibuilder/deserializers.go +++ b/service/amplifyuibuilder/deserializers.go @@ -836,6 +836,15 @@ func awsRestjson1_deserializeOpDocumentExportComponentsOutput(v **ExportComponen 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 @@ -986,6 +995,15 @@ func awsRestjson1_deserializeOpDocumentExportThemesOutput(v **ExportThemesOutput 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 @@ -2269,6 +2287,86 @@ func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithy return output } +func awsRestjson1_deserializeDocumentActionParameters(v **types.ActionParameters, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ActionParameters + if *v == nil { + sv = &types.ActionParameters{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "anchor": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Anchor, value); err != nil { + return err + } + + case "fields": + if err := awsRestjson1_deserializeDocumentComponentProperties(&sv.Fields, value); err != nil { + return err + } + + case "global": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Global, value); err != nil { + return err + } + + case "id": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Id, value); err != nil { + return err + } + + case "model": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Model = ptr.String(jtv) + } + + case "state": + if err := awsRestjson1_deserializeDocumentMutationActionSetStateParameter(&sv.State, value); err != nil { + return err + } + + case "target": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Target, value); err != nil { + return err + } + + case "type": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Type, value); err != nil { + return err + } + + case "url": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Url, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentComponent(v **types.Component, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -2346,6 +2444,11 @@ func awsRestjson1_deserializeDocumentComponent(v **types.Component, value interf sv.EnvironmentName = ptr.String(jtv) } + case "events": + if err := awsRestjson1_deserializeDocumentComponentEvents(&sv.Events, value); err != nil { + return err + } + case "id": if value != nil { jtv, ok := value.(string) @@ -2387,6 +2490,15 @@ func awsRestjson1_deserializeDocumentComponent(v **types.Component, value interf return err } + case "schemaVersion": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.SchemaVersion = ptr.String(jtv) + } + case "sourceId": if value != nil { jtv, ok := value.(string) @@ -2630,6 +2742,11 @@ func awsRestjson1_deserializeDocumentComponentChild(v **types.ComponentChild, va sv.ComponentType = ptr.String(jtv) } + case "events": + if err := awsRestjson1_deserializeDocumentComponentEvents(&sv.Events, value); err != nil { + return err + } + case "name": if value != nil { jtv, ok := value.(string) @@ -2767,6 +2884,15 @@ func awsRestjson1_deserializeDocumentComponentConditionProperty(v **types.Compon sv.Operand = ptr.String(jtv) } + case "operandType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.OperandType = ptr.String(jtv) + } + case "operator": if value != nil { jtv, ok := value.(string) @@ -2854,6 +2980,86 @@ func awsRestjson1_deserializeDocumentComponentDataConfiguration(v **types.Compon return nil } +func awsRestjson1_deserializeDocumentComponentEvent(v **types.ComponentEvent, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ComponentEvent + if *v == nil { + sv = &types.ComponentEvent{} + } 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 String to be of type string, got %T instead", value) + } + sv.Action = ptr.String(jtv) + } + + case "parameters": + if err := awsRestjson1_deserializeDocumentActionParameters(&sv.Parameters, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentComponentEvents(v *map[string]types.ComponentEvent, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var mv map[string]types.ComponentEvent + if *v == nil { + mv = map[string]types.ComponentEvent{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal types.ComponentEvent + mapVar := parsedVal + destAddr := &mapVar + if err := awsRestjson1_deserializeDocumentComponentEvent(&destAddr, value); err != nil { + return err + } + parsedVal = *destAddr + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsRestjson1_deserializeDocumentComponentList(v *[]types.Component, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3030,6 +3236,15 @@ func awsRestjson1_deserializeDocumentComponentProperty(v **types.ComponentProper return err } + case "componentName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.ComponentName = ptr.String(jtv) + } + case "concat": if err := awsRestjson1_deserializeDocumentComponentPropertyList(&sv.Concat, value); err != nil { return err @@ -3085,6 +3300,15 @@ func awsRestjson1_deserializeDocumentComponentProperty(v **types.ComponentProper sv.Model = ptr.String(jtv) } + case "property": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Property = ptr.String(jtv) + } + case "type": if value != nil { jtv, ok := value.(string) @@ -3625,6 +3849,60 @@ func awsRestjson1_deserializeDocumentInvalidParameterException(v **types.Invalid return nil } +func awsRestjson1_deserializeDocumentMutationActionSetStateParameter(v **types.MutationActionSetStateParameter, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.MutationActionSetStateParameter + if *v == nil { + sv = &types.MutationActionSetStateParameter{} + } 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 String to be of type string, got %T instead", value) + } + sv.ComponentName = ptr.String(jtv) + } + + case "property": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Property = ptr.String(jtv) + } + + case "set": + if err := awsRestjson1_deserializeDocumentComponentProperty(&sv.Set, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPredicate(v **types.Predicate, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/amplifyuibuilder/doc.go b/service/amplifyuibuilder/doc.go index bab04db3ca2..eac1809378f 100644 --- a/service/amplifyuibuilder/doc.go +++ b/service/amplifyuibuilder/doc.go @@ -13,6 +13,6 @@ // Amplify Framework is a comprehensive set of SDKs, libraries, tools, and // documentation for client app development. For more information, see the Amplify // Framework (https://docs.amplify.aws/). For more information about deploying an -// Amplify application to Amazon Web Services, see the Amplify Console User Guide +// Amplify application to Amazon Web Services, see the Amplify User Guide // (https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html). package amplifyuibuilder diff --git a/service/amplifyuibuilder/internal/endpoints/endpoints.go b/service/amplifyuibuilder/internal/endpoints/endpoints.go index 011fbff052e..11eac107c67 100644 --- a/service/amplifyuibuilder/internal/endpoints/endpoints.go +++ b/service/amplifyuibuilder/internal/endpoints/endpoints.go @@ -134,6 +134,59 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.Aws, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "ap-northeast-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-2", + }: 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-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", diff --git a/service/amplifyuibuilder/serializers.go b/service/amplifyuibuilder/serializers.go index 5ce96fbce1f..4c6654bbcfa 100644 --- a/service/amplifyuibuilder/serializers.go +++ b/service/amplifyuibuilder/serializers.go @@ -499,6 +499,10 @@ func awsRestjson1_serializeOpHttpBindingsExportComponentsInput(v *ExportComponen } } + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + return nil } @@ -566,6 +570,10 @@ func awsRestjson1_serializeOpHttpBindingsExportThemesInput(v *ExportThemesInput, } } + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + return nil } @@ -1158,6 +1166,74 @@ func awsRestjson1_serializeOpHttpBindingsUpdateThemeInput(v *UpdateThemeInput, e return nil } +func awsRestjson1_serializeDocumentActionParameters(v *types.ActionParameters, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Anchor != nil { + ok := object.Key("anchor") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Anchor, ok); err != nil { + return err + } + } + + if v.Fields != nil { + ok := object.Key("fields") + if err := awsRestjson1_serializeDocumentComponentProperties(v.Fields, ok); err != nil { + return err + } + } + + if v.Global != nil { + ok := object.Key("global") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Global, ok); err != nil { + return err + } + } + + if v.Id != nil { + ok := object.Key("id") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Id, ok); err != nil { + return err + } + } + + if v.Model != nil { + ok := object.Key("model") + ok.String(*v.Model) + } + + if v.State != nil { + ok := object.Key("state") + if err := awsRestjson1_serializeDocumentMutationActionSetStateParameter(v.State, ok); err != nil { + return err + } + } + + if v.Target != nil { + ok := object.Key("target") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Target, ok); err != nil { + return err + } + } + + if v.Type != nil { + ok := object.Key("type") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Type, ok); err != nil { + return err + } + } + + if v.Url != nil { + ok := object.Key("url") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Url, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentComponentBindingProperties(v map[string]types.ComponentBindingPropertiesValue, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1256,6 +1332,13 @@ func awsRestjson1_serializeDocumentComponentChild(v *types.ComponentChild, value ok.String(*v.ComponentType) } + if v.Events != nil { + ok := object.Key("events") + if err := awsRestjson1_serializeDocumentComponentEvents(v.Events, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("name") ok.String(*v.Name) @@ -1319,6 +1402,11 @@ func awsRestjson1_serializeDocumentComponentConditionProperty(v *types.Component ok.String(*v.Operand) } + if v.OperandType != nil { + ok := object.Key("operandType") + ok.String(*v.OperandType) + } + if v.Operator != nil { ok := object.Key("operator") ok.String(*v.Operator) @@ -1372,6 +1460,39 @@ func awsRestjson1_serializeDocumentComponentDataConfiguration(v *types.Component return nil } +func awsRestjson1_serializeDocumentComponentEvent(v *types.ComponentEvent, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Action != nil { + ok := object.Key("action") + ok.String(*v.Action) + } + + if v.Parameters != nil { + ok := object.Key("parameters") + if err := awsRestjson1_serializeDocumentActionParameters(v.Parameters, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentComponentEvents(v map[string]types.ComponentEvent, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + mapVar := v[key] + if err := awsRestjson1_serializeDocumentComponentEvent(&mapVar, om); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentComponentOverrides(v map[string]map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1438,6 +1559,11 @@ func awsRestjson1_serializeDocumentComponentProperty(v *types.ComponentProperty, } } + if v.ComponentName != nil { + ok := object.Key("componentName") + ok.String(*v.ComponentName) + } + if v.Concat != nil { ok := object.Key("concat") if err := awsRestjson1_serializeDocumentComponentPropertyList(v.Concat, ok); err != nil { @@ -1477,6 +1603,11 @@ func awsRestjson1_serializeDocumentComponentProperty(v *types.ComponentProperty, ok.String(*v.Model) } + if v.Property != nil { + ok := object.Key("property") + ok.String(*v.Property) + } + if v.Type != nil { ok := object.Key("type") ok.String(*v.Type) @@ -1600,6 +1731,13 @@ func awsRestjson1_serializeDocumentCreateComponentData(v *types.CreateComponentD ok.String(*v.ComponentType) } + if v.Events != nil { + ok := object.Key("events") + if err := awsRestjson1_serializeDocumentComponentEvents(v.Events, ok); err != nil { + return err + } + } + if v.Name != nil { ok := object.Key("name") ok.String(*v.Name) @@ -1619,6 +1757,11 @@ func awsRestjson1_serializeDocumentCreateComponentData(v *types.CreateComponentD } } + if v.SchemaVersion != nil { + ok := object.Key("schemaVersion") + ok.String(*v.SchemaVersion) + } + if v.SourceId != nil { ok := object.Key("sourceId") ok.String(*v.SourceId) @@ -1733,6 +1876,30 @@ func awsRestjson1_serializeDocumentIdentifierList(v []string, value smithyjson.V return nil } +func awsRestjson1_serializeDocumentMutationActionSetStateParameter(v *types.MutationActionSetStateParameter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ComponentName != nil { + ok := object.Key("componentName") + ok.String(*v.ComponentName) + } + + if v.Property != nil { + ok := object.Key("property") + ok.String(*v.Property) + } + + if v.Set != nil { + ok := object.Key("set") + if err := awsRestjson1_serializeDocumentComponentProperty(v.Set, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentPredicate(v *types.Predicate, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1916,6 +2083,13 @@ func awsRestjson1_serializeDocumentUpdateComponentData(v *types.UpdateComponentD ok.String(*v.ComponentType) } + if v.Events != nil { + ok := object.Key("events") + if err := awsRestjson1_serializeDocumentComponentEvents(v.Events, ok); err != nil { + return err + } + } + if v.Id != nil { ok := object.Key("id") ok.String(*v.Id) @@ -1940,6 +2114,11 @@ func awsRestjson1_serializeDocumentUpdateComponentData(v *types.UpdateComponentD } } + if v.SchemaVersion != nil { + ok := object.Key("schemaVersion") + ok.String(*v.SchemaVersion) + } + if v.SourceId != nil { ok := object.Key("sourceId") ok.String(*v.SourceId) diff --git a/service/amplifyuibuilder/types/types.go b/service/amplifyuibuilder/types/types.go index 8846dbf4ad8..6b6d40f3ccb 100644 --- a/service/amplifyuibuilder/types/types.go +++ b/service/amplifyuibuilder/types/types.go @@ -7,6 +7,48 @@ import ( "time" ) +// Represents the event action configuration for an element of a Component or +// ComponentChild. Use for the workflow feature in Amplify Studio that allows you +// to bind events and actions to components. ActionParameters defines the action +// that is performed when an event occurs on the component. +type ActionParameters struct { + + // The HTML anchor link to the location to open. Specify this value for a + // navigation action. + Anchor *ComponentProperty + + // A dictionary of key-value pairs mapping Amplify Studio properties to fields in a + // data model. Use when the action performs an operation on an Amplify DataStore + // model. + Fields map[string]ComponentProperty + + // Specifies whether the user should be signed out globally. Specify this value for + // an auth sign out action. + Global *ComponentProperty + + // The unique ID of the component that the ActionParameters apply to. + Id *ComponentProperty + + // The name of the data model. Use when the action performs an operation on an + // Amplify DataStore model. + Model *string + + // A key-value pair that specifies the state property name and its initial value. + State *MutationActionSetStateParameter + + // The element within the same component to modify when the action occurs. + Target *ComponentProperty + + // The type of navigation action. Valid values are url and anchor. This value is + // required for a navigation action. + Type *ComponentProperty + + // The URL to the location to open. Specify this value for a navigation action. + Url *ComponentProperty + + noSmithyDocumentSerde +} + // Contains the configuration settings for a user interface (UI) element for an // Amplify app. A component is configured as a primary, stand-alone UI element. Use // ComponentChild to configure an instance of a Component. A ComponentChild @@ -18,7 +60,8 @@ type Component struct { // This member is required. AppId *string - // The information to connect a component's properties to data at runtime. + // The information to connect a component's properties to data at runtime. You + // can't specify tags as a valid property for bindingProperties. // // This member is required. BindingProperties map[string]ComponentBindingPropertiesValue @@ -50,12 +93,14 @@ type Component struct { Name *string // Describes the component's properties that can be overriden in a customized - // instance of the component. + // instance of the component. You can't specify tags as a valid property for + // overrides. // // This member is required. Overrides map[string]map[string]string - // Describes the component's properties. + // Describes the component's properties. You can't specify tags as a valid property + // for properties. // // This member is required. Properties map[string]ComponentProperty @@ -70,12 +115,21 @@ type Component struct { Children []ComponentChild // The data binding configuration for the component's properties. Use this for a - // collection component. + // collection component. You can't specify tags as a valid property for + // collectionProperties. CollectionProperties map[string]ComponentDataConfiguration + // Describes the events that can be raised on the component. Use for the workflow + // feature in Amplify Studio that allows you to bind events and actions to + // components. + Events map[string]ComponentEvent + // The time that the component was modified. ModifiedAt *time.Time + // The schema version of the component when it was imported. + SchemaVersion *string + // The unique ID of the component in its original source system, such as Figma. SourceId *string @@ -146,7 +200,8 @@ type ComponentChild struct { // This member is required. Name *string - // Describes the properties of the child component. + // Describes the properties of the child component. You can't specify tags as a + // valid property for properties. // // This member is required. Properties map[string]ComponentProperty @@ -154,6 +209,11 @@ type ComponentChild struct { // The list of ComponentChild instances for this component. Children []ComponentChild + // Describes the events that can be raised on the child component. Use for the + // workflow feature in Amplify Studio that allows you to bind events and actions to + // components. + Events map[string]ComponentEvent + noSmithyDocumentSerde } @@ -171,6 +231,9 @@ type ComponentConditionProperty struct { // The value of the property to evaluate. Operand *string + // The type of the property to evaluate. + OperandType *string + // The operator to use to perform the evaluation, such as eq to represent equals. Operator *string @@ -205,6 +268,20 @@ type ComponentDataConfiguration struct { noSmithyDocumentSerde } +// Describes the configuration of an event. You can bind an event and a +// corresponding action to a Component or a ComponentChild. A button click is an +// example of an event. +type ComponentEvent struct { + + // The action to perform when a specific event is raised. + Action *string + + // Describes information about the action. + Parameters *ActionParameters + + noSmithyDocumentSerde +} + // Describes the configuration for all of a component's properties. Use // ComponentProperty to specify the values to render or bind by default. type ComponentProperty struct { @@ -219,11 +296,14 @@ type ComponentProperty struct { // collection components. CollectionBindingProperties *ComponentPropertyBindingProperties + // The name of the component that is affected by an event. + ComponentName *string + // A list of component properties to concatenate to create the value to assign to // this component property. Concat []ComponentProperty - // The conditional expression to use to assign a value to the component property.. + // The conditional expression to use to assign a value to the component property. Condition *ComponentConditionProperty // Specifies whether the user configured the property in Amplify Studio after @@ -236,13 +316,16 @@ type ComponentProperty struct { // An event that occurs in your app. Use this for workflow data binding. Event *string - // The default value assigned to property when the component is imported into an - // app. + // The default value assigned to the property when the component is imported into + // an app. ImportedValue *string // The data model to use to assign a value to the component property. Model *string + // The name of the component's property that is affected by an event. + Property *string + // The component type. Type *string @@ -308,10 +391,12 @@ type ComponentSummary struct { type ComponentVariant struct { // The properties of the component variant that can be overriden when customizing - // an instance of the component. + // an instance of the component. You can't specify tags as a valid property for + // overrides. Overrides map[string]map[string]string - // The combination of variants that comprise this variant. + // The combination of variants that comprise this variant. You can't specify tags + // as a valid property for variantValues. VariantValues map[string]string noSmithyDocumentSerde @@ -359,6 +444,13 @@ type CreateComponentData struct { // this for a collection component. CollectionProperties map[string]ComponentDataConfiguration + // The event configuration for the component. Use for the workflow feature in + // Amplify Studio that allows you to bind events and actions to components. + Events map[string]ComponentEvent + + // The schema version of the component when it was imported. + SchemaVersion *string + // The unique ID of the component in its original source system, such as Figma. SourceId *string @@ -423,6 +515,28 @@ type FormBindingElement struct { noSmithyDocumentSerde } +// Represents the state configuration when an action modifies a property of another +// element within the same component. +type MutationActionSetStateParameter struct { + + // The name of the component that is being modified. + // + // This member is required. + ComponentName *string + + // The name of the component property to apply the state configuration to. + // + // This member is required. + Property *string + + // The state configuration to assign to the property. + // + // This member is required. + Set *ComponentProperty + + noSmithyDocumentSerde +} + // Stores information for generating Amplify DataStore queries. Use a Predicate to // retrieve a subset of the data in a collection. type Predicate struct { @@ -587,6 +701,10 @@ type UpdateComponentData struct { // custom component. ComponentType *string + // The event configuration for the component. Use for the workflow feature in + // Amplify Studio that allows you to bind events and actions to components. + Events map[string]ComponentEvent + // The unique ID of the component to update. Id *string @@ -599,6 +717,9 @@ type UpdateComponentData struct { // Describes the component's properties. Properties map[string]ComponentProperty + // The schema version of the component when it was imported. + SchemaVersion *string + // The unique ID of the component in its original source system, such as Figma. SourceId *string diff --git a/service/amplifyuibuilder/validators.go b/service/amplifyuibuilder/validators.go index 808d8ce8aba..8d67d39834c 100644 --- a/service/amplifyuibuilder/validators.go +++ b/service/amplifyuibuilder/validators.go @@ -346,6 +346,58 @@ func addOpUpdateThemeValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateTheme{}, middleware.After) } +func validateActionParameters(v *types.ActionParameters) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ActionParameters"} + if v.Type != nil { + if err := validateComponentProperty(v.Type); err != nil { + invalidParams.AddNested("Type", err.(smithy.InvalidParamsError)) + } + } + if v.Url != nil { + if err := validateComponentProperty(v.Url); err != nil { + invalidParams.AddNested("Url", err.(smithy.InvalidParamsError)) + } + } + if v.Anchor != nil { + if err := validateComponentProperty(v.Anchor); err != nil { + invalidParams.AddNested("Anchor", err.(smithy.InvalidParamsError)) + } + } + if v.Target != nil { + if err := validateComponentProperty(v.Target); err != nil { + invalidParams.AddNested("Target", err.(smithy.InvalidParamsError)) + } + } + if v.Global != nil { + if err := validateComponentProperty(v.Global); err != nil { + invalidParams.AddNested("Global", err.(smithy.InvalidParamsError)) + } + } + if v.Id != nil { + if err := validateComponentProperty(v.Id); err != nil { + invalidParams.AddNested("Id", err.(smithy.InvalidParamsError)) + } + } + if v.Fields != nil { + if err := validateComponentProperties(v.Fields); err != nil { + invalidParams.AddNested("Fields", err.(smithy.InvalidParamsError)) + } + } + if v.State != nil { + if err := validateMutationActionSetStateParameter(v.State); err != nil { + invalidParams.AddNested("State", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateComponentChild(v *types.ComponentChild) error { if v == nil { return nil @@ -369,6 +421,11 @@ func validateComponentChild(v *types.ComponentChild) error { invalidParams.AddNested("Children", err.(smithy.InvalidParamsError)) } } + if v.Events != nil { + if err := validateComponentEvents(v.Events); err != nil { + invalidParams.AddNested("Events", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -453,6 +510,41 @@ func validateComponentDataConfiguration(v *types.ComponentDataConfiguration) err } } +func validateComponentEvent(v *types.ComponentEvent) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComponentEvent"} + if v.Parameters != nil { + if err := validateActionParameters(v.Parameters); err != nil { + invalidParams.AddNested("Parameters", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateComponentEvents(v map[string]types.ComponentEvent) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ComponentEvents"} + for key := range v { + value := v[key] + if err := validateComponentEvent(&value); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%q]", key), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateComponentProperties(v map[string]types.ComponentProperty) error { if v == nil { return nil @@ -577,6 +669,11 @@ func validateCreateComponentData(v *types.CreateComponentData) error { invalidParams.AddNested("CollectionProperties", err.(smithy.InvalidParamsError)) } } + if v.Events != nil { + if err := validateComponentEvents(v.Events); err != nil { + invalidParams.AddNested("Events", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -656,6 +753,31 @@ func validateFormBindings(v map[string]types.FormBindingElement) error { } } +func validateMutationActionSetStateParameter(v *types.MutationActionSetStateParameter) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "MutationActionSetStateParameter"} + if v.ComponentName == nil { + invalidParams.Add(smithy.NewErrParamRequired("ComponentName")) + } + if v.Property == nil { + invalidParams.Add(smithy.NewErrParamRequired("Property")) + } + if v.Set == nil { + invalidParams.Add(smithy.NewErrParamRequired("Set")) + } else if v.Set != nil { + if err := validateComponentProperty(v.Set); err != nil { + invalidParams.AddNested("Set", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateRefreshTokenRequestBody(v *types.RefreshTokenRequestBody) error { if v == nil { return nil @@ -726,6 +848,11 @@ func validateUpdateComponentData(v *types.UpdateComponentData) error { invalidParams.AddNested("CollectionProperties", err.(smithy.InvalidParamsError)) } } + if v.Events != nil { + if err := validateComponentEvents(v.Events); err != nil { + invalidParams.AddNested("Events", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/appflow/deserializers.go b/service/appflow/deserializers.go index 6cbf9fe81bb..c1cecadba20 100644 --- a/service/appflow/deserializers.go +++ b/service/appflow/deserializers.go @@ -6360,6 +6360,11 @@ func awsRestjson1_deserializeDocumentDestinationConnectorProperties(v **types.De return err } + case "Marketo": + if err := awsRestjson1_deserializeDocumentMarketoDestinationProperties(&sv.Marketo, value); err != nil { + return err + } + case "Redshift": if err := awsRestjson1_deserializeDocumentRedshiftDestinationProperties(&sv.Redshift, value); err != nil { return err @@ -8049,6 +8054,51 @@ func awsRestjson1_deserializeDocumentMarketoConnectorProfileProperties(v **types return nil } +func awsRestjson1_deserializeDocumentMarketoDestinationProperties(v **types.MarketoDestinationProperties, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.MarketoDestinationProperties + if *v == nil { + sv = &types.MarketoDestinationProperties{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "errorHandlingConfig": + if err := awsRestjson1_deserializeDocumentErrorHandlingConfig(&sv.ErrorHandlingConfig, value); err != nil { + return err + } + + case "object": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Object to be of type string, got %T instead", value) + } + sv.Object = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentMarketoMetadata(v **types.MarketoMetadata, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/appflow/serializers.go b/service/appflow/serializers.go index 69c8e841f2d..105758d8714 100644 --- a/service/appflow/serializers.go +++ b/service/appflow/serializers.go @@ -2515,6 +2515,13 @@ func awsRestjson1_serializeDocumentDestinationConnectorProperties(v *types.Desti } } + if v.Marketo != nil { + ok := object.Key("Marketo") + if err := awsRestjson1_serializeDocumentMarketoDestinationProperties(v.Marketo, ok); err != nil { + return err + } + } + if v.Redshift != nil { ok := object.Key("Redshift") if err := awsRestjson1_serializeDocumentRedshiftDestinationProperties(v.Redshift, ok); err != nil { @@ -2923,6 +2930,25 @@ func awsRestjson1_serializeDocumentMarketoConnectorProfileProperties(v *types.Ma return nil } +func awsRestjson1_serializeDocumentMarketoDestinationProperties(v *types.MarketoDestinationProperties, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ErrorHandlingConfig != nil { + ok := object.Key("errorHandlingConfig") + if err := awsRestjson1_serializeDocumentErrorHandlingConfig(v.ErrorHandlingConfig, ok); err != nil { + return err + } + } + + if v.Object != nil { + ok := object.Key("object") + ok.String(*v.Object) + } + + return nil +} + func awsRestjson1_serializeDocumentMarketoSourceProperties(v *types.MarketoSourceProperties, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/appflow/types/types.go b/service/appflow/types/types.go index 6d680983f15..3a75522d1a6 100644 --- a/service/appflow/types/types.go +++ b/service/appflow/types/types.go @@ -878,6 +878,9 @@ type DestinationConnectorProperties struct { // The properties required to query Amazon Lookout for Metrics. LookoutMetrics *LookoutMetricsDestinationProperties + // The properties required to query Marketo. + Marketo *MarketoDestinationProperties + // The properties required to query Amazon Redshift. Redshift *RedshiftDestinationProperties @@ -1420,6 +1423,25 @@ type MarketoConnectorProfileProperties struct { noSmithyDocumentSerde } +// The properties that Amazon AppFlow applies when you use Marketo as a flow +// destination. +type MarketoDestinationProperties struct { + + // The object specified in the Marketo flow destination. + // + // This member is required. + Object *string + + // The settings that determine how Amazon AppFlow handles an error when placing + // data in the destination. For example, this setting would determine if the flow + // should fail after one insertion error, or continue and attempt to insert every + // record regardless of the initial failure. ErrorHandlingConfig is a part of the + // destination connector details. + ErrorHandlingConfig *ErrorHandlingConfig + + noSmithyDocumentSerde +} + // The connector metadata specific to Marketo. type MarketoMetadata struct { noSmithyDocumentSerde diff --git a/service/appflow/validators.go b/service/appflow/validators.go index 8995ec7bedf..fe6b0e61533 100644 --- a/service/appflow/validators.go +++ b/service/appflow/validators.go @@ -896,6 +896,11 @@ func validateDestinationConnectorProperties(v *types.DestinationConnectorPropert invalidParams.AddNested("Zendesk", err.(smithy.InvalidParamsError)) } } + if v.Marketo != nil { + if err := validateMarketoDestinationProperties(v.Marketo); err != nil { + invalidParams.AddNested("Marketo", err.(smithy.InvalidParamsError)) + } + } if v.CustomConnector != nil { if err := validateCustomConnectorDestinationProperties(v.CustomConnector); err != nil { invalidParams.AddNested("CustomConnector", err.(smithy.InvalidParamsError)) @@ -1162,6 +1167,21 @@ func validateMarketoConnectorProfileProperties(v *types.MarketoConnectorProfileP } } +func validateMarketoDestinationProperties(v *types.MarketoDestinationProperties) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "MarketoDestinationProperties"} + if v.Object == nil { + invalidParams.Add(smithy.NewErrParamRequired("Object")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateMarketoSourceProperties(v *types.MarketoSourceProperties) error { if v == nil { return nil diff --git a/service/apprunner/internal/endpoints/endpoints.go b/service/apprunner/internal/endpoints/endpoints.go index 3fb58ee8284..f4c880e1780 100644 --- a/service/apprunner/internal/endpoints/endpoints.go +++ b/service/apprunner/internal/endpoints/endpoints.go @@ -141,15 +141,60 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "eu-west-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "fips-us-east-1", + }: endpoints.Endpoint{ + Hostname: "apprunner-fips.us-east-1.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-1", + }, + Deprecated: aws.TrueTernary, + }, + endpoints.EndpointKey{ + Region: "fips-us-east-2", + }: endpoints.Endpoint{ + Hostname: "apprunner-fips.us-east-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-east-2", + }, + Deprecated: aws.TrueTernary, + }, + endpoints.EndpointKey{ + Region: "fips-us-west-2", + }: endpoints.Endpoint{ + Hostname: "apprunner-fips.us-west-2.amazonaws.com", + CredentialScope: endpoints.CredentialScope{ + Region: "us-west-2", + }, + Deprecated: aws.TrueTernary, + }, endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-1", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "apprunner-fips.us-east-1.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-east-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "apprunner-fips.us-east-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-2", + Variant: endpoints.FIPSVariant, + }: { + Hostname: "apprunner-fips.us-west-2.amazonaws.com", + }, }, }, { diff --git a/service/athena/api_op_UpdateNamedQuery.go b/service/athena/api_op_UpdateNamedQuery.go new file mode 100644 index 00000000000..a14205d76f7 --- /dev/null +++ b/service/athena/api_op_UpdateNamedQuery.go @@ -0,0 +1,129 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package athena + +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" +) + +// Updates a NamedQuery object. The database or workgroup cannot be updated. +func (c *Client) UpdateNamedQuery(ctx context.Context, params *UpdateNamedQueryInput, optFns ...func(*Options)) (*UpdateNamedQueryOutput, error) { + if params == nil { + params = &UpdateNamedQueryInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateNamedQuery", params, optFns, c.addOperationUpdateNamedQueryMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateNamedQueryOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateNamedQueryInput struct { + + // The name of the query. + // + // This member is required. + Name *string + + // The unique identifier (UUID) of the query. + // + // This member is required. + NamedQueryId *string + + // The contents of the query with all query statements. + // + // This member is required. + QueryString *string + + // The query description. + Description *string + + noSmithyDocumentSerde +} + +type UpdateNamedQueryOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateNamedQueryMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson11_serializeOpUpdateNamedQuery{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpUpdateNamedQuery{}, 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 = addOpUpdateNamedQueryValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateNamedQuery(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_opUpdateNamedQuery(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "athena", + OperationName: "UpdateNamedQuery", + } +} diff --git a/service/athena/deserializers.go b/service/athena/deserializers.go index e2c73eeec3c..f036b1c1463 100644 --- a/service/athena/deserializers.go +++ b/service/athena/deserializers.go @@ -3697,6 +3697,120 @@ func awsAwsjson11_deserializeOpErrorUpdateDataCatalog(response *smithyhttp.Respo } } +type awsAwsjson11_deserializeOpUpdateNamedQuery struct { +} + +func (*awsAwsjson11_deserializeOpUpdateNamedQuery) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson11_deserializeOpUpdateNamedQuery) HandleDeserialize(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_deserializeOpErrorUpdateNamedQuery(response, &metadata) + } + output := &UpdateNamedQueryOutput{} + 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_deserializeOpDocumentUpdateNamedQueryOutput(&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_deserializeOpErrorUpdateNamedQuery(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson11_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsAwsjson11_deserializeErrorInvalidRequestException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsAwsjson11_deserializeOpUpdatePreparedStatement struct { } @@ -4103,6 +4217,46 @@ func awsAwsjson11_deserializeErrorTooManyRequestsException(response *smithyhttp. return output } +func awsAwsjson11_deserializeDocumentAclConfiguration(v **types.AclConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AclConfiguration + if *v == nil { + sv = &types.AclConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "S3AclOption": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3AclOption to be of type string, got %T instead", value) + } + sv.S3AclOption = types.S3AclOption(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentAthenaError(v **types.AthenaError, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5834,6 +5988,11 @@ func awsAwsjson11_deserializeDocumentResultConfiguration(v **types.ResultConfigu for key, value := range shape { switch key { + case "AclConfiguration": + if err := awsAwsjson11_deserializeDocumentAclConfiguration(&sv.AclConfiguration, value); err != nil { + return err + } + case "EncryptionConfiguration": if err := awsAwsjson11_deserializeDocumentEncryptionConfiguration(&sv.EncryptionConfiguration, value); err != nil { return err @@ -7950,6 +8109,37 @@ func awsAwsjson11_deserializeOpDocumentUpdateDataCatalogOutput(v **UpdateDataCat return nil } +func awsAwsjson11_deserializeOpDocumentUpdateNamedQueryOutput(v **UpdateNamedQueryOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateNamedQueryOutput + if *v == nil { + sv = &UpdateNamedQueryOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeOpDocumentUpdatePreparedStatementOutput(v **UpdatePreparedStatementOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/athena/generated.json b/service/athena/generated.json index 54488834a96..d4bb60c2d13 100644 --- a/service/athena/generated.json +++ b/service/athena/generated.json @@ -40,6 +40,7 @@ "api_op_TagResource.go", "api_op_UntagResource.go", "api_op_UpdateDataCatalog.go", + "api_op_UpdateNamedQuery.go", "api_op_UpdatePreparedStatement.go", "api_op_UpdateWorkGroup.go", "deserializers.go", diff --git a/service/athena/serializers.go b/service/athena/serializers.go index 9bfd5bd1595..33baa0c8f47 100644 --- a/service/athena/serializers.go +++ b/service/athena/serializers.go @@ -1775,6 +1775,61 @@ func (m *awsAwsjson11_serializeOpUpdateDataCatalog) HandleSerialize(ctx context. return next.HandleSerialize(ctx, in) } +type awsAwsjson11_serializeOpUpdateNamedQuery struct { +} + +func (*awsAwsjson11_serializeOpUpdateNamedQuery) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson11_serializeOpUpdateNamedQuery) 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.(*UpdateNamedQueryInput) + _ = 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("AmazonAthena.UpdateNamedQuery") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson11_serializeOpDocumentUpdateNamedQueryInput(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_serializeOpUpdatePreparedStatement struct { } @@ -1884,6 +1939,18 @@ func (m *awsAwsjson11_serializeOpUpdateWorkGroup) HandleSerialize(ctx context.Co return next.HandleSerialize(ctx, in) } +func awsAwsjson11_serializeDocumentAclConfiguration(v *types.AclConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.S3AclOption) > 0 { + ok := object.Key("S3AclOption") + ok.String(string(v.S3AclOption)) + } + + return nil +} + func awsAwsjson11_serializeDocumentEncryptionConfiguration(v *types.EncryptionConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1972,6 +2039,13 @@ func awsAwsjson11_serializeDocumentResultConfiguration(v *types.ResultConfigurat object := value.Object() defer object.Close() + if v.AclConfiguration != nil { + ok := object.Key("AclConfiguration") + if err := awsAwsjson11_serializeDocumentAclConfiguration(v.AclConfiguration, ok); err != nil { + return err + } + } + if v.EncryptionConfiguration != nil { ok := object.Key("EncryptionConfiguration") if err := awsAwsjson11_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { @@ -1996,6 +2070,13 @@ func awsAwsjson11_serializeDocumentResultConfigurationUpdates(v *types.ResultCon object := value.Object() defer object.Close() + if v.AclConfiguration != nil { + ok := object.Key("AclConfiguration") + if err := awsAwsjson11_serializeDocumentAclConfiguration(v.AclConfiguration, ok); err != nil { + return err + } + } + if v.EncryptionConfiguration != nil { ok := object.Key("EncryptionConfiguration") if err := awsAwsjson11_serializeDocumentEncryptionConfiguration(v.EncryptionConfiguration, ok); err != nil { @@ -2013,6 +2094,11 @@ func awsAwsjson11_serializeDocumentResultConfigurationUpdates(v *types.ResultCon ok.String(*v.OutputLocation) } + if v.RemoveAclConfiguration != nil { + ok := object.Key("RemoveAclConfiguration") + ok.Boolean(*v.RemoveAclConfiguration) + } + if v.RemoveEncryptionConfiguration != nil { ok := object.Key("RemoveEncryptionConfiguration") ok.Boolean(*v.RemoveEncryptionConfiguration) @@ -2810,6 +2896,33 @@ func awsAwsjson11_serializeOpDocumentUpdateDataCatalogInput(v *UpdateDataCatalog return nil } +func awsAwsjson11_serializeOpDocumentUpdateNamedQueryInput(v *UpdateNamedQueryInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Description != nil { + ok := object.Key("Description") + ok.String(*v.Description) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.NamedQueryId != nil { + ok := object.Key("NamedQueryId") + ok.String(*v.NamedQueryId) + } + + if v.QueryString != nil { + ok := object.Key("QueryString") + ok.String(*v.QueryString) + } + + return nil +} + func awsAwsjson11_serializeOpDocumentUpdatePreparedStatementInput(v *UpdatePreparedStatementInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/athena/types/enums.go b/service/athena/types/enums.go index ef6a3efb4bc..f72459f6236 100644 --- a/service/athena/types/enums.go +++ b/service/athena/types/enums.go @@ -86,6 +86,22 @@ func (QueryExecutionState) Values() []QueryExecutionState { } } +type S3AclOption string + +// Enum values for S3AclOption +const ( + S3AclOptionBucketOwnerFullControl S3AclOption = "BUCKET_OWNER_FULL_CONTROL" +) + +// Values returns all known values for S3AclOption. 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 (S3AclOption) Values() []S3AclOption { + return []S3AclOption{ + "BUCKET_OWNER_FULL_CONTROL", + } +} + type StatementType string // Enum values for StatementType diff --git a/service/athena/types/types.go b/service/athena/types/types.go index 067dc36b2b3..c8761618c97 100644 --- a/service/athena/types/types.go +++ b/service/athena/types/types.go @@ -7,16 +7,39 @@ import ( "time" ) +// Indicates that an Amazon S3 canned ACL should be set to control ownership of +// stored query results. When Athena stores query results in Amazon S3, the canned +// ACL is set with the x-amz-acl request header. For more information about S3 +// Object Ownership, see Object Ownership settings +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html#object-ownership-overview) +// in the Amazon S3 User Guide. +type AclConfiguration struct { + + // The Amazon S3 canned ACL that Athena should specify when storing query results. + // Currently the only supported canned ACL is BUCKET_OWNER_FULL_CONTROL. If a query + // runs in a workgroup and the workgroup overrides client-side settings, then the + // Amazon S3 canned ACL specified in the workgroup's settings is used for all + // queries that run in the workgroup. For more information about Amazon S3 canned + // ACLs, see Canned ACL + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) + // in the Amazon S3 User Guide. + // + // This member is required. + S3AclOption S3AclOption + + noSmithyDocumentSerde +} + // Provides information about an Athena query error. The AthenaError feature // provides standardized error information to help you understand failed queries // and take steps after a query failure occurs. AthenaError includes an // ErrorCategory field that specifies whether the cause of the failed query is due -// to system error, user error, or unknown error. +// to system error, user error, or other error. type AthenaError struct { // An integer value that specifies the category of a query failure error. The // following list shows the category for each integer value. 1 - System 2 - User 3 - // - Unknown + // - Other ErrorCategory *int32 // An integer value that provides specific information about an Athena query error. @@ -222,8 +245,7 @@ type EngineVersion struct { noSmithyDocumentSerde } -// A query, where QueryString is the list of SQL query statements that comprise the -// query. +// A query, where QueryString contains the SQL statements that make up the query. type NamedQuery struct { // The database to which the query belongs. @@ -236,7 +258,7 @@ type NamedQuery struct { // This member is required. Name *string - // The SQL query statements that comprise the query. + // The SQL statements that make up the query. // // This member is required. QueryString *string @@ -417,6 +439,17 @@ type QueryExecutionStatus struct { // uses the workgroup settings. type ResultConfiguration struct { + // Indicates that an Amazon S3 canned ACL should be set to control ownership of + // stored query results. Currently the only supported canned ACL is + // BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If workgroup settings + // override client-side settings, then the query uses the ACL configuration that is + // specified for the workgroup, and also uses the location for storing query + // results specified in the workgroup. For more information, see + // WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings + // Override Client-Side Settings + // (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html). + AclConfiguration *AclConfiguration + // If query results are encrypted in Amazon S3, indicates the encryption option // used (for example, SSE-KMS or CSE-KMS) and key information. This is a // client-side setting. If workgroup settings override client-side settings, then @@ -460,6 +493,9 @@ type ResultConfiguration struct { // and encryption configuration for the query results. type ResultConfigurationUpdates struct { + // The ACL configuration for the query results. + AclConfiguration *AclConfiguration + // The encryption configuration for the query results. EncryptionConfiguration *EncryptionConfiguration @@ -487,6 +523,15 @@ type ResultConfigurationUpdates struct { // WorkGroupConfiguration$EnforceWorkGroupConfiguration. OutputLocation *string + // If set to true, indicates that the previously-specified ACL configuration for + // queries in this workgroup should be ignored and set to null. If set to false or + // not set, and a value is present in the AclConfiguration of + // ResultConfigurationUpdates, the AclConfiguration in the workgroup's + // ResultConfiguration is updated with the new value. For more information, see + // Workgroup Settings Override Client-Side Settings + // (https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html). + RemoveAclConfiguration *bool + // If set to "true", indicates that the previously-specified encryption // configuration (also known as the client-side setting) for queries in this // workgroup should be ignored and set to null. If set to "false" or not set, and a @@ -519,7 +564,7 @@ type ResultConfigurationUpdates struct { noSmithyDocumentSerde } -// The metadata and rows that comprise a query result set. The metadata describes +// The metadata and rows that make up a query result set. The metadata describes // the column structure and data types. To return a ResultSet object, use // GetQueryResults. type ResultSet struct { @@ -544,7 +589,7 @@ type ResultSetMetadata struct { noSmithyDocumentSerde } -// The rows that comprise a query result table. +// The rows that make up a query result table. type Row struct { // The data that populates a row in a query result table. diff --git a/service/athena/validators.go b/service/athena/validators.go index 94c7e72dc49..d87e574213e 100644 --- a/service/athena/validators.go +++ b/service/athena/validators.go @@ -550,6 +550,26 @@ func (m *validateOpUpdateDataCatalog) HandleInitialize(ctx context.Context, in m return next.HandleInitialize(ctx, in) } +type validateOpUpdateNamedQuery struct { +} + +func (*validateOpUpdateNamedQuery) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateNamedQuery) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateNamedQueryInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateNamedQueryInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdatePreparedStatement struct { } @@ -698,6 +718,10 @@ func addOpUpdateDataCatalogValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateDataCatalog{}, middleware.After) } +func addOpUpdateNamedQueryValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateNamedQuery{}, middleware.After) +} + func addOpUpdatePreparedStatementValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdatePreparedStatement{}, middleware.After) } @@ -706,6 +730,21 @@ func addOpUpdateWorkGroupValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateWorkGroup{}, middleware.After) } +func validateAclConfiguration(v *types.AclConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "AclConfiguration"} + if len(v.S3AclOption) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("S3AclOption")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateEncryptionConfiguration(v *types.EncryptionConfiguration) error { if v == nil { return nil @@ -731,6 +770,11 @@ func validateResultConfiguration(v *types.ResultConfiguration) error { invalidParams.AddNested("EncryptionConfiguration", err.(smithy.InvalidParamsError)) } } + if v.AclConfiguration != nil { + if err := validateAclConfiguration(v.AclConfiguration); err != nil { + invalidParams.AddNested("AclConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -748,6 +792,11 @@ func validateResultConfigurationUpdates(v *types.ResultConfigurationUpdates) err invalidParams.AddNested("EncryptionConfiguration", err.(smithy.InvalidParamsError)) } } + if v.AclConfiguration != nil { + if err := validateAclConfiguration(v.AclConfiguration); err != nil { + invalidParams.AddNested("AclConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -1246,6 +1295,27 @@ func validateOpUpdateDataCatalogInput(v *UpdateDataCatalogInput) error { } } +func validateOpUpdateNamedQueryInput(v *UpdateNamedQueryInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateNamedQueryInput"} + if v.NamedQueryId == nil { + invalidParams.Add(smithy.NewErrParamRequired("NamedQueryId")) + } + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.QueryString == nil { + invalidParams.Add(smithy.NewErrParamRequired("QueryString")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdatePreparedStatementInput(v *UpdatePreparedStatementInput) error { if v == nil { return nil diff --git a/service/braket/internal/endpoints/endpoints.go b/service/braket/internal/endpoints/endpoints.go index 580d4c74285..db8fa40ecff 100644 --- a/service/braket/internal/endpoints/endpoints.go +++ b/service/braket/internal/endpoints/endpoints.go @@ -135,6 +135,9 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "eu-west-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, diff --git a/service/chimesdkmeetings/api_op_CreateMeeting.go b/service/chimesdkmeetings/api_op_CreateMeeting.go index 7c0c992a37c..77ceec71adb 100644 --- a/service/chimesdkmeetings/api_op_CreateMeeting.go +++ b/service/chimesdkmeetings/api_op_CreateMeeting.go @@ -48,10 +48,15 @@ type CreateMeetingInput struct { // This member is required. ExternalMeetingId *string - // The Region in which to create the meeting. Available values: af-south-1 , - // ap-northeast-1 , ap-northeast-2 , 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 , sa-east-1 , us-east-1 , us-east-2 , us-west-1 , us-west-2 . + // The Region in which to create the meeting. Available values: af-south-1, + // ap-northeast-1, ap-northeast-2, 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, + // + // sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2. + // Available values in AWS GovCloud (US) Regions: us-gov-east-1, us-gov-west-1. // // This member is required. MediaRegion *string diff --git a/service/chimesdkmeetings/api_op_CreateMeetingWithAttendees.go b/service/chimesdkmeetings/api_op_CreateMeetingWithAttendees.go index 0ab9c53e9c8..43552ef569c 100644 --- a/service/chimesdkmeetings/api_op_CreateMeetingWithAttendees.go +++ b/service/chimesdkmeetings/api_op_CreateMeetingWithAttendees.go @@ -53,7 +53,15 @@ type CreateMeetingWithAttendeesInput struct { // This member is required. ExternalMeetingId *string - // The Region in which to create the meeting. + // The Region in which to create the meeting. Available values: af-south-1, + // ap-northeast-1, ap-northeast-2, 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, + // + // sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2. + // Available values in AWS GovCloud (US) Regions: us-gov-east-1, us-gov-west-1. // // This member is required. MediaRegion *string diff --git a/service/chimesdkmeetings/doc.go b/service/chimesdkmeetings/doc.go index c9291da45a7..d0239a2d169 100644 --- a/service/chimesdkmeetings/doc.go +++ b/service/chimesdkmeetings/doc.go @@ -7,5 +7,5 @@ // create Amazon Chime SDK meetings, set the AWS Regions for meetings, create and // manage users, and send and receive meeting notifications. For more information // about the meeting APIs, see Amazon Chime SDK meetings -// (http://amazonaws.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_meetings). +// (https://docs.aws.amazon.com/chime/latest/APIReference/API_Operations_Amazon_Chime_SDK_Meetings.html). package chimesdkmeetings diff --git a/service/chimesdkmeetings/serializers.go b/service/chimesdkmeetings/serializers.go index daa53cc1e9e..b6763480295 100644 --- a/service/chimesdkmeetings/serializers.go +++ b/service/chimesdkmeetings/serializers.go @@ -942,6 +942,11 @@ func awsRestjson1_serializeDocumentEngineTranscribeSettings(v *types.EngineTrans ok.Boolean(v.EnablePartialResultsStabilization) } + if v.IdentifyLanguage { + ok := object.Key("IdentifyLanguage") + ok.Boolean(v.IdentifyLanguage) + } + if len(v.LanguageCode) > 0 { ok := object.Key("LanguageCode") ok.String(string(v.LanguageCode)) @@ -952,6 +957,11 @@ func awsRestjson1_serializeDocumentEngineTranscribeSettings(v *types.EngineTrans ok.String(*v.LanguageModelName) } + if v.LanguageOptions != nil { + ok := object.Key("LanguageOptions") + ok.String(*v.LanguageOptions) + } + if len(v.PartialResultsStability) > 0 { ok := object.Key("PartialResultsStability") ok.String(string(v.PartialResultsStability)) @@ -962,6 +972,11 @@ func awsRestjson1_serializeDocumentEngineTranscribeSettings(v *types.EngineTrans ok.String(*v.PiiEntityTypes) } + if len(v.PreferredLanguage) > 0 { + ok := object.Key("PreferredLanguage") + ok.String(string(v.PreferredLanguage)) + } + if len(v.Region) > 0 { ok := object.Key("Region") ok.String(string(v.Region)) diff --git a/service/chimesdkmeetings/types/types.go b/service/chimesdkmeetings/types/types.go index 8b3246e86f8..cf0f838109e 100644 --- a/service/chimesdkmeetings/types/types.go +++ b/service/chimesdkmeetings/types/types.go @@ -104,11 +104,6 @@ type EngineTranscribeMedicalSettings struct { // Settings specific to the Amazon Transcribe engine. type EngineTranscribeSettings struct { - // The language code specified for the Amazon Transcribe engine. - // - // This member is required. - LanguageCode TranscribeLanguageCode - // Set this field to PII to identify personally identifiable information in the // transcription output. ContentIdentificationType TranscribeContentIdentificationType @@ -125,9 +120,19 @@ type EngineTranscribeSettings struct { // partial results to change. EnablePartialResultsStabilization bool + // Automatically identifies the language spoken in media files. + IdentifyLanguage bool + + // The language code specified for the Amazon Transcribe engine. + LanguageCode TranscribeLanguageCode + // The name of the language model used during transcription. LanguageModelName *string + // Language codes for the languages that you want to identify. You must provide at + // least 2 codes. + LanguageOptions *string + // The stabity level of a partial results transcription. Determines how stable you // want the transcription results to be. A higher level means the transcription // results are less likely to change. @@ -141,6 +146,9 @@ type EngineTranscribeSettings struct { // PiiEntityTypes is an optional parameter with a default value of ALL. PiiEntityTypes *string + // Language code for the preferred language. + PreferredLanguage TranscribeLanguageCode + // The AWS Region passed to Amazon Transcribe. If you don't specify a Region, // Amazon Chime uses the meeting's Region. Region TranscribeRegion @@ -200,7 +208,8 @@ type Meeting struct { // The Region in which you create the meeting. Available values: af-south-1, // ap-northeast-1, ap-northeast-2, 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, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2. + // eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2. Available + // values in AWS GovCloud (US) Regions: us-gov-east-1, us-gov-west-1. MediaRegion *string // The features available to a meeting, such as Amazon Voice Focus. @@ -215,7 +224,7 @@ type Meeting struct { noSmithyDocumentSerde } -// The configuration settings of the features available to a meeting. +// The configuration settings of the features available to a meeting.> type MeetingFeaturesConfiguration struct { // The configuration settings for the audio features available to a meeting. diff --git a/service/chimesdkmeetings/validators.go b/service/chimesdkmeetings/validators.go index 3d1857ea1b9..af312bb3036 100644 --- a/service/chimesdkmeetings/validators.go +++ b/service/chimesdkmeetings/validators.go @@ -344,31 +344,11 @@ func validateEngineTranscribeMedicalSettings(v *types.EngineTranscribeMedicalSet } } -func validateEngineTranscribeSettings(v *types.EngineTranscribeSettings) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "EngineTranscribeSettings"} - if len(v.LanguageCode) == 0 { - invalidParams.Add(smithy.NewErrParamRequired("LanguageCode")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateTranscriptionConfiguration(v *types.TranscriptionConfiguration) error { if v == nil { return nil } invalidParams := smithy.InvalidParamsError{Context: "TranscriptionConfiguration"} - if v.EngineTranscribeSettings != nil { - if err := validateEngineTranscribeSettings(v.EngineTranscribeSettings); err != nil { - invalidParams.AddNested("EngineTranscribeSettings", err.(smithy.InvalidParamsError)) - } - } if v.EngineTranscribeMedicalSettings != nil { if err := validateEngineTranscribeMedicalSettings(v.EngineTranscribeMedicalSettings); err != nil { invalidParams.AddNested("EngineTranscribeMedicalSettings", err.(smithy.InvalidParamsError)) diff --git a/service/cloudtrail/api_op_CancelQuery.go b/service/cloudtrail/api_op_CancelQuery.go index 313b82546d8..4f690999f7a 100644 --- a/service/cloudtrail/api_op_CancelQuery.go +++ b/service/cloudtrail/api_op_CancelQuery.go @@ -12,10 +12,10 @@ import ( ) // Cancels a query if the query is not in a terminated state, such as CANCELLED, -// FAILED or FINISHED. You must specify an ARN value for EventDataStore. The ID of -// the query that you want to cancel is also required. When you run CancelQuery, -// the query status might show as CANCELLED even if the operation is not yet -// finished. +// FAILED, TIMED_OUT, or FINISHED. You must specify an ARN value for +// EventDataStore. The ID of the query that you want to cancel is also required. +// When you run CancelQuery, the query status might show as CANCELLED even if the +// operation is not yet finished. func (c *Client) CancelQuery(ctx context.Context, params *CancelQueryInput, optFns ...func(*Options)) (*CancelQueryOutput, error) { if params == nil { params = &CancelQueryInput{} diff --git a/service/cloudtrail/api_op_DescribeQuery.go b/service/cloudtrail/api_op_DescribeQuery.go index a8fdaf49946..e5005e836c8 100644 --- a/service/cloudtrail/api_op_DescribeQuery.go +++ b/service/cloudtrail/api_op_DescribeQuery.go @@ -59,7 +59,7 @@ type DescribeQueryOutput struct { QueryStatistics *types.QueryStatisticsForDescribeQuery // The status of a query. Values for QueryStatus include QUEUED, RUNNING, FINISHED, - // FAILED, or CANCELLED + // FAILED, TIMED_OUT, or CANCELLED QueryStatus types.QueryStatus // The SQL code of a query. diff --git a/service/cloudtrail/api_op_GetQueryResults.go b/service/cloudtrail/api_op_GetQueryResults.go index 46f4883b577..f9aa78e992d 100644 --- a/service/cloudtrail/api_op_GetQueryResults.go +++ b/service/cloudtrail/api_op_GetQueryResults.go @@ -65,8 +65,8 @@ type GetQueryResultsOutput struct { // Shows the count of query results. QueryStatistics *types.QueryStatistics - // The status of the query. Values include QUEUED, RUNNING, FINISHED, FAILED, or - // CANCELLED. + // The status of the query. Values include QUEUED, RUNNING, FINISHED, FAILED, + // TIMED_OUT, or CANCELLED. QueryStatus types.QueryStatus // Metadata pertaining to the operation's result. diff --git a/service/cloudtrail/api_op_ListQueries.go b/service/cloudtrail/api_op_ListQueries.go index f628a610e8e..b2b054110c5 100644 --- a/service/cloudtrail/api_op_ListQueries.go +++ b/service/cloudtrail/api_op_ListQueries.go @@ -17,7 +17,7 @@ import ( // specify an ARN value for EventDataStore. Optionally, to shorten the list of // results, you can specify a time range, formatted as timestamps, by adding // StartTime and EndTime parameters, and a QueryStatus value. Valid values for -// QueryStatus include QUEUED, RUNNING, FINISHED, FAILED, or CANCELLED. +// QueryStatus include QUEUED, RUNNING, FINISHED, FAILED, TIMED_OUT, or CANCELLED. func (c *Client) ListQueries(ctx context.Context, params *ListQueriesInput, optFns ...func(*Options)) (*ListQueriesOutput, error) { if params == nil { params = &ListQueriesInput{} @@ -52,7 +52,7 @@ type ListQueriesInput struct { NextToken *string // The status of queries that you want to return in results. Valid values for - // QueryStatus include QUEUED, RUNNING, FINISHED, FAILED, or CANCELLED. + // QueryStatus include QUEUED, RUNNING, FINISHED, FAILED, TIMED_OUT, or CANCELLED. QueryStatus types.QueryStatus // Use with EndTime to bound a ListQueries request, and limit its results to only diff --git a/service/cloudtrail/deserializers.go b/service/cloudtrail/deserializers.go index 7cc6f7b6a57..c5aa1b2b502 100644 --- a/service/cloudtrail/deserializers.go +++ b/service/cloudtrail/deserializers.go @@ -9148,6 +9148,19 @@ func awsAwsjson11_deserializeDocumentQueryStatistics(v **types.QueryStatistics, for key, value := range shape { switch key { + case "BytesScanned": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.BytesScanned = ptr.Int64(i64) + } + case "ResultsCount": if value != nil { jtv, ok := value.(json.Number) @@ -9205,6 +9218,19 @@ func awsAwsjson11_deserializeDocumentQueryStatisticsForDescribeQuery(v **types.Q for key, value := range shape { switch key { + case "BytesScanned": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected Long to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.BytesScanned = ptr.Int64(i64) + } + case "CreationTime": if value != nil { switch jtv := value.(type) { diff --git a/service/cloudtrail/types/enums.go b/service/cloudtrail/types/enums.go index 4aac777a212..8828959997f 100644 --- a/service/cloudtrail/types/enums.go +++ b/service/cloudtrail/types/enums.go @@ -95,6 +95,7 @@ const ( QueryStatusFinished QueryStatus = "FINISHED" QueryStatusFailed QueryStatus = "FAILED" QueryStatusCancelled QueryStatus = "CANCELLED" + QueryStatusTimedOut QueryStatus = "TIMED_OUT" ) // Values returns all known values for QueryStatus. Note that this can be expanded @@ -107,6 +108,7 @@ func (QueryStatus) Values() []QueryStatus { "FINISHED", "FAILED", "CANCELLED", + "TIMED_OUT", } } diff --git a/service/cloudtrail/types/errors.go b/service/cloudtrail/types/errors.go index a013f8aaae8..5ebb6435ced 100644 --- a/service/cloudtrail/types/errors.go +++ b/service/cloudtrail/types/errors.go @@ -261,8 +261,8 @@ func (e *InactiveEventDataStoreException) ErrorCode() string { } func (e *InactiveEventDataStoreException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The specified query cannot be canceled because it is in the FINISHED, FAILED, or -// CANCELLED state. +// The specified query cannot be canceled because it is in the FINISHED, FAILED, +// TIMED_OUT, or CANCELLED state. type InactiveQueryException struct { Message *string diff --git a/service/cloudtrail/types/types.go b/service/cloudtrail/types/types.go index a4fa57311af..99e1de7f683 100644 --- a/service/cloudtrail/types/types.go +++ b/service/cloudtrail/types/types.go @@ -513,8 +513,8 @@ type Query struct { // The ID of a query. QueryId *string - // The status of the query. This can be QUEUED, RUNNING, FINISHED, FAILED, or - // CANCELLED. + // The status of the query. This can be QUEUED, RUNNING, FINISHED, FAILED, + // TIMED_OUT, or CANCELLED. QueryStatus QueryStatus noSmithyDocumentSerde @@ -523,6 +523,11 @@ type Query struct { // Metadata about a query, such as the number of results. type QueryStatistics struct { + // The total bytes that the query scanned in the event data store. This value + // matches the number of bytes for which your account is billed for the query, + // unless the query is still running. + BytesScanned *int64 + // The number of results returned. ResultsCount *int32 @@ -537,6 +542,11 @@ type QueryStatistics struct { // query's creation time. type QueryStatisticsForDescribeQuery struct { + // The total bytes that the query scanned in the event data store. This value + // matches the number of bytes for which your account is billed for the query, + // unless the query is still running. + BytesScanned *int64 + // The creation time of the query. CreationTime *time.Time diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index edace432439..d926ce7f00e 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -426,12 +426,13 @@ type InstanceStorageResourceType string // Enum values for InstanceStorageResourceType const ( - InstanceStorageResourceTypeChatTranscripts InstanceStorageResourceType = "CHAT_TRANSCRIPTS" - InstanceStorageResourceTypeCallRecordings InstanceStorageResourceType = "CALL_RECORDINGS" - InstanceStorageResourceTypeScheduledReports InstanceStorageResourceType = "SCHEDULED_REPORTS" - InstanceStorageResourceTypeMediaStreams InstanceStorageResourceType = "MEDIA_STREAMS" - InstanceStorageResourceTypeContactTraceRecords InstanceStorageResourceType = "CONTACT_TRACE_RECORDS" - InstanceStorageResourceTypeAgentEvents InstanceStorageResourceType = "AGENT_EVENTS" + InstanceStorageResourceTypeChatTranscripts InstanceStorageResourceType = "CHAT_TRANSCRIPTS" + InstanceStorageResourceTypeCallRecordings InstanceStorageResourceType = "CALL_RECORDINGS" + InstanceStorageResourceTypeScheduledReports InstanceStorageResourceType = "SCHEDULED_REPORTS" + InstanceStorageResourceTypeMediaStreams InstanceStorageResourceType = "MEDIA_STREAMS" + InstanceStorageResourceTypeContactTraceRecords InstanceStorageResourceType = "CONTACT_TRACE_RECORDS" + InstanceStorageResourceTypeAgentEvents InstanceStorageResourceType = "AGENT_EVENTS" + InstanceStorageResourceTypeRealTimeContactAnalysisSegments InstanceStorageResourceType = "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS" ) // Values returns all known values for InstanceStorageResourceType. Note that this @@ -445,6 +446,7 @@ func (InstanceStorageResourceType) Values() []InstanceStorageResourceType { "MEDIA_STREAMS", "CONTACT_TRACE_RECORDS", "AGENT_EVENTS", + "REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", } } diff --git a/service/devopsguru/api_op_DescribeEventSourcesConfig.go b/service/devopsguru/api_op_DescribeEventSourcesConfig.go new file mode 100644 index 00000000000..503ce66d4ab --- /dev/null +++ b/service/devopsguru/api_op_DescribeEventSourcesConfig.go @@ -0,0 +1,113 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package devopsguru + +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/devopsguru/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// This operation lists details about a DevOps Guru event source that is shared +// with your
 account. +func (c *Client) DescribeEventSourcesConfig(ctx context.Context, params *DescribeEventSourcesConfigInput, optFns ...func(*Options)) (*DescribeEventSourcesConfigOutput, error) { + if params == nil { + params = &DescribeEventSourcesConfigInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeEventSourcesConfig", params, optFns, c.addOperationDescribeEventSourcesConfigMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeEventSourcesConfigOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeEventSourcesConfigInput struct { + noSmithyDocumentSerde +} + +type DescribeEventSourcesConfigOutput struct { + + // The name of the event source. + EventSources *types.EventSourcesConfig + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeEventSourcesConfigMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeEventSourcesConfig{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeEventSourcesConfig{}, 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_opDescribeEventSourcesConfig(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_opDescribeEventSourcesConfig(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "devops-guru", + OperationName: "DescribeEventSourcesConfig", + } +} diff --git a/service/devopsguru/api_op_UpdateEventSourcesConfig.go b/service/devopsguru/api_op_UpdateEventSourcesConfig.go new file mode 100644 index 00000000000..9428517f84d --- /dev/null +++ b/service/devopsguru/api_op_UpdateEventSourcesConfig.go @@ -0,0 +1,112 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package devopsguru + +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/devopsguru/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Updates the event source configuration. +func (c *Client) UpdateEventSourcesConfig(ctx context.Context, params *UpdateEventSourcesConfigInput, optFns ...func(*Options)) (*UpdateEventSourcesConfigOutput, error) { + if params == nil { + params = &UpdateEventSourcesConfigInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateEventSourcesConfig", params, optFns, c.addOperationUpdateEventSourcesConfigMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateEventSourcesConfigOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateEventSourcesConfigInput struct { + + // The name of the event source. + EventSources *types.EventSourcesConfig + + noSmithyDocumentSerde +} + +type UpdateEventSourcesConfigOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateEventSourcesConfigMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateEventSourcesConfig{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateEventSourcesConfig{}, 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_opUpdateEventSourcesConfig(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_opUpdateEventSourcesConfig(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "devops-guru", + OperationName: "UpdateEventSourcesConfig", + } +} diff --git a/service/devopsguru/deserializers.go b/service/devopsguru/deserializers.go index f7307455f18..3d110f84345 100644 --- a/service/devopsguru/deserializers.go +++ b/service/devopsguru/deserializers.go @@ -747,6 +747,162 @@ func awsRestjson1_deserializeOpDocumentDescribeAnomalyOutput(v **DescribeAnomaly return nil } +type awsRestjson1_deserializeOpDescribeEventSourcesConfig struct { +} + +func (*awsRestjson1_deserializeOpDescribeEventSourcesConfig) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeEventSourcesConfig) HandleDeserialize(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_deserializeOpErrorDescribeEventSourcesConfig(response, &metadata) + } + output := &DescribeEventSourcesConfigOutput{} + 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_deserializeOpDocumentDescribeEventSourcesConfigOutput(&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_deserializeOpErrorDescribeEventSourcesConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentDescribeEventSourcesConfigOutput(v **DescribeEventSourcesConfigOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DescribeEventSourcesConfigOutput + if *v == nil { + sv = &DescribeEventSourcesConfigOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "EventSources": + if err := awsRestjson1_deserializeDocumentEventSourcesConfig(&sv.EventSources, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDescribeFeedback struct { } @@ -3998,6 +4154,98 @@ func awsRestjson1_deserializeOpErrorStartCostEstimation(response *smithyhttp.Res } } +type awsRestjson1_deserializeOpUpdateEventSourcesConfig struct { +} + +func (*awsRestjson1_deserializeOpUpdateEventSourcesConfig) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateEventSourcesConfig) HandleDeserialize(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_deserializeOpErrorUpdateEventSourcesConfig(response, &metadata) + } + output := &UpdateEventSourcesConfigOutput{} + out.Result = output + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateEventSourcesConfig(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpUpdateResourceCollection struct { } @@ -4656,6 +4904,46 @@ func awsRestjson1_deserializeDocumentAccountInsightHealth(v **types.AccountInsig return nil } +func awsRestjson1_deserializeDocumentAmazonCodeGuruProfilerIntegration(v **types.AmazonCodeGuruProfilerIntegration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AmazonCodeGuruProfilerIntegration + if *v == nil { + sv = &types.AmazonCodeGuruProfilerIntegration{} + } 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 EventSourceOptInStatus to be of type string, got %T instead", value) + } + sv.Status = types.EventSourceOptInStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAnomalyReportedTimeRange(v **types.AnomalyReportedTimeRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4843,6 +5131,64 @@ func awsRestjson1_deserializeDocumentAnomalySourceDetails(v **types.AnomalySourc return nil } +func awsRestjson1_deserializeDocumentAnomalySourceMetadata(v **types.AnomalySourceMetadata, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AnomalySourceMetadata + if *v == nil { + sv = &types.AnomalySourceMetadata{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Source": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AnomalySource to be of type string, got %T instead", value) + } + sv.Source = ptr.String(jtv) + } + + case "SourceResourceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceName to be of type string, got %T instead", value) + } + sv.SourceResourceName = ptr.String(jtv) + } + + case "SourceResourceType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ResourceType to be of type string, got %T instead", value) + } + sv.SourceResourceType = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAnomalyTimeRange(v **types.AnomalyTimeRange, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -5877,6 +6223,42 @@ func awsRestjson1_deserializeDocumentEvents(v *[]types.Event, value interface{}) return nil } +func awsRestjson1_deserializeDocumentEventSourcesConfig(v **types.EventSourcesConfig, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EventSourcesConfig + if *v == nil { + sv = &types.EventSourcesConfig{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AmazonCodeGuruProfiler": + if err := awsRestjson1_deserializeDocumentAmazonCodeGuruProfilerIntegration(&sv.AmazonCodeGuruProfiler, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentInsightFeedback(v **types.InsightFeedback, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -6969,6 +7351,11 @@ func awsRestjson1_deserializeDocumentProactiveAnomaly(v **types.ProactiveAnomaly return err } + case "AnomalyResources": + if err := awsRestjson1_deserializeDocumentAnomalyResources(&sv.AnomalyResources, value); err != nil { + return err + } + case "AnomalyTimeRange": if err := awsRestjson1_deserializeDocumentAnomalyTimeRange(&sv.AnomalyTimeRange, value); err != nil { return err @@ -7050,6 +7437,11 @@ func awsRestjson1_deserializeDocumentProactiveAnomaly(v **types.ProactiveAnomaly return err } + case "SourceMetadata": + if err := awsRestjson1_deserializeDocumentAnomalySourceMetadata(&sv.SourceMetadata, value); err != nil { + return err + } + case "Status": if value != nil { jtv, ok := value.(string) @@ -7111,6 +7503,11 @@ func awsRestjson1_deserializeDocumentProactiveAnomalySummary(v **types.Proactive return err } + case "AnomalyResources": + if err := awsRestjson1_deserializeDocumentAnomalyResources(&sv.AnomalyResources, value); err != nil { + return err + } + case "AnomalyTimeRange": if err := awsRestjson1_deserializeDocumentAnomalyTimeRange(&sv.AnomalyTimeRange, value); err != nil { return err @@ -7192,6 +7589,11 @@ func awsRestjson1_deserializeDocumentProactiveAnomalySummary(v **types.Proactive return err } + case "SourceMetadata": + if err := awsRestjson1_deserializeDocumentAnomalySourceMetadata(&sv.SourceMetadata, value); err != nil { + return err + } + case "Status": if value != nil { jtv, ok := value.(string) @@ -7248,6 +7650,15 @@ func awsRestjson1_deserializeDocumentProactiveInsight(v **types.ProactiveInsight for key, value := range shape { switch key { + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InsightDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + case "Id": if value != nil { jtv, ok := value.(string) @@ -7894,6 +8305,15 @@ func awsRestjson1_deserializeDocumentReactiveInsight(v **types.ReactiveInsight, for key, value := range shape { switch key { + case "Description": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InsightDescription to be of type string, got %T instead", value) + } + sv.Description = ptr.String(jtv) + } + case "Id": if value != nil { jtv, ok := value.(string) @@ -8235,6 +8655,15 @@ func awsRestjson1_deserializeDocumentRecommendation(v **types.Recommendation, va for key, value := range shape { switch key { + case "Category": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RecommendationCategory to be of type string, got %T instead", value) + } + sv.Category = ptr.String(jtv) + } + case "Description": if value != nil { jtv, ok := value.(string) diff --git a/service/devopsguru/generated.json b/service/devopsguru/generated.json index 07a2adb3cca..5a7fb8ae72e 100644 --- a/service/devopsguru/generated.json +++ b/service/devopsguru/generated.json @@ -12,6 +12,7 @@ "api_op_DescribeAccountHealth.go", "api_op_DescribeAccountOverview.go", "api_op_DescribeAnomaly.go", + "api_op_DescribeEventSourcesConfig.go", "api_op_DescribeFeedback.go", "api_op_DescribeInsight.go", "api_op_DescribeOrganizationHealth.go", @@ -32,6 +33,7 @@ "api_op_SearchInsights.go", "api_op_SearchOrganizationInsights.go", "api_op_StartCostEstimation.go", + "api_op_UpdateEventSourcesConfig.go", "api_op_UpdateResourceCollection.go", "api_op_UpdateServiceIntegration.go", "deserializers.go", diff --git a/service/devopsguru/serializers.go b/service/devopsguru/serializers.go index 12a72fbe2bb..d93fd673938 100644 --- a/service/devopsguru/serializers.go +++ b/service/devopsguru/serializers.go @@ -265,6 +265,51 @@ func awsRestjson1_serializeOpHttpBindingsDescribeAnomalyInput(v *DescribeAnomaly return nil } +type awsRestjson1_serializeOpDescribeEventSourcesConfig struct { +} + +func (*awsRestjson1_serializeOpDescribeEventSourcesConfig) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeEventSourcesConfig) 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.(*DescribeEventSourcesConfigInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/event-sources") + 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 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_serializeOpHttpBindingsDescribeEventSourcesConfigInput(v *DescribeEventSourcesConfigInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + type awsRestjson1_serializeOpDescribeFeedback struct { } @@ -1775,6 +1820,76 @@ func awsRestjson1_serializeOpDocumentStartCostEstimationInput(v *StartCostEstima return nil } +type awsRestjson1_serializeOpUpdateEventSourcesConfig struct { +} + +func (*awsRestjson1_serializeOpUpdateEventSourcesConfig) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateEventSourcesConfig) 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.(*UpdateEventSourcesConfigInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/event-sources") + 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_serializeOpDocumentUpdateEventSourcesConfigInput(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_serializeOpHttpBindingsUpdateEventSourcesConfigInput(v *UpdateEventSourcesConfigInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateEventSourcesConfigInput(v *UpdateEventSourcesConfigInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.EventSources != nil { + ok := object.Key("EventSources") + if err := awsRestjson1_serializeDocumentEventSourcesConfig(v.EventSources, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpUpdateResourceCollection struct { } @@ -1931,6 +2046,18 @@ func awsRestjson1_serializeDocumentAccountIdList(v []string, value smithyjson.Va return nil } +func awsRestjson1_serializeDocumentAmazonCodeGuruProfilerIntegration(v *types.AmazonCodeGuruProfilerIntegration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Status) > 0 { + ok := object.Key("Status") + ok.String(string(v.Status)) + } + + return nil +} + func awsRestjson1_serializeDocumentCloudFormationCollection(v *types.CloudFormationCollection, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2019,6 +2146,20 @@ func awsRestjson1_serializeDocumentEndTimeRange(v *types.EndTimeRange, value smi return nil } +func awsRestjson1_serializeDocumentEventSourcesConfig(v *types.EventSourcesConfig, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AmazonCodeGuruProfiler != nil { + ok := object.Key("AmazonCodeGuruProfiler") + if err := awsRestjson1_serializeDocumentAmazonCodeGuruProfilerIntegration(v.AmazonCodeGuruProfiler, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentEventTimeRange(v *types.EventTimeRange, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/devopsguru/types/enums.go b/service/devopsguru/types/enums.go index b965701dbfa..312c2d8a674 100644 --- a/service/devopsguru/types/enums.go +++ b/service/devopsguru/types/enums.go @@ -188,6 +188,24 @@ func (EventDataSource) Values() []EventDataSource { } } +type EventSourceOptInStatus string + +// Enum values for EventSourceOptInStatus +const ( + EventSourceOptInStatusEnabled EventSourceOptInStatus = "ENABLED" + EventSourceOptInStatusDisabled EventSourceOptInStatus = "DISABLED" +) + +// Values returns all known values for EventSourceOptInStatus. 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 (EventSourceOptInStatus) Values() []EventSourceOptInStatus { + return []EventSourceOptInStatus{ + "ENABLED", + "DISABLED", + } +} + type InsightFeedbackOption string // Enum values for InsightFeedbackOption diff --git a/service/devopsguru/types/types.go b/service/devopsguru/types/types.go index 88843ea8490..b00d17cf6dd 100644 --- a/service/devopsguru/types/types.go +++ b/service/devopsguru/types/types.go @@ -39,6 +39,15 @@ type AccountInsightHealth struct { noSmithyDocumentSerde } +// Information about your account's integration with Amazon CodeGuru Profiler. +type AmazonCodeGuruProfilerIntegration struct { + + // The status of the CodeGuru Profiler integration. + Status EventSourceOptInStatus + + noSmithyDocumentSerde +} + // A time range that specifies when DevOps Guru opens and then closes an anomaly. // This is different from AnomalyTimeRange, which specifies the time range when // DevOps Guru actually observes the anomalous behavior. @@ -85,6 +94,22 @@ type AnomalySourceDetails struct { noSmithyDocumentSerde } +// Metadata about an anomaly. The anomaly is detected using analysis of the metric +// data
 over a period of time +type AnomalySourceMetadata struct { + + // The source of the anomaly. + Source *string + + // The name of the anomaly's resource. + SourceResourceName *string + + // The anomaly's resource type. + SourceResourceType *string + + noSmithyDocumentSerde +} + // A time range that specifies when the observed unusual behavior in an anomaly // started and ended. This is different from AnomalyReportedTimeRange, which // specifies the time range when DevOps Guru opens and then closes an anomaly. @@ -348,6 +373,15 @@ type EventResource struct { noSmithyDocumentSerde } +// Describes the event sources. +type EventSourcesConfig struct { + + // + AmazonCodeGuruProfiler *AmazonCodeGuruProfilerIntegration + + noSmithyDocumentSerde +} + // The time range during which an Amazon Web Services event occurred. Amazon Web // Services resource events and metrics are analyzed by DevOps Guru to find // anomalous behavior and provide recommendations to improve your operational @@ -889,6 +923,9 @@ type ProactiveAnomaly struct { // the anomaly is opened and the time when it is closed. AnomalyReportedTimeRange *AnomalyReportedTimeRange + // Information about a resource in which DevOps Guru detected anomalous behavior. + AnomalyResources []AnomalyResource + // A time range that specifies when the observed unusual behavior in an anomaly // started and ended. This is different from AnomalyReportedTimeRange, which // specifies the time range when DevOps Guru opens and then closes an anomaly. @@ -929,6 +966,9 @@ type ProactiveAnomaly struct { // anomaly. The one supported source is Amazon CloudWatch metrics. SourceDetails *AnomalySourceDetails + // The metadata for the anomaly. + SourceMetadata *AnomalySourceMetadata + // The status of a proactive anomaly. Status AnomalyStatus @@ -945,6 +985,9 @@ type ProactiveAnomalySummary struct { // the anomaly is opened and the time when it is closed. AnomalyReportedTimeRange *AnomalyReportedTimeRange + // Information about a resource in which DevOps Guru detected anomalous behavior. + AnomalyResources []AnomalyResource + // A time range that specifies when the observed unusual behavior in an anomaly // started and ended. This is different from AnomalyReportedTimeRange, which // specifies the time range when DevOps Guru opens and then closes an anomaly. @@ -985,6 +1028,9 @@ type ProactiveAnomalySummary struct { // anomaly. The one supported source is Amazon CloudWatch metrics. SourceDetails *AnomalySourceDetails + // Returns the metadata of the source. + SourceMetadata *AnomalySourceMetadata + // The status of the anomaly. Status AnomalyStatus @@ -997,6 +1043,9 @@ type ProactiveAnomalySummary struct { // Details about a proactive insight. This object is returned by ListInsights. type ProactiveInsight struct { + // Describes the proactive insight. + Description *string + // The ID of the proactive insight. Id *string @@ -1268,6 +1317,9 @@ type ReactiveAnomalySummary struct { // Information about a reactive insight. This object is returned by ListInsights. type ReactiveInsight struct { + // Describes the reactive insight. + Description *string + // The ID of a reactive insight. Id *string @@ -1394,6 +1446,9 @@ type ReactiveOrganizationInsightSummary struct { // that generated an insight. type Recommendation struct { + // The category type of the recommendation. + Category *string + // A description of the problem. Description *string diff --git a/service/ec2/api_op_CreateFleet.go b/service/ec2/api_op_CreateFleet.go index c0c90aa744c..e542e2e6c17 100644 --- a/service/ec2/api_op_CreateFleet.go +++ b/service/ec2/api_op_CreateFleet.go @@ -107,7 +107,7 @@ type CreateFleetInput struct { // that could not be launched. // // For more information, see EC2 Fleet request types - // (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/ec2-fleet-request-type.html) + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) // in the Amazon EC2 User Guide. Type types.FleetType diff --git a/service/ec2/api_op_CreateIpamPool.go b/service/ec2/api_op_CreateIpamPool.go index cc158df99cd..c8b55f3bf3c 100644 --- a/service/ec2/api_op_CreateIpamPool.go +++ b/service/ec2/api_op_CreateIpamPool.go @@ -35,15 +35,17 @@ func (c *Client) CreateIpamPool(ctx context.Context, params *CreateIpamPoolInput type CreateIpamPoolInput struct { + // The IP protocol assigned to this IPAM pool. You must choose either IPv4 or IPv6 + // protocol for a pool. + // + // This member is required. + AddressFamily types.AddressFamily + // The ID of the scope in which you would like to create the IPAM pool. // // This member is required. IpamScopeId *string - // The IP protocol assigned to this IPAM pool. You must choose either IPv4 or IPv6 - // protocol for a pool. - AddressFamily types.AddressFamily - // The default netmask length for allocations added to this pool. If, for example, // the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new // allocations will default to 10.0.0.0/16. diff --git a/service/ec2/api_op_DescribeImageAttribute.go b/service/ec2/api_op_DescribeImageAttribute.go index d2620f99915..bdb76abed38 100644 --- a/service/ec2/api_op_DescribeImageAttribute.go +++ b/service/ec2/api_op_DescribeImageAttribute.go @@ -58,7 +58,7 @@ type DescribeImageAttributeOutput struct { // The block device mapping entries. BlockDeviceMappings []types.BlockDeviceMapping - // Describes a value for a resource attribute that is a String. + // The boot mode. BootMode *types.AttributeValue // A description for the AMI. @@ -70,6 +70,12 @@ type DescribeImageAttributeOutput struct { // The kernel ID. KernelId *types.AttributeValue + // The date and time, in ISO 8601 date-time format + // (http://www.iso.org/iso/iso8601), when the AMI was last used to launch an EC2 + // instance. When the AMI is used, there is a 24-hour delay before that usage is + // reported. lastLaunchedTime data is available starting April 2017. + LastLaunchedTime *types.AttributeValue + // The launch permissions. LaunchPermissions []types.LaunchPermission diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 7d9789072c5..f3268bd3e96 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -128183,6 +128183,12 @@ func awsEc2query_deserializeOpDocumentDescribeImageAttributeOutput(v **DescribeI return err } + case strings.EqualFold("lastLaunchedTime", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentAttributeValue(&sv.LastLaunchedTime, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("launchPermission", t.Name.Local): nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) if err := awsEc2query_deserializeDocumentLaunchPermissionList(&sv.LaunchPermissions, nodeDecoder); err != nil { diff --git a/service/ec2/types/enums.go b/service/ec2/types/enums.go index 7064db1300f..247311bab08 100644 --- a/service/ec2/types/enums.go +++ b/service/ec2/types/enums.go @@ -2185,6 +2185,7 @@ const ( ImageAttributeNameBlockDeviceMapping ImageAttributeName = "blockDeviceMapping" ImageAttributeNameSriovNetSupport ImageAttributeName = "sriovNetSupport" ImageAttributeNameBootMode ImageAttributeName = "bootMode" + ImageAttributeNameLastLaunchedTime ImageAttributeName = "lastLaunchedTime" ) // Values returns all known values for ImageAttributeName. Note that this can be @@ -2200,6 +2201,7 @@ func (ImageAttributeName) Values() []ImageAttributeName { "blockDeviceMapping", "sriovNetSupport", "bootMode", + "lastLaunchedTime", } } @@ -5078,6 +5080,7 @@ const ( ResourceTypeSpotFleetRequest ResourceType = "spot-fleet-request" ResourceTypeSpotInstancesRequest ResourceType = "spot-instances-request" ResourceTypeSubnet ResourceType = "subnet" + ResourceTypeSubnetCidrReservation ResourceType = "subnet-cidr-reservation" ResourceTypeTrafficMirrorFilter ResourceType = "traffic-mirror-filter" ResourceTypeTrafficMirrorSession ResourceType = "traffic-mirror-session" ResourceTypeTrafficMirrorTarget ResourceType = "traffic-mirror-target" @@ -5152,6 +5155,7 @@ func (ResourceType) Values() []ResourceType { "spot-fleet-request", "spot-instances-request", "subnet", + "subnet-cidr-reservation", "traffic-mirror-filter", "traffic-mirror-session", "traffic-mirror-target", diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index b5c86bb7770..5bd17c89b05 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -5912,7 +5912,9 @@ type InstanceRequirements struct { // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) // and GetInstanceTypesFromInstanceRequirements // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - // Default: 20 + // If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection + // threshold is applied based on the per-vCPU or per-memory price instead of the + // per-instance price. Default: 20 OnDemandMaxPricePercentageOverLowestPrice *int32 // Indicates whether instance types must support hibernation for On-Demand @@ -5931,7 +5933,9 @@ type InstanceRequirements struct { // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) // and GetInstanceTypesFromInstanceRequirements // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - // Default: 100 + // If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection + // threshold is applied based on the per-vCPU or per-memory price instead of the + // per-instance price. Default: 100 SpotMaxPricePercentageOverLowestPrice *int32 // The minimum and maximum amount of total local storage, in GB. Default: No @@ -6152,7 +6156,9 @@ type InstanceRequirementsRequest struct { // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) // and GetInstanceTypesFromInstanceRequirements // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - // Default: 20 + // If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection + // threshold is applied based on the per-vCPU or per-memory price instead of the + // per-instance price. Default: 20 OnDemandMaxPricePercentageOverLowestPrice *int32 // Indicates whether instance types must support hibernation for On-Demand @@ -6171,7 +6177,9 @@ type InstanceRequirementsRequest struct { // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) // and GetInstanceTypesFromInstanceRequirements // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - // Default: 100 + // If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection + // threshold is applied based on the per-vCPU or per-memory price instead of the + // per-instance price. Default: 100 SpotMaxPricePercentageOverLowestPrice *int32 // The minimum and maximum amount of total local storage, in GB. Default: No diff --git a/service/ec2/validators.go b/service/ec2/validators.go index 8d32945f1dc..533f163c14e 100644 --- a/service/ec2/validators.go +++ b/service/ec2/validators.go @@ -10096,6 +10096,9 @@ func validateOpCreateIpamPoolInput(v *CreateIpamPoolInput) error { if v.IpamScopeId == nil { invalidParams.Add(smithy.NewErrParamRequired("IpamScopeId")) } + if len(v.AddressFamily) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("AddressFamily")) + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/ecr/api_op_PutImageScanningConfiguration.go b/service/ecr/api_op_PutImageScanningConfiguration.go index 0d92e0b6ba2..74d8fe45635 100644 --- a/service/ecr/api_op_PutImageScanningConfiguration.go +++ b/service/ecr/api_op_PutImageScanningConfiguration.go @@ -11,7 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the image scanning configuration for the specified repository. +// The PutImageScanningConfiguration API is being deprecated, in favor of +// specifying the image scanning configuration at the registry level. For more +// information, see PutRegistryScanningConfiguration. Updates the image scanning +// configuration for the specified repository. func (c *Client) PutImageScanningConfiguration(ctx context.Context, params *PutImageScanningConfigurationInput, optFns ...func(*Options)) (*PutImageScanningConfigurationOutput, error) { if params == nil { params = &PutImageScanningConfigurationInput{} diff --git a/service/ecr/api_op_PutRegistryScanningConfiguration.go b/service/ecr/api_op_PutRegistryScanningConfiguration.go index 51a0d66ca59..fe20cf376ed 100644 --- a/service/ecr/api_op_PutRegistryScanningConfiguration.go +++ b/service/ecr/api_op_PutRegistryScanningConfiguration.go @@ -33,12 +33,15 @@ type PutRegistryScanningConfigurationInput struct { // which repository filters are used and at what frequency scanning will occur. Rules []types.RegistryScanningRule - // The scanning type to set for the registry. By default, the BASIC scan type is - // used. When basic scanning is set, you may specify filters to determine which - // individual repositories, or all repositories, are scanned when new images are - // pushed. Alternatively, you can do manual scans of images with basic scanning. - // When the ENHANCED scan type is set, Amazon Inspector provides automated, - // continuous scanning of all repositories in your registry. + // The scanning type to set for the registry. When a registry scanning + // configuration is not defined, by default the BASIC scan type is used. When basic + // scanning is used, you may specify filters to determine which individual + // repositories, or all repositories, are scanned when new images are pushed to + // those repositories. Alternatively, you can do manual scans of images with basic + // scanning. When the ENHANCED scan type is set, Amazon Inspector provides + // automated vulnerability scanning. You may choose between continuous scanning or + // scan on push and you may specify filters to determine which individual + // repositories, or all repositories, are scanned. ScanType types.ScanType noSmithyDocumentSerde diff --git a/service/ecr/deserializers.go b/service/ecr/deserializers.go index 2963e2b6762..f9b5512fb84 100644 --- a/service/ecr/deserializers.go +++ b/service/ecr/deserializers.go @@ -7295,6 +7295,22 @@ func awsAwsjson11_deserializeDocumentImageDetail(v **types.ImageDetail, value in return err } + case "lastRecordedPullTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastRecordedPullTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected RecordedPullTimestamp to be a JSON Number, got %T instead", value) + + } + } + case "registryId": if value != nil { jtv, ok := value.(string) diff --git a/service/ecr/types/types.go b/service/ecr/types/types.go index 2e79d0731cc..61df854e5f1 100644 --- a/service/ecr/types/types.go +++ b/service/ecr/types/types.go @@ -282,6 +282,15 @@ type ImageDetail struct { // The list of tags associated with this image. ImageTags []string + // The date and time, expressed in standard JavaScript date format, when Amazon ECR + // recorded the last image pull. Amazon ECR refreshes the last image pull timestamp + // at least once every 24 hours. For example, if you pull an image once a day then + // the lastRecordedPullTime timestamp will indicate the exact time that the image + // was last pulled. However, if you pull an image once an hour, because Amazon ECR + // refreshes the lastRecordedPullTime timestamp at least once every 24 hours, the + // result may not be the exact time that the image was last pulled. + LastRecordedPullTime *time.Time + // The Amazon Web Services account ID associated with the registry to which this // image belongs. RegistryId *string @@ -604,7 +613,10 @@ type RegistryScanningRule struct { // This member is required. RepositoryFilters []ScanningRepositoryFilter - // The frequency that scans are performed at for a private registry. + // The frequency that scans are performed at for a private registry. When the + // ENHANCED scan type is specified, the supported scan frequencies are + // CONTINUOUS_SCAN and SCAN_ON_PUSH. When the BASIC scan type is specified, the + // SCAN_ON_PUSH and MANUAL scan frequencies are supported. // // This member is required. ScanFrequency ScanFrequency @@ -817,18 +829,17 @@ type ScoreDetails struct { noSmithyDocumentSerde } -// The 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. Tag keys can have a maximum character length of 128 characters, and tag -// values can have a maximum length of 256 characters. +// The metadata to apply to a resource to help you categorize and organize them. +// Each tag consists of a key and a value, both of which you define. Tag keys can +// have a maximum character length of 128 characters, and tag values can have a +// maximum length of 256 characters. type Tag struct { // One part of a key-value pair that make up a tag. A key is a general label that // acts like a category for more specific tag values. Key *string - // The optional part of a key-value pair that make up a tag. A value acts as a - // descriptor within a tag category (key). + // A value acts as a descriptor within a tag category (key). Value *string noSmithyDocumentSerde diff --git a/service/ecs/api_op_CreateCluster.go b/service/ecs/api_op_CreateCluster.go index 7bd80b2f6f8..3419e1a4d71 100644 --- a/service/ecs/api_op_CreateCluster.go +++ b/service/ecs/api_op_CreateCluster.go @@ -70,7 +70,7 @@ type CreateClusterInput struct { // operation. DefaultCapacityProviderStrategy []types.CapacityProviderStrategyItem - // The setting to use when creating a cluster. This parameter is used to enable + // The setting to use when creating a cluster. This parameter is used to turn on // CloudWatch Container Insights for a cluster. If this value is specified, it // overrides the containerInsights value set with PutAccountSetting or // PutAccountSettingDefault. diff --git a/service/ecs/api_op_CreateService.go b/service/ecs/api_op_CreateService.go index c8be7ba5abb..8ce853e41d3 100644 --- a/service/ecs/api_op_CreateService.go +++ b/service/ecs/api_op_CreateService.go @@ -23,15 +23,15 @@ import ( // in the Amazon Elastic Container Service Developer Guide. Tasks for services that // don't use a load balancer are considered healthy if they're in the RUNNING // state. Tasks for services that use a load balancer are considered healthy if -// they're in the RUNNING state and the container instance that they're hosted on -// is reported as healthy by the load balancer. There are two service scheduler -// strategies available: +// they're in the RUNNING state and are reported as healthy by the load balancer. +// There are two service scheduler strategies available: // -// * REPLICA - The replica scheduling strategy places and -// maintains your desired number of tasks across your cluster. By default, the -// service scheduler spreads tasks across Availability Zones. You can use task -// placement strategies and constraints to customize task placement decisions. For -// more information, see Service Scheduler Concepts +// * REPLICA - The replica +// scheduling strategy places and maintains your desired number of tasks across +// your cluster. By default, the service scheduler spreads tasks across +// Availability Zones. You can use task placement strategies and constraints to +// customize task placement decisions. For more information, see Service Scheduler +// Concepts // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) // in the Amazon Elastic Container Service Developer Guide. // @@ -166,7 +166,7 @@ type CreateServiceInput struct { // isn't specified. If schedulingStrategy is DAEMON then this isn't required. DesiredCount *int32 - // Specifies whether to enable Amazon ECS managed tags for the tasks within the + // Specifies whether to turn on Amazon ECS managed tags for the tasks within the // service. For more information, see Tagging Your Amazon ECS Resources // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) // in the Amazon Elastic Container Service Developer Guide. @@ -181,9 +181,12 @@ type CreateServiceInput struct { // unhealthy Elastic Load Balancing target health checks after a task has first // started. This is only used when your service is configured to use a load // balancer. If your service has a load balancer defined and you don't specify a - // health check grace period value, the default value of 0 is used. If your - // service's tasks take a while to start and respond to Elastic Load Balancing - // health checks, you can specify a health check grace period of up to + // health check grace period value, the default value of 0 is used. If you do not + // use an Elastic Load Balancing, we recomend that you use the startPeriod in the + // task definition healtch check parameters. For more information, see Health check + // (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html). + // If your service's tasks take a while to start and respond to Elastic Load + // Balancing health checks, you can specify a health check grace period of up to // 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service // scheduler ignores health check status. This grace period can prevent the service // scheduler from marking tasks as unhealthy and stopping them before they have @@ -226,28 +229,26 @@ type CreateServiceInput struct { // The load balancer can also have up to two listeners: a required listener for // production traffic and an optional listener that you can use to perform // validation tests with Lambda functions before routing production traffic to it. - // After you create a service using the ECS deployment controller, the load - // balancer name or target group ARN, container name, and container port that's - // specified in the service definition are immutable. If you use the CODE_DEPLOY - // deployment controller, these values can be changed when updating the service. - // For Application Load Balancers and Network Load Balancers, this object must - // contain the load balancer target group ARN, the container name, and the - // container port to access from the load balancer. The container name must be as - // it appears in a container definition. The load balancer name parameter must be - // omitted. When a task from this service is placed on a container instance, the - // container instance and port combination is registered as a target in the target - // group that's specified here. For Classic Load Balancers, this object must - // contain the load balancer name, the container name , and the container port to - // access from the load balancer. The container name must be as it appears in a - // container definition. The target group ARN parameter must be omitted. When a - // task from this service is placed on a container instance, the container instance - // is registered with the load balancer that's specified here. Services with tasks - // that use the awsvpc network mode (for example, those with the Fargate launch - // type) only support Application Load Balancers and Network Load Balancers. - // Classic Load Balancers aren't supported. Also, when you create any target groups - // for these services, you must choose ip as the target type, not instance. This is - // because tasks that use the awsvpc network mode are associated with an elastic - // network interface, not an Amazon EC2 instance. + // If you use the CODE_DEPLOY deployment controller, these values can be changed + // when updating the service. For Application Load Balancers and Network Load + // Balancers, this object must contain the load balancer target group ARN, the + // container name, and the container port to access from the load balancer. The + // container name must be as it appears in a container definition. The load + // balancer name parameter must be omitted. When a task from this service is placed + // on a container instance, the container instance and port combination is + // registered as a target in the target group that's specified here. For Classic + // Load Balancers, this object must contain the load balancer name, the container + // name , and the container port to access from the load balancer. The container + // name must be as it appears in a container definition. The target group ARN + // parameter must be omitted. When a task from this service is placed on a + // container instance, the container instance is registered with the load balancer + // that's specified here. Services with tasks that use the awsvpc network mode (for + // example, those with the Fargate launch type) only support Application Load + // Balancers and Network Load Balancers. Classic Load Balancers aren't supported. + // Also, when you create any target groups for these services, you must choose ip + // as the target type, not instance. This is because tasks that use the awsvpc + // network mode are associated with an elastic network interface, not an Amazon EC2 + // instance. LoadBalancers []types.LoadBalancer // The network configuration for the service. This parameter is required for task diff --git a/service/ecs/api_op_PutAccountSetting.go b/service/ecs/api_op_PutAccountSetting.go index caa6918a655..4284f4eceec 100644 --- a/service/ecs/api_op_PutAccountSetting.go +++ b/service/ecs/api_op_PutAccountSetting.go @@ -23,7 +23,7 @@ import ( // affected. The opt-in and opt-out account setting must be set for each Amazon ECS // resource separately. The ARN and resource ID format of a resource is defined by // the opt-in status of the IAM user or role that created the resource. You must -// enable this setting to use Amazon ECS features such as resource tagging. When +// turn on this setting to use Amazon ECS features such as resource tagging. When // awsvpcTrunking is specified, the elastic network interface (ENI) limit for any // new container instances that support the feature is changed. If awsvpcTrunking // is enabled, any new container instances that support the feature are launched diff --git a/service/ecs/api_op_RegisterTaskDefinition.go b/service/ecs/api_op_RegisterTaskDefinition.go index 1d28dc060c7..63561a82611 100644 --- a/service/ecs/api_op_RegisterTaskDefinition.go +++ b/service/ecs/api_op_RegisterTaskDefinition.go @@ -229,8 +229,8 @@ type RegisterTaskDefinitionInput struct { // The configuration details for the App Mesh proxy. For tasks hosted on Amazon EC2 // instances, the container instances require at least version 1.26.0 of the - // container agent and at least version 1.26.0-1 of the ecs-init package to enable - // a proxy configuration. If your container instances are launched from the Amazon + // container agent and at least version 1.26.0-1 of the ecs-init package to use a + // proxy configuration. If your container instances are launched from the Amazon // ECS-optimized AMI version 20190301 or later, then they contain the required // versions of the container agent and ecs-init. For more information, see Amazon // ECS-optimized AMI versions diff --git a/service/ecs/api_op_RunTask.go b/service/ecs/api_op_RunTask.go index 345c95d9311..f9e86caa731 100644 --- a/service/ecs/api_op_RunTask.go +++ b/service/ecs/api_op_RunTask.go @@ -81,15 +81,15 @@ type RunTaskInput struct { // can specify up to 10 tasks for each call. Count *int32 - // Specifies whether to enable Amazon ECS managed tags for the task. For more + // Specifies whether to use Amazon ECS managed tags for the task. For more // information, see Tagging Your Amazon ECS Resources // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) // in the Amazon Elastic Container Service Developer Guide. EnableECSManagedTags bool - // Determines whether to enable the execute command functionality for the - // containers in this task. If true, this enables execute command functionality on - // all containers in the task. + // Determines whether to use the execute command functionality for the containers + // in this task. If true, this enables execute command functionality on all + // containers in the task. EnableExecuteCommand bool // The name of the task group to associate with the task. The default value is the diff --git a/service/ecs/api_op_StartTask.go b/service/ecs/api_op_StartTask.go index 9e4cb221267..9852be45c84 100644 --- a/service/ecs/api_op_StartTask.go +++ b/service/ecs/api_op_StartTask.go @@ -49,7 +49,7 @@ type StartTaskInput struct { // your task. If you do not specify a cluster, the default cluster is assumed. Cluster *string - // Specifies whether to enable Amazon ECS managed tags for the task. For more + // Specifies whether to use Amazon ECS managed tags for the task. For more // information, see Tagging Your Amazon ECS Resources // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) // in the Amazon Elastic Container Service Developer Guide. diff --git a/service/ecs/api_op_UpdateClusterSettings.go b/service/ecs/api_op_UpdateClusterSettings.go index 07d5a4ca627..f8f2c6dc141 100644 --- a/service/ecs/api_op_UpdateClusterSettings.go +++ b/service/ecs/api_op_UpdateClusterSettings.go @@ -34,7 +34,7 @@ type UpdateClusterSettingsInput struct { // This member is required. Cluster *string - // The setting to use by default for a cluster. This parameter is used to enable + // The setting to use by default for a cluster. This parameter is used to turn on // CloudWatch Container Insights for a cluster. If this value is specified, it // overrides the containerInsights value set with PutAccountSetting or // PutAccountSettingDefault. diff --git a/service/ecs/api_op_UpdateContainerInstancesState.go b/service/ecs/api_op_UpdateContainerInstancesState.go index f1b3ddc0fbd..441698d0f31 100644 --- a/service/ecs/api_op_UpdateContainerInstancesState.go +++ b/service/ecs/api_op_UpdateContainerInstancesState.go @@ -35,24 +35,23 @@ import ( // replacement tasks are considered healthy. Tasks for services that do not use a // load balancer are considered healthy if they're in the RUNNING state. Tasks for // services that use a load balancer are considered healthy if they're in the -// RUNNING state and the container instance they're hosted on is reported as -// healthy by the load balancer. +// RUNNING state and are reported as healthy by the load balancer.. // -// * The maximumPercent parameter represents an -// upper limit on the number of running tasks during task replacement. You can use -// this to define the replacement batch size. For example, if desiredCount is four -// tasks, a maximum of 200% starts four new tasks before stopping the four tasks to -// be drained, provided that the cluster resources required to do this are -// available. If the maximum is 100%, then replacement tasks can't start until the -// draining tasks have stopped. +// * The +// maximumPercent parameter represents an upper limit on the number of running +// tasks during task replacement. You can use this to define the replacement batch +// size. For example, if desiredCount is four tasks, a maximum of 200% starts four +// new tasks before stopping the four tasks to be drained, provided that the +// cluster resources required to do this are available. If the maximum is 100%, +// then replacement tasks can't start until the draining tasks have stopped. // -// Any PENDING or RUNNING tasks that do not belong to -// a service aren't affected. You must wait for them to finish or stop them -// manually. A container instance has completed draining when it has no more -// RUNNING tasks. You can verify this using ListTasks. When a container instance -// has been drained, you can set a container instance to ACTIVE status and once it -// has reached that status the Amazon ECS scheduler can begin scheduling tasks on -// the instance again. +// Any +// PENDING or RUNNING tasks that do not belong to a service aren't affected. You +// must wait for them to finish or stop them manually. A container instance has +// completed draining when it has no more RUNNING tasks. You can verify this using +// ListTasks. When a container instance has been drained, you can set a container +// instance to ACTIVE status and once it has reached that status the Amazon ECS +// scheduler can begin scheduling tasks on the instance again. func (c *Client) UpdateContainerInstancesState(ctx context.Context, params *UpdateContainerInstancesStateInput, optFns ...func(*Options)) (*UpdateContainerInstancesStateOutput, error) { if params == nil { params = &UpdateContainerInstancesStateInput{} diff --git a/service/ecs/api_op_UpdateService.go b/service/ecs/api_op_UpdateService.go index 0e5a2b5cb6b..eaf867f6e64 100644 --- a/service/ecs/api_op_UpdateService.go +++ b/service/ecs/api_op_UpdateService.go @@ -17,45 +17,48 @@ import ( // https://aws.amazon.com/service-terms (https://aws.amazon.com/service-terms) // ("Beta Terms"). These Beta Terms apply to your participation in this preview. // Modifies the parameters of a service. For services using the rolling update -// (ECS) deployment controller, the desired count, deployment configuration, -// network configuration, task placement constraints and strategies, or task -// definition used can be updated. For services using the blue/green (CODE_DEPLOY) -// deployment controller, only the desired count, deployment configuration, task -// placement constraints and strategies, and health check grace period can be -// updated using this API. If the network configuration, platform version, or task -// definition need to be updated, a new CodeDeploy deployment is created. For more -// information, see CreateDeployment +// (ECS) you can update the desired count, the deployment configuration, the +// network configuration, load balancers, service registries, enable ECS managed +// tags option, propagate tags option, task placement constraints and strategies, +// and the task definition. When you update any of these parameters, Amazon ECS +// starts new tasks with the new configuration. For services using the blue/green +// (CODE_DEPLOY) deployment controller, only the desired count, deployment +// configuration, task placement constraints and strategies, enable ECS managed +// tags option, and propagate tags can be updated using this API. If the network +// configuration, platform version, task definition, or load balancer need to be +// updated, create a new CodeDeploy deployment. For more information, see +// CreateDeployment // (https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html) // in the CodeDeploy API Reference. For services using an external deployment // controller, you can update only the desired count, task placement constraints -// and strategies, and health check grace period using this API. If the launch -// type, load balancer, network configuration, platform version, or task definition -// need to be updated, create a new task set. For more information, see -// CreateTaskSet. You can add to or subtract from the number of instantiations of a -// task definition in a service by specifying the cluster that the service is -// running in and a new desiredCount parameter. If you have updated the Docker -// image of your application, you can create a new task definition with that image -// and deploy it to your service. The service scheduler uses the minimum healthy -// percent and maximum percent parameters (in the service's deployment -// configuration) to determine the deployment strategy. If your updated Docker -// image uses the same tag as what is in the existing task definition for your -// service (for example, my_image:latest), you don't need to create a new revision -// of your task definition. You can update the service using the forceNewDeployment -// option. The new tasks launched by the deployment pull the current image/tag -// combination from your repository when they start. You can also update the -// deployment configuration of a service. When a deployment is triggered by -// updating the task definition of a service, the service scheduler uses the -// deployment configuration parameters, minimumHealthyPercent and maximumPercent, -// to determine the deployment strategy. +// and strategies, health check grace period, enable ECS managed tags option, and +// propagate tags option, using this API. If the launch type, load balancer, +// network configuration, platform version, or task definition need to be updated, +// create a new task set For more information, see CreateTaskSet. You can add to or +// subtract from the number of instantiations of a task definition in a service by +// specifying the cluster that the service is running in and a new desiredCount +// parameter. If you have updated the Docker image of your application, you can +// create a new task definition with that image and deploy it to your service. The +// service scheduler uses the minimum healthy percent and maximum percent +// parameters (in the service's deployment configuration) to determine the +// deployment strategy. If your updated Docker image uses the same tag as what is +// in the existing task definition for your service (for example, my_image:latest), +// you don't need to create a new revision of your task definition. You can update +// the service using the forceNewDeployment option. The new tasks launched by the +// deployment pull the current image/tag combination from your repository when they +// start. You can also update the deployment configuration of a service. When a +// deployment is triggered by updating the task definition of a service, the +// service scheduler uses the deployment configuration parameters, +// minimumHealthyPercent and maximumPercent, to determine the deployment +// strategy. // -// * If minimumHealthyPercent is below 100%, -// the scheduler can ignore desiredCount temporarily during a deployment. For -// example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to -// stop two existing tasks before starting two new tasks. Tasks for services that -// don't use a load balancer are considered healthy if they're in the RUNNING -// state. Tasks for services that use a load balancer are considered healthy if -// they're in the RUNNING state and the container instance they're hosted on is -// reported as healthy by the load balancer. +// * If minimumHealthyPercent is below 100%, the scheduler can ignore +// desiredCount temporarily during a deployment. For example, if desiredCount is +// four tasks, a minimum of 50% allows the scheduler to stop two existing tasks +// before starting two new tasks. Tasks for services that don't use a load balancer +// are considered healthy if they're in the RUNNING state. Tasks for services that +// use a load balancer are considered healthy if they're in the RUNNING state and +// are reported as healthy by the load balancer. // // * The maximumPercent parameter // represents an upper limit on the number of running tasks during a deployment. @@ -105,6 +108,20 @@ import ( // container instance in an optimal Availability Zone (based on the previous // steps), favoring container instances with the largest number of running tasks // for this service. +// +// You must have a service-linked role when you update any of +// the following service properties. If you specified a custom IAM role when you +// created the service, Amazon ECS automatically replaces the roleARN +// (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html#ECS-Type-Service-roleArn) +// associated with the service with the ARN of your service-linked role. For more +// information, see Service-linked roles +// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) +// in the Amazon Elastic Container Service Developer Guide. +// +// * loadBalancers, +// +// * +// serviceRegistries func (c *Client) UpdateService(ctx context.Context, params *UpdateServiceInput, optFns ...func(*Options)) (*UpdateServiceOutput, error) { if params == nil { params = &UpdateServiceInput{} @@ -161,6 +178,15 @@ type UpdateServiceInput struct { // service. DesiredCount *int32 + // Determines whether to turn on Amazon ECS managed tags for the tasks in the + // service. For more information, see Tagging Your Amazon ECS Resources + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) + // in the Amazon Elastic Container Service Developer Guide. Only tasks launched + // after the update will reflect the update. To update the tags on all tasks, set + // forceNewDeployment to true, so that Amazon ECS starts new tasks with the updated + // tags. + EnableECSManagedTags *bool + // If true, this enables execute command functionality on all task containers. If // you do not want to override the value that was set when the service was created, // you can set this to null when performing this action. @@ -184,6 +210,15 @@ type UpdateServiceInput struct { // them before they have time to come up. HealthCheckGracePeriodSeconds *int32 + // A list of Elastic Load Balancing load balancer objects. It contains the load + // balancer name, the container name, and the container port to access from the + // load balancer. The container name is as it appears in a container definition. + // When you add, update, or remove a load balancer configuration, Amazon ECS starts + // new tasks with the updated Elastic Load Balancing configuration, and then stops + // the old tasks when the new tasks are running. You can remove existing + // loadBalancers by passing an empty list. + LoadBalancers []types.LoadBalancer + // An object representing the network configuration for the service. NetworkConfiguration *types.NetworkConfiguration @@ -212,6 +247,22 @@ type UpdateServiceInput struct { // in the Amazon Elastic Container Service Developer Guide. PlatformVersion *string + // Determines whether to propagate the tags from the task definition or the service + // to the task. If no value is specified, the tags aren't propagated. Only tasks + // launched after the update will reflect the update. To update the tags on all + // tasks, set forceNewDeployment to true, so that Amazon ECS starts new tasks with + // the updated tags. + PropagateTags types.PropagateTags + + // The details for the service discovery registries to assign to this service. For + // more information, see Service Discovery + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html). + // When you add, update, or remove the service registries configuration, Amazon ECS + // starts new tasks with the updated service registries configuration, and then + // stops the old tasks when the new tasks are running. You can remove existing + // serviceRegistries by passing an empty list. + ServiceRegistries []types.ServiceRegistry + // The family and revision (family:revision) or full ARN of the task definition to // run in your service. If a revision is not specified, the latest ACTIVE revision // is used. If you modify the task definition with UpdateService, Amazon ECS spawns diff --git a/service/ecs/api_op_UpdateServicePrimaryTaskSet.go b/service/ecs/api_op_UpdateServicePrimaryTaskSet.go index 0b7eb4e11a8..d40a110cef5 100644 --- a/service/ecs/api_op_UpdateServicePrimaryTaskSet.go +++ b/service/ecs/api_op_UpdateServicePrimaryTaskSet.go @@ -57,7 +57,7 @@ type UpdateServicePrimaryTaskSetInput struct { type UpdateServicePrimaryTaskSetOutput struct { - // Details about the task set. + // etails about the task set. TaskSet *types.TaskSet // Metadata pertaining to the operation's result. diff --git a/service/ecs/serializers.go b/service/ecs/serializers.go index e5861e92491..40e5943b89c 100644 --- a/service/ecs/serializers.go +++ b/service/ecs/serializers.go @@ -6874,6 +6874,11 @@ func awsAwsjson11_serializeOpDocumentUpdateServiceInput(v *UpdateServiceInput, v ok.Integer(*v.DesiredCount) } + if v.EnableECSManagedTags != nil { + ok := object.Key("enableECSManagedTags") + ok.Boolean(*v.EnableECSManagedTags) + } + if v.EnableExecuteCommand != nil { ok := object.Key("enableExecuteCommand") ok.Boolean(*v.EnableExecuteCommand) @@ -6889,6 +6894,13 @@ func awsAwsjson11_serializeOpDocumentUpdateServiceInput(v *UpdateServiceInput, v ok.Integer(*v.HealthCheckGracePeriodSeconds) } + if v.LoadBalancers != nil { + ok := object.Key("loadBalancers") + if err := awsAwsjson11_serializeDocumentLoadBalancers(v.LoadBalancers, ok); err != nil { + return err + } + } + if v.NetworkConfiguration != nil { ok := object.Key("networkConfiguration") if err := awsAwsjson11_serializeDocumentNetworkConfiguration(v.NetworkConfiguration, ok); err != nil { @@ -6915,11 +6927,23 @@ func awsAwsjson11_serializeOpDocumentUpdateServiceInput(v *UpdateServiceInput, v ok.String(*v.PlatformVersion) } + if len(v.PropagateTags) > 0 { + ok := object.Key("propagateTags") + ok.String(string(v.PropagateTags)) + } + if v.Service != nil { ok := object.Key("service") ok.String(*v.Service) } + if v.ServiceRegistries != nil { + ok := object.Key("serviceRegistries") + if err := awsAwsjson11_serializeDocumentServiceRegistries(v.ServiceRegistries, ok); err != nil { + return err + } + } + if v.TaskDefinition != nil { ok := object.Key("taskDefinition") ok.String(*v.TaskDefinition) diff --git a/service/ecs/types/enums.go b/service/ecs/types/enums.go index 7ef64901fb2..b732ba4ecba 100644 --- a/service/ecs/types/enums.go +++ b/service/ecs/types/enums.go @@ -746,6 +746,7 @@ type PropagateTags string const ( PropagateTagsTaskDefinition PropagateTags = "TASK_DEFINITION" PropagateTagsService PropagateTags = "SERVICE" + PropagateTagsNone PropagateTags = "NONE" ) // Values returns all known values for PropagateTags. Note that this can be @@ -755,6 +756,7 @@ func (PropagateTags) Values() []PropagateTags { return []PropagateTags{ "TASK_DEFINITION", "SERVICE", + "NONE", } } diff --git a/service/ecs/types/types.go b/service/ecs/types/types.go index 78cd34426fe..d268329eca0 100644 --- a/service/ecs/types/types.go +++ b/service/ecs/types/types.go @@ -45,8 +45,8 @@ type AttachmentStateChange struct { } // An attribute is a name-value pair that's associated with an Amazon ECS object. -// Attributes enable you to extend the Amazon ECS data model by adding custom -// metadata to your resources. For more information, see Attributes +// Use attributes to extend the Amazon ECS data model by adding custom metadata to +// your resources. For more information, see Attributes // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) // in the Amazon Elastic Container Service Developer Guide. type Attribute struct { @@ -394,7 +394,7 @@ type ClusterConfiguration struct { noSmithyDocumentSerde } -// The settings to use when creating a cluster. This parameter is used to enable +// The settings to use when creating a cluster. This parameter is used to turn on // CloudWatch Container Insights for a cluster. type ClusterSetting struct { @@ -538,7 +538,7 @@ type ContainerDefinition struct { // contain multiple dependencies. When a dependency is defined for container // startup, for container shutdown it is reversed. For tasks using the EC2 launch // type, the container instances require at least version 1.26.0 of the container - // agent to enable container dependencies. However, we recommend using the latest + // agent to turn on container dependencies. However, we recommend using the latest // container agent version. For information about checking your agent version and // updating to the latest version, see Updating the Amazon ECS Container Agent // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) @@ -952,7 +952,7 @@ type ContainerDefinition struct { // later. // // For tasks using the EC2 launch type, your container instances require at - // least version 1.26.0 of the container agent to enable a container start timeout + // least version 1.26.0 of the container agent to use a container start timeout // value. However, we recommend using the latest container agent version. For // information about checking your agent version and updating to the latest // version, see Updating the Amazon ECS Container Agent @@ -983,7 +983,7 @@ type ContainerDefinition struct { // neither the stopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT agent // configuration variable are set, then the default values of 30 seconds for Linux // containers and 30 seconds on Windows containers are used. Your container - // instances require at least version 1.26.0 of the container agent to enable a + // instances require at least version 1.26.0 of the container agent to use a // container stop timeout value. However, we recommend using the latest container // agent version. For information about checking your agent version and updating to // the latest version, see Updating the Amazon ECS Container Agent @@ -1080,7 +1080,7 @@ type ContainerDefinition struct { // The dependencies defined for container startup and shutdown. A container can // contain multiple dependencies. When a dependency is defined for container // startup, for container shutdown it is reversed. Your Amazon ECS container -// instances require at least version 1.26.0 of the container agent to enable +// instances require at least version 1.26.0 of the container agent to use // container dependencies. However, we recommend using the latest container agent // version. For information about checking your agent version and updating to the // latest version, see Updating the Amazon ECS Container Agent @@ -1442,20 +1442,19 @@ type Deployment struct { // update (ECS) deployment type that aren't behind a Classic Load Balancer. The // deployment circuit breaker determines whether a service deployment will fail if // the service can't reach a steady state. If enabled, a service deployment will -// transition to a failed state and stop launching new tasks. You can also enable -// Amazon ECS to roll back your service to the last completed deployment after a -// failure. For more information, see Rolling update +// transition to a failed state and stop launching new tasks. You can also +// configure Amazon ECS to roll back your service to the last completed deployment +// after a failure. For more information, see Rolling update // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) // in the Amazon Elastic Container Service Developer Guide. type DeploymentCircuitBreaker struct { - // Determines whether to enable the deployment circuit breaker logic for the - // service. + // Determines whether to use the deployment circuit breaker logic for the service. // // This member is required. Enable bool - // Determines whether to enable Amazon ECS to roll back the service if a service + // Determines whether to configure Amazon ECS to roll back the service if a service // deployment fails. If rollback is enabled, when a service deployment fails, the // service is rolled back to the last deployment that completed successfully. // @@ -1659,11 +1658,10 @@ type EFSVolumeConfiguration struct { // path set on the EFS access point. RootDirectory *string - // Determines whether to enable encryption for Amazon EFS data in transit between - // the Amazon ECS host and the Amazon EFS server. Transit encryption must be - // enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, - // the default value of DISABLED is used. For more information, see Encrypting Data - // in Transit + // Determines whether to use encryption for Amazon EFS data in transit between the + // Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if + // Amazon EFS IAM authorization is used. If this parameter is omitted, the default + // value of DISABLED is used. For more information, see Encrypting Data in Transit // (https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the // Amazon Elastic File System User Guide. TransitEncryption EFSTransitEncryption @@ -1722,12 +1720,8 @@ type EnvironmentFile struct { // storage // (https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html) // in the Amazon ECS User Guide for Fargate. This parameter is only supported for -// tasks hosted on Fargate using the following platform versions: -// -// * Linux platform -// version 1.4.0 or later. -// -// * Windows platform version 1.0.0 or later. +// tasks hosted on Fargate using Linux platform version 1.4.0 or later. This +// parameter is not supported for Windows containers on Fargate. type EphemeralStorage struct { // The total amount, in GiB, of ephemeral storage to set for the task. The minimum @@ -1773,8 +1767,8 @@ type ExecuteCommandConfiguration struct { // can be sent to CloudWatch Logs or an Amazon S3 bucket. type ExecuteCommandLogConfiguration struct { - // Determines whether to enable encryption on the CloudWatch logs. If not - // specified, encryption will be disabled. + // Determines whether to use encryption on the CloudWatch logs. If not specified, + // encryption will be disabled. CloudWatchEncryptionEnabled bool // The name of the CloudWatch log group to send logs to. The CloudWatch log group @@ -2209,7 +2203,15 @@ type LinuxParameters struct { // The load balancer configuration to use with a service or task set. For specific // notes and restrictions regarding the use of load balancers with services and -// task sets, see the CreateService and CreateTaskSet actions. +// task sets, see the CreateService and CreateTaskSet actions. When you add, +// update, or remove a load blaancer configuration, Amazon ECS starts a new +// deployment with the updated Elastic Load Balancing configuration. This causes +// tasks to register to and deregister from load balancers. We recommend that you +// verify this on a test environment before you update the Elastic Load Balancing +// configuration. A service-linked role is required for services that use multiple +// target groups. For more information, see Service-linked roles +// (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) +// in the Amazon Elastic Container Service Developer Guide. type LoadBalancer struct { // The name of the container (as it appears in a container definition) to associate @@ -2393,7 +2395,7 @@ type ManagedScaling struct { // out at one time. If this parameter is omitted, the default value of 1 is used. MinimumScalingStepSize *int32 - // Determines whether to enable managed scaling for the capacity provider. + // Determines whether to use managed scaling for the capacity provider. Status ManagedScalingStatus // The target capacity value for the capacity provider. The specified value must be @@ -2593,8 +2595,8 @@ type PortMapping struct { // The configuration details for the App Mesh proxy. For tasks that use the EC2 // launch type, the container instances require at least version 1.26.0 of the -// container agent and at least version 1.26.0-1 of the ecs-init package to enable -// a proxy configuration. If your container instances are launched from the Amazon +// container agent and at least version 1.26.0-1 of the ecs-init package to use a +// proxy configuration. If your container instances are launched from the Amazon // ECS optimized AMI version 20190301 or later, then they contain the required // versions of the container agent and ecs-init. For more information, see Amazon // ECS-optimized Linux AMI @@ -2771,7 +2773,13 @@ type Secret struct { // The secret to expose to the container. The supported values are either the full // ARN of the Secrets Manager secret or the full ARN of the parameter in the SSM - // Parameter Store. If the SSM Parameter Store parameter exists in the same Region + // Parameter Store. For information about the require Identity and Access + // Management permissions, see Required IAM permissions for Amazon ECS secrets + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) + // (for Secrets Manager) or Required IAM permissions for Amazon ECS secrets + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) + // (for Systems Manager Parameter store) in the Amazon Elastic Container Service + // Developer Guide. If the SSM Parameter Store parameter exists in the same Region // as the task you're launching, then you can use either the full ARN or name of // the parameter. If the parameter exists in a different Region, then the full ARN // must be specified. @@ -2815,8 +2823,8 @@ type Service struct { // CreateService, and it can be modified with UpdateService. DesiredCount int32 - // Determines whether to enable Amazon ECS managed tags for the tasks in the - // service. For more information, see Tagging Your Amazon ECS Resources + // Determines whether to use Amazon ECS managed tags for the tasks in the service. + // For more information, see Tagging Your Amazon ECS Resources // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) // in the Amazon Elastic Container Service Developer Guide. EnableECSManagedTags bool @@ -2895,7 +2903,7 @@ type Service struct { // placement decisions. // // * DAEMON-The daemon scheduling strategy deploys exactly - // one task on each active container instance. This taskmeets all of the task + // one task on each active container instance. This task meets all of the task // placement constraints that you specify in your cluster. The service scheduler // also evaluates the task placement constraints for running tasks. It stop tasks // that don't meet the placement constraints. Fargate tasks don't support the @@ -2981,7 +2989,11 @@ type ServiceEvent struct { noSmithyDocumentSerde } -// The details for the service registry. +// The details for the service registry. Each service may be associated with one +// service registry. Multiple service registries for each service are not +// supported. When you add, update, or remove the service registries configuration, +// Amazon ECS starts a new deployment. New tasks are registered and deregistered to +// the updated service registry configuration. type ServiceRegistry struct { // The container name value to be used for your service discovery service. It's @@ -3021,7 +3033,7 @@ type Session struct { // The ID of the execute command session. SessionId *string - // A URL back to managed agent on the container that the SSM Session Manager client + // A URL to the managed agent on the container that the SSM Session Manager client // uses to send commands and receive output from the container. StreamUrl *string @@ -3286,7 +3298,21 @@ type Task struct { StartedBy *string // The stop code indicating why a task was stopped. The stoppedReason might contain - // additional details. + // additional details. The following are valid values: + // + // * TaskFailedToStart + // + // * + // EssentialContainerExited + // + // * UserInitiated + // + // * TerminationNotice + // + // * + // ServiceSchedulerInitiated + // + // * SpotInterruption StopCode TaskStopCode // The Unix timestamp for the time when the task was stopped. More specifically, @@ -3522,8 +3548,8 @@ type TaskDefinition struct { // The configuration details for the App Mesh proxy. Your Amazon ECS container // instances require at least version 1.26.0 of the container agent and at least - // version 1.26.0-1 of the ecs-init package to enable a proxy configuration. If - // your container instances are launched from the Amazon ECS optimized AMI version + // version 1.26.0-1 of the ecs-init package to use a proxy configuration. If your + // container instances are launched from the Amazon ECS optimized AMI version // 20190301 or later, they contain the required versions of the container agent and // ecs-init. For more information, see Amazon ECS-optimized Linux AMI // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) diff --git a/service/finspacedata/api_op_CreateChangeset.go b/service/finspacedata/api_op_CreateChangeset.go index 17f14fa22bc..0a2fd9de1fd 100644 --- a/service/finspacedata/api_op_CreateChangeset.go +++ b/service/finspacedata/api_op_CreateChangeset.go @@ -31,17 +31,17 @@ func (c *Client) CreateChangeset(ctx context.Context, params *CreateChangesetInp // The request for a CreateChangeset operation. type CreateChangesetInput struct { - // Option to indicate how a Changeset will be applied to a Dataset. + // The option to indicate how a Changeset will be applied to a Dataset. // - // * REPLACE - - // Changeset will be considered as a replacement to all prior loaded Changesets. + // * REPLACE + // – Changeset will be considered as a replacement to all prior loaded + // Changesets. // - // * - // APPEND - Changeset will be considered as an addition to the end of all prior - // loaded Changesets. + // * APPEND – Changeset will be considered as an addition to the end + // of all prior loaded Changesets. // - // * MODIFY - Changeset is considered as a replacement to a - // specific prior ingested Changeset. + // * MODIFY – Changeset is considered as a + // replacement to a specific prior ingested Changeset. // // This member is required. ChangeType types.ChangeType @@ -57,15 +57,15 @@ type CreateChangesetInput struct { // (separator) and the type of compression (compression). formatType is a required // attribute and can have the following values: // - // * PARQUET - Parquet source file + // * PARQUET – Parquet source file // format. // - // * CSV - CSV source file format. + // * CSV – CSV source file format. // - // * JSON - JSON source file format. + // * JSON – JSON source file format. // // * - // XML - XML source file format. + // XML – XML source file format. // // Here is an example of how you could specify the // formatParams: "formatParams": { "formatType": "CSV", "withHeader": "true", @@ -89,7 +89,8 @@ type CreateChangesetInput struct { // access. To do that, you first need to configure the IAM policy on S3 bucket. For // more information, see Loading data from an Amazon S3 Bucket using the FinSpace // API - // (https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets)section. + // (https://docs.aws.amazon.com/finspace/latest/data-api/fs-using-the-finspace-api.html#access-s3-buckets) + // section. // // This member is required. SourceParams map[string]string diff --git a/service/finspacedata/api_op_CreateDataView.go b/service/finspacedata/api_op_CreateDataView.go index 7dfe554e517..c93c03017b3 100644 --- a/service/finspacedata/api_op_CreateDataView.go +++ b/service/finspacedata/api_op_CreateDataView.go @@ -41,7 +41,7 @@ type CreateDataViewInput struct { // This member is required. DestinationTypeParams *types.DataViewDestinationTypeParams - // Beginning time to use for the Dataview. The value is determined as Epoch time in + // Beginning time to use for the Dataview. 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. AsOfTimestamp int64 diff --git a/service/finspacedata/api_op_CreateDataset.go b/service/finspacedata/api_op_CreateDataset.go index fb0fac8007e..8d62ad6faec 100644 --- a/service/finspacedata/api_op_CreateDataset.go +++ b/service/finspacedata/api_op_CreateDataset.go @@ -38,10 +38,10 @@ type CreateDatasetInput struct { // The format in which Dataset data is structured. // - // * TABULAR - Data is structured + // * TABULAR – Data is structured // in a tabular format. // - // * NON_TABULAR - Data is structured in a non-tabular + // * NON_TABULAR – Data is structured in a non-tabular // format. // // This member is required. diff --git a/service/finspacedata/api_op_CreatePermissionGroup.go b/service/finspacedata/api_op_CreatePermissionGroup.go new file mode 100644 index 00000000000..119ae392c2c --- /dev/null +++ b/service/finspacedata/api_op_CreatePermissionGroup.go @@ -0,0 +1,194 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a group of permissions for various actions that a user can perform in +// FinSpace. +func (c *Client) CreatePermissionGroup(ctx context.Context, params *CreatePermissionGroupInput, optFns ...func(*Options)) (*CreatePermissionGroupOutput, error) { + if params == nil { + params = &CreatePermissionGroupInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreatePermissionGroup", params, optFns, c.addOperationCreatePermissionGroupMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreatePermissionGroupOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreatePermissionGroupInput struct { + + // The option to indicate FinSpace application permissions that are granted to a + // specific group. + // + // * CreateDataset – Group members can create new datasets. + // + // * + // ManageClusters – Group members can manage Apache Spark clusters from FinSpace + // notebooks. + // + // * ManageUsersAndGroups – Group members can manage users and + // permission groups. + // + // * ManageAttributeSets – Group members can manage attribute + // sets. + // + // * ViewAuditData – Group members can view audit data. + // + // * AccessNotebooks – + // Group members will have access to FinSpace notebooks. + // + // * GetTemporaryCredentials + // – Group members can get temporary API credentials. + // + // This member is required. + ApplicationPermissions []types.ApplicationPermission + + // The name of the permission group. + // + // This member is required. + Name *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + // A brief description for the permission group. + Description *string + + noSmithyDocumentSerde +} + +type CreatePermissionGroupOutput struct { + + // The unique identifier for the permission group. + PermissionGroupId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreatePermissionGroupMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreatePermissionGroup{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreatePermissionGroup{}, 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 = addRestJsonContentTypeCustomization(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_opCreatePermissionGroupMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreatePermissionGroupValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreatePermissionGroup(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_initializeOpCreatePermissionGroup struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreatePermissionGroup) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreatePermissionGroup) 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.(*CreatePermissionGroupInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreatePermissionGroupInput ") + } + + 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_opCreatePermissionGroupMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreatePermissionGroup{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreatePermissionGroup(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "CreatePermissionGroup", + } +} diff --git a/service/finspacedata/api_op_CreateUser.go b/service/finspacedata/api_op_CreateUser.go new file mode 100644 index 00000000000..d6b3653d77d --- /dev/null +++ b/service/finspacedata/api_op_CreateUser.go @@ -0,0 +1,201 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Creates a new user in FinSpace. +func (c *Client) CreateUser(ctx context.Context, params *CreateUserInput, optFns ...func(*Options)) (*CreateUserOutput, error) { + if params == nil { + params = &CreateUserInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateUser", params, optFns, c.addOperationCreateUserMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateUserOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateUserInput struct { + + // The email address of the user that you want to register. The email address + // serves as a uniquer identifier for each user and cannot be changed after it's + // created. + // + // This member is required. + EmailAddress *string + + // The option to indicate the type of user. Use one of the following options to + // specify this parameter: + // + // * SUPER_USER – A user with permission to all the + // functionality and data in FinSpace. + // + // * APP_USER – A user with specific + // permissions in FinSpace. The users are assigned permissions by adding them to a + // permission group. + // + // This member is required. + Type types.UserType + + // The option to indicate whether the user can use the + // GetProgrammaticAccessCredentials API to obtain credentials that can then be used + // to access other FinSpace Data API operations. + // + // * ENABLED – The user has + // permissions to use the APIs. + // + // * DISABLED – The user does not have permissions to + // use any APIs. + ApiAccess types.ApiAccess + + // The ARN identifier of an AWS user or role that is allowed to call the + // GetProgrammaticAccessCredentials API to obtain a credentials token for a + // specific FinSpace user. This must be an IAM role within your FinSpace account. + ApiAccessPrincipalArn *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + // The first name of the user that you want to register. + FirstName *string + + // The last name of the user that you want to register. + LastName *string + + noSmithyDocumentSerde +} + +type CreateUserOutput struct { + + // The unique identifier for the user. + UserId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateUserMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateUser{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateUser{}, 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 = addRestJsonContentTypeCustomization(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_opCreateUserMiddleware(stack, options); err != nil { + return err + } + if err = addOpCreateUserValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateUser(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_initializeOpCreateUser struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpCreateUser) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpCreateUser) 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.(*CreateUserInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateUserInput ") + } + + 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_opCreateUserMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpCreateUser{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opCreateUser(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "CreateUser", + } +} diff --git a/service/finspacedata/api_op_DeletePermissionGroup.go b/service/finspacedata/api_op_DeletePermissionGroup.go new file mode 100644 index 00000000000..990311f0c66 --- /dev/null +++ b/service/finspacedata/api_op_DeletePermissionGroup.go @@ -0,0 +1,163 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a permission group. This action is irreversible. +func (c *Client) DeletePermissionGroup(ctx context.Context, params *DeletePermissionGroupInput, optFns ...func(*Options)) (*DeletePermissionGroupOutput, error) { + if params == nil { + params = &DeletePermissionGroupInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeletePermissionGroup", params, optFns, c.addOperationDeletePermissionGroupMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeletePermissionGroupOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeletePermissionGroupInput struct { + + // The unique identifier for the permission group that you want to delete. + // + // This member is required. + PermissionGroupId *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + noSmithyDocumentSerde +} + +type DeletePermissionGroupOutput struct { + + // The unique identifier for the deleted permission group. + PermissionGroupId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeletePermissionGroupMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeletePermissionGroup{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeletePermissionGroup{}, 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 = addRestJsonContentTypeCustomization(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_opDeletePermissionGroupMiddleware(stack, options); err != nil { + return err + } + if err = addOpDeletePermissionGroupValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeletePermissionGroup(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_initializeOpDeletePermissionGroup struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpDeletePermissionGroup) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpDeletePermissionGroup) 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.(*DeletePermissionGroupInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *DeletePermissionGroupInput ") + } + + 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_opDeletePermissionGroupMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpDeletePermissionGroup{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opDeletePermissionGroup(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "DeletePermissionGroup", + } +} diff --git a/service/finspacedata/api_op_DisableUser.go b/service/finspacedata/api_op_DisableUser.go new file mode 100644 index 00000000000..90079e63ed3 --- /dev/null +++ b/service/finspacedata/api_op_DisableUser.go @@ -0,0 +1,163 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Denies access to the FinSpace web application and API for the specified user. +func (c *Client) DisableUser(ctx context.Context, params *DisableUserInput, optFns ...func(*Options)) (*DisableUserOutput, error) { + if params == nil { + params = &DisableUserInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DisableUser", params, optFns, c.addOperationDisableUserMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DisableUserOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DisableUserInput struct { + + // The unique identifier for the user account that you want to disable. + // + // This member is required. + UserId *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + noSmithyDocumentSerde +} + +type DisableUserOutput struct { + + // The unique identifier for the disabled user account. + UserId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDisableUserMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDisableUser{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDisableUser{}, 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 = addRestJsonContentTypeCustomization(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_opDisableUserMiddleware(stack, options); err != nil { + return err + } + if err = addOpDisableUserValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDisableUser(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_initializeOpDisableUser struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpDisableUser) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpDisableUser) 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.(*DisableUserInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *DisableUserInput ") + } + + 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_opDisableUserMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpDisableUser{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opDisableUser(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "DisableUser", + } +} diff --git a/service/finspacedata/api_op_EnableUser.go b/service/finspacedata/api_op_EnableUser.go new file mode 100644 index 00000000000..6fcb8ee2da4 --- /dev/null +++ b/service/finspacedata/api_op_EnableUser.go @@ -0,0 +1,163 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Allows the specified user to access the FinSpace web application and API. +func (c *Client) EnableUser(ctx context.Context, params *EnableUserInput, optFns ...func(*Options)) (*EnableUserOutput, error) { + if params == nil { + params = &EnableUserInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "EnableUser", params, optFns, c.addOperationEnableUserMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*EnableUserOutput) + out.ResultMetadata = metadata + return out, nil +} + +type EnableUserInput struct { + + // The unique identifier for the user account that you want to enable. + // + // This member is required. + UserId *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + noSmithyDocumentSerde +} + +type EnableUserOutput struct { + + // The unique identifier for the enabled user account. + UserId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationEnableUserMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpEnableUser{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpEnableUser{}, 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 = addRestJsonContentTypeCustomization(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_opEnableUserMiddleware(stack, options); err != nil { + return err + } + if err = addOpEnableUserValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opEnableUser(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_initializeOpEnableUser struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpEnableUser) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpEnableUser) 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.(*EnableUserInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *EnableUserInput ") + } + + 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_opEnableUserMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpEnableUser{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opEnableUser(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "EnableUser", + } +} diff --git a/service/finspacedata/api_op_GetChangeset.go b/service/finspacedata/api_op_GetChangeset.go index 65dfbef1b7e..3294be12dd2 100644 --- a/service/finspacedata/api_op_GetChangeset.go +++ b/service/finspacedata/api_op_GetChangeset.go @@ -47,25 +47,25 @@ type GetChangesetInput struct { type GetChangesetOutput struct { // Beginning time from which the Changeset is active. The value is determined as - // Epoch time in milliseconds. For example, the value for Monday, November 1, 2021 + // epoch time in milliseconds. For example, the value for Monday, November 1, 2021 // 12:00:00 PM UTC is specified as 1635768000000. ActiveFromTimestamp int64 - // Time until which the Changeset is active. The value is determined as Epoch time + // 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. ActiveUntilTimestamp int64 // Type that indicates how a Changeset is applied to a Dataset. // - // * REPLACE - + // * REPLACE – // Changeset is considered as a replacement to all prior loaded Changesets. // // * - // APPEND - Changeset is considered as an addition to the end of all prior loaded + // APPEND – Changeset is considered as an addition to the end of all prior loaded // Changesets. // - // * MODIFY - Changeset is considered as a replacement to a specific + // * MODIFY – Changeset is considered as a replacement to a specific // prior ingested Changeset. ChangeType types.ChangeType @@ -76,7 +76,7 @@ type GetChangesetOutput struct { ChangesetId *string // The timestamp at which the Changeset was created in FinSpace. The value is - // determined as Epoch time in milliseconds. For example, the value for Monday, + // determined as epoch time in milliseconds. For example, the value for Monday, // November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. CreateTime int64 diff --git a/service/finspacedata/api_op_GetDataView.go b/service/finspacedata/api_op_GetDataView.go index 8793ef7db7e..0949ada4d49 100644 --- a/service/finspacedata/api_op_GetDataView.go +++ b/service/finspacedata/api_op_GetDataView.go @@ -48,7 +48,7 @@ type GetDataViewInput struct { // database and table name type GetDataViewOutput struct { - // Time range to use for the Dataview. The value is determined as Epoch time in + // Time range to use for the Dataview. 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. AsOfTimestamp int64 @@ -57,7 +57,7 @@ type GetDataViewOutput struct { AutoUpdate bool // The timestamp at which the Dataview was created in FinSpace. The value is - // determined as Epoch time in milliseconds. For example, the value for Monday, + // determined as epoch time in milliseconds. For example, the value for Monday, // November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. CreateTime int64 @@ -76,7 +76,7 @@ type GetDataViewOutput struct { // Information about an error that occurred for the Dataview. ErrorInfo *types.DataViewErrorInfo - // The last time that a Dataview was modified. The value is determined as Epoch + // The last time that a Dataview was modified. 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. LastModifiedTime int64 @@ -89,25 +89,25 @@ type GetDataViewOutput struct { // The status of a Dataview creation. // - // * RUNNING - Dataview creation is running. + // * RUNNING – Dataview creation is running. // // * - // STARTING - Dataview creation is starting. + // STARTING – Dataview creation is starting. // - // * FAILED - Dataview creation has + // * FAILED – Dataview creation has // failed. // - // * CANCELLED - Dataview creation has been cancelled. + // * CANCELLED – Dataview creation has been cancelled. // - // * TIMEOUT - + // * TIMEOUT – // Dataview creation has timed out. // - // * SUCCESS - Dataview creation has + // * SUCCESS – Dataview creation has // succeeded. // - // * PENDING - Dataview creation is pending. + // * PENDING – Dataview creation is pending. // - // * FAILED_CLEANUP_FAILED - + // * FAILED_CLEANUP_FAILED – // Dataview creation failed and resource cleanup failed. Status types.DataViewStatus diff --git a/service/finspacedata/api_op_GetDataset.go b/service/finspacedata/api_op_GetDataset.go index ce8fb0a70b4..cc206ef9bf5 100644 --- a/service/finspacedata/api_op_GetDataset.go +++ b/service/finspacedata/api_op_GetDataset.go @@ -45,7 +45,7 @@ type GetDatasetOutput struct { Alias *string // The timestamp at which the Dataset was created in FinSpace. The value is - // determined as Epoch time in milliseconds. For example, the value for Monday, + // determined as epoch time in milliseconds. For example, the value for Monday, // November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. CreateTime int64 @@ -63,14 +63,14 @@ type GetDatasetOutput struct { // The format in which Dataset data is structured. // - // * TABULAR - Data is structured + // * TABULAR – Data is structured // in a tabular format. // - // * NON_TABULAR - Data is structured in a non-tabular + // * NON_TABULAR – Data is structured in a non-tabular // format. Kind types.DatasetKind - // The last time that the Dataset was modified. The value is determined as Epoch + // The last time that the Dataset was modified. 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. LastModifiedTime int64 @@ -80,15 +80,15 @@ type GetDatasetOutput struct { // Status of the Dataset creation. // - // * PENDING - Dataset is pending creation. + // * PENDING – Dataset is pending creation. // // * - // FAILED - Dataset creation has failed. + // FAILED – Dataset creation has failed. // - // * SUCCESS - Dataset creation has + // * SUCCESS – Dataset creation has // succeeded. // - // * RUNNING - Dataset creation is running. + // * RUNNING – Dataset creation is running. Status types.DatasetStatus // Metadata pertaining to the operation's result. diff --git a/service/finspacedata/api_op_GetUser.go b/service/finspacedata/api_op_GetUser.go new file mode 100644 index 00000000000..503d86ad7b5 --- /dev/null +++ b/service/finspacedata/api_op_GetUser.go @@ -0,0 +1,189 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Retrieves details for a specific user. +func (c *Client) GetUser(ctx context.Context, params *GetUserInput, optFns ...func(*Options)) (*GetUserOutput, error) { + if params == nil { + params = &GetUserInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetUser", params, optFns, c.addOperationGetUserMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetUserOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetUserInput struct { + + // The unique identifier of the user to get data for. + // + // This member is required. + UserId *string + + noSmithyDocumentSerde +} + +type GetUserOutput struct { + + // Indicates whether the user can use the GetProgrammaticAccessCredentials API to + // obtain credentials that can then be used to access other FinSpace Data API + // operations. + // + // * ENABLED – The user has permissions to use the APIs. + // + // * DISABLED – + // The user does not have permissions to use any APIs. + ApiAccess types.ApiAccess + + // The ARN identifier of an AWS user or role that is allowed to call the + // GetProgrammaticAccessCredentials API to obtain a credentials token for a + // specific FinSpace user. This must be an IAM role within your FinSpace account. + ApiAccessPrincipalArn *string + + // The timestamp at which the user account was created in FinSpace. The value is + // determined as epoch time in milliseconds. + CreateTime int64 + + // The email address that is associated with the user. + EmailAddress *string + + // The first name of the user. + FirstName *string + + // Describes the last time the user account was disabled. The value is determined + // as epoch time in milliseconds. + LastDisabledTime int64 + + // Describes the last time the user account was enabled. The value is determined as + // epoch time in milliseconds. + LastEnabledTime int64 + + // Describes the last time that the user logged into their account. The value is + // determined as epoch time in milliseconds. + LastLoginTime int64 + + // Describes the last time the user account was updated. The value is determined as + // epoch time in milliseconds. + LastModifiedTime int64 + + // The last name of the user. + LastName *string + + // The current status of the user account. + // + // * CREATING – The user account creation + // is in progress. + // + // * ENABLED – The user account is created and is currently + // active. + // + // * DISABLED – The user account is currently inactive. + Status types.UserStatus + + // Indicates the type of user. + // + // * SUPER_USER – A user with permission to all the + // functionality and data in FinSpace. + // + // * APP_USER – A user with specific + // permissions in FinSpace. The users are assigned permissions by adding them to a + // permissions group. + Type types.UserType + + // The unique identifier for the user account that is retrieved. + UserId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetUserMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpGetUser{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpGetUser{}, 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 = addRestJsonContentTypeCustomization(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 = addOpGetUserValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetUser(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_opGetUser(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "GetUser", + } +} diff --git a/service/finspacedata/api_op_GetWorkingLocation.go b/service/finspacedata/api_op_GetWorkingLocation.go index 7196b37bab1..3ac4aa9348b 100644 --- a/service/finspacedata/api_op_GetWorkingLocation.go +++ b/service/finspacedata/api_op_GetWorkingLocation.go @@ -32,11 +32,11 @@ type GetWorkingLocationInput struct { // Specify the type of the working location. // - // * SAGEMAKER - Use the Amazon S3 + // * SAGEMAKER – Use the Amazon S3 // location as a temporary location to store data content when working with // FinSpace Notebooks that run on SageMaker studio. // - // * INGESTION - Use the Amazon + // * INGESTION – Use the Amazon // S3 location as a staging location to copy your data content and then use the // location with the Changeset creation operation. LocationType types.LocationType diff --git a/service/finspacedata/api_op_ListChangesets.go b/service/finspacedata/api_op_ListChangesets.go index 96d6bb20f33..fe7c5c13d7e 100644 --- a/service/finspacedata/api_op_ListChangesets.go +++ b/service/finspacedata/api_op_ListChangesets.go @@ -39,7 +39,7 @@ type ListChangesetsInput struct { // The maximum number of results per page. MaxResults int32 - // A token indicating where a results page should begin. + // A token that indicates where a results page should begin. NextToken *string noSmithyDocumentSerde @@ -52,7 +52,7 @@ type ListChangesetsOutput struct { // List of Changesets found. Changesets []types.ChangesetSummary - // A token indicating where a results page should begin. + // A token that indicates where a results page should begin. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/finspacedata/api_op_ListDataViews.go b/service/finspacedata/api_op_ListDataViews.go index b2200116216..cb4a607f0c4 100644 --- a/service/finspacedata/api_op_ListDataViews.go +++ b/service/finspacedata/api_op_ListDataViews.go @@ -39,7 +39,7 @@ type ListDataViewsInput struct { // The maximum number of results per page. MaxResults int32 - // A token indicating where a results page should begin. + // A token that indicates where a results page should begin. NextToken *string noSmithyDocumentSerde @@ -50,7 +50,7 @@ type ListDataViewsOutput struct { // A list of Dataviews. DataViews []types.DataViewSummary - // A token indicating where a results page should begin. + // A token that indicates where a results page should begin. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/finspacedata/api_op_ListDatasets.go b/service/finspacedata/api_op_ListDatasets.go index b15b5156d8e..0d5db1ea5d0 100644 --- a/service/finspacedata/api_op_ListDatasets.go +++ b/service/finspacedata/api_op_ListDatasets.go @@ -34,7 +34,7 @@ type ListDatasetsInput struct { // The maximum number of results per page. MaxResults int32 - // A token indicating where a results page should begin. + // A token that indicates where a results page should begin. NextToken *string noSmithyDocumentSerde @@ -46,7 +46,7 @@ type ListDatasetsOutput struct { // List of Datasets. Datasets []types.Dataset - // A token indicating where a results page should begin. + // A token that indicates where a results page should begin. NextToken *string // Metadata pertaining to the operation's result. diff --git a/service/finspacedata/api_op_ListPermissionGroups.go b/service/finspacedata/api_op_ListPermissionGroups.go new file mode 100644 index 00000000000..56a933cc16a --- /dev/null +++ b/service/finspacedata/api_op_ListPermissionGroups.go @@ -0,0 +1,218 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all available permission groups in FinSpace. +func (c *Client) ListPermissionGroups(ctx context.Context, params *ListPermissionGroupsInput, optFns ...func(*Options)) (*ListPermissionGroupsOutput, error) { + if params == nil { + params = &ListPermissionGroupsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListPermissionGroups", params, optFns, c.addOperationListPermissionGroupsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListPermissionGroupsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListPermissionGroupsInput struct { + + // The maximum number of results per page. + // + // This member is required. + MaxResults int32 + + // A token that indicates where a results page should begin. + NextToken *string + + noSmithyDocumentSerde +} + +type ListPermissionGroupsOutput struct { + + // A token that indicates where a results page should begin. + NextToken *string + + // A list of all the permission groups. + PermissionGroups []types.PermissionGroup + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListPermissionGroupsMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListPermissionGroups{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListPermissionGroups{}, 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 = addRestJsonContentTypeCustomization(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 = addOpListPermissionGroupsValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListPermissionGroups(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 +} + +// ListPermissionGroupsAPIClient is a client that implements the +// ListPermissionGroups operation. +type ListPermissionGroupsAPIClient interface { + ListPermissionGroups(context.Context, *ListPermissionGroupsInput, ...func(*Options)) (*ListPermissionGroupsOutput, error) +} + +var _ ListPermissionGroupsAPIClient = (*Client)(nil) + +// ListPermissionGroupsPaginatorOptions is the paginator options for +// ListPermissionGroups +type ListPermissionGroupsPaginatorOptions struct { + // The maximum number of results per page. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListPermissionGroupsPaginator is a paginator for ListPermissionGroups +type ListPermissionGroupsPaginator struct { + options ListPermissionGroupsPaginatorOptions + client ListPermissionGroupsAPIClient + params *ListPermissionGroupsInput + nextToken *string + firstPage bool +} + +// NewListPermissionGroupsPaginator returns a new ListPermissionGroupsPaginator +func NewListPermissionGroupsPaginator(client ListPermissionGroupsAPIClient, params *ListPermissionGroupsInput, optFns ...func(*ListPermissionGroupsPaginatorOptions)) *ListPermissionGroupsPaginator { + if params == nil { + params = &ListPermissionGroupsInput{} + } + + options := ListPermissionGroupsPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListPermissionGroupsPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListPermissionGroupsPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListPermissionGroups page. +func (p *ListPermissionGroupsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListPermissionGroupsOutput, 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.ListPermissionGroups(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_opListPermissionGroups(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "ListPermissionGroups", + } +} diff --git a/service/finspacedata/api_op_ListUsers.go b/service/finspacedata/api_op_ListUsers.go new file mode 100644 index 00000000000..09591edea07 --- /dev/null +++ b/service/finspacedata/api_op_ListUsers.go @@ -0,0 +1,216 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Lists all available user accounts in FinSpace. +func (c *Client) ListUsers(ctx context.Context, params *ListUsersInput, optFns ...func(*Options)) (*ListUsersOutput, error) { + if params == nil { + params = &ListUsersInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListUsers", params, optFns, c.addOperationListUsersMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListUsersOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListUsersInput struct { + + // The maximum number of results per page. + // + // This member is required. + MaxResults int32 + + // A token that indicates where a results page should begin. + NextToken *string + + noSmithyDocumentSerde +} + +type ListUsersOutput struct { + + // A token that indicates where a results page should begin. + NextToken *string + + // A list of all the user accounts. + Users []types.User + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListUsersMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpListUsers{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpListUsers{}, 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 = addRestJsonContentTypeCustomization(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 = addOpListUsersValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListUsers(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 +} + +// ListUsersAPIClient is a client that implements the ListUsers operation. +type ListUsersAPIClient interface { + ListUsers(context.Context, *ListUsersInput, ...func(*Options)) (*ListUsersOutput, error) +} + +var _ ListUsersAPIClient = (*Client)(nil) + +// ListUsersPaginatorOptions is the paginator options for ListUsers +type ListUsersPaginatorOptions struct { + // The maximum number of results per page. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// ListUsersPaginator is a paginator for ListUsers +type ListUsersPaginator struct { + options ListUsersPaginatorOptions + client ListUsersAPIClient + params *ListUsersInput + nextToken *string + firstPage bool +} + +// NewListUsersPaginator returns a new ListUsersPaginator +func NewListUsersPaginator(client ListUsersAPIClient, params *ListUsersInput, optFns ...func(*ListUsersPaginatorOptions)) *ListUsersPaginator { + if params == nil { + params = &ListUsersInput{} + } + + options := ListUsersPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListUsersPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListUsersPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListUsers page. +func (p *ListUsersPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListUsersOutput, 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.ListUsers(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_opListUsers(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "ListUsers", + } +} diff --git a/service/finspacedata/api_op_ResetUserPassword.go b/service/finspacedata/api_op_ResetUserPassword.go new file mode 100644 index 00000000000..fdbef0b6af1 --- /dev/null +++ b/service/finspacedata/api_op_ResetUserPassword.go @@ -0,0 +1,169 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Resets the password for a specified user ID and generates a temporary one. Only +// a superuser can reset password for other users. Resetting the password +// immediately invalidates the previous password associated with the user. +func (c *Client) ResetUserPassword(ctx context.Context, params *ResetUserPasswordInput, optFns ...func(*Options)) (*ResetUserPasswordOutput, error) { + if params == nil { + params = &ResetUserPasswordInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ResetUserPassword", params, optFns, c.addOperationResetUserPasswordMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ResetUserPasswordOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ResetUserPasswordInput struct { + + // The unique identifier of the user that a temporary password is requested for. + // + // This member is required. + UserId *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + noSmithyDocumentSerde +} + +type ResetUserPasswordOutput struct { + + // A randomly generated temporary password for the requested user account. This + // password expires in 7 days. + TemporaryPassword *string + + // The unique identifier of the user that a new password is generated for. + UserId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationResetUserPasswordMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpResetUserPassword{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpResetUserPassword{}, 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 = addRestJsonContentTypeCustomization(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_opResetUserPasswordMiddleware(stack, options); err != nil { + return err + } + if err = addOpResetUserPasswordValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opResetUserPassword(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_initializeOpResetUserPassword struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpResetUserPassword) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpResetUserPassword) 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.(*ResetUserPasswordInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *ResetUserPasswordInput ") + } + + 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_opResetUserPasswordMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpResetUserPassword{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opResetUserPassword(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "ResetUserPassword", + } +} diff --git a/service/finspacedata/api_op_UpdateChangeset.go b/service/finspacedata/api_op_UpdateChangeset.go index bf731b359f3..557cc935bf9 100644 --- a/service/finspacedata/api_op_UpdateChangeset.go +++ b/service/finspacedata/api_op_UpdateChangeset.go @@ -46,15 +46,15 @@ type UpdateChangesetInput struct { // (separator) and the type of compression (compression). formatType is a required // attribute and can have the following values: // - // * PARQUET - Parquet source file + // * PARQUET – Parquet source file // format. // - // * CSV - CSV source file format. + // * CSV – CSV source file format. // - // * JSON - JSON source file format. + // * JSON – JSON source file format. // // * - // XML - XML source file format. + // XML – XML source file format. // // Here is an example of how you could specify the // formatParams: "formatParams": { "formatType": "CSV", "withHeader": "true", diff --git a/service/finspacedata/api_op_UpdateDataset.go b/service/finspacedata/api_op_UpdateDataset.go index cf5e663a692..d5b136bc2e2 100644 --- a/service/finspacedata/api_op_UpdateDataset.go +++ b/service/finspacedata/api_op_UpdateDataset.go @@ -43,10 +43,10 @@ type UpdateDatasetInput struct { // The format in which the Dataset data is structured. // - // * TABULAR - Data is + // * TABULAR – Data is // structured in a tabular format. // - // * NON_TABULAR - Data is structured in a + // * NON_TABULAR – Data is structured in a // non-tabular format. // // This member is required. diff --git a/service/finspacedata/api_op_UpdatePermissionGroup.go b/service/finspacedata/api_op_UpdatePermissionGroup.go new file mode 100644 index 00000000000..806c37c0df1 --- /dev/null +++ b/service/finspacedata/api_op_UpdatePermissionGroup.go @@ -0,0 +1,195 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Modifies the details of a permission group. You cannot modify a +// permissionGroupID. +func (c *Client) UpdatePermissionGroup(ctx context.Context, params *UpdatePermissionGroupInput, optFns ...func(*Options)) (*UpdatePermissionGroupOutput, error) { + if params == nil { + params = &UpdatePermissionGroupInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdatePermissionGroup", params, optFns, c.addOperationUpdatePermissionGroupMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdatePermissionGroupOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdatePermissionGroupInput struct { + + // The unique identifier for the permission group to update. + // + // This member is required. + PermissionGroupId *string + + // The permissions that are granted to a specific group for accessing the FinSpace + // application. + // + // * CreateDataset – Group members can create new datasets. + // + // * + // ManageClusters – Group members can manage Apache Spark clusters from FinSpace + // notebooks. + // + // * ManageUsersAndGroups – Group members can manage users and + // permission groups. + // + // * ManageAttributeSets – Group members can manage attribute + // sets. + // + // * ViewAuditData – Group members can view audit data. + // + // * AccessNotebooks – + // Group members will have access to FinSpace notebooks. + // + // * GetTemporaryCredentials + // – Group members can get temporary API credentials. + ApplicationPermissions []types.ApplicationPermission + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + // A brief description for the permission group. + Description *string + + // The name of the permission group. + Name *string + + noSmithyDocumentSerde +} + +type UpdatePermissionGroupOutput struct { + + // The unique identifier for the updated permission group. + PermissionGroupId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdatePermissionGroupMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdatePermissionGroup{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdatePermissionGroup{}, 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 = addRestJsonContentTypeCustomization(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_opUpdatePermissionGroupMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdatePermissionGroupValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdatePermissionGroup(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_initializeOpUpdatePermissionGroup struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpUpdatePermissionGroup) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpUpdatePermissionGroup) 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.(*UpdatePermissionGroupInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *UpdatePermissionGroupInput ") + } + + 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_opUpdatePermissionGroupMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpUpdatePermissionGroup{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opUpdatePermissionGroup(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "UpdatePermissionGroup", + } +} diff --git a/service/finspacedata/api_op_UpdateUser.go b/service/finspacedata/api_op_UpdateUser.go new file mode 100644 index 00000000000..3a6c4a5cd94 --- /dev/null +++ b/service/finspacedata/api_op_UpdateUser.go @@ -0,0 +1,197 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package finspacedata + +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/finspacedata/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Modifies the details of the specified user account. You cannot update the userId +// for a user. +func (c *Client) UpdateUser(ctx context.Context, params *UpdateUserInput, optFns ...func(*Options)) (*UpdateUserOutput, error) { + if params == nil { + params = &UpdateUserInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateUser", params, optFns, c.addOperationUpdateUserMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateUserOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateUserInput struct { + + // The unique identifier for the user account to update. + // + // This member is required. + UserId *string + + // The option to indicate whether the user can use the + // GetProgrammaticAccessCredentials API to obtain credentials that can then be used + // to access other FinSpace Data API operations. + // + // * ENABLED – The user has + // permissions to use the APIs. + // + // * DISABLED – The user does not have permissions to + // use any APIs. + ApiAccess types.ApiAccess + + // The ARN identifier of an AWS user or role that is allowed to call the + // GetProgrammaticAccessCredentials API to obtain a credentials token for a + // specific FinSpace user. This must be an IAM role within your FinSpace account. + ApiAccessPrincipalArn *string + + // A token that ensures idempotency. This token expires in 10 minutes. + ClientToken *string + + // The first name of the user. + FirstName *string + + // The last name of the user. + LastName *string + + // The option to indicate the type of user. + // + // * SUPER_USER– A user with permission + // to all the functionality and data in FinSpace. + // + // * APP_USER – A user with + // specific permissions in FinSpace. The users are assigned permissions by adding + // them to a permissions group. + Type types.UserType + + noSmithyDocumentSerde +} + +type UpdateUserOutput struct { + + // The unique identifier of the updated user account. + UserId *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateUserMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateUser{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateUser{}, 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 = addRestJsonContentTypeCustomization(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_opUpdateUserMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdateUserValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateUser(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_initializeOpUpdateUser struct { + tokenProvider IdempotencyTokenProvider +} + +func (*idempotencyToken_initializeOpUpdateUser) ID() string { + return "OperationIdempotencyTokenAutoFill" +} + +func (m *idempotencyToken_initializeOpUpdateUser) 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.(*UpdateUserInput) + if !ok { + return out, metadata, fmt.Errorf("expected middleware input to be of type *UpdateUserInput ") + } + + 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_opUpdateUserMiddleware(stack *middleware.Stack, cfg Options) error { + return stack.Initialize.Add(&idempotencyToken_initializeOpUpdateUser{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) +} + +func newServiceMetadataMiddleware_opUpdateUser(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "finspace-api", + OperationName: "UpdateUser", + } +} diff --git a/service/finspacedata/deserializers.go b/service/finspacedata/deserializers.go index 41423432502..c4ea28117df 100644 --- a/service/finspacedata/deserializers.go +++ b/service/finspacedata/deserializers.go @@ -540,14 +540,14 @@ func awsRestjson1_deserializeOpDocumentCreateDataViewOutput(v **CreateDataViewOu return nil } -type awsRestjson1_deserializeOpDeleteDataset struct { +type awsRestjson1_deserializeOpCreatePermissionGroup struct { } -func (*awsRestjson1_deserializeOpDeleteDataset) ID() string { +func (*awsRestjson1_deserializeOpCreatePermissionGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpDeleteDataset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreatePermissionGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -561,9 +561,9 @@ func (m *awsRestjson1_deserializeOpDeleteDataset) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataset(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreatePermissionGroup(response, &metadata) } - output := &DeleteDatasetOutput{} + output := &CreatePermissionGroupOutput{} out.Result = output var buff [1024]byte @@ -584,7 +584,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataset) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentDeleteDatasetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreatePermissionGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -597,7 +597,7 @@ func (m *awsRestjson1_deserializeOpDeleteDataset) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorDeleteDataset(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreatePermissionGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -650,9 +650,6 @@ func awsRestjson1_deserializeOpErrorDeleteDataset(response *smithyhttp.Response, case strings.EqualFold("LimitExceededException", errorCode): return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) - case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -669,7 +666,7 @@ func awsRestjson1_deserializeOpErrorDeleteDataset(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentDeleteDatasetOutput(v **DeleteDatasetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreatePermissionGroupOutput(v **CreatePermissionGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -682,22 +679,22 @@ func awsRestjson1_deserializeOpDocumentDeleteDatasetOutput(v **DeleteDatasetOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *DeleteDatasetOutput + var sv *CreatePermissionGroupOutput if *v == nil { - sv = &DeleteDatasetOutput{} + sv = &CreatePermissionGroupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "datasetId": + case "permissionGroupId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) + return fmt.Errorf("expected PermissionGroupId to be of type string, got %T instead", value) } - sv.DatasetId = ptr.String(jtv) + sv.PermissionGroupId = ptr.String(jtv) } default: @@ -709,14 +706,14 @@ func awsRestjson1_deserializeOpDocumentDeleteDatasetOutput(v **DeleteDatasetOutp return nil } -type awsRestjson1_deserializeOpGetChangeset struct { +type awsRestjson1_deserializeOpCreateUser struct { } -func (*awsRestjson1_deserializeOpGetChangeset) ID() string { +func (*awsRestjson1_deserializeOpCreateUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetChangeset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpCreateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -730,9 +727,9 @@ func (m *awsRestjson1_deserializeOpGetChangeset) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetChangeset(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorCreateUser(response, &metadata) } - output := &GetChangesetOutput{} + output := &CreateUserOutput{} out.Result = output var buff [1024]byte @@ -753,7 +750,7 @@ func (m *awsRestjson1_deserializeOpGetChangeset) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetChangesetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentCreateUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -766,7 +763,7 @@ func (m *awsRestjson1_deserializeOpGetChangeset) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetChangeset(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorCreateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -816,8 +813,8 @@ func awsRestjson1_deserializeOpErrorGetChangeset(response *smithyhttp.Response, case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) - case strings.EqualFold("ResourceNotFoundException", errorCode): - return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -835,7 +832,7 @@ func awsRestjson1_deserializeOpErrorGetChangeset(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentGetChangesetOutput(v **GetChangesetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentCreateUserOutput(v **CreateUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -848,130 +845,22 @@ func awsRestjson1_deserializeOpDocumentGetChangesetOutput(v **GetChangesetOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetChangesetOutput + var sv *CreateUserOutput if *v == nil { - sv = &GetChangesetOutput{} + sv = &CreateUserOutput{} } else { sv = *v } 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) - 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.ActiveUntilTimestamp = i64 - } - - case "changesetArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ChangesetArn to be of type string, got %T instead", value) - } - sv.ChangesetArn = ptr.String(jtv) - } - - case "changesetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) - } - sv.ChangesetId = ptr.String(jtv) - } - - case "changeType": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ChangeType to be of type string, got %T instead", value) - } - sv.ChangeType = types.ChangeType(jtv) - } - - case "createTime": - 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.CreateTime = i64 - } - - case "datasetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) - } - sv.DatasetId = ptr.String(jtv) - } - - case "errorInfo": - if err := awsRestjson1_deserializeDocumentChangesetErrorInfo(&sv.ErrorInfo, value); err != nil { - return err - } - - case "formatParams": - if err := awsRestjson1_deserializeDocumentFormatParams(&sv.FormatParams, value); err != nil { - return err - } - - case "sourceParams": - if err := awsRestjson1_deserializeDocumentSourceParams(&sv.SourceParams, value); err != nil { - return err - } - - case "status": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected IngestionStatus to be of type string, got %T instead", value) - } - sv.Status = types.IngestionStatus(jtv) - } - - case "updatedByChangesetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) - } - sv.UpdatedByChangesetId = ptr.String(jtv) - } - - case "updatesChangesetId": + case "userId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) } - sv.UpdatesChangesetId = ptr.String(jtv) + sv.UserId = ptr.String(jtv) } default: @@ -983,14 +872,14 @@ func awsRestjson1_deserializeOpDocumentGetChangesetOutput(v **GetChangesetOutput return nil } -type awsRestjson1_deserializeOpGetDataset struct { +type awsRestjson1_deserializeOpDeleteDataset struct { } -func (*awsRestjson1_deserializeOpGetDataset) ID() string { +func (*awsRestjson1_deserializeOpDeleteDataset) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetDataset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeleteDataset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1004,9 +893,9 @@ func (m *awsRestjson1_deserializeOpGetDataset) HandleDeserialize(ctx context.Con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetDataset(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeleteDataset(response, &metadata) } - output := &GetDatasetOutput{} + output := &DeleteDatasetOutput{} out.Result = output var buff [1024]byte @@ -1027,7 +916,7 @@ func (m *awsRestjson1_deserializeOpGetDataset) HandleDeserialize(ctx context.Con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetDatasetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeleteDatasetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1040,7 +929,7 @@ func (m *awsRestjson1_deserializeOpGetDataset) HandleDeserialize(ctx context.Con return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetDataset(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeleteDataset(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1090,6 +979,9 @@ func awsRestjson1_deserializeOpErrorGetDataset(response *smithyhttp.Response, me case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -1109,7 +1001,7 @@ func awsRestjson1_deserializeOpErrorGetDataset(response *smithyhttp.Response, me } } -func awsRestjson1_deserializeOpDocumentGetDatasetOutput(v **GetDatasetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeleteDatasetOutput(v **DeleteDatasetOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1122,55 +1014,15 @@ func awsRestjson1_deserializeOpDocumentGetDatasetOutput(v **GetDatasetOutput, va return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetDatasetOutput + var sv *DeleteDatasetOutput if *v == nil { - sv = &GetDatasetOutput{} + sv = &DeleteDatasetOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "alias": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected AliasString to be of type string, got %T instead", value) - } - sv.Alias = ptr.String(jtv) - } - - case "createTime": - 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.CreateTime = i64 - } - - case "datasetArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetArn to be of type string, got %T instead", value) - } - sv.DatasetArn = ptr.String(jtv) - } - - case "datasetDescription": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetDescription to be of type string, got %T instead", value) - } - sv.DatasetDescription = ptr.String(jtv) - } - case "datasetId": if value != nil { jtv, ok := value.(string) @@ -1180,51 +1032,6 @@ func awsRestjson1_deserializeOpDocumentGetDatasetOutput(v **GetDatasetOutput, va sv.DatasetId = ptr.String(jtv) } - case "datasetTitle": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetTitle to be of type string, got %T instead", value) - } - sv.DatasetTitle = ptr.String(jtv) - } - - case "kind": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetKind to be of type string, got %T instead", value) - } - sv.Kind = types.DatasetKind(jtv) - } - - case "lastModifiedTime": - 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.LastModifiedTime = i64 - } - - case "schemaDefinition": - if err := awsRestjson1_deserializeDocumentSchemaUnion(&sv.SchemaDefinition, 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) - } - sv.Status = types.DatasetStatus(jtv) - } - default: _, _ = key, value @@ -1234,14 +1041,14 @@ func awsRestjson1_deserializeOpDocumentGetDatasetOutput(v **GetDatasetOutput, va return nil } -type awsRestjson1_deserializeOpGetDataView struct { +type awsRestjson1_deserializeOpDeletePermissionGroup struct { } -func (*awsRestjson1_deserializeOpGetDataView) ID() string { +func (*awsRestjson1_deserializeOpDeletePermissionGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetDataView) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDeletePermissionGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1255,9 +1062,9 @@ func (m *awsRestjson1_deserializeOpGetDataView) HandleDeserialize(ctx context.Co } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetDataView(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDeletePermissionGroup(response, &metadata) } - output := &GetDataViewOutput{} + output := &DeletePermissionGroupOutput{} out.Result = output var buff [1024]byte @@ -1278,7 +1085,7 @@ func (m *awsRestjson1_deserializeOpGetDataView) HandleDeserialize(ctx context.Co return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetDataViewOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDeletePermissionGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1291,7 +1098,7 @@ func (m *awsRestjson1_deserializeOpGetDataView) HandleDeserialize(ctx context.Co return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetDataView(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDeletePermissionGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1332,12 +1139,18 @@ func awsRestjson1_deserializeOpErrorGetDataView(response *smithyhttp.Response, m } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) @@ -1357,7 +1170,7 @@ func awsRestjson1_deserializeOpErrorGetDataView(response *smithyhttp.Response, m } } -func awsRestjson1_deserializeOpDocumentGetDataViewOutput(v **GetDataViewOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDeletePermissionGroupOutput(v **DeletePermissionGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1370,117 +1183,22 @@ func awsRestjson1_deserializeOpDocumentGetDataViewOutput(v **GetDataViewOutput, return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetDataViewOutput + var sv *DeletePermissionGroupOutput if *v == nil { - sv = &GetDataViewOutput{} + sv = &DeletePermissionGroupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "asOfTimestamp": - 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.AsOfTimestamp = i64 - } - - case "autoUpdate": - if value != nil { - jtv, ok := value.(bool) - if !ok { - return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) - } - sv.AutoUpdate = jtv - } - - case "createTime": - 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.CreateTime = i64 - } - - case "datasetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) - } - sv.DatasetId = ptr.String(jtv) - } - - case "dataViewArn": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataViewArn to be of type string, got %T instead", value) - } - sv.DataViewArn = ptr.String(jtv) - } - - case "dataViewId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected DataViewId to be of type string, got %T instead", value) - } - sv.DataViewId = ptr.String(jtv) - } - - case "destinationTypeParams": - if err := awsRestjson1_deserializeDocumentDataViewDestinationTypeParams(&sv.DestinationTypeParams, value); err != nil { - return err - } - - case "errorInfo": - if err := awsRestjson1_deserializeDocumentDataViewErrorInfo(&sv.ErrorInfo, value); err != nil { - return err - } - - case "lastModifiedTime": - 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.LastModifiedTime = i64 - } - - case "partitionColumns": - if err := awsRestjson1_deserializeDocumentPartitionColumnList(&sv.PartitionColumns, value); err != nil { - return err - } - - case "sortColumns": - if err := awsRestjson1_deserializeDocumentSortColumnList(&sv.SortColumns, value); err != nil { - return err - } - - case "status": + case "permissionGroupId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DataViewStatus to be of type string, got %T instead", value) + return fmt.Errorf("expected PermissionGroupId to be of type string, got %T instead", value) } - sv.Status = types.DataViewStatus(jtv) + sv.PermissionGroupId = ptr.String(jtv) } default: @@ -1492,14 +1210,14 @@ func awsRestjson1_deserializeOpDocumentGetDataViewOutput(v **GetDataViewOutput, return nil } -type awsRestjson1_deserializeOpGetProgrammaticAccessCredentials struct { +type awsRestjson1_deserializeOpDisableUser struct { } -func (*awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) ID() string { +func (*awsRestjson1_deserializeOpDisableUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpDisableUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1513,9 +1231,9 @@ func (m *awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) HandleDeser } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetProgrammaticAccessCredentials(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorDisableUser(response, &metadata) } - output := &GetProgrammaticAccessCredentialsOutput{} + output := &DisableUserOutput{} out.Result = output var buff [1024]byte @@ -1536,7 +1254,7 @@ func (m *awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) HandleDeser return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetProgrammaticAccessCredentialsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentDisableUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1549,7 +1267,7 @@ func (m *awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) HandleDeser return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetProgrammaticAccessCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorDisableUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1593,9 +1311,15 @@ func awsRestjson1_deserializeOpErrorGetProgrammaticAccessCredentials(response *s case strings.EqualFold("AccessDeniedException", errorCode): return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + case strings.EqualFold("InternalServerException", errorCode): return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -1612,7 +1336,7 @@ func awsRestjson1_deserializeOpErrorGetProgrammaticAccessCredentials(response *s } } -func awsRestjson1_deserializeOpDocumentGetProgrammaticAccessCredentialsOutput(v **GetProgrammaticAccessCredentialsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentDisableUserOutput(v **DisableUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1625,31 +1349,22 @@ func awsRestjson1_deserializeOpDocumentGetProgrammaticAccessCredentialsOutput(v return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetProgrammaticAccessCredentialsOutput + var sv *DisableUserOutput if *v == nil { - sv = &GetProgrammaticAccessCredentialsOutput{} + sv = &DisableUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "credentials": - if err := awsRestjson1_deserializeDocumentCredentials(&sv.Credentials, value); err != nil { - return err - } - - case "durationInMinutes": + case "userId": if value != nil { - jtv, ok := value.(json.Number) + jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected SessionDuration to be json.Number, got %T instead", value) - } - i64, err := jtv.Int64() - if err != nil { - return err + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) } - sv.DurationInMinutes = i64 + sv.UserId = ptr.String(jtv) } default: @@ -1661,14 +1376,14 @@ func awsRestjson1_deserializeOpDocumentGetProgrammaticAccessCredentialsOutput(v return nil } -type awsRestjson1_deserializeOpGetWorkingLocation struct { +type awsRestjson1_deserializeOpEnableUser struct { } -func (*awsRestjson1_deserializeOpGetWorkingLocation) ID() string { +func (*awsRestjson1_deserializeOpEnableUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpGetWorkingLocation) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpEnableUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1682,9 +1397,9 @@ func (m *awsRestjson1_deserializeOpGetWorkingLocation) HandleDeserialize(ctx con } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorGetWorkingLocation(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorEnableUser(response, &metadata) } - output := &GetWorkingLocationOutput{} + output := &EnableUserOutput{} out.Result = output var buff [1024]byte @@ -1705,7 +1420,7 @@ func (m *awsRestjson1_deserializeOpGetWorkingLocation) HandleDeserialize(ctx con return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentGetWorkingLocationOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentEnableUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1718,7 +1433,7 @@ func (m *awsRestjson1_deserializeOpGetWorkingLocation) HandleDeserialize(ctx con return out, metadata, err } -func awsRestjson1_deserializeOpErrorGetWorkingLocation(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorEnableUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1762,9 +1477,18 @@ func awsRestjson1_deserializeOpErrorGetWorkingLocation(response *smithyhttp.Resp 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("LimitExceededException", errorCode): + return awsRestjson1_deserializeErrorLimitExceededException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + case strings.EqualFold("ThrottlingException", errorCode): return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) @@ -1781,7 +1505,7 @@ func awsRestjson1_deserializeOpErrorGetWorkingLocation(response *smithyhttp.Resp } } -func awsRestjson1_deserializeOpDocumentGetWorkingLocationOutput(v **GetWorkingLocationOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentEnableUserOutput(v **EnableUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1794,40 +1518,22 @@ func awsRestjson1_deserializeOpDocumentGetWorkingLocationOutput(v **GetWorkingLo return fmt.Errorf("unexpected JSON type %v", value) } - var sv *GetWorkingLocationOutput + var sv *EnableUserOutput if *v == nil { - sv = &GetWorkingLocationOutput{} + sv = &EnableUserOutput{} } 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 stringValueLength1to63 to be of type string, got %T instead", value) - } - sv.S3Bucket = ptr.String(jtv) - } - - case "s3Path": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected stringValueLength1to1024 to be of type string, got %T instead", value) - } - sv.S3Path = ptr.String(jtv) - } - - case "s3Uri": + case "userId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected stringValueLength1to1024 to be of type string, got %T instead", value) + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) } - sv.S3Uri = ptr.String(jtv) + sv.UserId = ptr.String(jtv) } default: @@ -1839,14 +1545,14 @@ func awsRestjson1_deserializeOpDocumentGetWorkingLocationOutput(v **GetWorkingLo return nil } -type awsRestjson1_deserializeOpListChangesets struct { +type awsRestjson1_deserializeOpGetChangeset struct { } -func (*awsRestjson1_deserializeOpListChangesets) ID() string { +func (*awsRestjson1_deserializeOpGetChangeset) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListChangesets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpGetChangeset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -1860,9 +1566,9 @@ func (m *awsRestjson1_deserializeOpListChangesets) HandleDeserialize(ctx context } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListChangesets(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorGetChangeset(response, &metadata) } - output := &ListChangesetsOutput{} + output := &GetChangesetOutput{} out.Result = output var buff [1024]byte @@ -1883,7 +1589,7 @@ func (m *awsRestjson1_deserializeOpListChangesets) HandleDeserialize(ctx context return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListChangesetsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentGetChangesetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -1896,7 +1602,7 @@ func (m *awsRestjson1_deserializeOpListChangesets) HandleDeserialize(ctx context return out, metadata, err } -func awsRestjson1_deserializeOpErrorListChangesets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorGetChangeset(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -1965,7 +1671,7 @@ func awsRestjson1_deserializeOpErrorListChangesets(response *smithyhttp.Response } } -func awsRestjson1_deserializeOpDocumentListChangesetsOutput(v **ListChangesetsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentGetChangesetOutput(v **GetChangesetOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -1978,46 +1684,2308 @@ func awsRestjson1_deserializeOpDocumentListChangesetsOutput(v **ListChangesetsOu return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListChangesetsOutput + var sv *GetChangesetOutput if *v == nil { - sv = &ListChangesetsOutput{} + sv = &GetChangesetOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "changesets": - if err := awsRestjson1_deserializeDocumentChangesetList(&sv.Changesets, value); err != nil { - return err + 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 "nextToken": + case "activeUntilTimestamp": if value != nil { - jtv, ok := value.(string) + jtv, ok := value.(json.Number) if !ok { - return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + return fmt.Errorf("expected TimestampEpoch to be json.Number, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ActiveUntilTimestamp = i64 } - default: - _, _ = key, value + case "changesetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ChangesetArn to be of type string, got %T instead", value) + } + sv.ChangesetArn = ptr.String(jtv) + } - } - } - *v = sv - return nil -} + case "changesetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) + } + sv.ChangesetId = ptr.String(jtv) + } -type awsRestjson1_deserializeOpListDatasets struct { -} + case "changeType": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ChangeType to be of type string, got %T instead", value) + } + sv.ChangeType = types.ChangeType(jtv) + } + + case "createTime": + 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.CreateTime = i64 + } + + case "datasetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) + } + sv.DatasetId = ptr.String(jtv) + } + + case "errorInfo": + if err := awsRestjson1_deserializeDocumentChangesetErrorInfo(&sv.ErrorInfo, value); err != nil { + return err + } + + case "formatParams": + if err := awsRestjson1_deserializeDocumentFormatParams(&sv.FormatParams, value); err != nil { + return err + } + + case "sourceParams": + if err := awsRestjson1_deserializeDocumentSourceParams(&sv.SourceParams, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IngestionStatus to be of type string, got %T instead", value) + } + sv.Status = types.IngestionStatus(jtv) + } + + case "updatedByChangesetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) + } + sv.UpdatedByChangesetId = ptr.String(jtv) + } + + case "updatesChangesetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) + } + sv.UpdatesChangesetId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetDataset struct { +} + +func (*awsRestjson1_deserializeOpGetDataset) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetDataset) HandleDeserialize(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_deserializeOpErrorGetDataset(response, &metadata) + } + output := &GetDatasetOutput{} + 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_deserializeOpDocumentGetDatasetOutput(&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_deserializeOpErrorGetDataset(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("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_deserializeOpDocumentGetDatasetOutput(v **GetDatasetOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetDatasetOutput + if *v == nil { + sv = &GetDatasetOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "alias": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AliasString to be of type string, got %T instead", value) + } + sv.Alias = ptr.String(jtv) + } + + case "createTime": + 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.CreateTime = i64 + } + + case "datasetArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetArn to be of type string, got %T instead", value) + } + sv.DatasetArn = ptr.String(jtv) + } + + case "datasetDescription": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetDescription to be of type string, got %T instead", value) + } + sv.DatasetDescription = ptr.String(jtv) + } + + case "datasetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) + } + sv.DatasetId = ptr.String(jtv) + } + + case "datasetTitle": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetTitle to be of type string, got %T instead", value) + } + sv.DatasetTitle = ptr.String(jtv) + } + + case "kind": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetKind to be of type string, got %T instead", value) + } + sv.Kind = types.DatasetKind(jtv) + } + + case "lastModifiedTime": + 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.LastModifiedTime = i64 + } + + case "schemaDefinition": + if err := awsRestjson1_deserializeDocumentSchemaUnion(&sv.SchemaDefinition, 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) + } + sv.Status = types.DatasetStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetDataView struct { +} + +func (*awsRestjson1_deserializeOpGetDataView) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetDataView) HandleDeserialize(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_deserializeOpErrorGetDataView(response, &metadata) + } + output := &GetDataViewOutput{} + 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_deserializeOpDocumentGetDataViewOutput(&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_deserializeOpErrorGetDataView(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetDataViewOutput(v **GetDataViewOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetDataViewOutput + if *v == nil { + sv = &GetDataViewOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "asOfTimestamp": + 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.AsOfTimestamp = i64 + } + + case "autoUpdate": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.AutoUpdate = jtv + } + + case "createTime": + 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.CreateTime = i64 + } + + case "datasetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) + } + sv.DatasetId = ptr.String(jtv) + } + + case "dataViewArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataViewArn to be of type string, got %T instead", value) + } + sv.DataViewArn = ptr.String(jtv) + } + + case "dataViewId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataViewId to be of type string, got %T instead", value) + } + sv.DataViewId = ptr.String(jtv) + } + + case "destinationTypeParams": + if err := awsRestjson1_deserializeDocumentDataViewDestinationTypeParams(&sv.DestinationTypeParams, value); err != nil { + return err + } + + case "errorInfo": + if err := awsRestjson1_deserializeDocumentDataViewErrorInfo(&sv.ErrorInfo, value); err != nil { + return err + } + + case "lastModifiedTime": + 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.LastModifiedTime = i64 + } + + case "partitionColumns": + if err := awsRestjson1_deserializeDocumentPartitionColumnList(&sv.PartitionColumns, value); err != nil { + return err + } + + case "sortColumns": + if err := awsRestjson1_deserializeDocumentSortColumnList(&sv.SortColumns, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DataViewStatus to be of type string, got %T instead", value) + } + sv.Status = types.DataViewStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetProgrammaticAccessCredentials struct { +} + +func (*awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetProgrammaticAccessCredentials) HandleDeserialize(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_deserializeOpErrorGetProgrammaticAccessCredentials(response, &metadata) + } + output := &GetProgrammaticAccessCredentialsOutput{} + 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_deserializeOpDocumentGetProgrammaticAccessCredentialsOutput(&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_deserializeOpErrorGetProgrammaticAccessCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetProgrammaticAccessCredentialsOutput(v **GetProgrammaticAccessCredentialsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetProgrammaticAccessCredentialsOutput + if *v == nil { + sv = &GetProgrammaticAccessCredentialsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "credentials": + if err := awsRestjson1_deserializeDocumentCredentials(&sv.Credentials, value); err != nil { + return err + } + + case "durationInMinutes": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected SessionDuration to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DurationInMinutes = i64 + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetUser struct { +} + +func (*awsRestjson1_deserializeOpGetUser) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetUser) HandleDeserialize(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_deserializeOpErrorGetUser(response, &metadata) + } + output := &GetUserOutput{} + 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_deserializeOpDocumentGetUserOutput(&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_deserializeOpErrorGetUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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_deserializeOpDocumentGetUserOutput(v **GetUserOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetUserOutput + if *v == nil { + sv = &GetUserOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "apiAccess": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ApiAccess to be of type string, got %T instead", value) + } + sv.ApiAccess = types.ApiAccess(jtv) + } + + case "apiAccessPrincipalArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value) + } + sv.ApiAccessPrincipalArn = ptr.String(jtv) + } + + case "createTime": + 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.CreateTime = i64 + } + + case "emailAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Email to be of type string, got %T instead", value) + } + sv.EmailAddress = ptr.String(jtv) + } + + case "firstName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FirstName to be of type string, got %T instead", value) + } + sv.FirstName = ptr.String(jtv) + } + + case "lastDisabledTime": + 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.LastDisabledTime = i64 + } + + case "lastEnabledTime": + 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.LastEnabledTime = i64 + } + + case "lastLoginTime": + 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.LastLoginTime = i64 + } + + case "lastModifiedTime": + 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.LastModifiedTime = i64 + } + + case "lastName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LastName to be of type string, got %T instead", value) + } + sv.LastName = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserStatus to be of type string, got %T instead", value) + } + sv.Status = types.UserStatus(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserType to be of type string, got %T instead", value) + } + sv.Type = types.UserType(jtv) + } + + case "userId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) + } + sv.UserId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpGetWorkingLocation struct { +} + +func (*awsRestjson1_deserializeOpGetWorkingLocation) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpGetWorkingLocation) HandleDeserialize(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_deserializeOpErrorGetWorkingLocation(response, &metadata) + } + output := &GetWorkingLocationOutput{} + 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_deserializeOpDocumentGetWorkingLocationOutput(&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_deserializeOpErrorGetWorkingLocation(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentGetWorkingLocationOutput(v **GetWorkingLocationOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetWorkingLocationOutput + if *v == nil { + sv = &GetWorkingLocationOutput{} + } 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 stringValueLength1to63 to be of type string, got %T instead", value) + } + sv.S3Bucket = ptr.String(jtv) + } + + case "s3Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected stringValueLength1to1024 to be of type string, got %T instead", value) + } + sv.S3Path = ptr.String(jtv) + } + + case "s3Uri": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected stringValueLength1to1024 to be of type string, got %T instead", value) + } + sv.S3Uri = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListChangesets struct { +} + +func (*awsRestjson1_deserializeOpListChangesets) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListChangesets) HandleDeserialize(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_deserializeOpErrorListChangesets(response, &metadata) + } + output := &ListChangesetsOutput{} + 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_deserializeOpDocumentListChangesetsOutput(&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_deserializeOpErrorListChangesets(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("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_deserializeOpDocumentListChangesetsOutput(v **ListChangesetsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListChangesetsOutput + if *v == nil { + sv = &ListChangesetsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "changesets": + if err := awsRestjson1_deserializeDocumentChangesetList(&sv.Changesets, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListDatasets struct { +} func (*awsRestjson1_deserializeOpListDatasets) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDatasets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpListDatasets) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + 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_deserializeOpErrorListDatasets(response, &metadata) + } + output := &ListDatasetsOutput{} + 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_deserializeOpDocumentListDatasetsOutput(&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_deserializeOpErrorListDatasets(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + 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("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_deserializeOpDocumentListDatasetsOutput(v **ListDatasetsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListDatasetsOutput + if *v == nil { + sv = &ListDatasetsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "datasets": + if err := awsRestjson1_deserializeDocumentDatasetList(&sv.Datasets, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListDataViews struct { +} + +func (*awsRestjson1_deserializeOpListDataViews) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListDataViews) HandleDeserialize(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_deserializeOpErrorListDataViews(response, &metadata) + } + output := &ListDataViewsOutput{} + 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_deserializeOpDocumentListDataViewsOutput(&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_deserializeOpErrorListDataViews(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentListDataViewsOutput(v **ListDataViewsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListDataViewsOutput + if *v == nil { + sv = &ListDataViewsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "dataViews": + if err := awsRestjson1_deserializeDocumentDataViewList(&sv.DataViews, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListPermissionGroups struct { +} + +func (*awsRestjson1_deserializeOpListPermissionGroups) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListPermissionGroups) HandleDeserialize(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_deserializeOpErrorListPermissionGroups(response, &metadata) + } + output := &ListPermissionGroupsOutput{} + 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_deserializeOpDocumentListPermissionGroupsOutput(&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_deserializeOpErrorListPermissionGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("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_deserializeOpDocumentListPermissionGroupsOutput(v **ListPermissionGroupsOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListPermissionGroupsOutput + if *v == nil { + sv = &ListPermissionGroupsOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "permissionGroups": + if err := awsRestjson1_deserializeDocumentPermissionGroupList(&sv.PermissionGroups, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpListUsers struct { +} + +func (*awsRestjson1_deserializeOpListUsers) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + 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_deserializeOpErrorListUsers(response, &metadata) + } + output := &ListUsersOutput{} + 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_deserializeOpDocumentListUsersOutput(&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_deserializeOpErrorListUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + 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("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_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListUsersOutput + if *v == nil { + sv = &ListUsersOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "users": + if err := awsRestjson1_deserializeDocumentUserList(&sv.Users, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpResetUserPassword struct { +} + +func (*awsRestjson1_deserializeOpResetUserPassword) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpResetUserPassword) HandleDeserialize(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_deserializeOpErrorResetUserPassword(response, &metadata) + } + output := &ResetUserPasswordOutput{} + 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_deserializeOpDocumentResetUserPasswordOutput(&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_deserializeOpErrorResetUserPassword(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, message, err := restjson.GetErrorInfo(decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsRestjson1_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsRestjson1_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("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_deserializeOpDocumentResetUserPasswordOutput(v **ResetUserPasswordOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ResetUserPasswordOutput + if *v == nil { + sv = &ResetUserPasswordOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "temporaryPassword": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Password to be of type string, got %T instead", value) + } + sv.TemporaryPassword = ptr.String(jtv) + } + + case "userId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) + } + sv.UserId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +type awsRestjson1_deserializeOpUpdateChangeset struct { +} + +func (*awsRestjson1_deserializeOpUpdateChangeset) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateChangeset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2031,9 +3999,9 @@ func (m *awsRestjson1_deserializeOpListDatasets) HandleDeserialize(ctx context.C } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDatasets(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateChangeset(response, &metadata) } - output := &ListDatasetsOutput{} + output := &UpdateChangesetOutput{} out.Result = output var buff [1024]byte @@ -2054,7 +4022,7 @@ func (m *awsRestjson1_deserializeOpListDatasets) HandleDeserialize(ctx context.C return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDatasetsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateChangesetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2067,7 +4035,7 @@ func (m *awsRestjson1_deserializeOpListDatasets) HandleDeserialize(ctx context.C return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDatasets(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateChangeset(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2108,6 +4076,9 @@ func awsRestjson1_deserializeOpErrorListDatasets(response *smithyhttp.Response, } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -2133,7 +4104,7 @@ func awsRestjson1_deserializeOpErrorListDatasets(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentListDatasetsOutput(v **ListDatasetsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateChangesetOutput(v **UpdateChangesetOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2146,27 +4117,31 @@ func awsRestjson1_deserializeOpDocumentListDatasetsOutput(v **ListDatasetsOutput return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDatasetsOutput + var sv *UpdateChangesetOutput if *v == nil { - sv = &ListDatasetsOutput{} + sv = &UpdateChangesetOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "datasets": - if err := awsRestjson1_deserializeDocumentDatasetList(&sv.Datasets, value); err != nil { - return err + case "changesetId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) + } + sv.ChangesetId = ptr.String(jtv) } - case "nextToken": + case "datasetId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.DatasetId = ptr.String(jtv) } default: @@ -2178,14 +4153,14 @@ func awsRestjson1_deserializeOpDocumentListDatasetsOutput(v **ListDatasetsOutput return nil } -type awsRestjson1_deserializeOpListDataViews struct { +type awsRestjson1_deserializeOpUpdateDataset struct { } -func (*awsRestjson1_deserializeOpListDataViews) ID() string { +func (*awsRestjson1_deserializeOpUpdateDataset) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpListDataViews) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateDataset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2199,9 +4174,9 @@ func (m *awsRestjson1_deserializeOpListDataViews) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorListDataViews(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateDataset(response, &metadata) } - output := &ListDataViewsOutput{} + output := &UpdateDatasetOutput{} out.Result = output var buff [1024]byte @@ -2222,7 +4197,7 @@ func (m *awsRestjson1_deserializeOpListDataViews) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentListDataViewsOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateDatasetOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2235,7 +4210,7 @@ func (m *awsRestjson1_deserializeOpListDataViews) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorListDataViews(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateDataset(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2276,6 +4251,9 @@ func awsRestjson1_deserializeOpErrorListDataViews(response *smithyhttp.Response, } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("ConflictException", errorCode): return awsRestjson1_deserializeErrorConflictException(response, errorBody) @@ -2301,7 +4279,7 @@ func awsRestjson1_deserializeOpErrorListDataViews(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentListDataViewsOutput(v **ListDataViewsOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateDatasetOutput(v **UpdateDatasetOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2314,27 +4292,22 @@ func awsRestjson1_deserializeOpDocumentListDataViewsOutput(v **ListDataViewsOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *ListDataViewsOutput + var sv *UpdateDatasetOutput if *v == nil { - sv = &ListDataViewsOutput{} + sv = &UpdateDatasetOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "dataViews": - if err := awsRestjson1_deserializeDocumentDataViewList(&sv.DataViews, value); err != nil { - return err - } - - case "nextToken": + case "datasetId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected PaginationToken to be of type string, got %T instead", value) + return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) } - sv.NextToken = ptr.String(jtv) + sv.DatasetId = ptr.String(jtv) } default: @@ -2346,14 +4319,14 @@ func awsRestjson1_deserializeOpDocumentListDataViewsOutput(v **ListDataViewsOutp return nil } -type awsRestjson1_deserializeOpUpdateChangeset struct { +type awsRestjson1_deserializeOpUpdatePermissionGroup struct { } -func (*awsRestjson1_deserializeOpUpdateChangeset) ID() string { +func (*awsRestjson1_deserializeOpUpdatePermissionGroup) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateChangeset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdatePermissionGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2367,9 +4340,9 @@ func (m *awsRestjson1_deserializeOpUpdateChangeset) HandleDeserialize(ctx contex } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateChangeset(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdatePermissionGroup(response, &metadata) } - output := &UpdateChangesetOutput{} + output := &UpdatePermissionGroupOutput{} out.Result = output var buff [1024]byte @@ -2390,7 +4363,7 @@ func (m *awsRestjson1_deserializeOpUpdateChangeset) HandleDeserialize(ctx contex return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateChangesetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdatePermissionGroupOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2403,7 +4376,7 @@ func (m *awsRestjson1_deserializeOpUpdateChangeset) HandleDeserialize(ctx contex return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateChangeset(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdatePermissionGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2472,7 +4445,7 @@ func awsRestjson1_deserializeOpErrorUpdateChangeset(response *smithyhttp.Respons } } -func awsRestjson1_deserializeOpDocumentUpdateChangesetOutput(v **UpdateChangesetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdatePermissionGroupOutput(v **UpdatePermissionGroupOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2485,31 +4458,22 @@ func awsRestjson1_deserializeOpDocumentUpdateChangesetOutput(v **UpdateChangeset return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateChangesetOutput + var sv *UpdatePermissionGroupOutput if *v == nil { - sv = &UpdateChangesetOutput{} + sv = &UpdatePermissionGroupOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "changesetId": - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected ChangesetId to be of type string, got %T instead", value) - } - sv.ChangesetId = ptr.String(jtv) - } - - case "datasetId": + case "permissionGroupId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) + return fmt.Errorf("expected PermissionGroupId to be of type string, got %T instead", value) } - sv.DatasetId = ptr.String(jtv) + sv.PermissionGroupId = ptr.String(jtv) } default: @@ -2521,14 +4485,14 @@ func awsRestjson1_deserializeOpDocumentUpdateChangesetOutput(v **UpdateChangeset return nil } -type awsRestjson1_deserializeOpUpdateDataset struct { +type awsRestjson1_deserializeOpUpdateUser struct { } -func (*awsRestjson1_deserializeOpUpdateDataset) ID() string { +func (*awsRestjson1_deserializeOpUpdateUser) ID() string { return "OperationDeserializer" } -func (m *awsRestjson1_deserializeOpUpdateDataset) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( +func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( out middleware.DeserializeOutput, metadata middleware.Metadata, err error, ) { out, metadata, err = next.HandleDeserialize(ctx, in) @@ -2542,9 +4506,9 @@ func (m *awsRestjson1_deserializeOpUpdateDataset) HandleDeserialize(ctx context. } if response.StatusCode < 200 || response.StatusCode >= 300 { - return out, metadata, awsRestjson1_deserializeOpErrorUpdateDataset(response, &metadata) + return out, metadata, awsRestjson1_deserializeOpErrorUpdateUser(response, &metadata) } - output := &UpdateDatasetOutput{} + output := &UpdateUserOutput{} out.Result = output var buff [1024]byte @@ -2565,7 +4529,7 @@ func (m *awsRestjson1_deserializeOpUpdateDataset) HandleDeserialize(ctx context. return out, metadata, err } - err = awsRestjson1_deserializeOpDocumentUpdateDatasetOutput(&output, shape) + err = awsRestjson1_deserializeOpDocumentUpdateUserOutput(&output, shape) if err != nil { var snapshot bytes.Buffer io.Copy(&snapshot, ringBuffer) @@ -2578,7 +4542,7 @@ func (m *awsRestjson1_deserializeOpUpdateDataset) HandleDeserialize(ctx context. return out, metadata, err } -func awsRestjson1_deserializeOpErrorUpdateDataset(response *smithyhttp.Response, metadata *middleware.Metadata) error { +func awsRestjson1_deserializeOpErrorUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error { var errorBuffer bytes.Buffer if _, err := io.Copy(&errorBuffer, response.Body); err != nil { return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} @@ -2647,7 +4611,7 @@ func awsRestjson1_deserializeOpErrorUpdateDataset(response *smithyhttp.Response, } } -func awsRestjson1_deserializeOpDocumentUpdateDatasetOutput(v **UpdateDatasetOutput, value interface{}) error { +func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -2660,22 +4624,22 @@ func awsRestjson1_deserializeOpDocumentUpdateDatasetOutput(v **UpdateDatasetOutp return fmt.Errorf("unexpected JSON type %v", value) } - var sv *UpdateDatasetOutput + var sv *UpdateUserOutput if *v == nil { - sv = &UpdateDatasetOutput{} + sv = &UpdateUserOutput{} } else { sv = *v } for key, value := range shape { switch key { - case "datasetId": + case "userId": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected DatasetId to be of type string, got %T instead", value) + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) } - sv.DatasetId = ptr.String(jtv) + sv.UserId = ptr.String(jtv) } default: @@ -2948,6 +4912,42 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } +func awsRestjson1_deserializeDocumentApplicationPermissionList(v *[]types.ApplicationPermission, 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.ApplicationPermission + if *v == nil { + cv = []types.ApplicationPermission{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ApplicationPermission + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ApplicationPermission to be of type string, got %T instead", value) + } + col = types.ApplicationPermission(jtv) + } + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentChangesetErrorInfo(v **types.ChangesetErrorInfo, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3338,6 +5338,15 @@ func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictExcepti sv.Message = ptr.String(jtv) } + case "reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage2 to be of type string, got %T instead", value) + } + sv.Reason = ptr.String(jtv) + } + default: _, _ = key, value @@ -3962,11 +5971,87 @@ func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalS } } - *v = sv + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentLimitExceededException(v **types.LimitExceededException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.LimitExceededException + if *v == nil { + sv = &types.LimitExceededException{} + } 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 ErrorMessage2 to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPartitionColumnList(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 StringValueLength1to255 to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv return nil } -func awsRestjson1_deserializeDocumentLimitExceededException(v **types.LimitExceededException, value interface{}) error { +func awsRestjson1_deserializeDocumentPermissionGroup(v **types.PermissionGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -3979,22 +6064,71 @@ func awsRestjson1_deserializeDocumentLimitExceededException(v **types.LimitExcee return fmt.Errorf("unexpected JSON type %v", value) } - var sv *types.LimitExceededException + var sv *types.PermissionGroup if *v == nil { - sv = &types.LimitExceededException{} + sv = &types.PermissionGroup{} } else { sv = *v } for key, value := range shape { switch key { - case "message": + case "applicationPermissions": + if err := awsRestjson1_deserializeDocumentApplicationPermissionList(&sv.ApplicationPermissions, value); err != nil { + return err + } + + case "createTime": + 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.CreateTime = i64 + } + + case "description": if value != nil { jtv, ok := value.(string) if !ok { - return fmt.Errorf("expected ErrorMessage2 to be of type string, got %T instead", value) + return fmt.Errorf("expected PermissionGroupDescription to be of type string, got %T instead", value) } - sv.Message = ptr.String(jtv) + sv.Description = ptr.String(jtv) + } + + case "lastModifiedTime": + 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.LastModifiedTime = i64 + } + + case "name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PermissionGroupName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "permissionGroupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PermissionGroupId to be of type string, got %T instead", value) + } + sv.PermissionGroupId = ptr.String(jtv) } default: @@ -4006,7 +6140,7 @@ func awsRestjson1_deserializeDocumentLimitExceededException(v **types.LimitExcee return nil } -func awsRestjson1_deserializeDocumentPartitionColumnList(v *[]string, value interface{}) error { +func awsRestjson1_deserializeDocumentPermissionGroupList(v *[]types.PermissionGroup, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) } @@ -4019,22 +6153,20 @@ func awsRestjson1_deserializeDocumentPartitionColumnList(v *[]string, value inte return fmt.Errorf("unexpected JSON type %v", value) } - var cv []string + var cv []types.PermissionGroup if *v == nil { - cv = []string{} + cv = []types.PermissionGroup{} } else { cv = *v } for _, value := range shape { - var col string - if value != nil { - jtv, ok := value.(string) - if !ok { - return fmt.Errorf("expected StringValueLength1to255 to be of type string, got %T instead", value) - } - col = jtv + var col types.PermissionGroup + destAddr := &col + if err := awsRestjson1_deserializeDocumentPermissionGroup(&destAddr, value); err != nil { + return err } + col = *destAddr cv = append(cv, col) } @@ -4073,6 +6205,15 @@ func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.Resourc sv.Message = ptr.String(jtv) } + case "reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage2 to be of type string, got %T instead", value) + } + sv.Reason = ptr.String(jtv) + } + default: _, _ = key, value @@ -4298,6 +6439,208 @@ func awsRestjson1_deserializeDocumentThrottlingException(v **types.ThrottlingExc return nil } +func awsRestjson1_deserializeDocumentUser(v **types.User, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.User + if *v == nil { + sv = &types.User{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "apiAccess": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ApiAccess to be of type string, got %T instead", value) + } + sv.ApiAccess = types.ApiAccess(jtv) + } + + case "apiAccessPrincipalArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoleArn to be of type string, got %T instead", value) + } + sv.ApiAccessPrincipalArn = ptr.String(jtv) + } + + case "createTime": + 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.CreateTime = i64 + } + + case "emailAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Email to be of type string, got %T instead", value) + } + sv.EmailAddress = ptr.String(jtv) + } + + case "firstName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FirstName to be of type string, got %T instead", value) + } + sv.FirstName = ptr.String(jtv) + } + + case "lastDisabledTime": + 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.LastDisabledTime = i64 + } + + case "lastEnabledTime": + 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.LastEnabledTime = i64 + } + + case "lastLoginTime": + 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.LastLoginTime = i64 + } + + case "lastModifiedTime": + 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.LastModifiedTime = i64 + } + + case "lastName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LastName to be of type string, got %T instead", value) + } + sv.LastName = ptr.String(jtv) + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserStatus to be of type string, got %T instead", value) + } + sv.Status = types.UserStatus(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserType to be of type string, got %T instead", value) + } + sv.Type = types.UserType(jtv) + } + + case "userId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) + } + sv.UserId = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentUserList(v *[]types.User, 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.User + if *v == nil { + cv = []types.User{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.User + destAddr := &col + if err := awsRestjson1_deserializeDocumentUser(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4329,6 +6672,15 @@ func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationExc sv.Message = ptr.String(jtv) } + case "reason": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage2 to be of type string, got %T instead", value) + } + sv.Reason = ptr.String(jtv) + } + default: _, _ = key, value diff --git a/service/finspacedata/generated.json b/service/finspacedata/generated.json index 3f046b24640..2e4749de211 100644 --- a/service/finspacedata/generated.json +++ b/service/finspacedata/generated.json @@ -11,17 +11,28 @@ "api_op_CreateChangeset.go", "api_op_CreateDataView.go", "api_op_CreateDataset.go", + "api_op_CreatePermissionGroup.go", + "api_op_CreateUser.go", "api_op_DeleteDataset.go", + "api_op_DeletePermissionGroup.go", + "api_op_DisableUser.go", + "api_op_EnableUser.go", "api_op_GetChangeset.go", "api_op_GetDataView.go", "api_op_GetDataset.go", "api_op_GetProgrammaticAccessCredentials.go", + "api_op_GetUser.go", "api_op_GetWorkingLocation.go", "api_op_ListChangesets.go", "api_op_ListDataViews.go", "api_op_ListDatasets.go", + "api_op_ListPermissionGroups.go", + "api_op_ListUsers.go", + "api_op_ResetUserPassword.go", "api_op_UpdateChangeset.go", "api_op_UpdateDataset.go", + "api_op_UpdatePermissionGroup.go", + "api_op_UpdateUser.go", "deserializers.go", "doc.go", "endpoints.go", diff --git a/service/finspacedata/serializers.go b/service/finspacedata/serializers.go index 5760eea1dd0..8e3f0d66e20 100644 --- a/service/finspacedata/serializers.go +++ b/service/finspacedata/serializers.go @@ -335,14 +335,14 @@ func awsRestjson1_serializeOpDocumentCreateDataViewInput(v *CreateDataViewInput, return nil } -type awsRestjson1_serializeOpDeleteDataset struct { +type awsRestjson1_serializeOpCreatePermissionGroup struct { } -func (*awsRestjson1_serializeOpDeleteDataset) ID() string { +func (*awsRestjson1_serializeOpCreatePermissionGroup) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpDeleteDataset) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpCreatePermissionGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -350,22 +350,29 @@ func (m *awsRestjson1_serializeOpDeleteDataset) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*DeleteDatasetInput) + input, ok := in.Parameters.(*CreatePermissionGroupInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/datasetsv2/{datasetId}") + opPath, opQuery := httpbinding.SplitURI("/permission-group") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "DELETE" + 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_serializeOpHttpBindingsDeleteDatasetInput(input, restEncoder); err != nil { + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreatePermissionGroupInput(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} } @@ -376,35 +383,51 @@ func (m *awsRestjson1_serializeOpDeleteDataset) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsDeleteDatasetInput(v *DeleteDatasetInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsCreatePermissionGroupInput(v *CreatePermissionGroupInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + return nil +} + +func awsRestjson1_serializeOpDocumentCreatePermissionGroupInput(v *CreatePermissionGroupInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ApplicationPermissions != nil { + ok := object.Key("applicationPermissions") + if err := awsRestjson1_serializeDocumentApplicationPermissionList(v.ApplicationPermissions, ok); err != nil { + return err + } + } + if v.ClientToken != nil { - encoder.SetQuery("clientToken").String(*v.ClientToken) + ok := object.Key("clientToken") + ok.String(*v.ClientToken) } - if v.DatasetId == nil || len(*v.DatasetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} + if v.Description != nil { + ok := object.Key("description") + ok.String(*v.Description) } - if v.DatasetId != nil { - if err := encoder.SetURI("datasetId").String(*v.DatasetId); err != nil { - return err - } + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) } return nil } -type awsRestjson1_serializeOpGetChangeset struct { +type awsRestjson1_serializeOpCreateUser struct { } -func (*awsRestjson1_serializeOpGetChangeset) ID() string { +func (*awsRestjson1_serializeOpCreateUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetChangeset) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpCreateUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -412,22 +435,29 @@ func (m *awsRestjson1_serializeOpGetChangeset) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetChangesetInput) + input, ok := in.Parameters.(*CreateUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/changesetsv2/{changesetId}") + opPath, opQuery := httpbinding.SplitURI("/user") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "GET" + request.Method = "POST" 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_serializeOpHttpBindingsGetChangesetInput(input, restEncoder); err != nil { + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentCreateUserInput(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} } @@ -438,40 +468,64 @@ func (m *awsRestjson1_serializeOpGetChangeset) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetChangesetInput(v *GetChangesetInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsCreateUserInput(v *CreateUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.ChangesetId == nil || len(*v.ChangesetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member changesetId must not be empty")} + return nil +} + +func awsRestjson1_serializeOpDocumentCreateUserInput(v *CreateUserInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ApiAccess) > 0 { + ok := object.Key("ApiAccess") + ok.String(string(v.ApiAccess)) } - if v.ChangesetId != nil { - if err := encoder.SetURI("changesetId").String(*v.ChangesetId); err != nil { - return err - } + + if v.ApiAccessPrincipalArn != nil { + ok := object.Key("apiAccessPrincipalArn") + ok.String(*v.ApiAccessPrincipalArn) } - if v.DatasetId == nil || len(*v.DatasetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) } - if v.DatasetId != nil { - if err := encoder.SetURI("datasetId").String(*v.DatasetId); err != nil { - return err - } + + if v.EmailAddress != nil { + ok := object.Key("emailAddress") + ok.String(*v.EmailAddress) + } + + if v.FirstName != nil { + ok := object.Key("firstName") + ok.String(*v.FirstName) + } + + if v.LastName != nil { + ok := object.Key("lastName") + ok.String(*v.LastName) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) } return nil } -type awsRestjson1_serializeOpGetDataset struct { +type awsRestjson1_serializeOpDeleteDataset struct { } -func (*awsRestjson1_serializeOpGetDataset) ID() string { +func (*awsRestjson1_serializeOpDeleteDataset) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetDataset) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeleteDataset) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -479,7 +533,7 @@ func (m *awsRestjson1_serializeOpGetDataset) HandleSerialize(ctx context.Context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetDatasetInput) + input, ok := in.Parameters.(*DeleteDatasetInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} @@ -488,13 +542,13 @@ func (m *awsRestjson1_serializeOpGetDataset) HandleSerialize(ctx context.Context opPath, opQuery := httpbinding.SplitURI("/datasetsv2/{datasetId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "GET" + 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_serializeOpHttpBindingsGetDatasetInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeleteDatasetInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -505,11 +559,15 @@ func (m *awsRestjson1_serializeOpGetDataset) HandleSerialize(ctx context.Context return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetDatasetInput(v *GetDatasetInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeleteDatasetInput(v *DeleteDatasetInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.ClientToken != nil { + encoder.SetQuery("clientToken").String(*v.ClientToken) + } + if v.DatasetId == nil || len(*v.DatasetId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} } @@ -522,14 +580,14 @@ func awsRestjson1_serializeOpHttpBindingsGetDatasetInput(v *GetDatasetInput, enc return nil } -type awsRestjson1_serializeOpGetDataView struct { +type awsRestjson1_serializeOpDeletePermissionGroup struct { } -func (*awsRestjson1_serializeOpGetDataView) ID() string { +func (*awsRestjson1_serializeOpDeletePermissionGroup) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetDataView) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDeletePermissionGroup) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -537,22 +595,22 @@ func (m *awsRestjson1_serializeOpGetDataView) HandleSerialize(ctx context.Contex return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetDataViewInput) + input, ok := in.Parameters.(*DeletePermissionGroupInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/dataviewsv2/{dataViewId}") + opPath, opQuery := httpbinding.SplitURI("/permission-group/{permissionGroupId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "GET" + 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_serializeOpHttpBindingsGetDataViewInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDeletePermissionGroupInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -563,25 +621,20 @@ func (m *awsRestjson1_serializeOpGetDataView) HandleSerialize(ctx context.Contex return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetDataViewInput(v *GetDataViewInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDeletePermissionGroupInput(v *DeletePermissionGroupInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.DatasetId == nil || len(*v.DatasetId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} - } - if v.DatasetId != nil { - if err := encoder.SetURI("datasetId").String(*v.DatasetId); err != nil { - return err - } + if v.ClientToken != nil { + encoder.SetQuery("clientToken").String(*v.ClientToken) } - if v.DataViewId == nil || len(*v.DataViewId) == 0 { - return &smithy.SerializationError{Err: fmt.Errorf("input member dataViewId must not be empty")} + if v.PermissionGroupId == nil || len(*v.PermissionGroupId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member permissionGroupId must not be empty")} } - if v.DataViewId != nil { - if err := encoder.SetURI("dataViewId").String(*v.DataViewId); err != nil { + if v.PermissionGroupId != nil { + if err := encoder.SetURI("permissionGroupId").String(*v.PermissionGroupId); err != nil { return err } } @@ -589,14 +642,14 @@ func awsRestjson1_serializeOpHttpBindingsGetDataViewInput(v *GetDataViewInput, e return nil } -type awsRestjson1_serializeOpGetProgrammaticAccessCredentials struct { +type awsRestjson1_serializeOpDisableUser struct { } -func (*awsRestjson1_serializeOpGetProgrammaticAccessCredentials) ID() string { +func (*awsRestjson1_serializeOpDisableUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetProgrammaticAccessCredentials) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpDisableUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -604,22 +657,33 @@ func (m *awsRestjson1_serializeOpGetProgrammaticAccessCredentials) HandleSeriali return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetProgrammaticAccessCredentialsInput) + input, ok := in.Parameters.(*DisableUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/credentials/programmatic") + opPath, opQuery := httpbinding.SplitURI("/user/{userId}/disable") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) - request.Method = "GET" + 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_serializeOpHttpBindingsGetProgrammaticAccessCredentialsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsDisableUserInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentDisableUserInput(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} } @@ -630,30 +694,43 @@ func (m *awsRestjson1_serializeOpGetProgrammaticAccessCredentials) HandleSeriali return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetProgrammaticAccessCredentialsInput(v *GetProgrammaticAccessCredentialsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsDisableUserInput(v *DisableUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.DurationInMinutes != 0 { - encoder.SetQuery("durationInMinutes").Long(v.DurationInMinutes) + if v.UserId == nil || len(*v.UserId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member userId must not be empty")} + } + if v.UserId != nil { + if err := encoder.SetURI("userId").String(*v.UserId); err != nil { + return err + } } - if v.EnvironmentId != nil { - encoder.SetQuery("environmentId").String(*v.EnvironmentId) + return nil +} + +func awsRestjson1_serializeOpDocumentDisableUserInput(v *DisableUserInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) } return nil } -type awsRestjson1_serializeOpGetWorkingLocation struct { +type awsRestjson1_serializeOpEnableUser struct { } -func (*awsRestjson1_serializeOpGetWorkingLocation) ID() string { +func (*awsRestjson1_serializeOpEnableUser) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpGetWorkingLocation) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpEnableUser) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -661,13 +738,13 @@ func (m *awsRestjson1_serializeOpGetWorkingLocation) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*GetWorkingLocationInput) + input, ok := in.Parameters.(*EnableUserInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/workingLocationV1") + opPath, opQuery := httpbinding.SplitURI("/user/{userId}/enable") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "POST" @@ -676,10 +753,14 @@ func (m *awsRestjson1_serializeOpGetWorkingLocation) HandleSerialize(ctx context return out, metadata, &smithy.SerializationError{Err: err} } + if err := awsRestjson1_serializeOpHttpBindingsEnableUserInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + restEncoder.SetHeader("Content-Type").String("application/json") jsonEncoder := smithyjson.NewEncoder() - if err := awsRestjson1_serializeOpDocumentGetWorkingLocationInput(input, jsonEncoder.Value); err != nil { + if err := awsRestjson1_serializeOpDocumentEnableUserInput(input, jsonEncoder.Value); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -694,34 +775,43 @@ func (m *awsRestjson1_serializeOpGetWorkingLocation) HandleSerialize(ctx context return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsGetWorkingLocationInput(v *GetWorkingLocationInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsEnableUserInput(v *EnableUserInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.UserId == nil || len(*v.UserId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member userId must not be empty")} + } + if v.UserId != nil { + if err := encoder.SetURI("userId").String(*v.UserId); err != nil { + return err + } + } + return nil } -func awsRestjson1_serializeOpDocumentGetWorkingLocationInput(v *GetWorkingLocationInput, value smithyjson.Value) error { +func awsRestjson1_serializeOpDocumentEnableUserInput(v *EnableUserInput, value smithyjson.Value) error { object := value.Object() defer object.Close() - if len(v.LocationType) > 0 { - ok := object.Key("locationType") - ok.String(string(v.LocationType)) + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) } return nil } -type awsRestjson1_serializeOpListChangesets struct { +type awsRestjson1_serializeOpGetChangeset struct { } -func (*awsRestjson1_serializeOpListChangesets) ID() string { +func (*awsRestjson1_serializeOpGetChangeset) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListChangesets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGetChangeset) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -729,13 +819,13 @@ func (m *awsRestjson1_serializeOpListChangesets) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListChangesetsInput) + input, ok := in.Parameters.(*GetChangesetInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/changesetsv2") + opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/changesetsv2/{changesetId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -744,7 +834,7 @@ func (m *awsRestjson1_serializeOpListChangesets) HandleSerialize(ctx context.Con return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListChangesetsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGetChangesetInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -755,11 +845,20 @@ func (m *awsRestjson1_serializeOpListChangesets) HandleSerialize(ctx context.Con return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListChangesetsInput(v *ListChangesetsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGetChangesetInput(v *GetChangesetInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } + if v.ChangesetId == nil || len(*v.ChangesetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member changesetId must not be empty")} + } + if v.ChangesetId != nil { + if err := encoder.SetURI("changesetId").String(*v.ChangesetId); err != nil { + return err + } + } + if v.DatasetId == nil || len(*v.DatasetId) == 0 { return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} } @@ -769,25 +868,17 @@ func awsRestjson1_serializeOpHttpBindingsListChangesetsInput(v *ListChangesetsIn } } - if v.MaxResults != 0 { - encoder.SetQuery("maxResults").Integer(v.MaxResults) - } - - if v.NextToken != nil { - encoder.SetQuery("nextToken").String(*v.NextToken) - } - return nil } -type awsRestjson1_serializeOpListDatasets struct { +type awsRestjson1_serializeOpGetDataset struct { } -func (*awsRestjson1_serializeOpListDatasets) ID() string { +func (*awsRestjson1_serializeOpGetDataset) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListDatasets) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGetDataset) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -795,13 +886,13 @@ func (m *awsRestjson1_serializeOpListDatasets) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListDatasetsInput) + input, ok := in.Parameters.(*GetDatasetInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/datasetsv2") + opPath, opQuery := httpbinding.SplitURI("/datasetsv2/{datasetId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -810,7 +901,7 @@ func (m *awsRestjson1_serializeOpListDatasets) HandleSerialize(ctx context.Conte return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListDatasetsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGetDatasetInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -821,30 +912,31 @@ func (m *awsRestjson1_serializeOpListDatasets) HandleSerialize(ctx context.Conte return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListDatasetsInput(v *ListDatasetsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGetDatasetInput(v *GetDatasetInput, 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.DatasetId == nil || len(*v.DatasetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} } - - if v.NextToken != nil { - encoder.SetQuery("nextToken").String(*v.NextToken) + if v.DatasetId != nil { + if err := encoder.SetURI("datasetId").String(*v.DatasetId); err != nil { + return err + } } return nil } -type awsRestjson1_serializeOpListDataViews struct { +type awsRestjson1_serializeOpGetDataView struct { } -func (*awsRestjson1_serializeOpListDataViews) ID() string { +func (*awsRestjson1_serializeOpGetDataView) ID() string { return "OperationSerializer" } -func (m *awsRestjson1_serializeOpListDataViews) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( +func (m *awsRestjson1_serializeOpGetDataView) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { request, ok := in.Request.(*smithyhttp.Request) @@ -852,13 +944,13 @@ func (m *awsRestjson1_serializeOpListDataViews) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} } - input, ok := in.Parameters.(*ListDataViewsInput) + input, ok := in.Parameters.(*GetDataViewInput) _ = input if !ok { return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} } - opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/dataviewsv2") + opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/dataviewsv2/{dataViewId}") request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) request.Method = "GET" @@ -867,7 +959,7 @@ func (m *awsRestjson1_serializeOpListDataViews) HandleSerialize(ctx context.Cont return out, metadata, &smithy.SerializationError{Err: err} } - if err := awsRestjson1_serializeOpHttpBindingsListDataViewsInput(input, restEncoder); err != nil { + if err := awsRestjson1_serializeOpHttpBindingsGetDataViewInput(input, restEncoder); err != nil { return out, metadata, &smithy.SerializationError{Err: err} } @@ -878,7 +970,7 @@ func (m *awsRestjson1_serializeOpListDataViews) HandleSerialize(ctx context.Cont return next.HandleSerialize(ctx, in) } -func awsRestjson1_serializeOpHttpBindingsListDataViewsInput(v *ListDataViewsInput, encoder *httpbinding.Encoder) error { +func awsRestjson1_serializeOpHttpBindingsGetDataViewInput(v *GetDataViewInput, encoder *httpbinding.Encoder) error { if v == nil { return fmt.Errorf("unsupported serialization of nil %T", v) } @@ -892,8 +984,495 @@ func awsRestjson1_serializeOpHttpBindingsListDataViewsInput(v *ListDataViewsInpu } } - if v.MaxResults != 0 { - encoder.SetQuery("maxResults").Integer(v.MaxResults) + if v.DataViewId == nil || len(*v.DataViewId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member dataViewId must not be empty")} + } + if v.DataViewId != nil { + if err := encoder.SetURI("dataViewId").String(*v.DataViewId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpGetProgrammaticAccessCredentials struct { +} + +func (*awsRestjson1_serializeOpGetProgrammaticAccessCredentials) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetProgrammaticAccessCredentials) 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.(*GetProgrammaticAccessCredentialsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/credentials/programmatic") + 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_serializeOpHttpBindingsGetProgrammaticAccessCredentialsInput(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_serializeOpHttpBindingsGetProgrammaticAccessCredentialsInput(v *GetProgrammaticAccessCredentialsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DurationInMinutes != 0 { + encoder.SetQuery("durationInMinutes").Long(v.DurationInMinutes) + } + + if v.EnvironmentId != nil { + encoder.SetQuery("environmentId").String(*v.EnvironmentId) + } + + return nil +} + +type awsRestjson1_serializeOpGetUser struct { +} + +func (*awsRestjson1_serializeOpGetUser) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetUser) 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.(*GetUserInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user/{userId}") + 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_serializeOpHttpBindingsGetUserInput(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_serializeOpHttpBindingsGetUserInput(v *GetUserInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.UserId == nil || len(*v.UserId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member userId must not be empty")} + } + if v.UserId != nil { + if err := encoder.SetURI("userId").String(*v.UserId); err != nil { + return err + } + } + + return nil +} + +type awsRestjson1_serializeOpGetWorkingLocation struct { +} + +func (*awsRestjson1_serializeOpGetWorkingLocation) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpGetWorkingLocation) 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.(*GetWorkingLocationInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/workingLocationV1") + 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_serializeOpDocumentGetWorkingLocationInput(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_serializeOpHttpBindingsGetWorkingLocationInput(v *GetWorkingLocationInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentGetWorkingLocationInput(v *GetWorkingLocationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.LocationType) > 0 { + ok := object.Key("locationType") + ok.String(string(v.LocationType)) + } + + return nil +} + +type awsRestjson1_serializeOpListChangesets struct { +} + +func (*awsRestjson1_serializeOpListChangesets) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListChangesets) 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.(*ListChangesetsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/changesetsv2") + 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_serializeOpHttpBindingsListChangesetsInput(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_serializeOpHttpBindingsListChangesetsInput(v *ListChangesetsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DatasetId == nil || len(*v.DatasetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} + } + if v.DatasetId != nil { + if err := encoder.SetURI("datasetId").String(*v.DatasetId); err != nil { + return err + } + } + + if v.MaxResults != 0 { + encoder.SetQuery("maxResults").Integer(v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpListDatasets struct { +} + +func (*awsRestjson1_serializeOpListDatasets) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListDatasets) 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.(*ListDatasetsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/datasetsv2") + 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_serializeOpHttpBindingsListDatasetsInput(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_serializeOpHttpBindingsListDatasetsInput(v *ListDatasetsInput, 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_serializeOpListDataViews struct { +} + +func (*awsRestjson1_serializeOpListDataViews) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListDataViews) 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.(*ListDataViewsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/datasets/{datasetId}/dataviewsv2") + 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_serializeOpHttpBindingsListDataViewsInput(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_serializeOpHttpBindingsListDataViewsInput(v *ListDataViewsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DatasetId == nil || len(*v.DatasetId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member datasetId must not be empty")} + } + if v.DatasetId != nil { + if err := encoder.SetURI("datasetId").String(*v.DatasetId); err != nil { + return err + } + } + + if v.MaxResults != 0 { + encoder.SetQuery("maxResults").Integer(v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpListPermissionGroups struct { +} + +func (*awsRestjson1_serializeOpListPermissionGroups) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListPermissionGroups) 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.(*ListPermissionGroupsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/permission-group") + 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_serializeOpHttpBindingsListPermissionGroupsInput(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_serializeOpHttpBindingsListPermissionGroupsInput(v *ListPermissionGroupsInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + { + encoder.SetQuery("maxResults").Integer(v.MaxResults) + } + + if v.NextToken != nil { + encoder.SetQuery("nextToken").String(*v.NextToken) + } + + return nil +} + +type awsRestjson1_serializeOpListUsers struct { +} + +func (*awsRestjson1_serializeOpListUsers) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpListUsers) 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.(*ListUsersInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user") + 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_serializeOpHttpBindingsListUsersInput(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_serializeOpHttpBindingsListUsersInput(v *ListUsersInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + { + encoder.SetQuery("maxResults").Integer(v.MaxResults) } if v.NextToken != nil { @@ -903,6 +1482,87 @@ func awsRestjson1_serializeOpHttpBindingsListDataViewsInput(v *ListDataViewsInpu return nil } +type awsRestjson1_serializeOpResetUserPassword struct { +} + +func (*awsRestjson1_serializeOpResetUserPassword) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpResetUserPassword) 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.(*ResetUserPasswordInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user/{userId}/password") + 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_serializeOpHttpBindingsResetUserPasswordInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentResetUserPasswordInput(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_serializeOpHttpBindingsResetUserPasswordInput(v *ResetUserPasswordInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.UserId == nil || len(*v.UserId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member userId must not be empty")} + } + if v.UserId != nil { + if err := encoder.SetURI("userId").String(*v.UserId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentResetUserPasswordInput(v *ResetUserPasswordInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + return nil +} + type awsRestjson1_serializeOpUpdateChangeset struct { } @@ -1115,6 +1775,221 @@ func awsRestjson1_serializeOpDocumentUpdateDatasetInput(v *UpdateDatasetInput, v return nil } +type awsRestjson1_serializeOpUpdatePermissionGroup struct { +} + +func (*awsRestjson1_serializeOpUpdatePermissionGroup) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdatePermissionGroup) 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.(*UpdatePermissionGroupInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/permission-group/{permissionGroupId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdatePermissionGroupInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdatePermissionGroupInput(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_serializeOpHttpBindingsUpdatePermissionGroupInput(v *UpdatePermissionGroupInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.PermissionGroupId == nil || len(*v.PermissionGroupId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member permissionGroupId must not be empty")} + } + if v.PermissionGroupId != nil { + if err := encoder.SetURI("permissionGroupId").String(*v.PermissionGroupId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdatePermissionGroupInput(v *UpdatePermissionGroupInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ApplicationPermissions != nil { + ok := object.Key("applicationPermissions") + if err := awsRestjson1_serializeDocumentApplicationPermissionList(v.ApplicationPermissions, ok); err != nil { + return err + } + } + + 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) + } + + return nil +} + +type awsRestjson1_serializeOpUpdateUser struct { +} + +func (*awsRestjson1_serializeOpUpdateUser) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateUser) 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.(*UpdateUserInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/user/{userId}") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "PUT" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateUserInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateUserInput(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_serializeOpHttpBindingsUpdateUserInput(v *UpdateUserInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.UserId == nil || len(*v.UserId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member userId must not be empty")} + } + if v.UserId != nil { + if err := encoder.SetURI("userId").String(*v.UserId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateUserInput(v *UpdateUserInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ApiAccess) > 0 { + ok := object.Key("apiAccess") + ok.String(string(v.ApiAccess)) + } + + if v.ApiAccessPrincipalArn != nil { + ok := object.Key("apiAccessPrincipalArn") + ok.String(*v.ApiAccessPrincipalArn) + } + + if v.ClientToken != nil { + ok := object.Key("clientToken") + ok.String(*v.ClientToken) + } + + if v.FirstName != nil { + ok := object.Key("firstName") + ok.String(*v.FirstName) + } + + if v.LastName != nil { + ok := object.Key("lastName") + ok.String(*v.LastName) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsRestjson1_serializeDocumentApplicationPermissionList(v []types.ApplicationPermission, 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_serializeDocumentColumnDefinition(v *types.ColumnDefinition, 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 6befe269053..fc757d14fd6 100644 --- a/service/finspacedata/types/enums.go +++ b/service/finspacedata/types/enums.go @@ -2,6 +2,52 @@ package types +type ApiAccess string + +// Enum values for ApiAccess +const ( + ApiAccessEnabled ApiAccess = "ENABLED" + ApiAccessDisabled ApiAccess = "DISABLED" +) + +// Values returns all known values for ApiAccess. 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 (ApiAccess) Values() []ApiAccess { + return []ApiAccess{ + "ENABLED", + "DISABLED", + } +} + +type ApplicationPermission string + +// Enum values for ApplicationPermission +const ( + ApplicationPermissionCreateDataset ApplicationPermission = "CreateDataset" + ApplicationPermissionManageClusters ApplicationPermission = "ManageClusters" + ApplicationPermissionManageUsersAndGroups ApplicationPermission = "ManageUsersAndGroups" + ApplicationPermissionManageAttributeSets ApplicationPermission = "ManageAttributeSets" + ApplicationPermissionViewAuditData ApplicationPermission = "ViewAuditData" + ApplicationPermissionAccessNotebooks ApplicationPermission = "AccessNotebooks" + ApplicationPermissionGetTemporaryCredentials ApplicationPermission = "GetTemporaryCredentials" +) + +// Values returns all known values for ApplicationPermission. 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 (ApplicationPermission) Values() []ApplicationPermission { + return []ApplicationPermission{ + "CreateDataset", + "ManageClusters", + "ManageUsersAndGroups", + "ManageAttributeSets", + "ViewAuditData", + "AccessNotebooks", + "GetTemporaryCredentials", + } +} + type ChangeType string // Enum values for ChangeType @@ -219,3 +265,41 @@ func (LocationType) Values() []LocationType { "SAGEMAKER", } } + +type UserStatus string + +// Enum values for UserStatus +const ( + UserStatusCreating UserStatus = "CREATING" + UserStatusEnabled UserStatus = "ENABLED" + UserStatusDisabled UserStatus = "DISABLED" +) + +// Values returns all known values for UserStatus. 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 (UserStatus) Values() []UserStatus { + return []UserStatus{ + "CREATING", + "ENABLED", + "DISABLED", + } +} + +type UserType string + +// Enum values for UserType +const ( + UserTypeSuperUser UserType = "SUPER_USER" + UserTypeAppUser UserType = "APP_USER" +) + +// Values returns all known values for UserType. 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 (UserType) Values() []UserType { + return []UserType{ + "SUPER_USER", + "APP_USER", + } +} diff --git a/service/finspacedata/types/errors.go b/service/finspacedata/types/errors.go index 7acaeaf87c0..8fc9979ddc7 100644 --- a/service/finspacedata/types/errors.go +++ b/service/finspacedata/types/errors.go @@ -30,6 +30,8 @@ func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.F type ConflictException struct { Message *string + Reason *string + noSmithyDocumentSerde } @@ -88,6 +90,8 @@ func (e *LimitExceededException) ErrorFault() smithy.ErrorFault { return smithy. type ResourceNotFoundException struct { Message *string + Reason *string + noSmithyDocumentSerde } @@ -126,6 +130,8 @@ func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.Fau type ValidationException struct { Message *string + Reason *string + noSmithyDocumentSerde } diff --git a/service/finspacedata/types/types.go b/service/finspacedata/types/types.go index b541e4a7501..3e43757e2f2 100644 --- a/service/finspacedata/types/types.go +++ b/service/finspacedata/types/types.go @@ -11,28 +11,28 @@ type ChangesetErrorInfo struct { // The category of the error. // - // * VALIDATION -The inputs to this request are + // * VALIDATION – The inputs to this request are // invalid. // - // * SERVICE_QUOTA_EXCEEDED - Service quotas have been exceeded. Please + // * SERVICE_QUOTA_EXCEEDED – Service quotas have been exceeded. Please // contact AWS support to increase quotas. // - // * ACCESS_DENIED - Missing required + // * ACCESS_DENIED – Missing required // permission to perform this request. // - // * RESOURCE_NOT_FOUND - One or more inputs + // * RESOURCE_NOT_FOUND – One or more inputs // to this request were not found. // - // * THROTTLING - The system temporarily lacks + // * THROTTLING – The system temporarily lacks // sufficient resources to process the request. // - // * INTERNAL_SERVICE_EXCEPTION - An + // * INTERNAL_SERVICE_EXCEPTION – An // internal service error has occurred. // - // * CANCELLED - Cancelled. + // * CANCELLED – Cancelled. // // * - // USER_RECOVERABLE - A user recoverable error has occurred. + // USER_RECOVERABLE – A user recoverable error has occurred. ErrorCategory ErrorCategory // The text of the error message. @@ -45,25 +45,25 @@ type ChangesetErrorInfo struct { type ChangesetSummary struct { // Beginning time from which the Changeset is active. The value is determined as - // Epoch time in milliseconds. For example, the value for Monday, November 1, 2021 + // epoch time in milliseconds. For example, the value for Monday, November 1, 2021 // 12:00:00 PM UTC is specified as 1635768000000. ActiveFromTimestamp int64 - // Time until which the Changeset is active. The value is determined as Epoch time + // 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. ActiveUntilTimestamp int64 // Type that indicates how a Changeset is applied to a Dataset. // - // * REPLACE - + // * REPLACE – // Changeset is considered as a replacement to all prior loaded Changesets. // // * - // APPEND - Changeset is considered as an addition to the end of all prior loaded + // APPEND – Changeset is considered as an addition to the end of all prior loaded // Changesets. // - // * MODIFY - Changeset is considered as a replacement to a specific + // * MODIFY – Changeset is considered as a replacement to a specific // prior ingested Changeset. ChangeType ChangeType @@ -74,7 +74,7 @@ type ChangesetSummary struct { ChangesetId *string // The timestamp at which the Changeset was created in FinSpace. The value is - // determined as Epoch time in milliseconds. For example, the value for Monday, + // determined as epoch time in milliseconds. For example, the value for Monday, // November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. CreateTime int64 @@ -93,18 +93,18 @@ type ChangesetSummary struct { // Status of the Changeset ingestion. // - // * PENDING - Changeset is pending + // * PENDING – Changeset is pending // creation. // - // * FAILED - Changeset creation has failed. + // * FAILED – Changeset creation has failed. // - // * SUCCESS - Changeset + // * SUCCESS – Changeset // creation has succeeded. // - // * RUNNING - Changeset creation is running. + // * RUNNING – Changeset creation is running. // // * - // STOP_REQUESTED - User requested Changeset creation to stop. + // STOP_REQUESTED – User requested Changeset creation to stop. Status IngestionStatus // The unique identifier of the updated Changeset. @@ -122,16 +122,16 @@ type ColumnDefinition struct { // Description for a column. ColumnDescription *string - // Name for a column. + // The name of a column. ColumnName *string // Data type of a column. // - // * STRING - A String data type. CHAR - A char data type. - // INTEGER - An integer data type. TINYINT - A tinyint data type. SMALLINT - A - // smallint data type. BIGINT - A bigint data type. FLOAT - A float data type. - // DOUBLE - A double data type. DATE - A date data type. DATETIME - A datetime data - // type. BOOLEAN - A boolean data type. BINARY - A binary data type. + // * STRING – A String data type. CHAR – A char data type. + // INTEGER – An integer data type. TINYINT – A tinyint data type. SMALLINT – A + // smallint data type. BIGINT – A bigint data type. FLOAT – A float data type. + // DOUBLE – A double data type. DATE – A date data type. DATETIME – A datetime data + // type. BOOLEAN – A boolean data type. BINARY – A binary data type. DataType ColumnDataType noSmithyDocumentSerde @@ -159,7 +159,7 @@ type Dataset struct { Alias *string // The timestamp at which the Dataset was created in FinSpace. The value is - // determined as Epoch time in milliseconds. For example, the value for Monday, + // determined as epoch time in milliseconds. For example, the value for Monday, // November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. CreateTime int64 @@ -177,14 +177,14 @@ type Dataset struct { // The format in which Dataset data is structured. // - // * TABULAR - Data is structured + // * TABULAR – Data is structured // in a tabular format. // - // * NON_TABULAR - Data is structured in a non-tabular + // * NON_TABULAR – Data is structured in a non-tabular // format. Kind DatasetKind - // The last time that the Dataset was modified. The value is determined as Epoch + // The last time that the Dataset was modified. 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. LastModifiedTime int64 @@ -204,7 +204,7 @@ type DatasetOwnerInfo struct { // Email address for the Dataset owner. Email *string - // Name of the Dataset owner. + // The name of the Dataset owner. Name *string // Phone number for the Dataset owner. @@ -218,20 +218,20 @@ type DataViewDestinationTypeParams struct { // Destination type for a Dataview. // - // * GLUE_TABLE - Glue table destination type. + // * GLUE_TABLE – Glue table destination type. // // * - // S3 - S3 destination type. + // S3 – S3 destination type. // // This member is required. DestinationType *string // Data view export file format. // - // * PARQUET - Parquet export file format. + // * PARQUET – Parquet export file format. // // * - // DELIMITED_TEXT - Delimited text export file format. + // DELIMITED_TEXT – Delimited text export file format. S3DestinationExportFileFormat ExportFileFormat // Format Options for S3 Destination type. Here is an example of how you could @@ -248,28 +248,28 @@ type DataViewErrorInfo struct { // The category of the error. // - // * VALIDATION -The inputs to this request are + // * VALIDATION – The inputs to this request are // invalid. // - // * SERVICE_QUOTA_EXCEEDED - Service quotas have been exceeded. Please + // * SERVICE_QUOTA_EXCEEDED – Service quotas have been exceeded. Please // contact AWS support to increase quotas. // - // * ACCESS_DENIED - Missing required + // * ACCESS_DENIED – Missing required // permission to perform this request. // - // * RESOURCE_NOT_FOUND - One or more inputs + // * RESOURCE_NOT_FOUND – One or more inputs // to this request were not found. // - // * THROTTLING - The system temporarily lacks + // * THROTTLING – The system temporarily lacks // sufficient resources to process the request. // - // * INTERNAL_SERVICE_EXCEPTION - An + // * INTERNAL_SERVICE_EXCEPTION – An // internal service error has occurred. // - // * CANCELLED - Cancelled. + // * CANCELLED – Cancelled. // // * - // USER_RECOVERABLE - A user recoverable error has occurred. + // USER_RECOVERABLE – A user recoverable error has occurred. ErrorCategory ErrorCategory // The text of the error message. @@ -281,7 +281,7 @@ type DataViewErrorInfo struct { // Structure for the summary of a Dataview. type DataViewSummary struct { - // Time range to use for the Dataview. The value is determined as Epoch time in + // Time range to use for the Dataview. 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. AsOfTimestamp int64 @@ -290,7 +290,7 @@ type DataViewSummary struct { AutoUpdate bool // The timestamp at which the Dataview was created in FinSpace. The value is - // determined as Epoch time in milliseconds. For example, the value for Monday, + // determined as epoch time in milliseconds. For example, the value for Monday, // November 1, 2021 12:00:00 PM UTC is specified as 1635768000000. CreateTime int64 @@ -309,7 +309,7 @@ type DataViewSummary struct { // The structure with error messages. ErrorInfo *DataViewErrorInfo - // The last time that a Dataview was modified. The value is determined as Epoch + // The last time that a Dataview was modified. 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. LastModifiedTime int64 @@ -322,31 +322,78 @@ type DataViewSummary struct { // The status of a Dataview creation. // - // * RUNNING - Dataview creation is running. + // * RUNNING – Dataview creation is running. // // * - // STARTING - Dataview creation is starting. + // STARTING – Dataview creation is starting. // - // * FAILED - Dataview creation has + // * FAILED – Dataview creation has // failed. // - // * CANCELLED - Dataview creation has been cancelled. + // * CANCELLED – Dataview creation has been cancelled. // - // * TIMEOUT - + // * TIMEOUT – // Dataview creation has timed out. // - // * SUCCESS - Dataview creation has + // * SUCCESS – Dataview creation has // succeeded. // - // * PENDING - Dataview creation is pending. + // * PENDING – Dataview creation is pending. // - // * FAILED_CLEANUP_FAILED - + // * FAILED_CLEANUP_FAILED – // Dataview creation failed and resource cleanup failed. Status DataViewStatus noSmithyDocumentSerde } +// The structure for a permission group. +type PermissionGroup struct { + + // Indicates the permissions that are granted to a specific group for accessing the + // FinSpace application. + // + // * CreateDataset – Group members can create new + // datasets. + // + // * ManageClusters – Group members can manage Apache Spark clusters + // from FinSpace notebooks. + // + // * ManageUsersAndGroups – Group members can manage + // users and permission groups. + // + // * ManageAttributeSets – Group members can manage + // attribute sets. + // + // * ViewAuditData – Group members can view audit data. + // + // * + // AccessNotebooks – Group members will have access to FinSpace notebooks. + // + // * + // GetTemporaryCredentials – Group members can get temporary API credentials. + ApplicationPermissions []ApplicationPermission + + // The timestamp at which the group was created in FinSpace. The value is + // determined as epoch time in milliseconds. + CreateTime int64 + + // A brief description for the permission group. + Description *string + + // Describes the last time the permission group was updated. The value is + // determined as epoch time in milliseconds. + LastModifiedTime int64 + + // The name of the permission group. + Name *string + + // The unique identifier for the permission group. + PermissionGroupId *string + + noSmithyDocumentSerde +} + // Permission group parameters for Dataset permissions. Here is an example of how // you could specify the PermissionGroupParams: { "permissionGroupId": // "0r6fCRtSTUk4XPfXQe3M0g", "datasetPermissions": [ {"permission": @@ -357,7 +404,7 @@ type PermissionGroupParams struct { // List of resource permissions. DatasetPermissions []ResourcePermission - // The unique identifier of the PermissionGroup. + // The unique identifier for the PermissionGroup. PermissionGroupId *string noSmithyDocumentSerde @@ -383,7 +430,7 @@ type PermissionGroupParams struct { // * DeleteDataset // // For more information on -// the ataset permissions, see Supported Dataset Permissions +// the dataset permissions, see Supported Dataset Permissions // (https://docs.aws.amazon.com/finspace/latest/userguide/managing-user-permissions.html#supported-dataset-permissions) // in the FinSpace User Guide. type ResourcePermission struct { @@ -415,4 +462,79 @@ type SchemaUnion struct { noSmithyDocumentSerde } +// The details of the user account. +type User struct { + + // Indicates whether the user can use the GetProgrammaticAccessCredentials API to + // obtain credentials that can then be used to access other FinSpace Data API + // operations. + // + // * ENABLED – The user has permissions to use the APIs. + // + // * DISABLED – + // The user does not have permissions to use any APIs. + ApiAccess ApiAccess + + // The ARN identifier of an AWS user or role that is allowed to call the + // GetProgrammaticAccessCredentials API to obtain a credentials token for a + // specific FinSpace user. This must be an IAM role within your FinSpace account. + ApiAccessPrincipalArn *string + + // The timestamp at which the user account was created in FinSpace. The value is + // determined as epoch time in milliseconds. + CreateTime int64 + + // The email address of the user. The email address serves as a uniquer identifier + // for each user and cannot be changed after it's created. + EmailAddress *string + + // The first name of the user. + FirstName *string + + // Describes the last time the user account was disabled. The value is determined + // as epoch time in milliseconds. + LastDisabledTime int64 + + // Describes the last time the user account was enabled. The value is determined as + // epoch time in milliseconds. + LastEnabledTime int64 + + // Describes the last time that the user logged into their account. The value is + // determined as epoch time in milliseconds. + LastLoginTime int64 + + // Describes the last time the user account was updated. The value is determined as + // epoch time in milliseconds. + LastModifiedTime int64 + + // The last name of the user. + LastName *string + + // The current status of the user account. + // + // * CREATING – The user account creation + // is in progress. + // + // * ENABLED – The user account is created and is currently + // active. + // + // * DISABLED – The user account is currently inactive. + Status UserStatus + + // Indicates the type of user. + // + // * SUPER_USER – A user with permission to all the + // functionality and data in FinSpace. + // + // * APP_USER – A user with specific + // permissions in FinSpace. The users are assigned permissions by adding them to a + // permissions group. + Type UserType + + // The unique identifier for the user. + UserId *string + + noSmithyDocumentSerde +} + type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/finspacedata/validators.go b/service/finspacedata/validators.go index 92eb29535f6..875b43c815e 100644 --- a/service/finspacedata/validators.go +++ b/service/finspacedata/validators.go @@ -70,6 +70,46 @@ func (m *validateOpCreateDataView) HandleInitialize(ctx context.Context, in midd return next.HandleInitialize(ctx, in) } +type validateOpCreatePermissionGroup struct { +} + +func (*validateOpCreatePermissionGroup) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreatePermissionGroup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreatePermissionGroupInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreatePermissionGroupInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateUser struct { +} + +func (*validateOpCreateUser) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateUser) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateUserInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateUserInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDeleteDataset struct { } @@ -90,6 +130,66 @@ func (m *validateOpDeleteDataset) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpDeletePermissionGroup struct { +} + +func (*validateOpDeletePermissionGroup) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeletePermissionGroup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeletePermissionGroupInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeletePermissionGroupInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDisableUser struct { +} + +func (*validateOpDisableUser) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDisableUser) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DisableUserInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDisableUserInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpEnableUser struct { +} + +func (*validateOpEnableUser) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpEnableUser) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*EnableUserInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpEnableUserInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpGetChangeset struct { } @@ -170,6 +270,26 @@ func (m *validateOpGetProgrammaticAccessCredentials) HandleInitialize(ctx contex return next.HandleInitialize(ctx, in) } +type validateOpGetUser struct { +} + +func (*validateOpGetUser) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetUser) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetUserInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetUserInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpListChangesets struct { } @@ -210,6 +330,66 @@ func (m *validateOpListDataViews) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpListPermissionGroups struct { +} + +func (*validateOpListPermissionGroups) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListPermissionGroups) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListPermissionGroupsInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListPermissionGroupsInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListUsers struct { +} + +func (*validateOpListUsers) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListUsers) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListUsersInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListUsersInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpResetUserPassword struct { +} + +func (*validateOpResetUserPassword) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpResetUserPassword) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ResetUserPasswordInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpResetUserPasswordInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateChangeset struct { } @@ -250,6 +430,46 @@ func (m *validateOpUpdateDataset) HandleInitialize(ctx context.Context, in middl return next.HandleInitialize(ctx, in) } +type validateOpUpdatePermissionGroup struct { +} + +func (*validateOpUpdatePermissionGroup) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdatePermissionGroup) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdatePermissionGroupInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdatePermissionGroupInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpUpdateUser struct { +} + +func (*validateOpUpdateUser) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateUser) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateUserInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateUserInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + func addOpCreateChangesetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateChangeset{}, middleware.After) } @@ -262,10 +482,30 @@ func addOpCreateDataViewValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpCreateDataView{}, middleware.After) } +func addOpCreatePermissionGroupValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreatePermissionGroup{}, middleware.After) +} + +func addOpCreateUserValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateUser{}, middleware.After) +} + func addOpDeleteDatasetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteDataset{}, middleware.After) } +func addOpDeletePermissionGroupValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeletePermissionGroup{}, middleware.After) +} + +func addOpDisableUserValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDisableUser{}, middleware.After) +} + +func addOpEnableUserValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpEnableUser{}, middleware.After) +} + func addOpGetChangesetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpGetChangeset{}, middleware.After) } @@ -282,6 +522,10 @@ func addOpGetProgrammaticAccessCredentialsValidationMiddleware(stack *middleware return stack.Initialize.Add(&validateOpGetProgrammaticAccessCredentials{}, middleware.After) } +func addOpGetUserValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetUser{}, middleware.After) +} + func addOpListChangesetsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListChangesets{}, middleware.After) } @@ -290,6 +534,18 @@ func addOpListDataViewsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpListDataViews{}, middleware.After) } +func addOpListPermissionGroupsValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListPermissionGroups{}, middleware.After) +} + +func addOpListUsersValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListUsers{}, middleware.After) +} + +func addOpResetUserPasswordValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpResetUserPassword{}, middleware.After) +} + func addOpUpdateChangesetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateChangeset{}, middleware.After) } @@ -298,6 +554,14 @@ func addOpUpdateDatasetValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateDataset{}, middleware.After) } +func addOpUpdatePermissionGroupValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdatePermissionGroup{}, middleware.After) +} + +func addOpUpdateUserValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateUser{}, middleware.After) +} + func validateDataViewDestinationTypeParams(v *types.DataViewDestinationTypeParams) error { if v == nil { return nil @@ -380,6 +644,42 @@ func validateOpCreateDataViewInput(v *CreateDataViewInput) error { } } +func validateOpCreatePermissionGroupInput(v *CreatePermissionGroupInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreatePermissionGroupInput"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.ApplicationPermissions == nil { + invalidParams.Add(smithy.NewErrParamRequired("ApplicationPermissions")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateUserInput(v *CreateUserInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateUserInput"} + if v.EmailAddress == nil { + invalidParams.Add(smithy.NewErrParamRequired("EmailAddress")) + } + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDeleteDatasetInput(v *DeleteDatasetInput) error { if v == nil { return nil @@ -395,6 +695,51 @@ func validateOpDeleteDatasetInput(v *DeleteDatasetInput) error { } } +func validateOpDeletePermissionGroupInput(v *DeletePermissionGroupInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeletePermissionGroupInput"} + if v.PermissionGroupId == nil { + invalidParams.Add(smithy.NewErrParamRequired("PermissionGroupId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDisableUserInput(v *DisableUserInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DisableUserInput"} + if v.UserId == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpEnableUserInput(v *EnableUserInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EnableUserInput"} + if v.UserId == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpGetChangesetInput(v *GetChangesetInput) error { if v == nil { return nil @@ -461,6 +806,21 @@ func validateOpGetProgrammaticAccessCredentialsInput(v *GetProgrammaticAccessCre } } +func validateOpGetUserInput(v *GetUserInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetUserInput"} + if v.UserId == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpListChangesetsInput(v *ListChangesetsInput) error { if v == nil { return nil @@ -491,6 +851,45 @@ func validateOpListDataViewsInput(v *ListDataViewsInput) error { } } +func validateOpListPermissionGroupsInput(v *ListPermissionGroupsInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListPermissionGroupsInput"} + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListUsersInput(v *ListUsersInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListUsersInput"} + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpResetUserPasswordInput(v *ResetUserPasswordInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ResetUserPasswordInput"} + if v.UserId == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateChangesetInput(v *UpdateChangesetInput) error { if v == nil { return nil @@ -535,3 +934,33 @@ func validateOpUpdateDatasetInput(v *UpdateDatasetInput) error { return nil } } + +func validateOpUpdatePermissionGroupInput(v *UpdatePermissionGroupInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdatePermissionGroupInput"} + if v.PermissionGroupId == nil { + invalidParams.Add(smithy.NewErrParamRequired("PermissionGroupId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpUpdateUserInput(v *UpdateUserInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateUserInput"} + if v.UserId == nil { + invalidParams.Add(smithy.NewErrParamRequired("UserId")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/fis/api_op_CreateExperimentTemplate.go b/service/fis/api_op_CreateExperimentTemplate.go index f5dd302be42..26f0ab50c24 100644 --- a/service/fis/api_op_CreateExperimentTemplate.go +++ b/service/fis/api_op_CreateExperimentTemplate.go @@ -75,6 +75,9 @@ type CreateExperimentTemplateInput struct { // This member is required. StopConditions []types.CreateExperimentTemplateStopConditionInput + // The configuration for experiment logging. + LogConfiguration *types.CreateExperimentTemplateLogConfigurationInput + // The tags to apply to the experiment template. Tags map[string]string diff --git a/service/fis/api_op_UpdateExperimentTemplate.go b/service/fis/api_op_UpdateExperimentTemplate.go index 0c65a2e8170..3d0a6497fb6 100644 --- a/service/fis/api_op_UpdateExperimentTemplate.go +++ b/service/fis/api_op_UpdateExperimentTemplate.go @@ -40,6 +40,9 @@ type UpdateExperimentTemplateInput struct { // A description for the template. Description *string + // The configuration for experiment logging. + LogConfiguration *types.UpdateExperimentTemplateLogConfigurationInput + // The Amazon Resource Name (ARN) of an IAM role that grants the FIS service // permission to perform service actions on your behalf. RoleArn *string diff --git a/service/fis/deserializers.go b/service/fis/deserializers.go index 0f724c9f457..c8afadab622 100644 --- a/service/fis/deserializers.go +++ b/service/fis/deserializers.go @@ -2889,6 +2889,11 @@ func awsRestjson1_deserializeDocumentExperiment(v **types.Experiment, value inte sv.Id = ptr.String(jtv) } + case "logConfiguration": + if err := awsRestjson1_deserializeDocumentExperimentLogConfiguration(&sv.LogConfiguration, value); err != nil { + return err + } + case "roleArn": if value != nil { jtv, ok := value.(string) @@ -3236,6 +3241,149 @@ func awsRestjson1_deserializeDocumentExperimentActionTargetMap(v *map[string]str return nil } +func awsRestjson1_deserializeDocumentExperimentCloudWatchLogsLogConfiguration(v **types.ExperimentCloudWatchLogsLogConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExperimentCloudWatchLogsLogConfiguration + if *v == nil { + sv = &types.ExperimentCloudWatchLogsLogConfiguration{} + } 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 CloudWatchLogGroupArn to be of type string, got %T instead", value) + } + sv.LogGroupArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentLogConfiguration(v **types.ExperimentLogConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExperimentLogConfiguration + if *v == nil { + sv = &types.ExperimentLogConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "cloudWatchLogsConfiguration": + if err := awsRestjson1_deserializeDocumentExperimentCloudWatchLogsLogConfiguration(&sv.CloudWatchLogsConfiguration, value); err != nil { + return err + } + + case "logSchemaVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected LogSchemaVersion to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.LogSchemaVersion = ptr.Int32(int32(i64)) + } + + case "s3Configuration": + if err := awsRestjson1_deserializeDocumentExperimentS3LogConfiguration(&sv.S3Configuration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentS3LogConfiguration(v **types.ExperimentS3LogConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExperimentS3LogConfiguration + if *v == nil { + sv = &types.ExperimentS3LogConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "bucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3BucketName to be of type string, got %T instead", value) + } + sv.BucketName = ptr.String(jtv) + } + + case "prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3ObjectKey to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentExperimentState(v **types.ExperimentState, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -3809,6 +3957,11 @@ func awsRestjson1_deserializeDocumentExperimentTemplate(v **types.ExperimentTemp } } + case "logConfiguration": + if err := awsRestjson1_deserializeDocumentExperimentTemplateLogConfiguration(&sv.LogConfiguration, value); err != nil { + return err + } + case "roleArn": if value != nil { jtv, ok := value.(string) @@ -4049,6 +4202,149 @@ func awsRestjson1_deserializeDocumentExperimentTemplateActionTargetMap(v *map[st return nil } +func awsRestjson1_deserializeDocumentExperimentTemplateCloudWatchLogsLogConfiguration(v **types.ExperimentTemplateCloudWatchLogsLogConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExperimentTemplateCloudWatchLogsLogConfiguration + if *v == nil { + sv = &types.ExperimentTemplateCloudWatchLogsLogConfiguration{} + } 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 CloudWatchLogGroupArn to be of type string, got %T instead", value) + } + sv.LogGroupArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentTemplateLogConfiguration(v **types.ExperimentTemplateLogConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExperimentTemplateLogConfiguration + if *v == nil { + sv = &types.ExperimentTemplateLogConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "cloudWatchLogsConfiguration": + if err := awsRestjson1_deserializeDocumentExperimentTemplateCloudWatchLogsLogConfiguration(&sv.CloudWatchLogsConfiguration, value); err != nil { + return err + } + + case "logSchemaVersion": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected LogSchemaVersion to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.LogSchemaVersion = ptr.Int32(int32(i64)) + } + + case "s3Configuration": + if err := awsRestjson1_deserializeDocumentExperimentTemplateS3LogConfiguration(&sv.S3Configuration, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentExperimentTemplateS3LogConfiguration(v **types.ExperimentTemplateS3LogConfiguration, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ExperimentTemplateS3LogConfiguration + if *v == nil { + sv = &types.ExperimentTemplateS3LogConfiguration{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "bucketName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3BucketName to be of type string, got %T instead", value) + } + sv.BucketName = ptr.String(jtv) + } + + case "prefix": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected S3ObjectKey to be of type string, got %T instead", value) + } + sv.Prefix = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentExperimentTemplateStopCondition(v **types.ExperimentTemplateStopCondition, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/fis/serializers.go b/service/fis/serializers.go index 5049420026d..bd8051d4a28 100644 --- a/service/fis/serializers.go +++ b/service/fis/serializers.go @@ -91,6 +91,13 @@ func awsRestjson1_serializeOpDocumentCreateExperimentTemplateInput(v *CreateExpe ok.String(*v.Description) } + if v.LogConfiguration != nil { + ok := object.Key("logConfiguration") + if err := awsRestjson1_serializeDocumentCreateExperimentTemplateLogConfigurationInput(v.LogConfiguration, ok); err != nil { + return err + } + } + if v.RoleArn != nil { ok := object.Key("roleArn") ok.String(*v.RoleArn) @@ -1066,6 +1073,13 @@ func awsRestjson1_serializeOpDocumentUpdateExperimentTemplateInput(v *UpdateExpe ok.String(*v.Description) } + if v.LogConfiguration != nil { + ok := object.Key("logConfiguration") + if err := awsRestjson1_serializeDocumentUpdateExperimentTemplateLogConfigurationInput(v.LogConfiguration, ok); err != nil { + return err + } + } + if v.RoleArn != nil { ok := object.Key("roleArn") ok.String(*v.RoleArn) @@ -1140,6 +1154,32 @@ func awsRestjson1_serializeDocumentCreateExperimentTemplateActionInputMap(v map[ return nil } +func awsRestjson1_serializeDocumentCreateExperimentTemplateLogConfigurationInput(v *types.CreateExperimentTemplateLogConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CloudWatchLogsConfiguration != nil { + ok := object.Key("cloudWatchLogsConfiguration") + if err := awsRestjson1_serializeDocumentExperimentTemplateCloudWatchLogsLogConfigurationInput(v.CloudWatchLogsConfiguration, ok); err != nil { + return err + } + } + + if v.LogSchemaVersion != nil { + ok := object.Key("logSchemaVersion") + ok.Integer(*v.LogSchemaVersion) + } + + if v.S3Configuration != nil { + ok := object.Key("s3Configuration") + if err := awsRestjson1_serializeDocumentExperimentTemplateS3LogConfigurationInput(v.S3Configuration, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentCreateExperimentTemplateStopConditionInput(v *types.CreateExperimentTemplateStopConditionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -1262,6 +1302,35 @@ func awsRestjson1_serializeDocumentExperimentTemplateActionTargetMap(v map[strin return nil } +func awsRestjson1_serializeDocumentExperimentTemplateCloudWatchLogsLogConfigurationInput(v *types.ExperimentTemplateCloudWatchLogsLogConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.LogGroupArn != nil { + ok := object.Key("logGroupArn") + ok.String(*v.LogGroupArn) + } + + return nil +} + +func awsRestjson1_serializeDocumentExperimentTemplateS3LogConfigurationInput(v *types.ExperimentTemplateS3LogConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BucketName != nil { + ok := object.Key("bucketName") + ok.String(*v.BucketName) + } + + if v.Prefix != nil { + ok := object.Key("prefix") + ok.String(*v.Prefix) + } + + return nil +} + func awsRestjson1_serializeDocumentExperimentTemplateTargetFilterInputList(v []types.ExperimentTemplateTargetInputFilter, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -1390,6 +1459,32 @@ func awsRestjson1_serializeDocumentUpdateExperimentTemplateActionInputMap(v map[ return nil } +func awsRestjson1_serializeDocumentUpdateExperimentTemplateLogConfigurationInput(v *types.UpdateExperimentTemplateLogConfigurationInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CloudWatchLogsConfiguration != nil { + ok := object.Key("cloudWatchLogsConfiguration") + if err := awsRestjson1_serializeDocumentExperimentTemplateCloudWatchLogsLogConfigurationInput(v.CloudWatchLogsConfiguration, ok); err != nil { + return err + } + } + + if v.LogSchemaVersion != nil { + ok := object.Key("logSchemaVersion") + ok.Integer(*v.LogSchemaVersion) + } + + if v.S3Configuration != nil { + ok := object.Key("s3Configuration") + if err := awsRestjson1_serializeDocumentExperimentTemplateS3LogConfigurationInput(v.S3Configuration, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentUpdateExperimentTemplateStopConditionInput(v *types.UpdateExperimentTemplateStopConditionInput, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/fis/types/types.go b/service/fis/types/types.go index cb76c544587..a65580ca4a0 100644 --- a/service/fis/types/types.go +++ b/service/fis/types/types.go @@ -96,6 +96,23 @@ type CreateExperimentTemplateActionInput struct { noSmithyDocumentSerde } +// Specifies the configuration for experiment logging. +type CreateExperimentTemplateLogConfigurationInput struct { + + // The schema version. + // + // This member is required. + LogSchemaVersion *int32 + + // The configuration for experiment logging to Amazon CloudWatch Logs. + CloudWatchLogsConfiguration *ExperimentTemplateCloudWatchLogsLogConfigurationInput + + // The configuration for experiment logging to Amazon S3. + S3Configuration *ExperimentTemplateS3LogConfigurationInput + + noSmithyDocumentSerde +} + // Specifies a stop condition for an experiment template. type CreateExperimentTemplateStopConditionInput struct { @@ -176,6 +193,9 @@ type Experiment struct { // The ID of the experiment. Id *string + // The configuration for experiment logging. + LogConfiguration *ExperimentLogConfiguration + // The Amazon Resource Name (ARN) of an IAM role that grants the FIS service // permission to perform service actions on your behalf. RoleArn *string @@ -240,6 +260,43 @@ type ExperimentActionState struct { noSmithyDocumentSerde } +// Describes the configuration for experiment logging to Amazon CloudWatch Logs. +type ExperimentCloudWatchLogsLogConfiguration struct { + + // The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log + // group. + LogGroupArn *string + + noSmithyDocumentSerde +} + +// Describes the configuration for experiment logging. +type ExperimentLogConfiguration struct { + + // The configuration for experiment logging to Amazon CloudWatch Logs. + CloudWatchLogsConfiguration *ExperimentCloudWatchLogsLogConfiguration + + // The schema version. + LogSchemaVersion *int32 + + // The configuration for experiment logging to Amazon S3. + S3Configuration *ExperimentS3LogConfiguration + + noSmithyDocumentSerde +} + +// Describes the configuration for experiment logging to Amazon S3. +type ExperimentS3LogConfiguration struct { + + // The name of the destination bucket. + BucketName *string + + // The bucket prefix. + Prefix *string + + noSmithyDocumentSerde +} + // Describes the state of an experiment. type ExperimentState struct { @@ -339,6 +396,9 @@ type ExperimentTemplate struct { // The time the experiment template was last updated. LastUpdateTime *time.Time + // The configuration for experiment logging. + LogConfiguration *ExperimentTemplateLogConfiguration + // The Amazon Resource Name (ARN) of an IAM role. RoleArn *string @@ -375,6 +435,69 @@ type ExperimentTemplateAction struct { noSmithyDocumentSerde } +// Describes the configuration for experiment logging to Amazon CloudWatch Logs. +type ExperimentTemplateCloudWatchLogsLogConfiguration struct { + + // The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log + // group. + LogGroupArn *string + + noSmithyDocumentSerde +} + +// Specifies the configuration for experiment logging to Amazon CloudWatch Logs. +type ExperimentTemplateCloudWatchLogsLogConfigurationInput struct { + + // The Amazon Resource Name (ARN) of the destination Amazon CloudWatch Logs log + // group. + // + // This member is required. + LogGroupArn *string + + noSmithyDocumentSerde +} + +// Describes the configuration for experiment logging. +type ExperimentTemplateLogConfiguration struct { + + // The configuration for experiment logging to Amazon CloudWatch Logs. + CloudWatchLogsConfiguration *ExperimentTemplateCloudWatchLogsLogConfiguration + + // The schema version. + LogSchemaVersion *int32 + + // The configuration for experiment logging to Amazon S3. + S3Configuration *ExperimentTemplateS3LogConfiguration + + noSmithyDocumentSerde +} + +// Describes the configuration for experiment logging to Amazon S3. +type ExperimentTemplateS3LogConfiguration struct { + + // The name of the destination bucket. + BucketName *string + + // The bucket prefix. + Prefix *string + + noSmithyDocumentSerde +} + +// Specifies the configuration for experiment logging to Amazon S3. +type ExperimentTemplateS3LogConfigurationInput struct { + + // The name of the destination bucket. + // + // This member is required. + BucketName *string + + // The bucket prefix. + Prefix *string + + noSmithyDocumentSerde +} + // Describes a stop condition for an experiment template. type ExperimentTemplateStopCondition struct { @@ -525,6 +648,21 @@ type UpdateExperimentTemplateActionInputItem struct { noSmithyDocumentSerde } +// Specifies the configuration for experiment logging. +type UpdateExperimentTemplateLogConfigurationInput struct { + + // The configuration for experiment logging to Amazon CloudWatch Logs. + CloudWatchLogsConfiguration *ExperimentTemplateCloudWatchLogsLogConfigurationInput + + // The schema version. + LogSchemaVersion *int32 + + // The configuration for experiment logging to Amazon S3. + S3Configuration *ExperimentTemplateS3LogConfigurationInput + + noSmithyDocumentSerde +} + // Specifies a stop condition for an experiment. You can define a stop condition as // a CloudWatch alarm. type UpdateExperimentTemplateStopConditionInput struct { diff --git a/service/fis/validators.go b/service/fis/validators.go index 3c6867bddc8..c6fb2dfae34 100644 --- a/service/fis/validators.go +++ b/service/fis/validators.go @@ -331,6 +331,31 @@ func validateCreateExperimentTemplateActionInputMap(v map[string]types.CreateExp } } +func validateCreateExperimentTemplateLogConfigurationInput(v *types.CreateExperimentTemplateLogConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateExperimentTemplateLogConfigurationInput"} + if v.CloudWatchLogsConfiguration != nil { + if err := validateExperimentTemplateCloudWatchLogsLogConfigurationInput(v.CloudWatchLogsConfiguration); err != nil { + invalidParams.AddNested("CloudWatchLogsConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.S3Configuration != nil { + if err := validateExperimentTemplateS3LogConfigurationInput(v.S3Configuration); err != nil { + invalidParams.AddNested("S3Configuration", err.(smithy.InvalidParamsError)) + } + } + if v.LogSchemaVersion == nil { + invalidParams.Add(smithy.NewErrParamRequired("LogSchemaVersion")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCreateExperimentTemplateStopConditionInput(v *types.CreateExperimentTemplateStopConditionInput) error { if v == nil { return nil @@ -404,6 +429,36 @@ func validateCreateExperimentTemplateTargetInputMap(v map[string]types.CreateExp } } +func validateExperimentTemplateCloudWatchLogsLogConfigurationInput(v *types.ExperimentTemplateCloudWatchLogsLogConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ExperimentTemplateCloudWatchLogsLogConfigurationInput"} + if v.LogGroupArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("LogGroupArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateExperimentTemplateS3LogConfigurationInput(v *types.ExperimentTemplateS3LogConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ExperimentTemplateS3LogConfigurationInput"} + if v.BucketName == nil { + invalidParams.Add(smithy.NewErrParamRequired("BucketName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateExperimentTemplateTargetFilterInputList(v []types.ExperimentTemplateTargetInputFilter) error { if v == nil { return nil @@ -439,6 +494,28 @@ func validateExperimentTemplateTargetInputFilter(v *types.ExperimentTemplateTarg } } +func validateUpdateExperimentTemplateLogConfigurationInput(v *types.UpdateExperimentTemplateLogConfigurationInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateExperimentTemplateLogConfigurationInput"} + if v.CloudWatchLogsConfiguration != nil { + if err := validateExperimentTemplateCloudWatchLogsLogConfigurationInput(v.CloudWatchLogsConfiguration); err != nil { + invalidParams.AddNested("CloudWatchLogsConfiguration", err.(smithy.InvalidParamsError)) + } + } + if v.S3Configuration != nil { + if err := validateExperimentTemplateS3LogConfigurationInput(v.S3Configuration); err != nil { + invalidParams.AddNested("S3Configuration", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateUpdateExperimentTemplateStopConditionInput(v *types.UpdateExperimentTemplateStopConditionInput) error { if v == nil { return nil @@ -545,6 +622,11 @@ func validateOpCreateExperimentTemplateInput(v *CreateExperimentTemplateInput) e if v.RoleArn == nil { invalidParams.Add(smithy.NewErrParamRequired("RoleArn")) } + if v.LogConfiguration != nil { + if err := validateCreateExperimentTemplateLogConfigurationInput(v.LogConfiguration); err != nil { + invalidParams.AddNested("LogConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -726,6 +808,11 @@ func validateOpUpdateExperimentTemplateInput(v *UpdateExperimentTemplateInput) e invalidParams.AddNested("Targets", err.(smithy.InvalidParamsError)) } } + if v.LogConfiguration != nil { + if err := validateUpdateExperimentTemplateLogConfigurationInput(v.LogConfiguration); err != nil { + invalidParams.AddNested("LogConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/fsx/api_op_CreateDataRepositoryAssociation.go b/service/fsx/api_op_CreateDataRepositoryAssociation.go index c2fd45ff2bb..dafa9692eb1 100644 --- a/service/fsx/api_op_CreateDataRepositoryAssociation.go +++ b/service/fsx/api_op_CreateDataRepositoryAssociation.go @@ -61,7 +61,10 @@ type CreateDataRepositoryAssociationInput struct { // link another data repository with file system path /ns1/ns2. This path specifies // where in your file system files will be exported from or imported to. This file // system directory can be linked to only one Amazon S3 bucket, and no other S3 - // bucket can be linked to the directory. + // bucket can be linked to the directory. If you specify only a forward slash (/) + // as the file system path, you can link only 1 data repository to the file system. + // You can only specify "/" as the file system path for the first data repository + // associated with a file system. // // This member is required. FileSystemPath *string diff --git a/service/fsx/api_op_CreateFileSystemFromBackup.go b/service/fsx/api_op_CreateFileSystemFromBackup.go index 8c5e7abe1f1..cb300fae9b5 100644 --- a/service/fsx/api_op_CreateFileSystemFromBackup.go +++ b/service/fsx/api_op_CreateFileSystemFromBackup.go @@ -15,31 +15,30 @@ import ( // Creates a new Amazon FSx for Lustre, Amazon FSx for Windows File Server, or // Amazon FSx for OpenZFS file system from an existing Amazon FSx backup. If a file // system with the specified client request token exists and the parameters match, -// this operation returns the description of the file system. If a client request -// token with the specified by the file system exists and the parameters don't -// match, this call returns IncompatibleParameterError. If a file system with the -// specified client request token doesn't exist, this operation does the -// following: +// this operation returns the description of the file system. If a file system with +// the specified client request token exists but the parameters don't match, this +// call returns IncompatibleParameterError. If a file system with the specified +// client request token doesn't exist, this operation does the following: // -// * Creates a new Amazon FSx file system from backup with an assigned -// ID, and an initial lifecycle state of CREATING. +// * +// Creates a new Amazon FSx file system from backup with an assigned ID, and an +// initial lifecycle state of CREATING. // -// * Returns the description of -// the file system. +// * Returns the description of the file +// system. // -// Parameters like the Active Directory, default share name, -// automatic backup, and backup settings default to the parameters of the file -// system that was backed up, unless overridden. You can explicitly supply other -// settings. By using the idempotent operation, you can retry a -// CreateFileSystemFromBackup call without the risk of creating an extra file -// system. This approach can be useful when an initial call fails in a way that -// makes it unclear whether a file system was created. Examples are if a transport -// level timeout occurred, or your connection was reset. If you use the same client -// request token and the initial call created a file system, the client receives a -// success message as long as the parameters are the same. The -// CreateFileSystemFromBackup call returns while the file system's lifecycle state -// is still CREATING. You can check the file-system creation status by calling the -// DescribeFileSystems +// Parameters like the Active Directory, default share name, automatic +// backup, and backup settings default to the parameters of the file system that +// was backed up, unless overridden. You can explicitly supply other settings. By +// using the idempotent operation, you can retry a CreateFileSystemFromBackup call +// without the risk of creating an extra file system. This approach can be useful +// when an initial call fails in a way that makes it unclear whether a file system +// was created. Examples are if a transport level timeout occurred, or your +// connection was reset. If you use the same client request token and the initial +// call created a file system, the client receives a success message as long as the +// parameters are the same. The CreateFileSystemFromBackup call returns while the +// file system's lifecycle state is still CREATING. You can check the file-system +// creation status by calling the DescribeFileSystems // (https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html) // operation, which returns the file system state along with other information. func (c *Client) CreateFileSystemFromBackup(ctx context.Context, params *CreateFileSystemFromBackupInput, optFns ...func(*Options)) (*CreateFileSystemFromBackupOutput, error) { diff --git a/service/fsx/api_op_CreateSnapshot.go b/service/fsx/api_op_CreateSnapshot.go index b7c529b864b..3098cee82dc 100644 --- a/service/fsx/api_op_CreateSnapshot.go +++ b/service/fsx/api_op_CreateSnapshot.go @@ -12,30 +12,29 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a snapshot of an existing Amazon FSx for OpenZFS file system. With -// snapshots, you can easily undo file changes and compare file versions by -// restoring the volume to a previous version. If a snapshot with the specified -// client request token exists, and the parameters match, this operation returns -// the description of the existing snapshot. If a snapshot with the specified -// client request token exists, and the parameters don't match, this operation -// returns IncompatibleParameterError. If a snapshot with the specified client -// request token doesn't exist, CreateSnapshot does the following: +// Creates a snapshot of an existing Amazon FSx for OpenZFS volume. With snapshots, +// you can easily undo file changes and compare file versions by restoring the +// volume to a previous version. If a snapshot with the specified client request +// token exists, and the parameters match, this operation returns the description +// of the existing snapshot. If a snapshot with the specified client request token +// exists, and the parameters don't match, this operation returns +// IncompatibleParameterError. If a snapshot with the specified client request +// token doesn't exist, CreateSnapshot does the following: // -// * Creates a new -// OpenZFS snapshot with an assigned ID, and an initial lifecycle state of -// CREATING. +// * Creates a new OpenZFS +// snapshot with an assigned ID, and an initial lifecycle state of CREATING. // -// * Returns the description of the snapshot. +// * +// Returns the description of the snapshot. // -// By using the idempotent -// operation, you can retry a CreateSnapshot operation without the risk of creating -// an extra snapshot. This approach can be useful when an initial call fails in a -// way that makes it unclear whether a snapshot was created. If you use the same -// client request token and the initial call created a snapshot, the operation -// returns a successful result because all the parameters are the same. The -// CreateSnapshot operation returns while the snapshot's lifecycle state is still -// CREATING. You can check the snapshot creation status by calling the -// DescribeSnapshots +// By using the idempotent operation, you +// can retry a CreateSnapshot operation without the risk of creating an extra +// snapshot. This approach can be useful when an initial call fails in a way that +// makes it unclear whether a snapshot was created. If you use the same client +// request token and the initial call created a snapshot, the operation returns a +// successful result because all the parameters are the same. The CreateSnapshot +// operation returns while the snapshot's lifecycle state is still CREATING. You +// can check the snapshot creation status by calling the DescribeSnapshots // (https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeSnapshots.html) // operation, which returns the snapshot state along with other information. func (c *Client) CreateSnapshot(ctx context.Context, params *CreateSnapshotInput, optFns ...func(*Options)) (*CreateSnapshotOutput, error) { diff --git a/service/fsx/api_op_CreateVolume.go b/service/fsx/api_op_CreateVolume.go index ea0bb51bf7d..c8e06911cf9 100644 --- a/service/fsx/api_op_CreateVolume.go +++ b/service/fsx/api_op_CreateVolume.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS storage volume. +// Creates an FSx for ONTAP or Amazon FSx for OpenZFS storage volume. func (c *Client) CreateVolume(ctx context.Context, params *CreateVolumeInput, optFns ...func(*Options)) (*CreateVolumeOutput, error) { if params == nil { params = &CreateVolumeInput{} diff --git a/service/fsx/api_op_DeleteSnapshot.go b/service/fsx/api_op_DeleteSnapshot.go index d4863de61bc..7d8bb2f9039 100644 --- a/service/fsx/api_op_DeleteSnapshot.go +++ b/service/fsx/api_op_DeleteSnapshot.go @@ -12,10 +12,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes the Amazon FSx snapshot. After deletion, the snapshot no longer exists, -// and its data is gone. Deleting a snapshot doesn't affect snapshots stored in a -// file system backup. The DeleteSnapshot operation returns instantly. The snapshot -// appears with the lifecycle status of DELETING until the deletion is complete. +// Deletes an Amazon FSx for OpenZFS snapshot. After deletion, the snapshot no +// longer exists, and its data is gone. Deleting a snapshot doesn't affect +// snapshots stored in a file system backup. The DeleteSnapshot operation returns +// instantly. The snapshot appears with the lifecycle status of DELETING until the +// deletion is complete. func (c *Client) DeleteSnapshot(ctx context.Context, params *DeleteSnapshotInput, optFns ...func(*Options)) (*DeleteSnapshotOutput, error) { if params == nil { params = &DeleteSnapshotInput{} diff --git a/service/fsx/api_op_DescribeSnapshots.go b/service/fsx/api_op_DescribeSnapshots.go index 6d350b297d3..defc14088b0 100644 --- a/service/fsx/api_op_DescribeSnapshots.go +++ b/service/fsx/api_op_DescribeSnapshots.go @@ -12,26 +12,27 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Returns the description of specific Amazon FSx snapshots, if a SnapshotIds value -// is provided. Otherwise, this operation returns all snapshots owned by your -// Amazon Web Services account in the Amazon Web Services Region of the endpoint -// that you're calling. When retrieving all snapshots, you can optionally specify -// the MaxResults parameter to limit the number of snapshots in a response. If more -// backups remain, Amazon FSx returns a NextToken value in the response. In this -// case, send a later request with the NextToken request parameter set to the value -// of NextToken from the last response. Use this operation in an iterative process -// to retrieve a list of your snapshots. DescribeSnapshots is called first without -// a NextToken value. Then the operation continues to be called with the NextToken -// parameter set to the value of the last NextToken value until a response has no -// NextToken value. When using this operation, keep the following in mind: +// Returns the description of specific Amazon FSx for OpenZFS snapshots, if a +// SnapshotIds value is provided. Otherwise, this operation returns all snapshots +// owned by your Amazon Web Services account in the Amazon Web Services Region of +// the endpoint that you're calling. When retrieving all snapshots, you can +// optionally specify the MaxResults parameter to limit the number of snapshots in +// a response. If more backups remain, Amazon FSx returns a NextToken value in the +// response. In this case, send a later request with the NextToken request +// parameter set to the value of NextToken from the last response. Use this +// operation in an iterative process to retrieve a list of your snapshots. +// DescribeSnapshots is called first without a NextToken value. Then the operation +// continues to be called with the NextToken parameter set to the value of the last +// NextToken value until a response has no NextToken value. When using this +// operation, keep the following in mind: // -// * The -// operation might return fewer than the MaxResults value of snapshot descriptions -// while still including a NextToken value. +// * The operation might return fewer than +// the MaxResults value of snapshot descriptions while still including a NextToken +// value. // -// * The order of snapshots returned in -// the response of one DescribeSnapshots call and the order of backups returned -// across the responses of a multi-call iteration is unspecified. +// * The order of snapshots returned in the response of one +// DescribeSnapshots call and the order of backups returned across the responses of +// a multi-call iteration is unspecified. func (c *Client) DescribeSnapshots(ctx context.Context, params *DescribeSnapshotsInput, optFns ...func(*Options)) (*DescribeSnapshotsOutput, error) { if params == nil { params = &DescribeSnapshotsInput{} diff --git a/service/fsx/api_op_UpdateSnapshot.go b/service/fsx/api_op_UpdateSnapshot.go index 0150c7c5fb9..14890039e43 100644 --- a/service/fsx/api_op_UpdateSnapshot.go +++ b/service/fsx/api_op_UpdateSnapshot.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the name of a snapshot. +// Updates the name of an Amazon FSx for OpenZFS snapshot. func (c *Client) UpdateSnapshot(ctx context.Context, params *UpdateSnapshotInput, optFns ...func(*Options)) (*UpdateSnapshotOutput, error) { if params == nil { params = &UpdateSnapshotInput{} diff --git a/service/fsx/deserializers.go b/service/fsx/deserializers.go index c4c5379c610..628c55878c5 100644 --- a/service/fsx/deserializers.go +++ b/service/fsx/deserializers.go @@ -9910,6 +9910,19 @@ func awsAwsjson11_deserializeDocumentOpenZFSVolumeConfiguration(v **types.OpenZF sv.ReadOnly = ptr.Bool(jtv) } + case "RecordSizeKiB": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected IntegerRecordSizeKiB to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.RecordSizeKiB = ptr.Int32(int32(i64)) + } + case "StorageCapacityQuotaGiB": if value != nil { jtv, ok := value.(json.Number) @@ -10307,6 +10320,11 @@ func awsAwsjson11_deserializeDocumentSnapshot(v **types.Snapshot, value interfac sv.Lifecycle = types.SnapshotLifecycle(jtv) } + case "LifecycleTransitionReason": + if err := awsAwsjson11_deserializeDocumentLifecycleTransitionReason(&sv.LifecycleTransitionReason, value); err != nil { + return err + } + case "Name": if value != nil { jtv, ok := value.(string) diff --git a/service/fsx/serializers.go b/service/fsx/serializers.go index 910b519a8d7..d048b65f0e2 100644 --- a/service/fsx/serializers.go +++ b/service/fsx/serializers.go @@ -2479,6 +2479,11 @@ func awsAwsjson11_serializeDocumentCreateOpenZFSVolumeConfiguration(v *types.Cre ok.Boolean(*v.ReadOnly) } + if v.RecordSizeKiB != nil { + ok := object.Key("RecordSizeKiB") + ok.Integer(*v.RecordSizeKiB) + } + if v.StorageCapacityQuotaGiB != nil { ok := object.Key("StorageCapacityQuotaGiB") ok.Integer(*v.StorageCapacityQuotaGiB) @@ -2613,6 +2618,13 @@ func awsAwsjson11_serializeDocumentDeleteFileSystemOpenZFSConfiguration(v *types } } + if v.Options != nil { + ok := object.Key("Options") + if err := awsAwsjson11_serializeDocumentDeleteFileSystemOpenZFSOptions(v.Options, ok); err != nil { + return err + } + } + if v.SkipFinalBackup != nil { ok := object.Key("SkipFinalBackup") ok.Boolean(*v.SkipFinalBackup) @@ -2621,6 +2633,17 @@ func awsAwsjson11_serializeDocumentDeleteFileSystemOpenZFSConfiguration(v *types return nil } +func awsAwsjson11_serializeDocumentDeleteFileSystemOpenZFSOptions(v []types.DeleteFileSystemOpenZFSOption, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(string(v[i])) + } + return nil +} + func awsAwsjson11_serializeDocumentDeleteFileSystemWindowsConfiguration(v *types.DeleteFileSystemWindowsConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -2852,6 +2875,11 @@ func awsAwsjson11_serializeDocumentOpenZFSCreateRootVolumeConfiguration(v *types ok.Boolean(*v.ReadOnly) } + if v.RecordSizeKiB != nil { + ok := object.Key("RecordSizeKiB") + ok.Integer(*v.RecordSizeKiB) + } + if v.UserAndGroupQuotas != nil { ok := object.Key("UserAndGroupQuotas") if err := awsAwsjson11_serializeDocumentOpenZFSUserAndGroupQuotas(v.UserAndGroupQuotas, ok); err != nil { @@ -3453,6 +3481,11 @@ func awsAwsjson11_serializeDocumentUpdateOpenZFSVolumeConfiguration(v *types.Upd ok.Boolean(*v.ReadOnly) } + if v.RecordSizeKiB != nil { + ok := object.Key("RecordSizeKiB") + ok.Integer(*v.RecordSizeKiB) + } + if v.StorageCapacityQuotaGiB != nil { ok := object.Key("StorageCapacityQuotaGiB") ok.Integer(*v.StorageCapacityQuotaGiB) diff --git a/service/fsx/types/enums.go b/service/fsx/types/enums.go index 0e405f04c83..a7c9f5f3053 100644 --- a/service/fsx/types/enums.go +++ b/service/fsx/types/enums.go @@ -254,6 +254,23 @@ func (DataRepositoryTaskType) Values() []DataRepositoryTaskType { } } +type DeleteFileSystemOpenZFSOption string + +// Enum values for DeleteFileSystemOpenZFSOption +const ( + DeleteFileSystemOpenZFSOptionDeleteChildVolumesAndSnapshots DeleteFileSystemOpenZFSOption = "DELETE_CHILD_VOLUMES_AND_SNAPSHOTS" +) + +// Values returns all known values for DeleteFileSystemOpenZFSOption. 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 (DeleteFileSystemOpenZFSOption) Values() []DeleteFileSystemOpenZFSOption { + return []DeleteFileSystemOpenZFSOption{ + "DELETE_CHILD_VOLUMES_AND_SNAPSHOTS", + } +} + type DeleteOpenZFSVolumeOption string // Enum values for DeleteOpenZFSVolumeOption @@ -541,6 +558,7 @@ type OpenZFSDataCompressionType string const ( OpenZFSDataCompressionTypeNone OpenZFSDataCompressionType = "NONE" OpenZFSDataCompressionTypeZstd OpenZFSDataCompressionType = "ZSTD" + OpenZFSDataCompressionTypeLz4 OpenZFSDataCompressionType = "LZ4" ) // Values returns all known values for OpenZFSDataCompressionType. Note that this @@ -550,6 +568,7 @@ func (OpenZFSDataCompressionType) Values() []OpenZFSDataCompressionType { return []OpenZFSDataCompressionType{ "NONE", "ZSTD", + "LZ4", } } diff --git a/service/fsx/types/errors.go b/service/fsx/types/errors.go index d57537f223d..78eec344a18 100644 --- a/service/fsx/types/errors.go +++ b/service/fsx/types/errors.go @@ -615,8 +615,7 @@ func (e *SourceBackupUnavailable) ErrorMessage() string { func (e *SourceBackupUnavailable) ErrorCode() string { return "SourceBackupUnavailable" } func (e *SourceBackupUnavailable) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// No Amazon FSx for NetApp ONTAP SVMs were found based upon the supplied -// parameters. +// No FSx for ONTAP SVMs were found based upon the supplied parameters. type StorageVirtualMachineNotFound struct { Message *string @@ -654,8 +653,7 @@ func (e *UnsupportedOperation) ErrorMessage() string { func (e *UnsupportedOperation) ErrorCode() string { return "UnsupportedOperation" } func (e *UnsupportedOperation) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// No Amazon FSx for NetApp ONTAP volumes were found based upon the supplied -// parameters. +// No Amazon FSx volumes were found based upon the supplied parameters. type VolumeNotFound struct { Message *string diff --git a/service/fsx/types/types.go b/service/fsx/types/types.go index 27c22fb4638..6eefb50b6a2 100644 --- a/service/fsx/types/types.go +++ b/service/fsx/types/types.go @@ -430,9 +430,9 @@ type CreateFileSystemLustreConfiguration struct { // // For more information, see Automatically import // updates from your S3 bucket - // (https://docs.aws.amazon.com/fsx/latest/LustreGuide/autoimport-data-repo.html). + // (https://docs.aws.amazon.com/fsx/latest/LustreGuide/older-deployment-types.html#legacy-auto-import-from-s3). // This parameter is not supported for file systems with the Persistent_2 - // deployment type. Instead, use CreateDataRepositoryAssociation" to create a data + // deployment type. Instead, use CreateDataRepositoryAssociation to create a data // repository association to link your Lustre file system to a data repository. AutoImportPolicy AutoImportPolicyType @@ -610,7 +610,9 @@ type CreateFileSystemOntapConfiguration struct { // Specifies the IP address range in which the endpoints to access your file system // will be created. By default, Amazon FSx selects an unused IP address range for - // you from the 198.19.* range. + // you from the 198.19.* range. The Endpoint IP address range you select for your + // file system must exist outside the VPC's CIDR range and must be at least /30 or + // larger. EndpointIpAddressRange *string // The ONTAP administrative password for the fsxadmin user with which you @@ -638,12 +640,13 @@ type CreateFileSystemOntapConfiguration struct { noSmithyDocumentSerde } -// The OpenZFS configuration properties for the file system that you are creating. +// The Amazon FSx for OpenZFS configuration properties for the file system that you +// are creating. type CreateFileSystemOpenZFSConfiguration struct { // Specifies the file system deployment type. Amazon FSx for OpenZFS supports - // SINGLE_AZ_1. SINGLE_AZ_1 is a file system configured for a single Availability - // Zone (AZ) of redundancy. + // SINGLE_AZ_1. SINGLE_AZ_1 deployment type is configured for redundancy within a + // single Availability Zone. // // This member is required. DeploymentType OpenZFSDeploymentType @@ -914,10 +917,12 @@ type CreateOpenZFSOriginSnapshotConfiguration struct { noSmithyDocumentSerde } -// Specifies the configuration of the OpenZFS volume that you are creating. +// Specifies the configuration of the Amazon FSx for OpenZFS volume that you are +// creating. type CreateOpenZFSVolumeConfiguration struct { - // The ID of the volume to use as the parent volume. + // The ID of the volume to use as the parent volume of the volume that you are + // creating. // // This member is required. ParentVolumeId *string @@ -930,16 +935,26 @@ type CreateOpenZFSVolumeConfiguration struct { // no tags are copied from the volume, regardless of this value. CopyTagsToSnapshots *bool - // Specifies the method used to compress the data on the volume. Unless the - // compression type is specified, volumes inherit the DataCompressionType value of - // their parent volume. + // Specifies the method used to compress the data on the volume. The compression + // type is NONE by default. // - // * NONE - Doesn't compress the data on the volume. + // * NONE - Doesn't compress the data on the volume. NONE + // is the default. // - // * ZSTD - // - Compresses the data in the volume using the Zstandard (ZSTD) compression - // algorithm. This algorithm reduces the amount of space used on your volume and - // has very little impact on compute resources. + // * ZSTD - Compresses the data in the volume using the Zstandard + // (ZSTD) compression algorithm. ZSTD compression provides a higher level of data + // compression and higher read throughput performance than LZ4 compression. + // + // * LZ4 + // - Compresses the data in the volume using the LZ4 compression algorithm. LZ4 + // compression provides a lower level of compression and higher write throughput + // performance than ZSTD compression. + // + // For more information about volume + // compression types and the performance of your Amazon FSx for OpenZFS file + // system, see Tips for maximizing performance + // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs) + // File system and volume settings in the Amazon FSx for OpenZFS User Guide. DataCompressionType OpenZFSDataCompressionType // The configuration object for mounting a Network File System (NFS) file system. @@ -952,13 +967,36 @@ type CreateOpenZFSVolumeConfiguration struct { // A Boolean value indicating whether the volume is read-only. ReadOnly *bool - // The maximum amount of storage in gibibytes (GiB) that the volume can use from - // its parent. You can specify a quota larger than the storage on the parent - // volume. + // Specifies the suggested block size for a volume in a ZFS dataset, in kibibytes + // (KiB). Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The + // default is 128 KiB. We recommend using the default setting for the majority of + // use cases. Generally, workloads that write in fixed small or large record sizes + // may benefit from setting a custom record size, like database workloads (small + // record size) or media streaming workloads (large record size). For additional + // guidance on when to set a custom record size, see ZFS Record size + // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#record-size-performance) + // in the Amazon FSx for OpenZFS User Guide. + RecordSizeKiB *int32 + + // Sets the maximum storage size in gibibytes (GiB) for the volume. You can specify + // a quota that is larger than the storage on the parent volume. A volume quota + // limits the amount of storage that the volume can consume to the configured + // amount, but does not guarantee the space will be available on the parent volume. + // To guarantee quota space, you must also set StorageCapacityReservationGiB. To + // not specify a storage capacity quota, set this to -1. For more information, see + // Volume properties + // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties) + // in the Amazon FSx for OpenZFS User Guide. StorageCapacityQuotaGiB *int32 - // The amount of storage in gibibytes (GiB) to reserve from the parent volume. You - // can't reserve more storage than the parent volume has reserved. + // Specifies the amount of storage in gibibytes (GiB) to reserve from the parent + // volume. Setting StorageCapacityReservationGiB guarantees that the specified + // amount of storage space on the parent volume will always be available for the + // volume. You can't reserve more storage than the parent volume has. To not + // specify a storage capacity reservation, set this to 0 or -1. For more + // information, see Volume properties + // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties) + // in the Amazon FSx for OpenZFS User Guide. StorageCapacityReservationGiB *int32 // An object specifying how much storage users or groups can use on the volume. @@ -1040,7 +1078,10 @@ type DataRepositoryAssociation struct { // link another data repository with file system path /ns1/ns2. This path specifies // where in your file system files will be exported from or imported to. This file // system directory can be linked to only one Amazon S3 bucket, and no other S3 - // bucket can be linked to the directory. + // bucket can be linked to the directory. If you specify only a forward slash (/) + // as the file system path, you can link only 1 data repository to the file system. + // You can only specify "/" as the file system path for the first data repository + // associated with a file system. FileSystemPath *string // For files imported from a data repository, this value determines the stripe @@ -1384,17 +1425,22 @@ type DeleteFileSystemLustreResponse struct { noSmithyDocumentSerde } -// The configuration object for the OpenZFS file system used in the +// The configuration object for the Amazon FSx for OpenZFS file system used in the // DeleteFileSystem operation. type DeleteFileSystemOpenZFSConfiguration struct { - // A list of Tag values, with a maximum of 50 elements. + // A list of tags to apply to the file system's final backup. FinalBackupTags []Tag + // To delete a file system if there are child volumes present below the root + // volume, use the string DELETE_CHILD_VOLUMES_AND_SNAPSHOTS. If your file system + // has child volumes and you don't use this option, the delete request will fail. + Options []DeleteFileSystemOpenZFSOption + // By default, Amazon FSx for OpenZFS takes a final backup on your behalf when the // DeleteFileSystem operation is invoked. Doing this helps protect you from data - // loss, and we highly recommend taking the final backup. If you want to skip this - // backup, use this value to do so. + // loss, and we highly recommend taking the final backup. If you want to skip + // taking a final backup, set this value to true. SkipFinalBackup *bool noSmithyDocumentSerde @@ -1888,7 +1934,10 @@ type OntapFileSystemConfiguration struct { DiskIopsConfiguration *DiskIopsConfiguration // The IP address range in which the endpoints to access your file system are - // created. + // created. The Endpoint IP address range you select for your file system must + // exist outside the VPC's CIDR range and must be at least /30 or larger. If you do + // not specify this optional parameter, Amazon FSx will automatically select a CIDR + // block for you. EndpointIpAddressRange *string // The Management and Intercluster endpoints that are used to access data or to @@ -1992,7 +2041,7 @@ type OntapVolumeConfiguration struct { type OpenZFSClientConfiguration struct { // A value that specifies who can mount the file system. You can provide a wildcard - // character (*), an IP address (0.0.0.0), or a CIDR address (192.0.2.0/24. By + // character (*), an IP address (0.0.0.0), or a CIDR address (192.0.2.0/24). By // default, Amazon FSx uses the wildcard character when specifying the client. // // This member is required. @@ -2003,14 +2052,13 @@ type OpenZFSClientConfiguration struct { // (https://linux.die.net/man/5/exports). When choosing your options, consider the // following: // - // * crossmount is used by default. If you don't specify crossmount - // when changing the client configuration, you won't be able to see or access - // snapshots in your file system's snapshot directory. + // * crossmnt is used by default. If you don't specify crossmnt when + // changing the client configuration, you won't be able to see or access snapshots + // in your file system's snapshot directory. // - // * sync is used by default. - // If you instead specify async, the system acknowledges writes before writing to - // disk. If the system crashes before the writes are finished, you lose the - // unwritten data. + // * sync is used by default. If you + // instead specify async, the system acknowledges writes before writing to disk. If + // the system crashes before the writes are finished, you lose the unwritten data. // // This member is required. Options []string @@ -2022,23 +2070,27 @@ type OpenZFSClientConfiguration struct { type OpenZFSCreateRootVolumeConfiguration struct { // A Boolean value indicating whether tags for the volume should be copied to - // snapshots. This value defaults to false. If it's set to true, all tags for the - // volume are copied to snapshots where the user doesn't specify tags. If this - // value is true and you specify one or more tags, only the specified tags are - // copied to snapshots. If you specify one or more tags when creating the snapshot, - // no tags are copied from the volume, regardless of this value. + // snapshots of the volume. This value defaults to false. If it's set to true, all + // tags for the volume are copied to snapshots where the user doesn't specify tags. + // If this value is true and you specify one or more tags, only the specified tags + // are copied to snapshots. If you specify one or more tags when creating the + // snapshot, no tags are copied from the volume, regardless of this value. CopyTagsToSnapshots *bool - // Specifies the method used to compress the data on the volume. Unless the - // compression type is specified, volumes inherit the DataCompressionType value of - // their parent volume. + // Specifies the method used to compress the data on the volume. The compression + // type is NONE by default. // - // * NONE - Doesn't compress the data on the volume. + // * NONE - Doesn't compress the data on the volume. NONE + // is the default. // - // * ZSTD - // - Compresses the data in the volume using the ZStandard (ZSTD) compression - // algorithm. This algorithm reduces the amount of space used on your volume and - // has very little impact on compute resources. + // * ZSTD - Compresses the data in the volume using the Zstandard + // (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a better + // compression ratio to minimize on-disk storage utilization. + // + // * LZ4 - Compresses + // the data in the volume using the LZ4 compression algorithm. Compared to + // Z-Standard, LZ4 is less compute-intensive and delivers higher write throughput + // speeds. DataCompressionType OpenZFSDataCompressionType // The configuration object for mounting a file system. @@ -2049,6 +2101,16 @@ type OpenZFSCreateRootVolumeConfiguration struct { // want changes to occur. ReadOnly *bool + // Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid + // values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. + // Most workloads should use the default record size. Database workflows can + // benefit from a smaller record size, while streaming workflows can benefit from a + // larger record size. For additional guidance on setting a custom record size, see + // Tips for maximizing performance + // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs) + // in the Amazon FSx for OpenZFS User Guide. + RecordSizeKiB *int32 + // An object specifying how much storage users or groups can use on the volume. UserAndGroupQuotas []OpenZFSUserOrGroupQuota @@ -2101,7 +2163,7 @@ type OpenZFSFileSystemConfiguration struct { RootVolumeId *string // The throughput of an Amazon FSx file system, measured in megabytes per second - // (MBps), in 2 to the nth increments, between 2^3 (8) and 2^11 (2048). + // (MBps). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s. ThroughputCapacity *int32 // A recurring weekly time, in the format D:HH:MM. D is the day of the week, for @@ -2115,7 +2177,7 @@ type OpenZFSFileSystemConfiguration struct { noSmithyDocumentSerde } -// The Network File System NFS) configurations for mounting an Amazon FSx for +// The Network File System (NFS) configurations for mounting an Amazon FSx for // OpenZFS file system. type OpenZFSNfsExport struct { @@ -2187,16 +2249,20 @@ type OpenZFSVolumeConfiguration struct { // no tags are copied from the volume, regardless of this value. CopyTagsToSnapshots *bool - // The method used to compress the data on the volume. Unless a compression type is - // specified, volumes inherit the DataCompressionType value of their parent - // volume. + // Specifies the method used to compress the data on the volume. The compression + // type is NONE by default. + // + // * NONE - Doesn't compress the data on the volume. NONE + // is the default. // - // * NONE - Doesn't compress the data on the volume. + // * ZSTD - Compresses the data in the volume using the Zstandard + // (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a better + // compression ratio to minimize on-disk storage utilization. // - // * ZSTD - Compresses - // the data in the volume using the Zstandard (ZSTD) compression algorithm. This - // algorithm reduces the amount of space used on your volume and has very little - // impact on compute resources. + // * LZ4 - Compresses + // the data in the volume using the LZ4 compression algorithm. Compared to + // Z-Standard, LZ4 is less compute-intensive and delivers higher write throughput + // speeds. DataCompressionType OpenZFSDataCompressionType // The configuration object for mounting a Network File System (NFS) file system. @@ -2212,6 +2278,12 @@ type OpenZFSVolumeConfiguration struct { // A Boolean value indicating whether the volume is read-only. ReadOnly *bool + // The record size of an OpenZFS volume, in kibibytes (KiB). Valid values are 4, 8, + // 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. Most workloads + // should use the default record size. For guidance on when to set a custom record + // size, see the Amazon FSx for OpenZFS User Guide. + RecordSizeKiB *int32 + // The maximum amount of storage in gibibtyes (GiB) that the volume can use from // its parent. You can specify a quota larger than the storage on the parent // volume. @@ -2383,6 +2455,9 @@ type Snapshot struct { // fully available. Lifecycle SnapshotLifecycle + // Describes why a resource lifecycle state changed. + LifecycleTransitionReason *LifecycleTransitionReason + // The name of the snapshot. Name *string @@ -2771,7 +2846,7 @@ type UpdateFileSystemOpenZFSConfiguration struct { DiskIopsConfiguration *DiskIopsConfiguration // The throughput of an Amazon FSx file system, measured in megabytes per second - // (MBps), in 2 to the nth increments, between 2^3 (8) and 2^12 (4096). + // (MBps). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s. ThroughputCapacity *int32 // A recurring weekly time, in the format D:HH:MM. D is the day of the week, for @@ -2856,16 +2931,20 @@ type UpdateOntapVolumeConfiguration struct { // updating. type UpdateOpenZFSVolumeConfiguration struct { - // Specifies the method used to compress the data on the volume. Unless the - // compression type is specified, volumes inherit the DataCompressionType value of - // their parent volume. + // Specifies the method used to compress the data on the volume. The compression + // type is NONE by default. + // + // * NONE - Doesn't compress the data on the volume. NONE + // is the default. // - // * NONE - Doesn't compress the data on the volume. + // * ZSTD - Compresses the data in the volume using the Zstandard + // (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a better + // compression ratio to minimize on-disk storage utilization. // - // * ZSTD - // - Compresses the data in the volume using the Zstandard (ZSTD) compression - // algorithm. This algorithm reduces the amount of space used on your volume and - // has very little impact on compute resources. + // * LZ4 - Compresses + // the data in the volume using the LZ4 compression algorithm. Compared to + // Z-Standard, LZ4 is less compute-intensive and delivers higher write throughput + // speeds. DataCompressionType OpenZFSDataCompressionType // The configuration object for mounting a Network File System (NFS) file system. @@ -2874,13 +2953,25 @@ type UpdateOpenZFSVolumeConfiguration struct { // A Boolean value indicating whether the volume is read-only. ReadOnly *bool + // Specifies the record size of an OpenZFS volume, in kibibytes (KiB). Valid values + // are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128 KiB. Most + // workloads should use the default record size. Database workflows can benefit + // from a smaller record size, while streaming workflows can benefit from a larger + // record size. For additional guidance on when to set a custom record size, see + // Tips for maximizing performance + // (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs) + // in the Amazon FSx for OpenZFS User Guide. + RecordSizeKiB *int32 + // The maximum amount of storage in gibibytes (GiB) that the volume can use from // its parent. You can specify a quota larger than the storage on the parent - // volume. + // volume. You can specify a value of -1 to unset a volume's storage capacity + // quota. StorageCapacityQuotaGiB *int32 // The amount of storage in gibibytes (GiB) to reserve from the parent volume. You - // can't reserve more storage than the parent volume has reserved. + // can't reserve more storage than the parent volume has reserved. You can specify + // a value of -1 to unset a volume's storage capacity reservation. StorageCapacityReservationGiB *int32 // An object specifying how much storage users or groups can use on the volume. diff --git a/service/kafkaconnect/api_op_DeleteCustomPlugin.go b/service/kafkaconnect/api_op_DeleteCustomPlugin.go new file mode 100644 index 00000000000..496c35c47ea --- /dev/null +++ b/service/kafkaconnect/api_op_DeleteCustomPlugin.go @@ -0,0 +1,125 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package kafkaconnect + +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/kafkaconnect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Deletes a custom plugin. +func (c *Client) DeleteCustomPlugin(ctx context.Context, params *DeleteCustomPluginInput, optFns ...func(*Options)) (*DeleteCustomPluginOutput, error) { + if params == nil { + params = &DeleteCustomPluginInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteCustomPlugin", params, optFns, c.addOperationDeleteCustomPluginMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteCustomPluginOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteCustomPluginInput struct { + + // The Amazon Resource Name (ARN) of the custom plugin that you want to delete. + // + // This member is required. + CustomPluginArn *string + + noSmithyDocumentSerde +} + +type DeleteCustomPluginOutput struct { + + // The Amazon Resource Name (ARN) of the custom plugin that you requested to + // delete. + CustomPluginArn *string + + // The state of the custom plugin. + CustomPluginState types.CustomPluginState + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteCustomPluginMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDeleteCustomPlugin{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDeleteCustomPlugin{}, 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 = addOpDeleteCustomPluginValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteCustomPlugin(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_opDeleteCustomPlugin(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "kafkaconnect", + OperationName: "DeleteCustomPlugin", + } +} diff --git a/service/kafkaconnect/api_op_DescribeConnector.go b/service/kafkaconnect/api_op_DescribeConnector.go index 0e17b3f4e1d..117474ee6de 100644 --- a/service/kafkaconnect/api_op_DescribeConnector.go +++ b/service/kafkaconnect/api_op_DescribeConnector.go @@ -89,6 +89,9 @@ type DescribeConnectorOutput struct { // Amazon Web Services resources. ServiceExecutionRoleArn *string + // Details about the state of a connector. + StateDescription *types.StateDescription + // Specifies which worker configuration was used for the connector. WorkerConfiguration *types.WorkerConfigurationDescription diff --git a/service/kafkaconnect/api_op_DescribeCustomPlugin.go b/service/kafkaconnect/api_op_DescribeCustomPlugin.go index 04233968cd9..90130de3cce 100644 --- a/service/kafkaconnect/api_op_DescribeCustomPlugin.go +++ b/service/kafkaconnect/api_op_DescribeCustomPlugin.go @@ -59,6 +59,9 @@ type DescribeCustomPluginOutput struct { // The name of the custom plugin. Name *string + // Details about the state of a custom plugin. + StateDescription *types.StateDescription + // Metadata pertaining to the operation's result. ResultMetadata middleware.Metadata diff --git a/service/kafkaconnect/deserializers.go b/service/kafkaconnect/deserializers.go index 6b68f8a6068..84eb041e6c8 100644 --- a/service/kafkaconnect/deserializers.go +++ b/service/kafkaconnect/deserializers.go @@ -789,6 +789,184 @@ func awsRestjson1_deserializeOpDocumentDeleteConnectorOutput(v **DeleteConnector return nil } +type awsRestjson1_deserializeOpDeleteCustomPlugin struct { +} + +func (*awsRestjson1_deserializeOpDeleteCustomPlugin) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDeleteCustomPlugin) HandleDeserialize(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_deserializeOpErrorDeleteCustomPlugin(response, &metadata) + } + output := &DeleteCustomPluginOutput{} + 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_deserializeOpDocumentDeleteCustomPluginOutput(&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_deserializeOpErrorDeleteCustomPlugin(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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("ForbiddenException", errorCode): + return awsRestjson1_deserializeErrorForbiddenException(response, errorBody) + + case strings.EqualFold("InternalServerErrorException", errorCode): + return awsRestjson1_deserializeErrorInternalServerErrorException(response, errorBody) + + case strings.EqualFold("NotFoundException", errorCode): + return awsRestjson1_deserializeErrorNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceUnavailableException", errorCode): + return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody) + + case strings.EqualFold("TooManyRequestsException", errorCode): + return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody) + + case strings.EqualFold("UnauthorizedException", errorCode): + return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDeleteCustomPluginOutput(v **DeleteCustomPluginOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteCustomPluginOutput + if *v == nil { + sv = &DeleteCustomPluginOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "customPluginArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.CustomPluginArn = ptr.String(jtv) + } + + case "customPluginState": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected CustomPluginState to be of type string, got %T instead", value) + } + sv.CustomPluginState = types.CustomPluginState(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDescribeConnector struct { } @@ -1051,6 +1229,11 @@ func awsRestjson1_deserializeOpDocumentDescribeConnectorOutput(v **DescribeConne sv.ServiceExecutionRoleArn = ptr.String(jtv) } + case "stateDescription": + if err := awsRestjson1_deserializeDocumentStateDescription(&sv.StateDescription, value); err != nil { + return err + } + case "workerConfiguration": if err := awsRestjson1_deserializeDocumentWorkerConfigurationDescription(&sv.WorkerConfiguration, value); err != nil { return err @@ -1270,6 +1453,11 @@ func awsRestjson1_deserializeOpDocumentDescribeCustomPluginOutput(v **DescribeCu sv.Name = ptr.String(jtv) } + case "stateDescription": + if err := awsRestjson1_deserializeDocumentStateDescription(&sv.StateDescription, value); err != nil { + return err + } + default: _, _ = key, value @@ -4087,6 +4275,55 @@ func awsRestjson1_deserializeDocumentServiceUnavailableException(v **types.Servi return nil } +func awsRestjson1_deserializeDocumentStateDescription(v **types.StateDescription, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StateDescription + if *v == nil { + sv = &types.StateDescription{} + } 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 __string 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 __string to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentTooManyRequestsException(v **types.TooManyRequestsException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/kafkaconnect/generated.json b/service/kafkaconnect/generated.json index 1ee7a3aac0d..eafe80a04f0 100644 --- a/service/kafkaconnect/generated.json +++ b/service/kafkaconnect/generated.json @@ -12,6 +12,7 @@ "api_op_CreateCustomPlugin.go", "api_op_CreateWorkerConfiguration.go", "api_op_DeleteConnector.go", + "api_op_DeleteCustomPlugin.go", "api_op_DescribeConnector.go", "api_op_DescribeCustomPlugin.go", "api_op_DescribeWorkerConfiguration.go", diff --git a/service/kafkaconnect/serializers.go b/service/kafkaconnect/serializers.go index 69a623030e6..de18e8a8c17 100644 --- a/service/kafkaconnect/serializers.go +++ b/service/kafkaconnect/serializers.go @@ -378,6 +378,64 @@ func awsRestjson1_serializeOpHttpBindingsDeleteConnectorInput(v *DeleteConnector return nil } +type awsRestjson1_serializeOpDeleteCustomPlugin struct { +} + +func (*awsRestjson1_serializeOpDeleteCustomPlugin) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDeleteCustomPlugin) 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.(*DeleteCustomPluginInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/v1/custom-plugins/{customPluginArn}") + 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_serializeOpHttpBindingsDeleteCustomPluginInput(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_serializeOpHttpBindingsDeleteCustomPluginInput(v *DeleteCustomPluginInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.CustomPluginArn == nil || len(*v.CustomPluginArn) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member customPluginArn must not be empty")} + } + if v.CustomPluginArn != nil { + if err := encoder.SetURI("customPluginArn").String(*v.CustomPluginArn); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpDescribeConnector struct { } diff --git a/service/kafkaconnect/types/types.go b/service/kafkaconnect/types/types.go index 02c20217d34..520db710fd4 100644 --- a/service/kafkaconnect/types/types.go +++ b/service/kafkaconnect/types/types.go @@ -669,6 +669,18 @@ type ScaleOutPolicyUpdate struct { noSmithyDocumentSerde } +// Details about the state of a resource. +type StateDescription struct { + + // A code that describes the state of a resource. + Code *string + + // A message that describes the state of a resource. + Message *string + + noSmithyDocumentSerde +} + // Information about the VPC in which the connector resides. type Vpc struct { diff --git a/service/kafkaconnect/validators.go b/service/kafkaconnect/validators.go index df8ab7e4b15..f28a6cfb556 100644 --- a/service/kafkaconnect/validators.go +++ b/service/kafkaconnect/validators.go @@ -90,6 +90,26 @@ func (m *validateOpDeleteConnector) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpDeleteCustomPlugin struct { +} + +func (*validateOpDeleteCustomPlugin) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteCustomPlugin) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteCustomPluginInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteCustomPluginInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeConnector struct { } @@ -186,6 +206,10 @@ func addOpDeleteConnectorValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDeleteConnector{}, middleware.After) } +func addOpDeleteCustomPluginValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteCustomPlugin{}, middleware.After) +} + func addOpDescribeConnectorValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeConnector{}, middleware.After) } @@ -764,6 +788,21 @@ func validateOpDeleteConnectorInput(v *DeleteConnectorInput) error { } } +func validateOpDeleteCustomPluginInput(v *DeleteCustomPluginInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteCustomPluginInput"} + if v.CustomPluginArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("CustomPluginArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeConnectorInput(v *DescribeConnectorInput) error { if v == nil { return nil diff --git a/service/kendra/api_op_CreateDataSource.go b/service/kendra/api_op_CreateDataSource.go index 99f187877c7..a5e87455c14 100644 --- a/service/kendra/api_op_CreateDataSource.go +++ b/service/kendra/api_op_CreateDataSource.go @@ -59,10 +59,10 @@ type CreateDataSourceInput struct { // create only one data source. ClientToken *string - // The connector configuration information that is required to access the - // repository. You can't specify the Configuration parameter when the Type - // parameter is set to CUSTOM. If you do, you receive a ValidationException - // exception. The Configuration parameter is required for all other data sources. + // Configuration information that is required to access the data source repository. + // You can't specify the Configuration parameter when the Type parameter is set to + // CUSTOM. If you do, you receive a ValidationException exception. The + // Configuration parameter is required for all other data sources. Configuration *types.DataSourceConfiguration // Configuration information for altering document metadata and content during the diff --git a/service/kendra/api_op_CreateExperience.go b/service/kendra/api_op_CreateExperience.go index bfddc4b2a96..83dd18e5a57 100644 --- a/service/kendra/api_op_CreateExperience.go +++ b/service/kendra/api_op_CreateExperience.go @@ -48,10 +48,10 @@ type CreateExperienceInput struct { // token creates only one Amazon Kendra experience. ClientToken *string - // Provides the configuration information for your Amazon Kendra experience. This - // includes ContentSourceConfiguration, which specifies the data source IDs and/or - // FAQ IDs, and UserIdentityConfiguration, which specifies the user or group - // information to grant access to your Amazon Kendra experience. + // Configuration information for your Amazon Kendra experience. This includes + // ContentSourceConfiguration, which specifies the data source IDs and/or FAQ IDs, + // and UserIdentityConfiguration, which specifies the user or group information to + // grant access to your Amazon Kendra experience. Configuration *types.ExperienceConfiguration // A description for your Amazon Kendra experience. diff --git a/service/kendra/api_op_DescribeDataSource.go b/service/kendra/api_op_DescribeDataSource.go index 11fa85a6225..95da7f7ec69 100644 --- a/service/kendra/api_op_DescribeDataSource.go +++ b/service/kendra/api_op_DescribeDataSource.go @@ -45,9 +45,8 @@ type DescribeDataSourceInput struct { type DescribeDataSourceOutput struct { - // Information that describes where the data source is located and how the data - // source is configured. The specific information in the description depends on the - // data source provider. + // Describes how the data source is configured. The specific information in the + // description depends on the data source provider. Configuration *types.DataSourceConfiguration // The Unix timestamp of when the data source was created. diff --git a/service/kendra/api_op_ListIndices.go b/service/kendra/api_op_ListIndices.go index 9c1422590a6..1e994da51d6 100644 --- a/service/kendra/api_op_ListIndices.go +++ b/service/kendra/api_op_ListIndices.go @@ -44,7 +44,7 @@ type ListIndicesInput struct { type ListIndicesOutput struct { - // An array of summary information for one or more indexes. + // An array of summary information on the configuration of one or more indexes. IndexConfigurationSummaryItems []types.IndexConfigurationSummary // If the response is truncated, Amazon Kendra returns this token that you can use diff --git a/service/kendra/api_op_Query.go b/service/kendra/api_op_Query.go index 3c0462e9c53..f19a04a04b3 100644 --- a/service/kendra/api_op_Query.go +++ b/service/kendra/api_op_Query.go @@ -104,6 +104,9 @@ type QueryInput struct { // that Amazon Kendra determines for the result. SortingConfiguration *types.SortingConfiguration + // Enables suggested spell corrections for queries. + SpellCorrectionConfiguration *types.SpellCorrectionConfiguration + // The user context token or user and group information. UserContext *types.UserContext @@ -128,6 +131,9 @@ type QueryOutput struct { // The results of the search. ResultItems []types.QueryResultItem + // A list of information related to suggested spell corrections for a query. + SpellCorrectedQueries []types.SpellCorrectedQuery + // The total number of items found by the search; however, you can only retrieve up // to 100 items. For example, if the search found 192 items, you can only retrieve // the first 100 of the items. diff --git a/service/kendra/api_op_UpdateDataSource.go b/service/kendra/api_op_UpdateDataSource.go index e870e05fbd5..8ee9882a26e 100644 --- a/service/kendra/api_op_UpdateDataSource.go +++ b/service/kendra/api_op_UpdateDataSource.go @@ -39,7 +39,7 @@ type UpdateDataSourceInput struct { // This member is required. IndexId *string - // Configuration information for an Amazon Kendra data source. + // Configuration information for an Amazon Kendra data source you want to update. Configuration *types.DataSourceConfiguration // Configuration information for altering document metadata and content during the diff --git a/service/kendra/api_op_UpdateExperience.go b/service/kendra/api_op_UpdateExperience.go index 2ecb3df9e44..5ef560d59fa 100644 --- a/service/kendra/api_op_UpdateExperience.go +++ b/service/kendra/api_op_UpdateExperience.go @@ -43,9 +43,7 @@ type UpdateExperienceInput struct { // This member is required. IndexId *string - // Provides the user configuration information. This includes the Amazon Web - // Services SSO field name that contains the identifiers of your users, such as - // their emails. + // Configuration information for your Amazon Kendra you want to update. Configuration *types.ExperienceConfiguration // The description of your Amazon Kendra experience you want to update. diff --git a/service/kendra/api_op_UpdateIndex.go b/service/kendra/api_op_UpdateIndex.go index 6dfb2720aea..fdbc6715611 100644 --- a/service/kendra/api_op_UpdateIndex.go +++ b/service/kendra/api_op_UpdateIndex.go @@ -43,7 +43,7 @@ type UpdateIndexInput struct { // A new description for the index. Description *string - // The document metadata to update. + // The document metadata you want to update. DocumentMetadataConfigurationUpdates []types.DocumentMetadataConfiguration // The name of the index to update. diff --git a/service/kendra/deserializers.go b/service/kendra/deserializers.go index e73be54da55..5c8db71885b 100644 --- a/service/kendra/deserializers.go +++ b/service/kendra/deserializers.go @@ -8643,6 +8643,115 @@ func awsAwsjson11_deserializeDocumentContentSourceConfiguration(v **types.Conten return nil } +func awsAwsjson11_deserializeDocumentCorrection(v **types.Correction, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Correction + if *v == nil { + sv = &types.Correction{} + } 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 "CorrectedTerm": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.CorrectedTerm = ptr.String(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 "Term": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Term = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentCorrectionList(v *[]types.Correction, 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.Correction + if *v == nil { + cv = []types.Correction{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Correction + destAddr := &col + if err := awsAwsjson11_deserializeDocumentCorrection(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentCustomDocumentEnrichmentConfiguration(v **types.CustomDocumentEnrichmentConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14250,6 +14359,85 @@ func awsAwsjson11_deserializeDocumentSnapshotsDataRecords(v *[][]string, value i return nil } +func awsAwsjson11_deserializeDocumentSpellCorrectedQuery(v **types.SpellCorrectedQuery, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SpellCorrectedQuery + if *v == nil { + sv = &types.SpellCorrectedQuery{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Corrections": + if err := awsAwsjson11_deserializeDocumentCorrectionList(&sv.Corrections, value); err != nil { + return err + } + + case "SuggestedQueryText": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SuggestedQueryText to be of type string, got %T instead", value) + } + sv.SuggestedQueryText = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentSpellCorrectedQueryList(v *[]types.SpellCorrectedQuery, 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.SpellCorrectedQuery + if *v == nil { + cv = []types.SpellCorrectedQuery{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.SpellCorrectedQuery + destAddr := &col + if err := awsAwsjson11_deserializeDocumentSpellCorrectedQuery(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsAwsjson11_deserializeDocumentSqlConfiguration(v **types.SqlConfiguration, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -17917,6 +18105,11 @@ func awsAwsjson11_deserializeOpDocumentQueryOutput(v **QueryOutput, value interf return err } + case "SpellCorrectedQueries": + if err := awsAwsjson11_deserializeDocumentSpellCorrectedQueryList(&sv.SpellCorrectedQueries, value); err != nil { + return err + } + case "TotalNumberOfResults": if value != nil { jtv, ok := value.(json.Number) diff --git a/service/kendra/serializers.go b/service/kendra/serializers.go index 97b452aca9a..ed5b1fe3304 100644 --- a/service/kendra/serializers.go +++ b/service/kendra/serializers.go @@ -5691,6 +5691,18 @@ func awsAwsjson11_serializeDocumentSortingConfiguration(v *types.SortingConfigur return nil } +func awsAwsjson11_serializeDocumentSpellCorrectionConfiguration(v *types.SpellCorrectionConfiguration, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + { + ok := object.Key("IncludeQuerySpellCheckSuggestions") + ok.Boolean(v.IncludeQuerySpellCheckSuggestions) + } + + return nil +} + func awsAwsjson11_serializeDocumentSqlConfiguration(v *types.SqlConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -7186,6 +7198,13 @@ func awsAwsjson11_serializeOpDocumentQueryInput(v *QueryInput, value smithyjson. } } + if v.SpellCorrectionConfiguration != nil { + ok := object.Key("SpellCorrectionConfiguration") + if err := awsAwsjson11_serializeDocumentSpellCorrectionConfiguration(v.SpellCorrectionConfiguration, ok); err != nil { + return err + } + } + if v.UserContext != nil { ok := object.Key("UserContext") if err := awsAwsjson11_serializeDocumentUserContext(v.UserContext, ok); err != nil { diff --git a/service/kendra/types/types.go b/service/kendra/types/types.go index 01e5c336143..7bd0c21927a 100644 --- a/service/kendra/types/types.go +++ b/service/kendra/types/types.go @@ -349,7 +349,8 @@ type ConfluenceBlogToIndexFieldMapping struct { noSmithyDocumentSerde } -// Provides configuration information for data sources that connect to Confluence. +// Provides the configuration information to connect to Confluence as your data +// source. type ConfluenceConfiguration struct { // The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the @@ -499,7 +500,7 @@ type ConfluenceSpaceToIndexFieldMapping struct { noSmithyDocumentSerde } -// Provides the information necessary to connect to a database. +// Provides the configuration information that's required to connect to a database. type ConnectionConfiguration struct { // The name of the host for the database. Can be either a string @@ -537,8 +538,8 @@ type ConnectionConfiguration struct { noSmithyDocumentSerde } -// Configuration information for your content sources, such as data sources, FAQs, -// and content indexed directly via BatchPutDocument +// Provides the configuration information for your content sources, such as data +// sources, FAQs, and content indexed directly via BatchPutDocument // (https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html). type ContentSourceConfiguration struct { @@ -556,6 +557,26 @@ type ContentSourceConfiguration struct { noSmithyDocumentSerde } +// A corrected misspelled word in a query. +type Correction struct { + + // The zero-based location in the response string or text where the corrected word + // starts. + BeginOffset *int32 + + // The string or text of a corrected misspelled word in a query. + CorrectedTerm *string + + // The zero-based location in the response string or text where the corrected word + // ends. + EndOffset *int32 + + // The string or text of a misspelled word in a query. + Term *string + + noSmithyDocumentSerde +} + // Provides the configuration information for altering document metadata and // content during the document ingestion process. For more information, see // Customizing document metadata during the ingestion process @@ -592,7 +613,7 @@ type CustomDocumentEnrichmentConfiguration struct { noSmithyDocumentSerde } -// Provides the information necessary to connect a database to an index. +// Provides the configuration information to connect to a index. type DatabaseConfiguration struct { // Information about where the index should get the document information from the @@ -601,7 +622,7 @@ type DatabaseConfiguration struct { // This member is required. ColumnConfiguration *ColumnConfiguration - // The information necessary to connect to a database. + // Configuration information that's required to connect to a database. // // This member is required. ConnectionConfiguration *ConnectionConfiguration @@ -619,44 +640,48 @@ type DatabaseConfiguration struct { // identifiers when querying a database data source. SqlConfiguration *SqlConfiguration - // Provides information for connecting to an Amazon VPC. + // Provides the configuration information to connect to an Amazon VPC. VpcConfiguration *DataSourceVpcConfiguration noSmithyDocumentSerde } -// Configuration information for an Amazon Kendra data source. +// Provides the configuration information for an Amazon Kendra data source. type DataSourceConfiguration struct { // Provides configuration information for connecting to a Confluence data source. ConfluenceConfiguration *ConfluenceConfiguration - // Provides information necessary to create a data source connector for a database. + // Provides the configuration information to connect to a database as your data + // source. DatabaseConfiguration *DatabaseConfiguration // Provides the configuration information to connect to Amazon FSx as your data // source. FsxConfiguration *FsxConfiguration - // Provides configuration for data sources that connect to Google Drive. + // Provides the configuration information to connect to Google Drive as your data + // source. GoogleDriveConfiguration *GoogleDriveConfiguration - // Provides configuration for data sources that connect to Microsoft OneDrive. + // Provides the configuration information to connect to Microsoft OneDrive as your + // data source. OneDriveConfiguration *OneDriveConfiguration - // Provides information to create a data source connector for a document repository - // in an Amazon S3 bucket. + // Provides the configuration information to connect to an Amazon S3 bucket as your + // data source. S3Configuration *S3DataSourceConfiguration - // Provides configuration information for data sources that connect to a Salesforce - // site. + // Provides the configuration information to connect to Salesforce as your data + // source. SalesforceConfiguration *SalesforceConfiguration - // Provides configuration for data sources that connect to ServiceNow instances. + // Provides the configuration information to connect to ServiceNow as your data + // source. ServiceNowConfiguration *ServiceNowConfiguration - // Provides information necessary to create a data source connector for a Microsoft - // SharePoint site. + // Provides the configuration information to connect to Microsoft SharePoint as + // your data source. SharePointConfiguration *SharePointConfiguration // Provides the configuration information required for Amazon Kendra Web Crawler. @@ -825,7 +850,7 @@ type DataSourceToIndexFieldMapping struct { noSmithyDocumentSerde } -// Provides information for connecting to an Amazon VPC. +// Provides the configuration information to connect to an Amazon VPC. type DataSourceVpcConfiguration struct { // A list of identifiers of security groups within your Amazon VPC. The security @@ -1099,7 +1124,7 @@ type DocumentsMetadataConfiguration struct { noSmithyDocumentSerde } -// Provides the configuration information of users or groups in your Amazon Web +// Provides the configuration information for users or groups in your Amazon Web // Services SSO identity source to grant access your Amazon Kendra experience. type EntityConfiguration struct { @@ -1138,7 +1163,7 @@ type EntityDisplayData struct { noSmithyDocumentSerde } -// Provides the configuration information of users or groups in your Amazon Web +// Provides the configuration information for users or groups in your Amazon Web // Services SSO identity source for access to your Amazon Kendra experience. // Specific permissions are defined for each user or group once they are granted // access to your Amazon Kendra experience. @@ -1162,7 +1187,7 @@ type EntityPersonaConfiguration struct { noSmithyDocumentSerde } -// Specifies the configuration information for your Amazon Kendra experience. This +// Provides the configuration information for your Amazon Kendra experience. This // includes the data source IDs and/or FAQ IDs, and user or group information to // grant access to your Amazon Kendra experience. type ExperienceConfiguration struct { @@ -1179,7 +1204,7 @@ type ExperienceConfiguration struct { noSmithyDocumentSerde } -// Provides the configuration information of the endpoint for your Amazon Kendra +// Provides the configuration information for the endpoint for your Amazon Kendra // experience. type ExperienceEndpoint struct { @@ -1345,9 +1370,8 @@ type FsxConfiguration struct { // This member is required. FileSystemType FsxFileSystemType - // Provides the configuration information for connecting to an Amazon Virtual - // Private Cloud for your Amazon FSx. Your Amazon FSx instance must reside inside - // your VPC. + // Configuration information for connecting to an Amazon Virtual Private Cloud for + // your Amazon FSx. Your Amazon FSx instance must reside inside your VPC. // // This member is required. VpcConfiguration *DataSourceVpcConfiguration @@ -1360,9 +1384,9 @@ type FsxConfiguration struct { ExclusionPatterns []string // A list of DataSourceToIndexFieldMapping objects that map Amazon FSx data source - // attributes or field names to Amazon Kendra index field names in Amazon Kendra. - // To create custom fields, use the UpdateIndex API before you map to Amazon FSx - // fields. For more information, see Mapping data source fields + // attributes or field names to Amazon Kendra index field names. To create custom + // fields, use the UpdateIndex API before you map to Amazon FSx fields. For more + // information, see Mapping data source fields // (https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html). The Amazon // FSx data source field names must exist in your Amazon FSx custom metadata. FieldMappings []DataSourceToIndexFieldMapping @@ -1384,15 +1408,16 @@ type FsxConfiguration struct { // Active Directory user account must have read and mounting access to the Amazon // FSx file system for Windows. // - // * password—The password of the active directory - // user with read and mounting access Amazon FSx Windows file system. + // * password—The password of the Active Directory + // user account with read and mounting access to the Amazon FSx Windows file + // system. SecretArn *string noSmithyDocumentSerde } -// Provides configuration information for data sources that connect to Google -// Drive. +// Provides the configuration information to connect to Google Drive as your data +// source. type GoogleDriveConfiguration struct { // The Amazon Resource Name (ARN) of a Secrets Managersecret that contains the @@ -1587,7 +1612,7 @@ type HookConfiguration struct { noSmithyDocumentSerde } -// A summary of information about an index. +// A summary of information on the configuration of an index. type IndexConfigurationSummary struct { // The Unix timestamp when the index was created. @@ -1660,7 +1685,7 @@ type InlineCustomDocumentEnrichmentConfiguration struct { noSmithyDocumentSerde } -// Configuration information for the JSON token type. +// Provides the configuration information for the JSON token type. type JsonTokenTypeConfiguration struct { // The group attribute field. @@ -1676,7 +1701,7 @@ type JsonTokenTypeConfiguration struct { noSmithyDocumentSerde } -// Configuration information for the JWT token type. +// Provides the configuration information for the JWT token type. type JwtTokenTypeConfiguration struct { // The location of the key. @@ -1730,7 +1755,8 @@ type MemberUser struct { noSmithyDocumentSerde } -// Provides configuration information for data sources that connect to OneDrive. +// Provides the configuration information to connect to OneDrive as your data +// source. type OneDriveConfiguration struct { // A list of user accounts whose documents should be indexed. @@ -2015,8 +2041,7 @@ type RelevanceFeedback struct { noSmithyDocumentSerde } -// Provides configuration information for a data source to index documents in an -// Amazon S3 bucket. +// Provides the configuration information to connect to an Amazon S3 bucket. type S3DataSourceConfiguration struct { // The name of the bucket that contains the documents. @@ -2089,8 +2114,8 @@ type S3Path struct { noSmithyDocumentSerde } -// Defines configuration for syncing a Salesforce chatter feed. The contents of the -// object comes from the Salesforce FeedItem table. +// The configuration information for syncing a Salesforce chatter feed. The +// contents of the object comes from the Salesforce FeedItem table. type SalesforceChatterFeedConfiguration struct { // The name of the column in the Salesforce FeedItem table that contains the @@ -2175,8 +2200,8 @@ type SalesforceConfiguration struct { // articles, but not both. KnowledgeArticleConfiguration *SalesforceKnowledgeArticleConfiguration - // Provides configuration information for processing attachments to Salesforce - // standard objects. + // Configuration information for processing attachments to Salesforce standard + // objects. StandardObjectAttachmentConfiguration *SalesforceStandardObjectAttachmentConfiguration // Specifies the Salesforce standard objects that Amazon Kendra indexes. @@ -2210,8 +2235,8 @@ type SalesforceCustomKnowledgeArticleTypeConfiguration struct { noSmithyDocumentSerde } -// Specifies configuration information for the knowledge article types that Amazon -// Kendra indexes. Amazon Kendra indexes standard knowledge articles and the +// Provides the configuration information for the knowledge article types that +// Amazon Kendra indexes. Amazon Kendra indexes standard knowledge articles and the // standard fields of knowledge articles, or the custom fields of custom knowledge // articles, but not both type SalesforceKnowledgeArticleConfiguration struct { @@ -2222,16 +2247,16 @@ type SalesforceKnowledgeArticleConfiguration struct { // This member is required. IncludedStates []SalesforceKnowledgeArticleState - // Provides configuration information for custom Salesforce knowledge articles. + // Configuration information for custom Salesforce knowledge articles. CustomKnowledgeArticleTypeConfigurations []SalesforceCustomKnowledgeArticleTypeConfiguration - // Provides configuration information for standard Salesforce knowledge articles. + // Configuration information for standard Salesforce knowledge articles. StandardKnowledgeArticleTypeConfiguration *SalesforceStandardKnowledgeArticleTypeConfiguration noSmithyDocumentSerde } -// Provides configuration information for standard Salesforce knowledge articles. +// Configuration information for standard Salesforce knowledge articles. type SalesforceStandardKnowledgeArticleTypeConfiguration struct { // The name of the field that contains the document data to index. @@ -2250,7 +2275,7 @@ type SalesforceStandardKnowledgeArticleTypeConfiguration struct { noSmithyDocumentSerde } -// Provides configuration information for processing attachments to Salesforce +// Provides the configuration information for processing attachments to Salesforce // standard objects. type SalesforceStandardObjectAttachmentConfiguration struct { @@ -2264,7 +2289,7 @@ type SalesforceStandardObjectAttachmentConfiguration struct { noSmithyDocumentSerde } -// Specifies configuration information for indexing a single standard object. +// Provides the configuration information for indexing a single standard object. type SalesforceStandardObjectConfiguration struct { // The name of the field in the standard object table that contains the document @@ -2325,7 +2350,7 @@ type Search struct { noSmithyDocumentSerde } -// Provides the configuration information of the seed or starting point URLs to +// Provides the configuration information for the seed or starting point URLs to // crawl. When selecting websites to index, you must adhere to the Amazon // Acceptable Use Policy (https://aws.amazon.com/aup/) and all other Amazon terms. // Remember that you must only use Amazon Kendra Web Crawler to index your own @@ -2369,7 +2394,7 @@ type ServerSideEncryptionConfiguration struct { noSmithyDocumentSerde } -// Provides configuration information required to connect to a ServiceNow data +// Provides the configuration information to connect to ServiceNow as your data // source. type ServiceNowConfiguration struct { @@ -2403,18 +2428,17 @@ type ServiceNowConfiguration struct { // (https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html). AuthenticationType ServiceNowAuthenticationType - // Provides configuration information for crawling knowledge articles in the - // ServiceNow site. + // Configuration information for crawling knowledge articles in the ServiceNow + // site. KnowledgeArticleConfiguration *ServiceNowKnowledgeArticleConfiguration - // Provides configuration information for crawling service catalogs in the - // ServiceNow site. + // Configuration information for crawling service catalogs in the ServiceNow site. ServiceCatalogConfiguration *ServiceNowServiceCatalogConfiguration noSmithyDocumentSerde } -// Provides configuration information for crawling knowledge articles in the +// Provides the configuration information for crawling knowledge articles in the // ServiceNow site. type ServiceNowKnowledgeArticleConfiguration struct { @@ -2455,7 +2479,7 @@ type ServiceNowKnowledgeArticleConfiguration struct { noSmithyDocumentSerde } -// Provides configuration information for crawling service catalog items in the +// Provides the configuration information for crawling service catalog items in the // ServiceNow site type ServiceNowServiceCatalogConfiguration struct { @@ -2494,8 +2518,8 @@ type ServiceNowServiceCatalogConfiguration struct { noSmithyDocumentSerde } -// Provides configuration information for connecting to a Microsoft SharePoint data -// source. +// Provides the configuration information to connect to Microsoft SharePoint as +// your data source. type SharePointConfiguration struct { // The Amazon Resource Name (ARN) of credentials stored in Secrets Manager. The @@ -2564,13 +2588,13 @@ type SharePointConfiguration struct { // document crawler. UseChangeLog bool - // Provides information for connecting to an Amazon VPC. + // Provides the configuration information to connect to an Amazon VPC. VpcConfiguration *DataSourceVpcConfiguration noSmithyDocumentSerde } -// Provides the configuration information of the sitemap URLs to crawl. When +// Provides the configuration information for the sitemap URLs to crawl. When // selecting websites to index, you must adhere to the Amazon Acceptable Use Policy // (https://aws.amazon.com/aup/) and all other Amazon terms. Remember that you must // only use Amazon Kendra Web Crawler to index your own webpages, or webpages that @@ -2631,7 +2655,36 @@ type SortingConfiguration struct { noSmithyDocumentSerde } -// Provides information that configures Amazon Kendra to use a SQL database. +// A query with suggested spell corrections. +type SpellCorrectedQuery struct { + + // The corrected misspelled word or words in a query. + Corrections []Correction + + // The query with the suggested spell corrections. + SuggestedQueryText *string + + noSmithyDocumentSerde +} + +// Provides the configuration information for suggested query spell corrections. +// Suggested spell corrections are based on words that appear in your indexed +// documents and how closely a corrected word matches a misspelled word. This +// feature is designed with certain defaults or limits. For information on the +// current limits and how to request more support for some limits, see the Spell +// Checker documentation +// (https://docs.aws.amazon.com/kendra/latest/dg/query-spell-check.html). +type SpellCorrectionConfiguration struct { + + // TRUE to suggest spell corrections for queries. + // + // This member is required. + IncludeQuerySpellCheckSuggestions bool + + noSmithyDocumentSerde +} + +// Provides the configuration information to use a SQL database. type SqlConfiguration struct { // Determines whether Amazon Kendra encloses SQL identifiers for tables and column @@ -2808,15 +2861,15 @@ type TimeRange struct { // index. type Urls struct { - // Provides the configuration of the seed or starting point URLs of the websites - // you want to crawl. You can choose to crawl only the website host names, or the - // website host names with subdomains, or the website host names with subdomains - // and other domains that the webpages link to. You can list up to 100 seed URLs. + // Configuration of the seed or starting point URLs of the websites you want to + // crawl. You can choose to crawl only the website host names, or the website host + // names with subdomains, or the website host names with subdomains and other + // domains that the webpages link to. You can list up to 100 seed URLs. SeedUrlConfiguration *SeedUrlConfiguration - // Provides the configuration of the sitemap URLs of the websites you want to - // crawl. Only URLs belonging to the same website host names are crawled. You can - // list up to three sitemap URLs. + // Configuration of the sitemap URLs of the websites you want to crawl. Only URLs + // belonging to the same website host names are crawled. You can list up to three + // sitemap URLs. SiteMapsConfiguration *SiteMapsConfiguration noSmithyDocumentSerde @@ -2885,7 +2938,7 @@ type UserGroupResolutionConfiguration struct { noSmithyDocumentSerde } -// Configuration information for the identifiers of your users. +// Provides the configuration information for the identifiers of your users. type UserIdentityConfiguration struct { // The Amazon Web Services SSO field name that contains the identifiers of your @@ -2901,7 +2954,7 @@ type UserIdentityConfiguration struct { noSmithyDocumentSerde } -// Provides configuration information for a token configuration. +// Provides the configuration information for a token. type UserTokenConfiguration struct { // Information about the JSON token type configuration. @@ -2941,13 +2994,13 @@ type WebCrawlerConfiguration struct { // This member is required. Urls *Urls - // Provides configuration information required to connect to websites using - // authentication. You can connect to websites using basic authentication of user - // name and password. You must provide the website host name and port number. For - // example, the host name of https://a.example.com/page1.html is "a.example.com" - // and the port is 443, the standard port for HTTPS. You use a secret in Secrets - // Manager (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) - // to store your authentication credentials. + // Configuration information required to connect to websites using authentication. + // You can connect to websites using basic authentication of user name and + // password. You must provide the website host name and port number. For example, + // the host name of https://a.example.com/page1.html is "a.example.com" and the + // port is 443, the standard port for HTTPS. You use a secret in Secrets Manager + // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) to + // store your authentication credentials. AuthenticationConfiguration *AuthenticationConfiguration // Specifies the number of levels in a website that you want to crawl. The first @@ -2974,13 +3027,13 @@ type WebCrawlerConfiguration struct { // minute is 300. MaxUrlsPerMinuteCrawlRate *int32 - // Provides configuration information required to connect to your internal websites - // via a web proxy. You must provide the website host name and port number. For - // example, the host name of https://a.example.com/page1.html is "a.example.com" - // and the port is 443, the standard port for HTTPS. Web proxy credentials are - // optional and you can use them to connect to a web proxy server that requires - // basic authentication. To store web proxy credentials, you use a secret in - // Secrets Manager + // Configuration information required to connect to your internal websites via a + // web proxy. You must provide the website host name and port number. For example, + // the host name of https://a.example.com/page1.html is "a.example.com" and the + // port is 443, the standard port for HTTPS. Web proxy credentials are optional and + // you can use them to connect to a web proxy server that requires basic + // authentication. To store web proxy credentials, you use a secret in Secrets + // Manager // (https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html). ProxyConfiguration *ProxyConfiguration diff --git a/service/kendra/validators.go b/service/kendra/validators.go index 2647038f7cf..3f9860d31ab 100644 --- a/service/kendra/validators.go +++ b/service/kendra/validators.go @@ -2915,6 +2915,18 @@ func validateSortingConfiguration(v *types.SortingConfiguration) error { } } +func validateSpellCorrectionConfiguration(v *types.SpellCorrectionConfiguration) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SpellCorrectionConfiguration"} + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateTag(v *types.Tag) error { if v == nil { return nil @@ -3976,6 +3988,11 @@ func validateOpQueryInput(v *QueryInput) error { invalidParams.AddNested("UserContext", err.(smithy.InvalidParamsError)) } } + if v.SpellCorrectionConfiguration != nil { + if err := validateSpellCorrectionConfiguration(v.SpellCorrectionConfiguration); err != nil { + invalidParams.AddNested("SpellCorrectionConfiguration", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/keyspaces/LICENSE.txt b/service/keyspaces/LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/service/keyspaces/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/service/keyspaces/api_client.go b/service/keyspaces/api_client.go new file mode 100644 index 00000000000..466608e120e --- /dev/null +++ b/service/keyspaces/api_client.go @@ -0,0 +1,433 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/defaults" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/retry" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" + internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources" + smithy "github.com/aws/smithy-go" + smithydocument "github.com/aws/smithy-go/document" + "github.com/aws/smithy-go/logging" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net" + "net/http" + "time" +) + +const ServiceID = "Keyspaces" +const ServiceAPIVersion = "2022-02-10" + +// Client provides the API client to make operations call for Amazon Keyspaces. +type Client struct { + options Options +} + +// New returns an initialized Client based on the functional options. Provide +// additional functional options to further configure the behavior of the client, +// such as changing the client's endpoint or adding custom middleware behavior. +func New(options Options, optFns ...func(*Options)) *Client { + options = options.Copy() + + resolveDefaultLogger(&options) + + setResolvedDefaultsMode(&options) + + resolveRetryer(&options) + + resolveHTTPClient(&options) + + resolveHTTPSignerV4(&options) + + resolveDefaultEndpointConfiguration(&options) + + for _, fn := range optFns { + fn(&options) + } + + client := &Client{ + options: options, + } + + return client +} + +type Options struct { + // Set of options to modify how an operation is invoked. These apply to all + // operations invoked for this client. Use functional options on operation call to + // modify this list for per operation behavior. + APIOptions []func(*middleware.Stack) error + + // Configures the events that will be sent to the configured logger. + ClientLogMode aws.ClientLogMode + + // The credentials object to use when signing requests. + Credentials aws.CredentialsProvider + + // The configuration DefaultsMode that the SDK should use when constructing the + // clients initial default settings. + DefaultsMode aws.DefaultsMode + + // The endpoint options to be used when attempting to resolve an endpoint. + EndpointOptions EndpointResolverOptions + + // The service endpoint resolver. + EndpointResolver EndpointResolver + + // Signature Version 4 (SigV4) Signer + HTTPSignerV4 HTTPSignerV4 + + // The logger writer interface to write logging messages to. + Logger logging.Logger + + // The region to send requests to. (Required) + Region string + + // RetryMaxAttempts specifies the maximum number attempts an API client will call + // an operation that fails with a retryable error. A value of 0 is ignored, and + // will not be used to configure the API client created default retryer, or modify + // per operation call's retry max attempts. When creating a new API Clients this + // member will only be used if the Retryer Options member is nil. This value will + // be ignored if Retryer is not nil. If specified in an operation call's functional + // options with a value that is different than the constructed client's Options, + // the Client's Retryer will be wrapped to use the operation's specific + // RetryMaxAttempts value. + RetryMaxAttempts int + + // RetryMode specifies the retry mode the API client will be created with, if + // Retryer option is not also specified. When creating a new API Clients this + // member will only be used if the Retryer Options member is nil. This value will + // be ignored if Retryer is not nil. Currently does not support per operation call + // overrides, may in the future. + RetryMode aws.RetryMode + + // Retryer guides how HTTP requests should be retried in case of recoverable + // failures. When nil the API client will use a default retryer. The kind of + // default retry created by the API client can be changed with the RetryMode + // option. + Retryer aws.Retryer + + // The RuntimeEnvironment configuration, only populated if the DefaultsMode is set + // to DefaultsModeAuto and is initialized using config.LoadDefaultConfig. You + // should not populate this structure programmatically, or rely on the values here + // within your applications. + RuntimeEnvironment aws.RuntimeEnvironment + + // The initial DefaultsMode used when the client options were constructed. If the + // DefaultsMode was set to aws.DefaultsModeAuto this will store what the resolved + // value was at that point in time. Currently does not support per operation call + // overrides, may in the future. + resolvedDefaultsMode aws.DefaultsMode + + // The HTTP client to invoke API calls with. Defaults to client's default HTTP + // implementation if nil. + HTTPClient HTTPClient +} + +// WithAPIOptions returns a functional option for setting the Client's APIOptions +// option. +func WithAPIOptions(optFns ...func(*middleware.Stack) error) func(*Options) { + return func(o *Options) { + o.APIOptions = append(o.APIOptions, optFns...) + } +} + +// WithEndpointResolver returns a functional option for setting the Client's +// EndpointResolver option. +func WithEndpointResolver(v EndpointResolver) func(*Options) { + return func(o *Options) { + o.EndpointResolver = v + } +} + +type HTTPClient interface { + Do(*http.Request) (*http.Response, error) +} + +// Copy creates a clone where the APIOptions list is deep copied. +func (o Options) Copy() Options { + to := o + to.APIOptions = make([]func(*middleware.Stack) error, len(o.APIOptions)) + copy(to.APIOptions, o.APIOptions) + + return to +} +func (c *Client) invokeOperation(ctx context.Context, opID string, params interface{}, optFns []func(*Options), stackFns ...func(*middleware.Stack, Options) error) (result interface{}, metadata middleware.Metadata, err error) { + ctx = middleware.ClearStackValues(ctx) + stack := middleware.NewStack(opID, smithyhttp.NewStackRequest) + options := c.options.Copy() + for _, fn := range optFns { + fn(&options) + } + + finalizeRetryMaxAttemptOptions(&options, *c) + + finalizeClientEndpointResolverOptions(&options) + + for _, fn := range stackFns { + if err := fn(stack, options); err != nil { + return nil, metadata, err + } + } + + for _, fn := range options.APIOptions { + if err := fn(stack); err != nil { + return nil, metadata, err + } + } + + handler := middleware.DecorateHandler(smithyhttp.NewClientHandler(options.HTTPClient), stack) + result, metadata, err = handler.Handle(ctx, params) + if err != nil { + err = &smithy.OperationError{ + ServiceID: ServiceID, + OperationName: opID, + Err: err, + } + } + return result, metadata, err +} + +type noSmithyDocumentSerde = smithydocument.NoSerde + +func resolveDefaultLogger(o *Options) { + if o.Logger != nil { + return + } + o.Logger = logging.Nop{} +} + +func addSetLoggerMiddleware(stack *middleware.Stack, o Options) error { + return middleware.AddSetLoggerMiddleware(stack, o.Logger) +} + +func setResolvedDefaultsMode(o *Options) { + if len(o.resolvedDefaultsMode) > 0 { + return + } + + var mode aws.DefaultsMode + mode.SetFromString(string(o.DefaultsMode)) + + if mode == aws.DefaultsModeAuto { + mode = defaults.ResolveDefaultsModeAuto(o.Region, o.RuntimeEnvironment) + } + + o.resolvedDefaultsMode = mode +} + +// NewFromConfig returns a new client from the provided config. +func NewFromConfig(cfg aws.Config, optFns ...func(*Options)) *Client { + opts := Options{ + Region: cfg.Region, + DefaultsMode: cfg.DefaultsMode, + RuntimeEnvironment: cfg.RuntimeEnvironment, + HTTPClient: cfg.HTTPClient, + Credentials: cfg.Credentials, + APIOptions: cfg.APIOptions, + Logger: cfg.Logger, + ClientLogMode: cfg.ClientLogMode, + } + resolveAWSRetryerProvider(cfg, &opts) + resolveAWSRetryMaxAttempts(cfg, &opts) + resolveAWSRetryMode(cfg, &opts) + resolveAWSEndpointResolver(cfg, &opts) + resolveUseDualStackEndpoint(cfg, &opts) + resolveUseFIPSEndpoint(cfg, &opts) + return New(opts, optFns...) +} + +func resolveHTTPClient(o *Options) { + var buildable *awshttp.BuildableClient + + if o.HTTPClient != nil { + var ok bool + buildable, ok = o.HTTPClient.(*awshttp.BuildableClient) + if !ok { + return + } + } else { + buildable = awshttp.NewBuildableClient() + } + + modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode) + if err == nil { + buildable = buildable.WithDialerOptions(func(dialer *net.Dialer) { + if dialerTimeout, ok := modeConfig.GetConnectTimeout(); ok { + dialer.Timeout = dialerTimeout + } + }) + + buildable = buildable.WithTransportOptions(func(transport *http.Transport) { + if tlsHandshakeTimeout, ok := modeConfig.GetTLSNegotiationTimeout(); ok { + transport.TLSHandshakeTimeout = tlsHandshakeTimeout + } + }) + } + + o.HTTPClient = buildable +} + +func resolveRetryer(o *Options) { + if o.Retryer != nil { + return + } + + if len(o.RetryMode) == 0 { + modeConfig, err := defaults.GetModeConfiguration(o.resolvedDefaultsMode) + if err == nil { + o.RetryMode = modeConfig.RetryMode + } + } + if len(o.RetryMode) == 0 { + o.RetryMode = aws.RetryModeStandard + } + + var standardOptions []func(*retry.StandardOptions) + if v := o.RetryMaxAttempts; v != 0 { + standardOptions = append(standardOptions, func(so *retry.StandardOptions) { + so.MaxAttempts = v + }) + } + + switch o.RetryMode { + case aws.RetryModeAdaptive: + var adaptiveOptions []func(*retry.AdaptiveModeOptions) + if len(standardOptions) != 0 { + adaptiveOptions = append(adaptiveOptions, func(ao *retry.AdaptiveModeOptions) { + ao.StandardOptions = append(ao.StandardOptions, standardOptions...) + }) + } + o.Retryer = retry.NewAdaptiveMode(adaptiveOptions...) + + default: + o.Retryer = retry.NewStandard(standardOptions...) + } +} + +func resolveAWSRetryerProvider(cfg aws.Config, o *Options) { + if cfg.Retryer == nil { + return + } + o.Retryer = cfg.Retryer() +} + +func resolveAWSRetryMode(cfg aws.Config, o *Options) { + if len(cfg.RetryMode) == 0 { + return + } + o.RetryMode = cfg.RetryMode +} +func resolveAWSRetryMaxAttempts(cfg aws.Config, o *Options) { + if cfg.RetryMaxAttempts == 0 { + return + } + o.RetryMaxAttempts = cfg.RetryMaxAttempts +} + +func finalizeRetryMaxAttemptOptions(o *Options, client Client) { + if v := o.RetryMaxAttempts; v == 0 || v == client.options.RetryMaxAttempts { + return + } + + o.Retryer = retry.AddWithMaxAttempts(o.Retryer, o.RetryMaxAttempts) +} + +func resolveAWSEndpointResolver(cfg aws.Config, o *Options) { + if cfg.EndpointResolver == nil && cfg.EndpointResolverWithOptions == nil { + return + } + o.EndpointResolver = withEndpointResolver(cfg.EndpointResolver, cfg.EndpointResolverWithOptions, NewDefaultEndpointResolver()) +} + +func addClientUserAgent(stack *middleware.Stack) error { + return awsmiddleware.AddSDKAgentKeyValue(awsmiddleware.APIMetadata, "keyspaces", goModuleVersion)(stack) +} + +func addHTTPSignerV4Middleware(stack *middleware.Stack, o Options) error { + mw := v4.NewSignHTTPRequestMiddleware(v4.SignHTTPRequestMiddlewareOptions{ + CredentialsProvider: o.Credentials, + Signer: o.HTTPSignerV4, + LogSigning: o.ClientLogMode.IsSigning(), + }) + return stack.Finalize.Add(mw, middleware.After) +} + +type HTTPSignerV4 interface { + SignHTTP(ctx context.Context, credentials aws.Credentials, r *http.Request, payloadHash string, service string, region string, signingTime time.Time, optFns ...func(*v4.SignerOptions)) error +} + +func resolveHTTPSignerV4(o *Options) { + if o.HTTPSignerV4 != nil { + return + } + o.HTTPSignerV4 = newDefaultV4Signer(*o) +} + +func newDefaultV4Signer(o Options) *v4.Signer { + return v4.NewSigner(func(so *v4.SignerOptions) { + so.Logger = o.Logger + so.LogSigning = o.ClientLogMode.IsSigning() + }) +} + +func addRetryMiddlewares(stack *middleware.Stack, o Options) error { + mo := retry.AddRetryMiddlewaresOptions{ + Retryer: o.Retryer, + LogRetryAttempts: o.ClientLogMode.IsRetries(), + } + return retry.AddRetryMiddlewares(stack, mo) +} + +// resolves dual-stack endpoint configuration +func resolveUseDualStackEndpoint(cfg aws.Config, o *Options) error { + if len(cfg.ConfigSources) == 0 { + return nil + } + value, found, err := internalConfig.ResolveUseDualStackEndpoint(context.Background(), cfg.ConfigSources) + if err != nil { + return err + } + if found { + o.EndpointOptions.UseDualStackEndpoint = value + } + return nil +} + +// resolves FIPS endpoint configuration +func resolveUseFIPSEndpoint(cfg aws.Config, o *Options) error { + if len(cfg.ConfigSources) == 0 { + return nil + } + value, found, err := internalConfig.ResolveUseFIPSEndpoint(context.Background(), cfg.ConfigSources) + if err != nil { + return err + } + if found { + o.EndpointOptions.UseFIPSEndpoint = value + } + return nil +} + +func addRequestIDRetrieverMiddleware(stack *middleware.Stack) error { + return awsmiddleware.AddRequestIDRetrieverMiddleware(stack) +} + +func addResponseErrorMiddleware(stack *middleware.Stack) error { + return awshttp.AddResponseErrorMiddleware(stack) +} + +func addRequestResponseLogging(stack *middleware.Stack, o Options) error { + return stack.Deserialize.Add(&smithyhttp.RequestResponseLogger{ + LogRequest: o.ClientLogMode.IsRequest(), + LogRequestWithBody: o.ClientLogMode.IsRequestWithBody(), + LogResponse: o.ClientLogMode.IsResponse(), + LogResponseWithBody: o.ClientLogMode.IsResponseWithBody(), + }, middleware.After) +} diff --git a/service/keyspaces/api_client_test.go b/service/keyspaces/api_client_test.go new file mode 100644 index 00000000000..478bb1654d1 --- /dev/null +++ b/service/keyspaces/api_client_test.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +import ( + "context" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io/ioutil" + "net/http" + "strings" + "testing" +) + +func TestClient_resolveRetryOptions(t *testing.T) { + nopClient := smithyhttp.ClientDoFunc(func(_ *http.Request) (*http.Response, error) { + return &http.Response{ + StatusCode: 200, + Header: http.Header{}, + Body: ioutil.NopCloser(strings.NewReader("")), + }, nil + }) + + cases := map[string]struct { + defaultsMode aws.DefaultsMode + retryer aws.Retryer + retryMaxAttempts int + opRetryMaxAttempts *int + retryMode aws.RetryMode + expectClientRetryMode aws.RetryMode + expectClientMaxAttempts int + expectOpMaxAttempts int + }{ + "defaults": { + defaultsMode: aws.DefaultsModeStandard, + expectClientRetryMode: aws.RetryModeStandard, + expectClientMaxAttempts: 3, + expectOpMaxAttempts: 3, + }, + "custom default retry": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + "custom op max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(2), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 2, + }, + "custom op no change max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(10), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + "custom op 0 max attempts": { + retryMode: aws.RetryModeAdaptive, + retryMaxAttempts: 10, + opRetryMaxAttempts: aws.Int(0), + expectClientRetryMode: aws.RetryModeAdaptive, + expectClientMaxAttempts: 10, + expectOpMaxAttempts: 10, + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + client := NewFromConfig(aws.Config{ + DefaultsMode: c.defaultsMode, + Retryer: func() func() aws.Retryer { + if c.retryer == nil { + return nil + } + + return func() aws.Retryer { return c.retryer } + }(), + HTTPClient: nopClient, + RetryMaxAttempts: c.retryMaxAttempts, + RetryMode: c.retryMode, + }) + + if e, a := c.expectClientRetryMode, client.options.RetryMode; e != a { + t.Errorf("expect %v retry mode, got %v", e, a) + } + if e, a := c.expectClientMaxAttempts, client.options.Retryer.MaxAttempts(); e != a { + t.Errorf("expect %v max attempts, got %v", e, a) + } + + _, _, err := client.invokeOperation(context.Background(), "mockOperation", struct{}{}, + []func(*Options){ + func(o *Options) { + if c.opRetryMaxAttempts == nil { + return + } + o.RetryMaxAttempts = *c.opRetryMaxAttempts + }, + }, + func(s *middleware.Stack, o Options) error { + s.Initialize.Clear() + s.Serialize.Clear() + s.Build.Clear() + s.Finalize.Clear() + s.Deserialize.Clear() + + if e, a := c.expectOpMaxAttempts, o.Retryer.MaxAttempts(); e != a { + t.Errorf("expect %v op max attempts, got %v", e, a) + } + return nil + }) + if err != nil { + t.Fatalf("expect no operation error, got %v", err) + } + }) + } +} diff --git a/service/keyspaces/api_op_CreateKeyspace.go b/service/keyspaces/api_op_CreateKeyspace.go new file mode 100644 index 00000000000..14ff4b337da --- /dev/null +++ b/service/keyspaces/api_op_CreateKeyspace.go @@ -0,0 +1,136 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// The CreateKeyspace operation adds a new keyspace to your account. In an Amazon +// Web Services account, keyspace names must be unique within each Region. +// CreateKeyspace is an asynchronous operation. You can monitor the creation status +// of the new keyspace by using the GetKeyspace operation. For more information, +// see Creating keyspaces +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/working-with-keyspaces.html#keyspaces-create) +// in the Amazon Keyspaces Developer Guide. +func (c *Client) CreateKeyspace(ctx context.Context, params *CreateKeyspaceInput, optFns ...func(*Options)) (*CreateKeyspaceOutput, error) { + if params == nil { + params = &CreateKeyspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateKeyspace", params, optFns, c.addOperationCreateKeyspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateKeyspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateKeyspaceInput struct { + + // The name of the keyspace to be created. + // + // This member is required. + KeyspaceName *string + + // A list of key-value pair tags to be attached to the keyspace. For more + // information, see Adding tags and labels to Amazon Keyspaces resources + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html) + // in the Amazon Keyspaces Developer Guide. + Tags []types.Tag + + noSmithyDocumentSerde +} + +type CreateKeyspaceOutput struct { + + // The unique identifier of the keyspace in the format of an Amazon Resource Name + // (ARN). + // + // This member is required. + ResourceArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateKeyspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateKeyspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateKeyspace{}, 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 = addOpCreateKeyspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateKeyspace(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_opCreateKeyspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "CreateKeyspace", + } +} diff --git a/service/keyspaces/api_op_CreateTable.go b/service/keyspaces/api_op_CreateTable.go new file mode 100644 index 00000000000..68addf03c02 --- /dev/null +++ b/service/keyspaces/api_op_CreateTable.go @@ -0,0 +1,252 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// The CreateTable operation adds a new table to the specified keyspace. Within a +// keyspace, table names must be unique. CreateTable is an asynchronous operation. +// When the request is received, the status of the table is set to CREATING. You +// can monitor the creation status of the new table by using the GetTable +// operation, which returns the current status of the table. You can start using a +// table when the status is ACTIVE. For more information, see Creating tables +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/working-with-tables.html#tables-create) +// in the Amazon Keyspaces Developer Guide. +func (c *Client) CreateTable(ctx context.Context, params *CreateTableInput, optFns ...func(*Options)) (*CreateTableOutput, error) { + if params == nil { + params = &CreateTableInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "CreateTable", params, optFns, c.addOperationCreateTableMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*CreateTableOutput) + out.ResultMetadata = metadata + return out, nil +} + +type CreateTableInput struct { + + // The name of the keyspace that the table is going to be created in. + // + // This member is required. + KeyspaceName *string + + // The schemaDefinition consists of the following parameters. For each column to be + // created: + // + // * name - The name of the column. + // + // * type - An Amazon Keyspaces data + // type. For more information, see Data types + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) + // in the Amazon Keyspaces Developer Guide. + // + // The primary key of the table consists + // of the following columns: + // + // * partitionKeys - The partition key can be a single + // column, or it can be a compound value composed of two or more columns. The + // partition key portion of the primary key is required and determines how Amazon + // Keyspaces stores your data. + // + // * name - The name of each partition key column. + // + // * + // clusteringKeys - The optional clustering column portion of your primary key + // determines how the data is clustered and sorted within each partition. + // + // * name - + // The name of the clustering column. + // + // * orderBy - Sets the ascendant (ASC) or + // descendant (DESC) order modifier. + // + // To define a column as static use + // staticColumns - Static columns store values that are shared by all rows in the + // same partition: + // + // * name - The name of the column. + // + // * type - An Amazon Keyspaces + // data type. + // + // This member is required. + SchemaDefinition *types.SchemaDefinition + + // The name of the table. + // + // This member is required. + TableName *string + + // Specifies the read/write throughput capacity mode for the table. The options + // are: + // + // * throughputMode:PAY_PER_REQUEST and + // + // * throughputMode:PROVISIONED. The + // provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as + // inputs. + // + // The default is throughput_mode:PAY_PER_REQUEST. For more information, + // see Read/write capacity modes + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) + // in the Amazon Keyspaces Developer Guide. + CapacitySpecification *types.CapacitySpecification + + // This parameter allows to enter a description of the table. + Comment *types.Comment + + // The default Time to Live setting in seconds for the table. For more information, + // see Setting the default TTL value for a table + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) + // in the Amazon Keyspaces Developer Guide. + DefaultTimeToLive *int32 + + // Specifies how the encryption key for encryption at rest is managed for the + // table. You can choose one of the following KMS key (KMS key): + // + // * + // type:AWS_OWNED_KMS_KEY - This key is owned by Amazon Keyspaces. + // + // * + // type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your account and is + // created, owned, and managed by you. This option requires the kms_key_identifier + // of the KMS key in Amazon Resource Name (ARN) format as input. + // + // The default is + // type:AWS_OWNED_KMS_KEY. For more information, see Encryption at rest + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in + // the Amazon Keyspaces Developer Guide. + EncryptionSpecification *types.EncryptionSpecification + + // Specifies if pointInTimeRecovery is enabled or disabled for the table. The + // options are: + // + // * ENABLED + // + // * DISABLED + // + // If it's not specified, the default is + // DISABLED. For more information, see Point-in-time recovery + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html) + // in the Amazon Keyspaces Developer Guide. + PointInTimeRecovery *types.PointInTimeRecovery + + // A list of key-value pair tags to be attached to the resource. For more + // information, see Adding tags and labels to Amazon Keyspaces resources + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html) + // in the Amazon Keyspaces Developer Guide. + Tags []types.Tag + + // Enables Time to Live custom settings for the table. The options are: + // + // * + // status:enabled + // + // * status:disabled + // + // The default is status:disabled. After ttl is + // enabled, you can't disable it for the table. For more information, see Expiring + // data by using Amazon Keyspaces Time to Live (TTL) + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html) in the Amazon + // Keyspaces Developer Guide. + Ttl *types.TimeToLive + + noSmithyDocumentSerde +} + +type CreateTableOutput struct { + + // The unique identifier of the table in the format of an Amazon Resource Name + // (ARN). + // + // This member is required. + ResourceArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationCreateTableMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpCreateTable{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpCreateTable{}, 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 = addOpCreateTableValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateTable(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_opCreateTable(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "CreateTable", + } +} diff --git a/service/keyspaces/api_op_DeleteKeyspace.go b/service/keyspaces/api_op_DeleteKeyspace.go new file mode 100644 index 00000000000..04ce148eb3c --- /dev/null +++ b/service/keyspaces/api_op_DeleteKeyspace.go @@ -0,0 +1,116 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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" +) + +// The DeleteKeyspace operation deletes a keyspace and all of its tables. +func (c *Client) DeleteKeyspace(ctx context.Context, params *DeleteKeyspaceInput, optFns ...func(*Options)) (*DeleteKeyspaceOutput, error) { + if params == nil { + params = &DeleteKeyspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteKeyspace", params, optFns, c.addOperationDeleteKeyspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteKeyspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteKeyspaceInput struct { + + // The name of the keyspace to be deleted. + // + // This member is required. + KeyspaceName *string + + noSmithyDocumentSerde +} + +type DeleteKeyspaceOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteKeyspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpDeleteKeyspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpDeleteKeyspace{}, 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 = addOpDeleteKeyspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteKeyspace(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_opDeleteKeyspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "DeleteKeyspace", + } +} diff --git a/service/keyspaces/api_op_DeleteTable.go b/service/keyspaces/api_op_DeleteTable.go new file mode 100644 index 00000000000..291392278da --- /dev/null +++ b/service/keyspaces/api_op_DeleteTable.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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" +) + +// The DeleteTable operation deletes a table and all of its data. After a +// DeleteTable request is received, the specified table is in the DELETING state +// until Amazon Keyspaces completes the deletion. If the table is in the ACTIVE +// state, you can delete it. If a table is either in the CREATING or UPDATING +// states, then Amazon Keyspaces returns a ResourceInUseException. If the specified +// table does not exist, Amazon Keyspaces returns a ResourceNotFoundException. If +// the table is already in the DELETING state, no error is returned. +func (c *Client) DeleteTable(ctx context.Context, params *DeleteTableInput, optFns ...func(*Options)) (*DeleteTableOutput, error) { + if params == nil { + params = &DeleteTableInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DeleteTable", params, optFns, c.addOperationDeleteTableMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DeleteTableOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DeleteTableInput struct { + + // The name of the keyspace of the to be deleted table. + // + // This member is required. + KeyspaceName *string + + // The name of the table to be deleted. + // + // This member is required. + TableName *string + + noSmithyDocumentSerde +} + +type DeleteTableOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDeleteTableMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpDeleteTable{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpDeleteTable{}, 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 = addOpDeleteTableValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDeleteTable(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_opDeleteTable(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "DeleteTable", + } +} diff --git a/service/keyspaces/api_op_GetKeyspace.go b/service/keyspaces/api_op_GetKeyspace.go new file mode 100644 index 00000000000..30f843e13f3 --- /dev/null +++ b/service/keyspaces/api_op_GetKeyspace.go @@ -0,0 +1,127 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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" +) + +// Returns the name and the Amazon Resource Name (ARN) of the specified table. +func (c *Client) GetKeyspace(ctx context.Context, params *GetKeyspaceInput, optFns ...func(*Options)) (*GetKeyspaceOutput, error) { + if params == nil { + params = &GetKeyspaceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetKeyspace", params, optFns, c.addOperationGetKeyspaceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetKeyspaceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetKeyspaceInput struct { + + // The name of the keyspace. + // + // This member is required. + KeyspaceName *string + + noSmithyDocumentSerde +} + +type GetKeyspaceOutput struct { + + // The name of the keyspace. + // + // This member is required. + KeyspaceName *string + + // The ARN of the keyspace. + // + // This member is required. + ResourceArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetKeyspaceMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetKeyspace{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetKeyspace{}, 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 = addOpGetKeyspaceValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetKeyspace(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_opGetKeyspace(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "GetKeyspace", + } +} diff --git a/service/keyspaces/api_op_GetTable.go b/service/keyspaces/api_op_GetTable.go new file mode 100644 index 00000000000..166ca13004b --- /dev/null +++ b/service/keyspaces/api_op_GetTable.go @@ -0,0 +1,172 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Returns information about the table, including the table's name and current +// status, the keyspace name, configuration settings, and metadata. +func (c *Client) GetTable(ctx context.Context, params *GetTableInput, optFns ...func(*Options)) (*GetTableOutput, error) { + if params == nil { + params = &GetTableInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetTable", params, optFns, c.addOperationGetTableMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetTableOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetTableInput struct { + + // The name of the keyspace that the table is stored in. + // + // This member is required. + KeyspaceName *string + + // The name of the table. + // + // This member is required. + TableName *string + + noSmithyDocumentSerde +} + +type GetTableOutput struct { + + // The name of the keyspace that the specified table is stored in. + // + // This member is required. + KeyspaceName *string + + // The Amazon Resource Name (ARN) of the specified table. + // + // This member is required. + ResourceArn *string + + // The name of the specified table. + // + // This member is required. + TableName *string + + // The read/write throughput capacity mode for a table. The options are: + // + // * + // throughputMode:PAY_PER_REQUEST and + // + // * throughputMode:PROVISIONED. + CapacitySpecification *types.CapacitySpecificationSummary + + // The the description of the specified table. + Comment *types.Comment + + // The creation timestamp of the specified table. + CreationTimestamp *time.Time + + // The default Time to Live settings of the specified table. + DefaultTimeToLive *int32 + + // The encryption settings of the specified table. + EncryptionSpecification *types.EncryptionSpecification + + // The point-in-time recovery status of the specified table. + PointInTimeRecovery *types.PointInTimeRecoverySummary + + // The schema definition of the specified table. + SchemaDefinition *types.SchemaDefinition + + // The current status of the specified table. + Status types.TableStatus + + // The custom Time to Live settings of the specified table. + Ttl *types.TimeToLive + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetTableMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpGetTable{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpGetTable{}, 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 = addOpGetTableValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetTable(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_opGetTable(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "GetTable", + } +} diff --git a/service/keyspaces/api_op_ListKeyspaces.go b/service/keyspaces/api_op_ListKeyspaces.go new file mode 100644 index 00000000000..e487b463f58 --- /dev/null +++ b/service/keyspaces/api_op_ListKeyspaces.go @@ -0,0 +1,222 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a list of keyspaces. +func (c *Client) ListKeyspaces(ctx context.Context, params *ListKeyspacesInput, optFns ...func(*Options)) (*ListKeyspacesOutput, error) { + if params == nil { + params = &ListKeyspacesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListKeyspaces", params, optFns, c.addOperationListKeyspacesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListKeyspacesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListKeyspacesInput struct { + + // The total number of keyspaces to return in the output. If the total number of + // keyspaces available is more than the value specified, a NextToken is provided in + // the output. To resume pagination, provide the NextToken value as an argument of + // a subsequent API invocation. + MaxResults *int32 + + // The pagination token. To resume pagination, provide the NextToken value as + // argument of a subsequent API invocation. + NextToken *string + + noSmithyDocumentSerde +} + +type ListKeyspacesOutput struct { + + // A list of keyspaces. + // + // This member is required. + Keyspaces []types.KeyspaceSummary + + // A token to specify where to start paginating. This is the NextToken from a + // previously truncated response. + NextToken *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListKeyspacesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListKeyspaces{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListKeyspaces{}, 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_opListKeyspaces(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 +} + +// ListKeyspacesAPIClient is a client that implements the ListKeyspaces operation. +type ListKeyspacesAPIClient interface { + ListKeyspaces(context.Context, *ListKeyspacesInput, ...func(*Options)) (*ListKeyspacesOutput, error) +} + +var _ ListKeyspacesAPIClient = (*Client)(nil) + +// ListKeyspacesPaginatorOptions is the paginator options for ListKeyspaces +type ListKeyspacesPaginatorOptions struct { + // The total number of keyspaces to return in the output. If the total number of + // keyspaces available is more than the value specified, a NextToken is provided in + // the output. To resume pagination, provide the NextToken value as an argument of + // a subsequent API invocation. + 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 +} + +// ListKeyspacesPaginator is a paginator for ListKeyspaces +type ListKeyspacesPaginator struct { + options ListKeyspacesPaginatorOptions + client ListKeyspacesAPIClient + params *ListKeyspacesInput + nextToken *string + firstPage bool +} + +// NewListKeyspacesPaginator returns a new ListKeyspacesPaginator +func NewListKeyspacesPaginator(client ListKeyspacesAPIClient, params *ListKeyspacesInput, optFns ...func(*ListKeyspacesPaginatorOptions)) *ListKeyspacesPaginator { + if params == nil { + params = &ListKeyspacesInput{} + } + + options := ListKeyspacesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListKeyspacesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListKeyspacesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListKeyspaces page. +func (p *ListKeyspacesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListKeyspacesOutput, 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.ListKeyspaces(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_opListKeyspaces(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "ListKeyspaces", + } +} diff --git a/service/keyspaces/api_op_ListTables.go b/service/keyspaces/api_op_ListTables.go new file mode 100644 index 00000000000..ed90c77001c --- /dev/null +++ b/service/keyspaces/api_op_ListTables.go @@ -0,0 +1,228 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a list of tables for a specified keyspace. +func (c *Client) ListTables(ctx context.Context, params *ListTablesInput, optFns ...func(*Options)) (*ListTablesOutput, error) { + if params == nil { + params = &ListTablesInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListTables", params, optFns, c.addOperationListTablesMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListTablesOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListTablesInput struct { + + // The name of the keyspace. + // + // This member is required. + KeyspaceName *string + + // The total number of tables to return in the output. If the total number of + // tables available is more than the value specified, a NextToken is provided in + // the output. To resume pagination, provide the NextToken value as an argument of + // a subsequent API invocation. + MaxResults *int32 + + // The pagination token. To resume pagination, provide the NextToken value as an + // argument of a subsequent API invocation. + NextToken *string + + noSmithyDocumentSerde +} + +type ListTablesOutput struct { + + // A token to specify where to start paginating. This is the NextToken from a + // previously truncated response. + NextToken *string + + // A list of tables. + Tables []types.TableSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationListTablesMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpListTables{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpListTables{}, 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 = addOpListTablesValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListTables(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 +} + +// ListTablesAPIClient is a client that implements the ListTables operation. +type ListTablesAPIClient interface { + ListTables(context.Context, *ListTablesInput, ...func(*Options)) (*ListTablesOutput, error) +} + +var _ ListTablesAPIClient = (*Client)(nil) + +// ListTablesPaginatorOptions is the paginator options for ListTables +type ListTablesPaginatorOptions struct { + // The total number of tables to return in the output. If the total number of + // tables available is more than the value specified, a NextToken is provided in + // the output. To resume pagination, provide the NextToken value as an argument of + // a subsequent API invocation. + 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 +} + +// ListTablesPaginator is a paginator for ListTables +type ListTablesPaginator struct { + options ListTablesPaginatorOptions + client ListTablesAPIClient + params *ListTablesInput + nextToken *string + firstPage bool +} + +// NewListTablesPaginator returns a new ListTablesPaginator +func NewListTablesPaginator(client ListTablesAPIClient, params *ListTablesInput, optFns ...func(*ListTablesPaginatorOptions)) *ListTablesPaginator { + if params == nil { + params = &ListTablesInput{} + } + + options := ListTablesPaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListTablesPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListTablesPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListTables page. +func (p *ListTablesPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListTablesOutput, 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.ListTables(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_opListTables(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "ListTables", + } +} diff --git a/service/keyspaces/api_op_ListTagsForResource.go b/service/keyspaces/api_op_ListTagsForResource.go new file mode 100644 index 00000000000..647355d9580 --- /dev/null +++ b/service/keyspaces/api_op_ListTagsForResource.go @@ -0,0 +1,231 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Returns a list of all tags associated with the specified Amazon Keyspaces +// resource. +func (c *Client) ListTagsForResource(ctx context.Context, params *ListTagsForResourceInput, optFns ...func(*Options)) (*ListTagsForResourceOutput, error) { + if params == nil { + params = &ListTagsForResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ListTagsForResource", params, optFns, c.addOperationListTagsForResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ListTagsForResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ListTagsForResourceInput struct { + + // The Amazon Resource Name (ARN) of the Amazon Keyspaces resource. + // + // This member is required. + ResourceArn *string + + // The total number of tags to return in the output. If the total number of tags + // available is more than the value specified, a NextToken is provided in the + // output. To resume pagination, provide the NextToken value as an argument of a + // subsequent API invocation. + MaxResults *int32 + + // The pagination token. To resume pagination, provide the NextToken value as + // argument of a subsequent API invocation. + NextToken *string + + noSmithyDocumentSerde +} + +type ListTagsForResourceOutput struct { + + // A token to specify where to start paginating. This is the NextToken from a + // previously truncated response. + NextToken *string + + // A list of tags. + Tags []types.Tag + + // 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(&awsAwsjson10_serializeOpListTagsForResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_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 +} + +// ListTagsForResourceAPIClient is a client that implements the ListTagsForResource +// operation. +type ListTagsForResourceAPIClient interface { + ListTagsForResource(context.Context, *ListTagsForResourceInput, ...func(*Options)) (*ListTagsForResourceOutput, error) +} + +var _ ListTagsForResourceAPIClient = (*Client)(nil) + +// ListTagsForResourcePaginatorOptions is the paginator options for +// ListTagsForResource +type ListTagsForResourcePaginatorOptions struct { + // The total number of tags to return in the output. If the total number of tags + // available is more than the value specified, a NextToken is provided in the + // output. To resume pagination, provide the NextToken value as an argument of a + // subsequent API invocation. + 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 +} + +// ListTagsForResourcePaginator is a paginator for ListTagsForResource +type ListTagsForResourcePaginator struct { + options ListTagsForResourcePaginatorOptions + client ListTagsForResourceAPIClient + params *ListTagsForResourceInput + nextToken *string + firstPage bool +} + +// NewListTagsForResourcePaginator returns a new ListTagsForResourcePaginator +func NewListTagsForResourcePaginator(client ListTagsForResourceAPIClient, params *ListTagsForResourceInput, optFns ...func(*ListTagsForResourcePaginatorOptions)) *ListTagsForResourcePaginator { + if params == nil { + params = &ListTagsForResourceInput{} + } + + options := ListTagsForResourcePaginatorOptions{} + if params.MaxResults != nil { + options.Limit = *params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &ListTagsForResourcePaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *ListTagsForResourcePaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next ListTagsForResource page. +func (p *ListTagsForResourcePaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListTagsForResourceOutput, 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.ListTagsForResource(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_opListTagsForResource(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "ListTagsForResource", + } +} diff --git a/service/keyspaces/api_op_RestoreTable.go b/service/keyspaces/api_op_RestoreTable.go new file mode 100644 index 00000000000..db39769606a --- /dev/null +++ b/service/keyspaces/api_op_RestoreTable.go @@ -0,0 +1,232 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "time" +) + +// Restores the specified table to the specified point in time within the +// earliest_restorable_timestamp and the current time. For more information about +// restore points, see Time window for PITR continuous backups +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery_HowItWorks.html#howitworks_backup_window) +// in the Amazon Keyspaces Developer Guide. Any number of users can execute up to 4 +// concurrent restores (any type of restore) in a given account. When you restore +// using point in time recovery, Amazon Keyspaces restores your source table's +// schema and data to the state based on the selected timestamp +// (day:hour:minute:second) to a new table. The Time to Live (TTL) settings are +// also restored to the state based on the selected timestamp. In addition to the +// table's schema, data, and TTL settings, RestoreTable restores the capacity mode, +// encryption, and point-in-time recovery settings from the source table. Unlike +// the table's schema data and TTL settings, which are restored based on the +// selected timestamp, these settings are always restored based on the table's +// settings as of the current time or when the table was deleted. You can also +// overwrite these settings during restore: +// +// * Read/write capacity mode +// +// * +// Provisioned throughput capacity settings +// +// * Point-in-time (PITR) settings +// +// * +// Tags +// +// For more information, see PITR restore settings +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery_HowItWorks.html#howitworks_backup_settings) +// in the Amazon Keyspaces Developer Guide. The following settings are not +// restored, and you must configure them manually for the new table. +// +// * Automatic +// scaling policies (for tables that use provisioned capacity mode) +// +// * Identity and +// Access Management (IAM) policies +// +// * Amazon CloudWatch metrics and alarms +func (c *Client) RestoreTable(ctx context.Context, params *RestoreTableInput, optFns ...func(*Options)) (*RestoreTableOutput, error) { + if params == nil { + params = &RestoreTableInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "RestoreTable", params, optFns, c.addOperationRestoreTableMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*RestoreTableOutput) + out.ResultMetadata = metadata + return out, nil +} + +type RestoreTableInput struct { + + // The keyspace name of the source table. + // + // This member is required. + SourceKeyspaceName *string + + // The name of the source table. + // + // This member is required. + SourceTableName *string + + // The name of the target keyspace. + // + // This member is required. + TargetKeyspaceName *string + + // The name of the target table. + // + // This member is required. + TargetTableName *string + + // Specifies the read/write throughput capacity mode for the target table. The + // options are: + // + // * throughputMode:PAY_PER_REQUEST and + // + // * + // throughputMode:PROVISIONED. The provisioned capacity mode requires + // readCapacityUnits and writeCapacityUnits as inputs. + // + // The default is + // throughput_mode:PAY_PER_REQUEST. For more information, see Read/write capacity + // modes + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) + // in the Amazon Keyspaces Developer Guide. + CapacitySpecificationOverride *types.CapacitySpecification + + // Specifies the encryption settings for the target table. You can choose one of + // the following KMS key (KMS key): + // + // * type:AWS_OWNED_KMS_KEY - This key is owned + // by Amazon Keyspaces. + // + // * type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in + // your account and is created, owned, and managed by you. This option requires the + // kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as + // input. + // + // The default is type:AWS_OWNED_KMS_KEY. For more information, see + // Encryption at rest + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in + // the Amazon Keyspaces Developer Guide. + EncryptionSpecificationOverride *types.EncryptionSpecification + + // Specifies the pointInTimeRecovery settings for the target table. The options + // are: + // + // * ENABLED + // + // * DISABLED + // + // If it's not specified, the default is DISABLED. For + // more information, see Point-in-time recovery + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html) + // in the Amazon Keyspaces Developer Guide. + PointInTimeRecoveryOverride *types.PointInTimeRecovery + + // The restore timestamp in ISO 8601 format. + RestoreTimestamp *time.Time + + // A list of key-value pair tags to be attached to the restored table. For more + // information, see Adding tags and labels to Amazon Keyspaces resources + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html) + // in the Amazon Keyspaces Developer Guide. + TagsOverride []types.Tag + + noSmithyDocumentSerde +} + +type RestoreTableOutput struct { + + // The Amazon Resource Name (ARN) of the restored table. + // + // This member is required. + RestoredTableARN *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationRestoreTableMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpRestoreTable{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpRestoreTable{}, 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 = addOpRestoreTableValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opRestoreTable(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_opRestoreTable(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "RestoreTable", + } +} diff --git a/service/keyspaces/api_op_TagResource.go b/service/keyspaces/api_op_TagResource.go new file mode 100644 index 00000000000..daf13bf000e --- /dev/null +++ b/service/keyspaces/api_op_TagResource.go @@ -0,0 +1,128 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Associates a set of tags with a Amazon Keyspaces resource. You can then activate +// these user-defined tags so that they appear on the Cost Management Console for +// cost allocation tracking. For more information, see Adding tags and labels to +// Amazon Keyspaces resources +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html) +// in the Amazon Keyspaces Developer Guide. +func (c *Client) TagResource(ctx context.Context, params *TagResourceInput, optFns ...func(*Options)) (*TagResourceOutput, error) { + if params == nil { + params = &TagResourceInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "TagResource", params, optFns, c.addOperationTagResourceMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*TagResourceOutput) + out.ResultMetadata = metadata + return out, nil +} + +type TagResourceInput struct { + + // The Amazon Resource Name (ARN) of the Amazon Keyspaces resource to which to add + // tags. + // + // This member is required. + ResourceArn *string + + // The tags to be assigned to the Amazon Keyspaces resource. + // + // This member is required. + Tags []types.Tag + + 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(&awsAwsjson10_serializeOpTagResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_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: "cassandra", + OperationName: "TagResource", + } +} diff --git a/service/keyspaces/api_op_UntagResource.go b/service/keyspaces/api_op_UntagResource.go new file mode 100644 index 00000000000..d71912b7054 --- /dev/null +++ b/service/keyspaces/api_op_UntagResource.go @@ -0,0 +1,123 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Removes the association of tags from a Amazon Keyspaces 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 Keyspaces resource that the tags will be removed from. This value is + // an Amazon Resource Name (ARN). + // + // This member is required. + ResourceArn *string + + // A list of existing tags to be removed from the Amazon Keyspaces resource. + // + // This member is required. + Tags []types.Tag + + 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(&awsAwsjson10_serializeOpUntagResource{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_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: "cassandra", + OperationName: "UntagResource", + } +} diff --git a/service/keyspaces/api_op_UpdateTable.go b/service/keyspaces/api_op_UpdateTable.go new file mode 100644 index 00000000000..fbac40b11fd --- /dev/null +++ b/service/keyspaces/api_op_UpdateTable.go @@ -0,0 +1,206 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +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/keyspaces/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Adds new columns to the table or updates one of the table's settings, for +// example capacity mode, encryption, point-in-time recovery, or ttl settings. Note +// that you can only update one specific table setting per update operation. +func (c *Client) UpdateTable(ctx context.Context, params *UpdateTableInput, optFns ...func(*Options)) (*UpdateTableOutput, error) { + if params == nil { + params = &UpdateTableInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateTable", params, optFns, c.addOperationUpdateTableMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateTableOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateTableInput struct { + + // The name of the keyspace the specified table is stored in. + // + // This member is required. + KeyspaceName *string + + // The name of the table. + // + // This member is required. + TableName *string + + // For each column to be added to the specified table: + // + // * name - The name of the + // column. + // + // * type - An Amazon Keyspaces data type. For more information, see Data + // types + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) + // in the Amazon Keyspaces Developer Guide. + AddColumns []types.ColumnDefinition + + // Modifies the read/write throughput capacity mode for the table. The options + // are: + // + // * throughputMode:PAY_PER_REQUEST and + // + // * throughputMode:PROVISIONED. The + // provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as + // inputs. + // + // The default is throughput_mode:PAY_PER_REQUEST. For more information, + // see Read/write capacity modes + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) + // in the Amazon Keyspaces Developer Guide. + CapacitySpecification *types.CapacitySpecification + + // The default Time to Live setting in seconds for the table. For more information, + // see Setting the default TTL value for a table + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) + // in the Amazon Keyspaces Developer Guide. + DefaultTimeToLive *int32 + + // Modifies the encryption settings of the table. You can choose one of the + // following KMS key (KMS key): + // + // * type:AWS_OWNED_KMS_KEY - This key is owned by + // Amazon Keyspaces. + // + // * type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your + // account and is created, owned, and managed by you. This option requires the + // kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as + // input. + // + // The default is AWS_OWNED_KMS_KEY. For more information, see Encryption + // at rest + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in + // the Amazon Keyspaces Developer Guide. + EncryptionSpecification *types.EncryptionSpecification + + // Modifies the pointInTimeRecovery settings of the table. The options are: + // + // * + // ENABLED + // + // * DISABLED + // + // If it's not specified, the default is DISABLED. For more + // information, see Point-in-time recovery + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html) + // in the Amazon Keyspaces Developer Guide. + PointInTimeRecovery *types.PointInTimeRecovery + + // Modifies Time to Live custom settings for the table. The options are: + // + // * + // status:enabled + // + // * status:disabled + // + // The default is status:disabled. After ttl is + // enabled, you can't disable it for the table. For more information, see Expiring + // data by using Amazon Keyspaces Time to Live (TTL) + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL.html) in the Amazon + // Keyspaces Developer Guide. + Ttl *types.TimeToLive + + noSmithyDocumentSerde +} + +type UpdateTableOutput struct { + + // The Amazon Resource Name (ARN) of the modified table. + // + // This member is required. + ResourceArn *string + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateTableMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsAwsjson10_serializeOpUpdateTable{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpUpdateTable{}, 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 = addOpUpdateTableValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateTable(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_opUpdateTable(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "cassandra", + OperationName: "UpdateTable", + } +} diff --git a/service/keyspaces/deserializers.go b/service/keyspaces/deserializers.go new file mode 100644 index 00000000000..d06f4844329 --- /dev/null +++ b/service/keyspaces/deserializers.go @@ -0,0 +1,3580 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson" + "github.com/aws/aws-sdk-go-v2/service/keyspaces/types" + smithy "github.com/aws/smithy-go" + smithyio "github.com/aws/smithy-go/io" + "github.com/aws/smithy-go/middleware" + "github.com/aws/smithy-go/ptr" + smithytime "github.com/aws/smithy-go/time" + smithyhttp "github.com/aws/smithy-go/transport/http" + "io" + "strings" +) + +type awsAwsjson10_deserializeOpCreateKeyspace struct { +} + +func (*awsAwsjson10_deserializeOpCreateKeyspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpCreateKeyspace) HandleDeserialize(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_deserializeOpErrorCreateKeyspace(response, &metadata) + } + output := &CreateKeyspaceOutput{} + 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_deserializeOpDocumentCreateKeyspaceOutput(&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_deserializeOpErrorCreateKeyspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpCreateTable struct { +} + +func (*awsAwsjson10_deserializeOpCreateTable) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpCreateTable) HandleDeserialize(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_deserializeOpErrorCreateTable(response, &metadata) + } + output := &CreateTableOutput{} + 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_deserializeOpDocumentCreateTableOutput(&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_deserializeOpErrorCreateTable(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpDeleteKeyspace struct { +} + +func (*awsAwsjson10_deserializeOpDeleteKeyspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpDeleteKeyspace) HandleDeserialize(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_deserializeOpErrorDeleteKeyspace(response, &metadata) + } + output := &DeleteKeyspaceOutput{} + 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_deserializeOpDocumentDeleteKeyspaceOutput(&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_deserializeOpErrorDeleteKeyspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpDeleteTable struct { +} + +func (*awsAwsjson10_deserializeOpDeleteTable) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpDeleteTable) HandleDeserialize(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_deserializeOpErrorDeleteTable(response, &metadata) + } + output := &DeleteTableOutput{} + 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_deserializeOpDocumentDeleteTableOutput(&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_deserializeOpErrorDeleteTable(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpGetKeyspace struct { +} + +func (*awsAwsjson10_deserializeOpGetKeyspace) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetKeyspace) HandleDeserialize(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_deserializeOpErrorGetKeyspace(response, &metadata) + } + output := &GetKeyspaceOutput{} + 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_deserializeOpDocumentGetKeyspaceOutput(&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_deserializeOpErrorGetKeyspace(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpGetTable struct { +} + +func (*awsAwsjson10_deserializeOpGetTable) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpGetTable) HandleDeserialize(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_deserializeOpErrorGetTable(response, &metadata) + } + output := &GetTableOutput{} + 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_deserializeOpDocumentGetTableOutput(&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_deserializeOpErrorGetTable(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpListKeyspaces struct { +} + +func (*awsAwsjson10_deserializeOpListKeyspaces) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListKeyspaces) HandleDeserialize(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_deserializeOpErrorListKeyspaces(response, &metadata) + } + output := &ListKeyspacesOutput{} + 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_deserializeOpDocumentListKeyspacesOutput(&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_deserializeOpErrorListKeyspaces(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpListTables struct { +} + +func (*awsAwsjson10_deserializeOpListTables) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpListTables) HandleDeserialize(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_deserializeOpErrorListTables(response, &metadata) + } + output := &ListTablesOutput{} + 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_deserializeOpDocumentListTablesOutput(&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_deserializeOpErrorListTables(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpListTagsForResource struct { +} + +func (*awsAwsjson10_deserializeOpListTagsForResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_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, awsAwsjson10_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 = awsAwsjson10_deserializeOpDocumentListTagsForResourceOutput(&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_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("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpRestoreTable struct { +} + +func (*awsAwsjson10_deserializeOpRestoreTable) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpRestoreTable) HandleDeserialize(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_deserializeOpErrorRestoreTable(response, &metadata) + } + output := &RestoreTableOutput{} + 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_deserializeOpDocumentRestoreTableOutput(&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_deserializeOpErrorRestoreTable(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpTagResource struct { +} + +func (*awsAwsjson10_deserializeOpTagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_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, awsAwsjson10_deserializeOpErrorTagResource(response, &metadata) + } + output := &TagResourceOutput{} + 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_deserializeOpDocumentTagResourceOutput(&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_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("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpUntagResource struct { +} + +func (*awsAwsjson10_deserializeOpUntagResource) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_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, awsAwsjson10_deserializeOpErrorUntagResource(response, &metadata) + } + output := &UntagResourceOutput{} + 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_deserializeOpDocumentUntagResourceOutput(&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_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("AccessDeniedException", errorCode): + return awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +type awsAwsjson10_deserializeOpUpdateTable struct { +} + +func (*awsAwsjson10_deserializeOpUpdateTable) ID() string { + return "OperationDeserializer" +} + +func (m *awsAwsjson10_deserializeOpUpdateTable) HandleDeserialize(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_deserializeOpErrorUpdateTable(response, &metadata) + } + output := &UpdateTableOutput{} + 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_deserializeOpDocumentUpdateTableOutput(&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_deserializeOpErrorUpdateTable(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.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 awsAwsjson10_deserializeErrorAccessDeniedException(response, errorBody) + + case strings.EqualFold("ConflictException", errorCode): + return awsAwsjson10_deserializeErrorConflictException(response, errorBody) + + case strings.EqualFold("InternalServerException", errorCode): + return awsAwsjson10_deserializeErrorInternalServerException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsAwsjson10_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ServiceQuotaExceededException", errorCode): + return awsAwsjson10_deserializeErrorServiceQuotaExceededException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsAwsjson10_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsAwsjson10_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.AccessDeniedException{} + err := awsAwsjson10_deserializeDocumentAccessDeniedException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson10_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ConflictException{} + err := awsAwsjson10_deserializeDocumentConflictException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson10_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.InternalServerException{} + err := awsAwsjson10_deserializeDocumentInternalServerException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson10_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ResourceNotFoundException{} + err := awsAwsjson10_deserializeDocumentResourceNotFoundException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson10_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ServiceQuotaExceededException{} + err := awsAwsjson10_deserializeDocumentServiceQuotaExceededException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson10_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + output := &types.ValidationException{} + err := awsAwsjson10_deserializeDocumentValidationException(&output, shape) + + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return err + } + + errorBody.Seek(0, io.SeekStart) + return output +} + +func awsAwsjson10_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentCapacitySpecificationSummary(v **types.CapacitySpecificationSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.CapacitySpecificationSummary + if *v == nil { + sv = &types.CapacitySpecificationSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "lastUpdateToPayPerRequestTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdateToPayPerRequestTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "readCapacityUnits": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected CapacityUnits to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ReadCapacityUnits = ptr.Int64(i64) + } + + case "throughputMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ThroughputMode to be of type string, got %T instead", value) + } + sv.ThroughputMode = types.ThroughputMode(jtv) + } + + case "writeCapacityUnits": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected CapacityUnits to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.WriteCapacityUnits = ptr.Int64(i64) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentClusteringKey(v **types.ClusteringKey, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ClusteringKey + if *v == nil { + sv = &types.ClusteringKey{} + } 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 GenericString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "orderBy": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected SortOrder to be of type string, got %T instead", value) + } + sv.OrderBy = types.SortOrder(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentClusteringKeyList(v *[]types.ClusteringKey, 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.ClusteringKey + if *v == nil { + cv = []types.ClusteringKey{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ClusteringKey + destAddr := &col + if err := awsAwsjson10_deserializeDocumentClusteringKey(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentColumnDefinition(v **types.ColumnDefinition, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ColumnDefinition + if *v == nil { + sv = &types.ColumnDefinition{} + } 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 GenericString 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 GenericString to be of type string, got %T instead", value) + } + sv.Type = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentColumnDefinitionList(v *[]types.ColumnDefinition, 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.ColumnDefinition + if *v == nil { + cv = []types.ColumnDefinition{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ColumnDefinition + destAddr := &col + if err := awsAwsjson10_deserializeDocumentColumnDefinition(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentComment(v **types.Comment, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Comment + if *v == nil { + sv = &types.Comment{} + } 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 awsAwsjson10_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ConflictException + if *v == nil { + sv = &types.ConflictException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentEncryptionSpecification(v **types.EncryptionSpecification, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.EncryptionSpecification + if *v == nil { + sv = &types.EncryptionSpecification{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "kmsKeyIdentifier": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected kmsKeyARN to be of type string, got %T instead", value) + } + sv.KmsKeyIdentifier = ptr.String(jtv) + } + + case "type": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EncryptionType to be of type string, got %T instead", value) + } + sv.Type = types.EncryptionType(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.InternalServerException + if *v == nil { + sv = &types.InternalServerException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentKeyspaceSummary(v **types.KeyspaceSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.KeyspaceSummary + if *v == nil { + sv = &types.KeyspaceSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "keyspaceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KeyspaceName to be of type string, got %T instead", value) + } + sv.KeyspaceName = ptr.String(jtv) + } + + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentKeyspaceSummaryList(v *[]types.KeyspaceSummary, 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.KeyspaceSummary + if *v == nil { + cv = []types.KeyspaceSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.KeyspaceSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentKeyspaceSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentPartitionKey(v **types.PartitionKey, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PartitionKey + if *v == nil { + sv = &types.PartitionKey{} + } 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 GenericString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentPartitionKeyList(v *[]types.PartitionKey, 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.PartitionKey + if *v == nil { + cv = []types.PartitionKey{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.PartitionKey + destAddr := &col + if err := awsAwsjson10_deserializeDocumentPartitionKey(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentPointInTimeRecoverySummary(v **types.PointInTimeRecoverySummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.PointInTimeRecoverySummary + if *v == nil { + sv = &types.PointInTimeRecoverySummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "earliestRestorableTimestamp": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.EarliestRestorableTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PointInTimeRecoveryStatus to be of type string, got %T instead", value) + } + sv.Status = types.PointInTimeRecoveryStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ResourceNotFoundException + if *v == nil { + sv = &types.ResourceNotFoundException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentSchemaDefinition(v **types.SchemaDefinition, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.SchemaDefinition + if *v == nil { + sv = &types.SchemaDefinition{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "allColumns": + if err := awsAwsjson10_deserializeDocumentColumnDefinitionList(&sv.AllColumns, value); err != nil { + return err + } + + case "clusteringKeys": + if err := awsAwsjson10_deserializeDocumentClusteringKeyList(&sv.ClusteringKeys, value); err != nil { + return err + } + + case "partitionKeys": + if err := awsAwsjson10_deserializeDocumentPartitionKeyList(&sv.PartitionKeys, value); err != nil { + return err + } + + case "staticColumns": + if err := awsAwsjson10_deserializeDocumentStaticColumnList(&sv.StaticColumns, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ServiceQuotaExceededException + if *v == nil { + sv = &types.ServiceQuotaExceededException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentStaticColumn(v **types.StaticColumn, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.StaticColumn + if *v == nil { + sv = &types.StaticColumn{} + } 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 GenericString to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentStaticColumnList(v *[]types.StaticColumn, 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.StaticColumn + if *v == nil { + cv = []types.StaticColumn{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.StaticColumn + destAddr := &col + if err := awsAwsjson10_deserializeDocumentStaticColumn(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentTableSummary(v **types.TableSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.TableSummary + if *v == nil { + sv = &types.TableSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "keyspaceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KeyspaceName to be of type string, got %T instead", value) + } + sv.KeyspaceName = ptr.String(jtv) + } + + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + case "tableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TableName to be of type string, got %T instead", value) + } + sv.TableName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentTableSummaryList(v *[]types.TableSummary, 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.TableSummary + if *v == nil { + cv = []types.TableSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.TableSummary + destAddr := &col + if err := awsAwsjson10_deserializeDocumentTableSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentTag(v **types.Tag, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.Tag + if *v == nil { + sv = &types.Tag{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "key": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TagKey to be of type string, got %T instead", value) + } + sv.Key = ptr.String(jtv) + } + + case "value": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TagValue to be of type string, got %T instead", value) + } + sv.Value = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentTagList(v *[]types.Tag, 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.Tag + if *v == nil { + cv = []types.Tag{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.Tag + destAddr := &col + if err := awsAwsjson10_deserializeDocumentTag(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsAwsjson10_deserializeDocumentTimeToLive(v **types.TimeToLive, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.TimeToLive + if *v == nil { + sv = &types.TimeToLive{} + } 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 TimeToLiveStatus to be of type string, got %T instead", value) + } + sv.Status = types.TimeToLiveStatus(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ValidationException + if *v == nil { + sv = &types.ValidationException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentCreateKeyspaceOutput(v **CreateKeyspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateKeyspaceOutput + if *v == nil { + sv = &CreateKeyspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentCreateTableOutput(v **CreateTableOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *CreateTableOutput + if *v == nil { + sv = &CreateTableOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentDeleteKeyspaceOutput(v **DeleteKeyspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteKeyspaceOutput + if *v == nil { + sv = &DeleteKeyspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentDeleteTableOutput(v **DeleteTableOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *DeleteTableOutput + if *v == nil { + sv = &DeleteTableOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentGetKeyspaceOutput(v **GetKeyspaceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetKeyspaceOutput + if *v == nil { + sv = &GetKeyspaceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "keyspaceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KeyspaceName to be of type string, got %T instead", value) + } + sv.KeyspaceName = ptr.String(jtv) + } + + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentGetTableOutput(v **GetTableOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *GetTableOutput + if *v == nil { + sv = &GetTableOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "capacitySpecification": + if err := awsAwsjson10_deserializeDocumentCapacitySpecificationSummary(&sv.CapacitySpecification, value); err != nil { + return err + } + + case "comment": + if err := awsAwsjson10_deserializeDocumentComment(&sv.Comment, value); err != nil { + return err + } + + 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 Timestamp to be a JSON Number, got %T instead", value) + + } + } + + case "defaultTimeToLive": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected DefaultTimeToLive to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.DefaultTimeToLive = ptr.Int32(int32(i64)) + } + + case "encryptionSpecification": + if err := awsAwsjson10_deserializeDocumentEncryptionSpecification(&sv.EncryptionSpecification, value); err != nil { + return err + } + + case "keyspaceName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected KeyspaceName to be of type string, got %T instead", value) + } + sv.KeyspaceName = ptr.String(jtv) + } + + case "pointInTimeRecovery": + if err := awsAwsjson10_deserializeDocumentPointInTimeRecoverySummary(&sv.PointInTimeRecovery, value); err != nil { + return err + } + + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + case "schemaDefinition": + if err := awsAwsjson10_deserializeDocumentSchemaDefinition(&sv.SchemaDefinition, value); err != nil { + return err + } + + case "status": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TableStatus to be of type string, got %T instead", value) + } + sv.Status = types.TableStatus(jtv) + } + + case "tableName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TableName to be of type string, got %T instead", value) + } + sv.TableName = ptr.String(jtv) + } + + case "ttl": + if err := awsAwsjson10_deserializeDocumentTimeToLive(&sv.Ttl, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListKeyspacesOutput(v **ListKeyspacesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListKeyspacesOutput + if *v == nil { + sv = &ListKeyspacesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "keyspaces": + if err := awsAwsjson10_deserializeDocumentKeyspaceSummaryList(&sv.Keyspaces, value); err != nil { + return err + } + + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentListTablesOutput(v **ListTablesOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *ListTablesOutput + if *v == nil { + sv = &ListTablesOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "tables": + if err := awsAwsjson10_deserializeDocumentTableSummaryList(&sv.Tables, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_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 "nextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "tags": + if err := awsAwsjson10_deserializeDocumentTagList(&sv.Tags, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentRestoreTableOutput(v **RestoreTableOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *RestoreTableOutput + if *v == nil { + sv = &RestoreTableOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "restoredTableARN": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.RestoredTableARN = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentTagResourceOutput(v **TagResourceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *TagResourceOutput + if *v == nil { + sv = &TagResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentUntagResourceOutput(v **UntagResourceOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UntagResourceOutput + if *v == nil { + sv = &UntagResourceOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson10_deserializeOpDocumentUpdateTableOutput(v **UpdateTableOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *UpdateTableOutput + if *v == nil { + sv = &UpdateTableOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "resourceArn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.ResourceArn = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} diff --git a/service/keyspaces/doc.go b/service/keyspaces/doc.go new file mode 100644 index 00000000000..6a26fc73ce2 --- /dev/null +++ b/service/keyspaces/doc.go @@ -0,0 +1,24 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +// Package keyspaces provides the API client, operations, and parameter types for +// Amazon Keyspaces. +// +// Amazon Keyspaces (for Apache Cassandra) is a scalable, highly available, and +// managed Apache Cassandra-compatible database service. Amazon Keyspaces makes it +// easy to migrate, run, and scale Cassandra workloads in the Amazon Web Services +// Cloud. With just a few clicks on the Amazon Web Services Management Console or a +// few lines of code, you can create keyspaces and tables in Amazon Keyspaces, +// without deploying any infrastructure or installing software. In addition to +// supporting Cassandra Query Language (CQL) requests via open-source Cassandra +// drivers, Amazon Keyspaces supports data definition language (DDL) operations to +// manage keyspaces and tables using the Amazon Web Services SDK and CLI. This API +// reference describes the supported DDL operations in detail. For the list of all +// supported CQL APIs, see Supported Cassandra APIs, operations, and data types in +// Amazon Keyspaces +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/cassandra-apis.html) in +// the Amazon Keyspaces Developer Guide. For more information about Amazon Web +// Services APIs, for example how to implement retry logic or how to sign Amazon +// Web Services API requests, see Amazon Web Services APIs +// (https://docs.aws.amazon.com/general/latest/gr/aws-apis.html) in the General +// Reference. +package keyspaces diff --git a/service/keyspaces/endpoints.go b/service/keyspaces/endpoints.go new file mode 100644 index 00000000000..179a3c92a74 --- /dev/null +++ b/service/keyspaces/endpoints.go @@ -0,0 +1,200 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +import ( + "context" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + internalendpoints "github.com/aws/aws-sdk-go-v2/service/keyspaces/internal/endpoints" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" + "net/url" + "strings" +) + +// EndpointResolverOptions is the service endpoint resolver options +type EndpointResolverOptions = internalendpoints.Options + +// EndpointResolver interface for resolving service endpoints. +type EndpointResolver interface { + ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error) +} + +var _ EndpointResolver = &internalendpoints.Resolver{} + +// NewDefaultEndpointResolver constructs a new service endpoint resolver +func NewDefaultEndpointResolver() *internalendpoints.Resolver { + return internalendpoints.New() +} + +// EndpointResolverFunc is a helper utility that wraps a function so it satisfies +// the EndpointResolver interface. This is useful when you want to add additional +// endpoint resolving logic, or stub out specific endpoints with custom values. +type EndpointResolverFunc func(region string, options EndpointResolverOptions) (aws.Endpoint, error) + +func (fn EndpointResolverFunc) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + return fn(region, options) +} + +func resolveDefaultEndpointConfiguration(o *Options) { + if o.EndpointResolver != nil { + return + } + o.EndpointResolver = NewDefaultEndpointResolver() +} + +// EndpointResolverFromURL returns an EndpointResolver configured using the +// provided endpoint url. By default, the resolved endpoint resolver uses the +// client region as signing region, and the endpoint source is set to +// EndpointSourceCustom.You can provide functional options to configure endpoint +// values for the resolved endpoint. +func EndpointResolverFromURL(url string, optFns ...func(*aws.Endpoint)) EndpointResolver { + e := aws.Endpoint{URL: url, Source: aws.EndpointSourceCustom} + for _, fn := range optFns { + fn(&e) + } + + return EndpointResolverFunc( + func(region string, options EndpointResolverOptions) (aws.Endpoint, error) { + if len(e.SigningRegion) == 0 { + e.SigningRegion = region + } + return e, nil + }, + ) +} + +type ResolveEndpoint struct { + Resolver EndpointResolver + Options EndpointResolverOptions +} + +func (*ResolveEndpoint) ID() string { + return "ResolveEndpoint" +} + +func (m *ResolveEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.Resolver == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + eo := m.Options + eo.Logger = middleware.GetLogger(ctx) + + var endpoint aws.Endpoint + endpoint, err = m.Resolver.ResolveEndpoint(awsmiddleware.GetRegion(ctx), eo) + if err != nil { + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + req.URL, err = url.Parse(endpoint.URL) + if err != nil { + return out, metadata, fmt.Errorf("failed to parse endpoint URL: %w", err) + } + + if len(awsmiddleware.GetSigningName(ctx)) == 0 { + signingName := endpoint.SigningName + if len(signingName) == 0 { + signingName = "cassandra" + } + ctx = awsmiddleware.SetSigningName(ctx, signingName) + } + ctx = awsmiddleware.SetEndpointSource(ctx, endpoint.Source) + ctx = smithyhttp.SetHostnameImmutable(ctx, endpoint.HostnameImmutable) + ctx = awsmiddleware.SetSigningRegion(ctx, endpoint.SigningRegion) + ctx = awsmiddleware.SetPartitionID(ctx, endpoint.PartitionID) + return next.HandleSerialize(ctx, in) +} +func addResolveEndpointMiddleware(stack *middleware.Stack, o Options) error { + return stack.Serialize.Insert(&ResolveEndpoint{ + Resolver: o.EndpointResolver, + Options: o.EndpointOptions, + }, "OperationSerializer", middleware.Before) +} + +func removeResolveEndpointMiddleware(stack *middleware.Stack) error { + _, err := stack.Serialize.Remove((&ResolveEndpoint{}).ID()) + return err +} + +type wrappedEndpointResolver struct { + awsResolver aws.EndpointResolverWithOptions + resolver EndpointResolver +} + +func (w *wrappedEndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { + if w.awsResolver == nil { + goto fallback + } + endpoint, err = w.awsResolver.ResolveEndpoint(ServiceID, region, options) + if err == nil { + return endpoint, nil + } + + if nf := (&aws.EndpointNotFoundError{}); !errors.As(err, &nf) { + return endpoint, err + } + +fallback: + if w.resolver == nil { + return endpoint, fmt.Errorf("default endpoint resolver provided was nil") + } + return w.resolver.ResolveEndpoint(region, options) +} + +type awsEndpointResolverAdaptor func(service, region string) (aws.Endpoint, error) + +func (a awsEndpointResolverAdaptor) ResolveEndpoint(service, region string, options ...interface{}) (aws.Endpoint, error) { + return a(service, region) +} + +var _ aws.EndpointResolverWithOptions = awsEndpointResolverAdaptor(nil) + +// withEndpointResolver returns an EndpointResolver that first delegates endpoint resolution to the awsResolver. +// If awsResolver returns aws.EndpointNotFoundError error, the resolver will use the the provided +// fallbackResolver for resolution. +// +// fallbackResolver must not be nil +func withEndpointResolver(awsResolver aws.EndpointResolver, awsResolverWithOptions aws.EndpointResolverWithOptions, fallbackResolver EndpointResolver) EndpointResolver { + var resolver aws.EndpointResolverWithOptions + + if awsResolverWithOptions != nil { + resolver = awsResolverWithOptions + } else if awsResolver != nil { + resolver = awsEndpointResolverAdaptor(awsResolver.ResolveEndpoint) + } + + return &wrappedEndpointResolver{ + awsResolver: resolver, + resolver: fallbackResolver, + } +} + +func finalizeClientEndpointResolverOptions(options *Options) { + options.EndpointOptions.LogDeprecated = options.ClientLogMode.IsDeprecatedUsage() + + if len(options.EndpointOptions.ResolvedRegion) == 0 { + const fipsInfix = "-fips-" + const fipsPrefix = "fips-" + const fipsSuffix = "-fips" + + if strings.Contains(options.Region, fipsInfix) || + strings.Contains(options.Region, fipsPrefix) || + strings.Contains(options.Region, fipsSuffix) { + options.EndpointOptions.ResolvedRegion = strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll( + options.Region, fipsInfix, "-"), fipsPrefix, ""), fipsSuffix, "") + options.EndpointOptions.UseFIPSEndpoint = aws.FIPSEndpointStateEnabled + } + } + +} diff --git a/service/keyspaces/generated.json b/service/keyspaces/generated.json new file mode 100644 index 00000000000..c270952d5fc --- /dev/null +++ b/service/keyspaces/generated.json @@ -0,0 +1,40 @@ +{ + "dependencies": { + "github.com/aws/aws-sdk-go-v2": "v1.4.0", + "github.com/aws/aws-sdk-go-v2/internal/configsources": "v0.0.0-00010101000000-000000000000", + "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2": "v2.0.0-00010101000000-000000000000", + "github.com/aws/smithy-go": "v1.4.0" + }, + "files": [ + "api_client.go", + "api_client_test.go", + "api_op_CreateKeyspace.go", + "api_op_CreateTable.go", + "api_op_DeleteKeyspace.go", + "api_op_DeleteTable.go", + "api_op_GetKeyspace.go", + "api_op_GetTable.go", + "api_op_ListKeyspaces.go", + "api_op_ListTables.go", + "api_op_ListTagsForResource.go", + "api_op_RestoreTable.go", + "api_op_TagResource.go", + "api_op_UntagResource.go", + "api_op_UpdateTable.go", + "deserializers.go", + "doc.go", + "endpoints.go", + "generated.json", + "internal/endpoints/endpoints.go", + "internal/endpoints/endpoints_test.go", + "protocol_test.go", + "serializers.go", + "types/enums.go", + "types/errors.go", + "types/types.go", + "validators.go" + ], + "go": "1.15", + "module": "github.com/aws/aws-sdk-go-v2/service/keyspaces", + "unstable": false +} diff --git a/service/keyspaces/go.mod b/service/keyspaces/go.mod new file mode 100644 index 00000000000..70725d44496 --- /dev/null +++ b/service/keyspaces/go.mod @@ -0,0 +1,16 @@ +module github.com/aws/aws-sdk-go-v2/service/keyspaces + +go 1.15 + +require ( + github.com/aws/aws-sdk-go-v2 v1.14.0 + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.5 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.3.0 + github.com/aws/smithy-go v1.11.1-0.20220308004241-26b41c98827d +) + +replace github.com/aws/aws-sdk-go-v2 => ../../ + +replace github.com/aws/aws-sdk-go-v2/internal/configsources => ../../internal/configsources/ + +replace github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => ../../internal/endpoints/v2/ diff --git a/service/keyspaces/go.sum b/service/keyspaces/go.sum new file mode 100644 index 00000000000..e72dd2c914e --- /dev/null +++ b/service/keyspaces/go.sum @@ -0,0 +1,13 @@ +github.com/aws/smithy-go v1.11.1-0.20220308004241-26b41c98827d h1:9NQZQGy4VfHVDB/1ya90aarpyyLB+g78X291mLKEHSs= +github.com/aws/smithy-go v1.11.1-0.20220308004241-26b41c98827d/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/service/keyspaces/go_module_metadata.go b/service/keyspaces/go_module_metadata.go new file mode 100644 index 00000000000..1df34c8797b --- /dev/null +++ b/service/keyspaces/go_module_metadata.go @@ -0,0 +1,6 @@ +// Code generated by internal/repotools/cmd/updatemodulemeta DO NOT EDIT. + +package keyspaces + +// goModuleVersion is the tagged release for this module +const goModuleVersion = "tip" diff --git a/service/keyspaces/internal/endpoints/endpoints.go b/service/keyspaces/internal/endpoints/endpoints.go new file mode 100644 index 00000000000..c2de41dd528 --- /dev/null +++ b/service/keyspaces/internal/endpoints/endpoints.go @@ -0,0 +1,250 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + endpoints "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2" + "github.com/aws/smithy-go/logging" + "regexp" +) + +// Options is the endpoint resolver configuration options +type Options struct { + // Logger is a logging implementation that log events should be sent to. + Logger logging.Logger + + // LogDeprecated indicates that deprecated endpoints should be logged to the + // provided logger. + LogDeprecated bool + + // ResolvedRegion is used to override the region to be resolved, rather then the + // using the value passed to the ResolveEndpoint method. This value is used by the + // SDK to translate regions like fips-us-east-1 or us-east-1-fips to an alternative + // name. You must not set this value directly in your application. + ResolvedRegion string + + // DisableHTTPS informs the resolver to return an endpoint that does not use the + // HTTPS scheme. + DisableHTTPS bool + + // UseDualStackEndpoint specifies the resolver must resolve a dual-stack endpoint. + UseDualStackEndpoint aws.DualStackEndpointState + + // UseFIPSEndpoint specifies the resolver must resolve a FIPS endpoint. + UseFIPSEndpoint aws.FIPSEndpointState +} + +func (o Options) GetResolvedRegion() string { + return o.ResolvedRegion +} + +func (o Options) GetDisableHTTPS() bool { + return o.DisableHTTPS +} + +func (o Options) GetUseDualStackEndpoint() aws.DualStackEndpointState { + return o.UseDualStackEndpoint +} + +func (o Options) GetUseFIPSEndpoint() aws.FIPSEndpointState { + return o.UseFIPSEndpoint +} + +func transformToSharedOptions(options Options) endpoints.Options { + return endpoints.Options{ + Logger: options.Logger, + LogDeprecated: options.LogDeprecated, + ResolvedRegion: options.ResolvedRegion, + DisableHTTPS: options.DisableHTTPS, + UseDualStackEndpoint: options.UseDualStackEndpoint, + UseFIPSEndpoint: options.UseFIPSEndpoint, + } +} + +// Resolver Keyspaces endpoint resolver +type Resolver struct { + partitions endpoints.Partitions +} + +// ResolveEndpoint resolves the service endpoint for the given region and options +func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) { + if len(region) == 0 { + return endpoint, &aws.MissingRegionError{} + } + + opt := transformToSharedOptions(options) + return r.partitions.ResolveEndpoint(region, opt) +} + +// New returns a new Resolver +func New() *Resolver { + return &Resolver{ + partitions: defaultPartitions, + } +} + +var partitionRegexp = struct { + Aws *regexp.Regexp + AwsCn *regexp.Regexp + AwsIso *regexp.Regexp + AwsIsoB *regexp.Regexp + AwsUsGov *regexp.Regexp +}{ + + Aws: regexp.MustCompile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$"), + AwsCn: regexp.MustCompile("^cn\\-\\w+\\-\\d+$"), + AwsIso: regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"), + AwsIsoB: regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"), + AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"), +} + +var defaultPartitions = endpoints.Partitions{ + { + ID: "aws", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cassandra.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "cassandra-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cassandra-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "cassandra.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.Aws, + IsRegionalized: true, + }, + { + ID: "aws-cn", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cassandra.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "cassandra-fips.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cassandra-fips.{region}.api.amazonwebservices.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "cassandra.{region}.amazonaws.com.cn", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsCn, + IsRegionalized: true, + }, + { + ID: "aws-iso", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "cassandra-fips.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "cassandra.{region}.c2s.ic.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIso, + IsRegionalized: true, + }, + { + ID: "aws-iso-b", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "cassandra-fips.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "cassandra.{region}.sc2s.sgov.gov", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsIsoB, + IsRegionalized: true, + }, + { + ID: "aws-us-gov", + Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{ + { + Variant: endpoints.DualStackVariant, + }: { + Hostname: "cassandra.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant, + }: { + Hostname: "cassandra-fips.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: endpoints.FIPSVariant | endpoints.DualStackVariant, + }: { + Hostname: "cassandra-fips.{region}.api.aws", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + { + Variant: 0, + }: { + Hostname: "cassandra.{region}.amazonaws.com", + Protocols: []string{"https"}, + SignatureVersions: []string{"v4"}, + }, + }, + RegionRegex: partitionRegexp.AwsUsGov, + IsRegionalized: true, + }, +} diff --git a/service/keyspaces/internal/endpoints/endpoints_test.go b/service/keyspaces/internal/endpoints/endpoints_test.go new file mode 100644 index 00000000000..08e5da2d833 --- /dev/null +++ b/service/keyspaces/internal/endpoints/endpoints_test.go @@ -0,0 +1,11 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package endpoints + +import ( + "testing" +) + +func TestRegexCompile(t *testing.T) { + _ = defaultPartitions +} diff --git a/service/keyspaces/protocol_test.go b/service/keyspaces/protocol_test.go new file mode 100644 index 00000000000..7bbf68e5152 --- /dev/null +++ b/service/keyspaces/protocol_test.go @@ -0,0 +1,3 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces diff --git a/service/keyspaces/serializers.go b/service/keyspaces/serializers.go new file mode 100644 index 00000000000..76a88838a39 --- /dev/null +++ b/service/keyspaces/serializers.go @@ -0,0 +1,1345 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +import ( + "bytes" + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/keyspaces/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/encoding/httpbinding" + smithyjson "github.com/aws/smithy-go/encoding/json" + "github.com/aws/smithy-go/middleware" + smithytime "github.com/aws/smithy-go/time" + smithyhttp "github.com/aws/smithy-go/transport/http" + "path" +) + +type awsAwsjson10_serializeOpCreateKeyspace struct { +} + +func (*awsAwsjson10_serializeOpCreateKeyspace) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpCreateKeyspace) 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.(*CreateKeyspaceInput) + _ = 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("KeyspacesService.CreateKeyspace") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentCreateKeyspaceInput(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_serializeOpCreateTable struct { +} + +func (*awsAwsjson10_serializeOpCreateTable) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpCreateTable) 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.(*CreateTableInput) + _ = 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("KeyspacesService.CreateTable") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentCreateTableInput(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_serializeOpDeleteKeyspace struct { +} + +func (*awsAwsjson10_serializeOpDeleteKeyspace) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpDeleteKeyspace) 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.(*DeleteKeyspaceInput) + _ = 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("KeyspacesService.DeleteKeyspace") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentDeleteKeyspaceInput(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_serializeOpDeleteTable struct { +} + +func (*awsAwsjson10_serializeOpDeleteTable) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpDeleteTable) 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.(*DeleteTableInput) + _ = 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("KeyspacesService.DeleteTable") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentDeleteTableInput(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_serializeOpGetKeyspace struct { +} + +func (*awsAwsjson10_serializeOpGetKeyspace) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGetKeyspace) 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.(*GetKeyspaceInput) + _ = 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("KeyspacesService.GetKeyspace") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetKeyspaceInput(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_serializeOpGetTable struct { +} + +func (*awsAwsjson10_serializeOpGetTable) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpGetTable) 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.(*GetTableInput) + _ = 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("KeyspacesService.GetTable") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentGetTableInput(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_serializeOpListKeyspaces struct { +} + +func (*awsAwsjson10_serializeOpListKeyspaces) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListKeyspaces) 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.(*ListKeyspacesInput) + _ = 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("KeyspacesService.ListKeyspaces") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListKeyspacesInput(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_serializeOpListTables struct { +} + +func (*awsAwsjson10_serializeOpListTables) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpListTables) 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.(*ListTablesInput) + _ = 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("KeyspacesService.ListTables") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListTablesInput(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_serializeOpListTagsForResource struct { +} + +func (*awsAwsjson10_serializeOpListTagsForResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_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)} + } + + 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("KeyspacesService.ListTagsForResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentListTagsForResourceInput(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_serializeOpRestoreTable struct { +} + +func (*awsAwsjson10_serializeOpRestoreTable) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpRestoreTable) 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.(*RestoreTableInput) + _ = 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("KeyspacesService.RestoreTable") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentRestoreTableInput(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_serializeOpTagResource struct { +} + +func (*awsAwsjson10_serializeOpTagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_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)} + } + + 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("KeyspacesService.TagResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_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 = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + +type awsAwsjson10_serializeOpUntagResource struct { +} + +func (*awsAwsjson10_serializeOpUntagResource) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_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)} + } + + 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("KeyspacesService.UntagResource") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentUntagResourceInput(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_serializeOpUpdateTable struct { +} + +func (*awsAwsjson10_serializeOpUpdateTable) ID() string { + return "OperationSerializer" +} + +func (m *awsAwsjson10_serializeOpUpdateTable) 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.(*UpdateTableInput) + _ = 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("KeyspacesService.UpdateTable") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsAwsjson10_serializeOpDocumentUpdateTableInput(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 awsAwsjson10_serializeDocumentCapacitySpecification(v *types.CapacitySpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ReadCapacityUnits != nil { + ok := object.Key("readCapacityUnits") + ok.Long(*v.ReadCapacityUnits) + } + + if len(v.ThroughputMode) > 0 { + ok := object.Key("throughputMode") + ok.String(string(v.ThroughputMode)) + } + + if v.WriteCapacityUnits != nil { + ok := object.Key("writeCapacityUnits") + ok.Long(*v.WriteCapacityUnits) + } + + return nil +} + +func awsAwsjson10_serializeDocumentClusteringKey(v *types.ClusteringKey, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + if len(v.OrderBy) > 0 { + ok := object.Key("orderBy") + ok.String(string(v.OrderBy)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentClusteringKeyList(v []types.ClusteringKey, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentClusteringKey(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentColumnDefinition(v *types.ColumnDefinition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + if v.Type != nil { + ok := object.Key("type") + ok.String(*v.Type) + } + + return nil +} + +func awsAwsjson10_serializeDocumentColumnDefinitionList(v []types.ColumnDefinition, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentColumnDefinition(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentComment(v *types.Comment, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Message != nil { + ok := object.Key("message") + ok.String(*v.Message) + } + + return nil +} + +func awsAwsjson10_serializeDocumentEncryptionSpecification(v *types.EncryptionSpecification, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KmsKeyIdentifier != nil { + ok := object.Key("kmsKeyIdentifier") + ok.String(*v.KmsKeyIdentifier) + } + + if len(v.Type) > 0 { + ok := object.Key("type") + ok.String(string(v.Type)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentPartitionKey(v *types.PartitionKey, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + return nil +} + +func awsAwsjson10_serializeDocumentPartitionKeyList(v []types.PartitionKey, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentPartitionKey(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentPointInTimeRecovery(v *types.PointInTimeRecovery, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Status) > 0 { + ok := object.Key("status") + ok.String(string(v.Status)) + } + + return nil +} + +func awsAwsjson10_serializeDocumentSchemaDefinition(v *types.SchemaDefinition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AllColumns != nil { + ok := object.Key("allColumns") + if err := awsAwsjson10_serializeDocumentColumnDefinitionList(v.AllColumns, ok); err != nil { + return err + } + } + + if v.ClusteringKeys != nil { + ok := object.Key("clusteringKeys") + if err := awsAwsjson10_serializeDocumentClusteringKeyList(v.ClusteringKeys, ok); err != nil { + return err + } + } + + if v.PartitionKeys != nil { + ok := object.Key("partitionKeys") + if err := awsAwsjson10_serializeDocumentPartitionKeyList(v.PartitionKeys, ok); err != nil { + return err + } + } + + if v.StaticColumns != nil { + ok := object.Key("staticColumns") + if err := awsAwsjson10_serializeDocumentStaticColumnList(v.StaticColumns, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeDocumentStaticColumn(v *types.StaticColumn, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Name != nil { + ok := object.Key("name") + ok.String(*v.Name) + } + + return nil +} + +func awsAwsjson10_serializeDocumentStaticColumnList(v []types.StaticColumn, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentStaticColumn(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentTag(v *types.Tag, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Key != nil { + ok := object.Key("key") + ok.String(*v.Key) + } + + if v.Value != nil { + ok := object.Key("value") + ok.String(*v.Value) + } + + return nil +} + +func awsAwsjson10_serializeDocumentTagList(v []types.Tag, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsAwsjson10_serializeDocumentTag(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsAwsjson10_serializeDocumentTimeToLive(v *types.TimeToLive, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.Status) > 0 { + ok := object.Key("status") + ok.String(string(v.Status)) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentCreateKeyspaceInput(v *CreateKeyspaceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsAwsjson10_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentCreateTableInput(v *CreateTableInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CapacitySpecification != nil { + ok := object.Key("capacitySpecification") + if err := awsAwsjson10_serializeDocumentCapacitySpecification(v.CapacitySpecification, ok); err != nil { + return err + } + } + + if v.Comment != nil { + ok := object.Key("comment") + if err := awsAwsjson10_serializeDocumentComment(v.Comment, ok); err != nil { + return err + } + } + + if v.DefaultTimeToLive != nil { + ok := object.Key("defaultTimeToLive") + ok.Integer(*v.DefaultTimeToLive) + } + + if v.EncryptionSpecification != nil { + ok := object.Key("encryptionSpecification") + if err := awsAwsjson10_serializeDocumentEncryptionSpecification(v.EncryptionSpecification, ok); err != nil { + return err + } + } + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + if v.PointInTimeRecovery != nil { + ok := object.Key("pointInTimeRecovery") + if err := awsAwsjson10_serializeDocumentPointInTimeRecovery(v.PointInTimeRecovery, ok); err != nil { + return err + } + } + + if v.SchemaDefinition != nil { + ok := object.Key("schemaDefinition") + if err := awsAwsjson10_serializeDocumentSchemaDefinition(v.SchemaDefinition, ok); err != nil { + return err + } + } + + if v.TableName != nil { + ok := object.Key("tableName") + ok.String(*v.TableName) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsAwsjson10_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + if v.Ttl != nil { + ok := object.Key("ttl") + if err := awsAwsjson10_serializeDocumentTimeToLive(v.Ttl, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentDeleteKeyspaceInput(v *DeleteKeyspaceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentDeleteTableInput(v *DeleteTableInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + if v.TableName != nil { + ok := object.Key("tableName") + ok.String(*v.TableName) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentGetKeyspaceInput(v *GetKeyspaceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentGetTableInput(v *GetTableInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + if v.TableName != nil { + ok := object.Key("tableName") + ok.String(*v.TableName) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListKeyspacesInput(v *ListKeyspacesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("maxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("nextToken") + ok.String(*v.NextToken) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListTablesInput(v *ListTablesInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + if v.MaxResults != nil { + ok := object.Key("maxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("nextToken") + ok.String(*v.NextToken) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentListTagsForResourceInput(v *ListTagsForResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.MaxResults != nil { + ok := object.Key("maxResults") + ok.Integer(*v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("nextToken") + ok.String(*v.NextToken) + } + + if v.ResourceArn != nil { + ok := object.Key("resourceArn") + ok.String(*v.ResourceArn) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentRestoreTableInput(v *RestoreTableInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.CapacitySpecificationOverride != nil { + ok := object.Key("capacitySpecificationOverride") + if err := awsAwsjson10_serializeDocumentCapacitySpecification(v.CapacitySpecificationOverride, ok); err != nil { + return err + } + } + + if v.EncryptionSpecificationOverride != nil { + ok := object.Key("encryptionSpecificationOverride") + if err := awsAwsjson10_serializeDocumentEncryptionSpecification(v.EncryptionSpecificationOverride, ok); err != nil { + return err + } + } + + if v.PointInTimeRecoveryOverride != nil { + ok := object.Key("pointInTimeRecoveryOverride") + if err := awsAwsjson10_serializeDocumentPointInTimeRecovery(v.PointInTimeRecoveryOverride, ok); err != nil { + return err + } + } + + if v.RestoreTimestamp != nil { + ok := object.Key("restoreTimestamp") + ok.Double(smithytime.FormatEpochSeconds(*v.RestoreTimestamp)) + } + + if v.SourceKeyspaceName != nil { + ok := object.Key("sourceKeyspaceName") + ok.String(*v.SourceKeyspaceName) + } + + if v.SourceTableName != nil { + ok := object.Key("sourceTableName") + ok.String(*v.SourceTableName) + } + + if v.TagsOverride != nil { + ok := object.Key("tagsOverride") + if err := awsAwsjson10_serializeDocumentTagList(v.TagsOverride, ok); err != nil { + return err + } + } + + if v.TargetKeyspaceName != nil { + ok := object.Key("targetKeyspaceName") + ok.String(*v.TargetKeyspaceName) + } + + if v.TargetTableName != nil { + ok := object.Key("targetTableName") + ok.String(*v.TargetTableName) + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentTagResourceInput(v *TagResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ResourceArn != nil { + ok := object.Key("resourceArn") + ok.String(*v.ResourceArn) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsAwsjson10_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentUntagResourceInput(v *UntagResourceInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.ResourceArn != nil { + ok := object.Key("resourceArn") + ok.String(*v.ResourceArn) + } + + if v.Tags != nil { + ok := object.Key("tags") + if err := awsAwsjson10_serializeDocumentTagList(v.Tags, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson10_serializeOpDocumentUpdateTableInput(v *UpdateTableInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AddColumns != nil { + ok := object.Key("addColumns") + if err := awsAwsjson10_serializeDocumentColumnDefinitionList(v.AddColumns, ok); err != nil { + return err + } + } + + if v.CapacitySpecification != nil { + ok := object.Key("capacitySpecification") + if err := awsAwsjson10_serializeDocumentCapacitySpecification(v.CapacitySpecification, ok); err != nil { + return err + } + } + + if v.DefaultTimeToLive != nil { + ok := object.Key("defaultTimeToLive") + ok.Integer(*v.DefaultTimeToLive) + } + + if v.EncryptionSpecification != nil { + ok := object.Key("encryptionSpecification") + if err := awsAwsjson10_serializeDocumentEncryptionSpecification(v.EncryptionSpecification, ok); err != nil { + return err + } + } + + if v.KeyspaceName != nil { + ok := object.Key("keyspaceName") + ok.String(*v.KeyspaceName) + } + + if v.PointInTimeRecovery != nil { + ok := object.Key("pointInTimeRecovery") + if err := awsAwsjson10_serializeDocumentPointInTimeRecovery(v.PointInTimeRecovery, ok); err != nil { + return err + } + } + + if v.TableName != nil { + ok := object.Key("tableName") + ok.String(*v.TableName) + } + + if v.Ttl != nil { + ok := object.Key("ttl") + if err := awsAwsjson10_serializeDocumentTimeToLive(v.Ttl, ok); err != nil { + return err + } + } + + return nil +} diff --git a/service/keyspaces/types/enums.go b/service/keyspaces/types/enums.go new file mode 100644 index 00000000000..acd7e0b878f --- /dev/null +++ b/service/keyspaces/types/enums.go @@ -0,0 +1,119 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +type EncryptionType string + +// Enum values for EncryptionType +const ( + EncryptionTypeCustomerManagedKmsKey EncryptionType = "CUSTOMER_MANAGED_KMS_KEY" + EncryptionTypeAwsOwnedKmsKey EncryptionType = "AWS_OWNED_KMS_KEY" +) + +// Values returns all known values for EncryptionType. 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 (EncryptionType) Values() []EncryptionType { + return []EncryptionType{ + "CUSTOMER_MANAGED_KMS_KEY", + "AWS_OWNED_KMS_KEY", + } +} + +type PointInTimeRecoveryStatus string + +// Enum values for PointInTimeRecoveryStatus +const ( + PointInTimeRecoveryStatusEnabled PointInTimeRecoveryStatus = "ENABLED" + PointInTimeRecoveryStatusDisabled PointInTimeRecoveryStatus = "DISABLED" +) + +// Values returns all known values for PointInTimeRecoveryStatus. 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 (PointInTimeRecoveryStatus) Values() []PointInTimeRecoveryStatus { + return []PointInTimeRecoveryStatus{ + "ENABLED", + "DISABLED", + } +} + +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 TableStatus string + +// Enum values for TableStatus +const ( + TableStatusActive TableStatus = "ACTIVE" + TableStatusCreating TableStatus = "CREATING" + TableStatusUpdating TableStatus = "UPDATING" + TableStatusDeleting TableStatus = "DELETING" + TableStatusDeleted TableStatus = "DELETED" + TableStatusRestoring TableStatus = "RESTORING" + TableStatusInaccessibleEncryptionCredentials TableStatus = "INACCESSIBLE_ENCRYPTION_CREDENTIALS" +) + +// Values returns all known values for TableStatus. 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 (TableStatus) Values() []TableStatus { + return []TableStatus{ + "ACTIVE", + "CREATING", + "UPDATING", + "DELETING", + "DELETED", + "RESTORING", + "INACCESSIBLE_ENCRYPTION_CREDENTIALS", + } +} + +type ThroughputMode string + +// Enum values for ThroughputMode +const ( + ThroughputModePayPerRequest ThroughputMode = "PAY_PER_REQUEST" + ThroughputModeProvisioned ThroughputMode = "PROVISIONED" +) + +// Values returns all known values for ThroughputMode. 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 (ThroughputMode) Values() []ThroughputMode { + return []ThroughputMode{ + "PAY_PER_REQUEST", + "PROVISIONED", + } +} + +type TimeToLiveStatus string + +// Enum values for TimeToLiveStatus +const ( + TimeToLiveStatusEnabled TimeToLiveStatus = "ENABLED" +) + +// Values returns all known values for TimeToLiveStatus. 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 (TimeToLiveStatus) Values() []TimeToLiveStatus { + return []TimeToLiveStatus{ + "ENABLED", + } +} diff --git a/service/keyspaces/types/errors.go b/service/keyspaces/types/errors.go new file mode 100644 index 00000000000..ec68324c06c --- /dev/null +++ b/service/keyspaces/types/errors.go @@ -0,0 +1,131 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + "fmt" + smithy "github.com/aws/smithy-go" +) + +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *AccessDeniedException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } +func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// Amazon Keyspaces could not complete the requested action. This error may occur +// if you try to perform an action and the same or a different action is already in +// progress, or if you try to create a resource that already exists. +type ConflictException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ConflictException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ConflictException) ErrorCode() string { return "ConflictException" } +func (e *ConflictException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// Amazon Keyspaces was unable to fully process this request because of an internal +// server error. +type InternalServerException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *InternalServerException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *InternalServerException) ErrorCode() string { return "InternalServerException" } +func (e *InternalServerException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } + +// The operation tried to access a keyspace or table that doesn't exist. The +// resource might not be specified correctly, or its status might not be ACTIVE. +type ResourceNotFoundException struct { + Message *string + + ResourceArn *string + + noSmithyDocumentSerde +} + +func (e *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ResourceNotFoundException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ResourceNotFoundException) ErrorCode() string { return "ResourceNotFoundException" } +func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The operation exceeded the service quota for this resource. For more information +// on service quotas, see Quotas +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/quotas.html) in the +// Amazon Keyspaces Developer Guide. +type ServiceQuotaExceededException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *ServiceQuotaExceededException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ServiceQuotaExceededException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ServiceQuotaExceededException) ErrorCode() string { return "ServiceQuotaExceededException" } +func (e *ServiceQuotaExceededException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + +// The operation failed due to an invalid or malformed request. +type ValidationException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *ValidationException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *ValidationException) ErrorCode() string { return "ValidationException" } +func (e *ValidationException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } diff --git a/service/keyspaces/types/types.go b/service/keyspaces/types/types.go new file mode 100644 index 00000000000..aa53ab2b607 --- /dev/null +++ b/service/keyspaces/types/types.go @@ -0,0 +1,353 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package types + +import ( + smithydocument "github.com/aws/smithy-go/document" + "time" +) + +// Amazon Keyspaces has two read/write capacity modes for processing reads and +// writes on your tables: +// +// * On-demand (default) +// +// * Provisioned +// +// The read/write +// capacity mode that you choose controls how you are charged for read and write +// throughput and how table throughput capacity is managed. For more information, +// see Read/write capacity modes +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) +// in the Amazon Keyspaces Developer Guide. +type CapacitySpecification struct { + + // The read/write throughput capacity mode for a table. The options are: + // + // * + // throughputMode:PAY_PER_REQUEST and + // + // * throughputMode:PROVISIONED. The + // provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as + // inputs. + // + // The default is throughput_mode:PAY_PER_REQUEST. For more information, + // see Read/write capacity modes + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) + // in the Amazon Keyspaces Developer Guide. + // + // This member is required. + ThroughputMode ThroughputMode + + // The throughput capacity specified for read operations defined in read capacity + // units(RCUs). + ReadCapacityUnits *int64 + + // The throughput capacity specified for write operations defined in write capacity + // units(WCUs). + WriteCapacityUnits *int64 + + noSmithyDocumentSerde +} + +// The read/write throughput capacity mode for a table. The options are: +// +// * +// throughputMode:PAY_PER_REQUEST and +// +// * throughputMode:PROVISIONED. +// +// For more +// information, see Read/write capacity modes +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) +// in the Amazon Keyspaces Developer Guide. +type CapacitySpecificationSummary struct { + + // The read/write throughput capacity mode for a table. The options are: + // + // * + // throughputMode:PAY_PER_REQUEST and + // + // * throughputMode:PROVISIONED. The + // provisioned capacity mode requires readCapacityUnits and writeCapacityUnits as + // inputs. + // + // The default is throughput_mode:PAY_PER_REQUEST. For more information, + // see Read/write capacity modes + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/ReadWriteCapacityMode.html) + // in the Amazon Keyspaces Developer Guide. + // + // This member is required. + ThroughputMode ThroughputMode + + // The timestamp of the last operation that changed the provisioned throughput + // capacity of a table. + LastUpdateToPayPerRequestTimestamp *time.Time + + // The throughput capacity specified for read operations defined in read capacity + // units(RCUs). + ReadCapacityUnits *int64 + + // The throughput capacity specified for write operations defined in write capacity + // units(WCUs). + WriteCapacityUnits *int64 + + noSmithyDocumentSerde +} + +// The optional clustering column portion of your primary key determines how the +// data is clustered and sorted within each partition. +type ClusteringKey struct { + + // The name(s) of the clustering column(s). + // + // This member is required. + Name *string + + // Sets the ascendant (ASC) or descendant (DESC) order modifier. + // + // This member is required. + OrderBy SortOrder + + noSmithyDocumentSerde +} + +// The names and data types of regular columns. +type ColumnDefinition struct { + + // The name of the column. + // + // This member is required. + Name *string + + // The data type of the column. For a list of available data types, see Data types + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/cql.elements.html#cql.data-types) + // in the Amazon Keyspaces Developer Guide. + // + // This member is required. + Type *string + + noSmithyDocumentSerde +} + +// An optional comment that describes the table. +type Comment struct { + + // An optional description of the table. + // + // This member is required. + Message *string + + noSmithyDocumentSerde +} + +// Amazon Keyspaces encrypts and decrypts the table data at rest transparently and +// integrates with Key Management Service for storing and managing the encryption +// key. You can choose one of the following KMS keys (KMS keys): +// +// * Amazon Web +// Services owned key - This is the default encryption type. The key is owned by +// Amazon Keyspaces (no additional charge). +// +// * Customer managed key - This key is +// stored in your account and is created, owned, and managed by you. You have full +// control over the customer managed key (KMS charges apply). +// +// For more information +// about encryption at rest in Amazon Keyspaces, see Encryption at rest +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in +// the Amazon Keyspaces Developer Guide. For more information about KMS, see KMS +// management service concepts +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in +// the Key Management Service Developer Guide. +type EncryptionSpecification struct { + + // The encryption option specified for the table. You can choose one of the + // following KMS keys (KMS keys): + // + // * type:AWS_OWNED_KMS_KEY - This key is owned by + // Amazon Keyspaces. + // + // * type:CUSTOMER_MANAGED_KMS_KEY - This key is stored in your + // account and is created, owned, and managed by you. This option requires the + // kms_key_identifier of the KMS key in Amazon Resource Name (ARN) format as + // input. + // + // The default is type:AWS_OWNED_KMS_KEY. For more information, see + // Encryption at rest + // (https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in + // the Amazon Keyspaces Developer Guide. + // + // This member is required. + Type EncryptionType + + // The Amazon Resource Name (ARN) of the customer managed KMS key, for example + // kms_key_identifier:ARN. + KmsKeyIdentifier *string + + noSmithyDocumentSerde +} + +// Represents the properties of a keyspace. +type KeyspaceSummary struct { + + // The name of the keyspace. + // + // This member is required. + KeyspaceName *string + + // The unique identifier of the keyspace in the format of an Amazon Resource Name + // (ARN). + // + // This member is required. + ResourceArn *string + + noSmithyDocumentSerde +} + +// The partition key portion of the primary key is required and determines how +// Amazon Keyspaces stores the data. The partition key can be a single column, or +// it can be a compound value composed of two or more columns. +type PartitionKey struct { + + // The name(s) of the partition key column(s). + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +// Point-in-time recovery (PITR) helps protect your Amazon Keyspaces tables from +// accidental write or delete operations by providing you continuous backups of +// your table data. For more information, see Point-in-time recovery +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/PointInTimeRecovery.html) +// in the Amazon Keyspaces Developer Guide. +type PointInTimeRecovery struct { + + // The options are: + // + // * ENABLED + // + // * DISABLED + // + // This member is required. + Status PointInTimeRecoveryStatus + + noSmithyDocumentSerde +} + +// The point-in-time recovery status of the specified table. +type PointInTimeRecoverySummary struct { + + // Shows if point-in-time recovery is enabled or disabled for the specified table. + // + // This member is required. + Status PointInTimeRecoveryStatus + + // Specifies the earliest possible restore point of the table in ISO 8601 format. + EarliestRestorableTimestamp *time.Time + + noSmithyDocumentSerde +} + +// Describes the schema of the table. +type SchemaDefinition struct { + + // The regular columns of the table. + // + // This member is required. + AllColumns []ColumnDefinition + + // The columns that are part of the partition key of the table . + // + // This member is required. + PartitionKeys []PartitionKey + + // The columns that are part of the clustering key of the table. + ClusteringKeys []ClusteringKey + + // The columns that have been defined as STATIC. Static columns store values that + // are shared by all rows in the same partition. + StaticColumns []StaticColumn + + noSmithyDocumentSerde +} + +// The static columns of the table. Static columns store values that are shared by +// all rows in the same partition. +type StaticColumn struct { + + // The name of the static column. + // + // This member is required. + Name *string + + noSmithyDocumentSerde +} + +// Returns the name of the specified table, the keyspace it is stored in, and the +// unique identifier in the format of an Amazon Resource Name (ARN). +type TableSummary struct { + + // The name of the keyspace that the table is stored in. + // + // This member is required. + KeyspaceName *string + + // The unique identifier of the table in the format of an Amazon Resource Name + // (ARN). + // + // This member is required. + ResourceArn *string + + // The name of the table. + // + // This member is required. + TableName *string + + noSmithyDocumentSerde +} + +// Describes a tag. A tag is a key-value pair. You can add up to 50 tags to a +// single Amazon Keyspaces resource. Amazon Web Services-assigned tag names and +// values are automatically assigned the aws: prefix, which the user cannot assign. +// Amazon Web Services-assigned tag names do not count towards the tag limit of 50. +// User-assigned tag names have the prefix user: in the Cost Allocation Report. You +// cannot backdate the application of a tag. For more information, see Adding tags +// and labels to Amazon Keyspaces resources +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/tagging-keyspaces.html) +// in the Amazon Keyspaces Developer Guide. +type Tag struct { + + // The key of the tag. Tag keys are case sensitive. Each Amazon Keyspaces resource + // can only have up to one tag with the same key. If you try to add an existing tag + // (same key), the existing tag value will be updated to the new value. + // + // This member is required. + Key *string + + // The value of the tag. Tag values are case-sensitive and can be null. + // + // This member is required. + Value *string + + noSmithyDocumentSerde +} + +// Enable custom Time to Live (TTL) settings for rows and columns without setting a +// TTL default for the specified table. For more information, see Enabling TTL on +// tables +// (https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_enabling) +// in the Amazon Keyspaces Developer Guide. +type TimeToLive struct { + + // Shows how to enable custom Time to Live (TTL) settings for the specified table. + // + // This member is required. + Status TimeToLiveStatus + + noSmithyDocumentSerde +} + +type noSmithyDocumentSerde = smithydocument.NoSerde diff --git a/service/keyspaces/validators.go b/service/keyspaces/validators.go new file mode 100644 index 00000000000..76f5f87dcb5 --- /dev/null +++ b/service/keyspaces/validators.go @@ -0,0 +1,881 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package keyspaces + +import ( + "context" + "fmt" + "github.com/aws/aws-sdk-go-v2/service/keyspaces/types" + smithy "github.com/aws/smithy-go" + "github.com/aws/smithy-go/middleware" +) + +type validateOpCreateKeyspace struct { +} + +func (*validateOpCreateKeyspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateKeyspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateKeyspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateKeyspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpCreateTable struct { +} + +func (*validateOpCreateTable) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpCreateTable) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*CreateTableInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpCreateTableInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteKeyspace struct { +} + +func (*validateOpDeleteKeyspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteKeyspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteKeyspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteKeyspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpDeleteTable struct { +} + +func (*validateOpDeleteTable) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDeleteTable) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DeleteTableInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDeleteTableInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetKeyspace struct { +} + +func (*validateOpGetKeyspace) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetKeyspace) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetKeyspaceInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetKeyspaceInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpGetTable struct { +} + +func (*validateOpGetTable) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpGetTable) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*GetTableInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpGetTableInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +type validateOpListTables struct { +} + +func (*validateOpListTables) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpListTables) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*ListTablesInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpListTablesInput(input); err != nil { + return out, metadata, err + } + 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 validateOpRestoreTable struct { +} + +func (*validateOpRestoreTable) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpRestoreTable) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*RestoreTableInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpRestoreTableInput(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 validateOpUpdateTable struct { +} + +func (*validateOpUpdateTable) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateTable) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateTableInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateTableInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + +func addOpCreateKeyspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateKeyspace{}, middleware.After) +} + +func addOpCreateTableValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpCreateTable{}, middleware.After) +} + +func addOpDeleteKeyspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteKeyspace{}, middleware.After) +} + +func addOpDeleteTableValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDeleteTable{}, middleware.After) +} + +func addOpGetKeyspaceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetKeyspace{}, middleware.After) +} + +func addOpGetTableValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpGetTable{}, middleware.After) +} + +func addOpListTablesValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListTables{}, middleware.After) +} + +func addOpListTagsForResourceValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpListTagsForResource{}, middleware.After) +} + +func addOpRestoreTableValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpRestoreTable{}, 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 addOpUpdateTableValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateTable{}, middleware.After) +} + +func validateCapacitySpecification(v *types.CapacitySpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CapacitySpecification"} + if len(v.ThroughputMode) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("ThroughputMode")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateClusteringKey(v *types.ClusteringKey) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ClusteringKey"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if len(v.OrderBy) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("OrderBy")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateClusteringKeyList(v []types.ClusteringKey) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ClusteringKeyList"} + for i := range v { + if err := validateClusteringKey(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateColumnDefinition(v *types.ColumnDefinition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ColumnDefinition"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Type == nil { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateColumnDefinitionList(v []types.ColumnDefinition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ColumnDefinitionList"} + for i := range v { + if err := validateColumnDefinition(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateComment(v *types.Comment) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Comment"} + if v.Message == nil { + invalidParams.Add(smithy.NewErrParamRequired("Message")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateEncryptionSpecification(v *types.EncryptionSpecification) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "EncryptionSpecification"} + if len(v.Type) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Type")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePartitionKey(v *types.PartitionKey) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PartitionKey"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePartitionKeyList(v []types.PartitionKey) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PartitionKeyList"} + for i := range v { + if err := validatePartitionKey(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validatePointInTimeRecovery(v *types.PointInTimeRecovery) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PointInTimeRecovery"} + if len(v.Status) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Status")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateSchemaDefinition(v *types.SchemaDefinition) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "SchemaDefinition"} + if v.AllColumns == nil { + invalidParams.Add(smithy.NewErrParamRequired("AllColumns")) + } else if v.AllColumns != nil { + if err := validateColumnDefinitionList(v.AllColumns); err != nil { + invalidParams.AddNested("AllColumns", err.(smithy.InvalidParamsError)) + } + } + if v.PartitionKeys == nil { + invalidParams.Add(smithy.NewErrParamRequired("PartitionKeys")) + } else if v.PartitionKeys != nil { + if err := validatePartitionKeyList(v.PartitionKeys); err != nil { + invalidParams.AddNested("PartitionKeys", err.(smithy.InvalidParamsError)) + } + } + if v.ClusteringKeys != nil { + if err := validateClusteringKeyList(v.ClusteringKeys); err != nil { + invalidParams.AddNested("ClusteringKeys", err.(smithy.InvalidParamsError)) + } + } + if v.StaticColumns != nil { + if err := validateStaticColumnList(v.StaticColumns); err != nil { + invalidParams.AddNested("StaticColumns", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateStaticColumn(v *types.StaticColumn) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StaticColumn"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateStaticColumnList(v []types.StaticColumn) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "StaticColumnList"} + for i := range v { + if err := validateStaticColumn(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTag(v *types.Tag) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "Tag"} + if v.Key == nil { + invalidParams.Add(smithy.NewErrParamRequired("Key")) + } + if v.Value == nil { + invalidParams.Add(smithy.NewErrParamRequired("Value")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTagList(v []types.Tag) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TagList"} + for i := range v { + if err := validateTag(&v[i]); err != nil { + invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateTimeToLive(v *types.TimeToLive) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "TimeToLive"} + if len(v.Status) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Status")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpCreateKeyspaceInput(v *CreateKeyspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateKeyspaceInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + 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 validateOpCreateTableInput(v *CreateTableInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CreateTableInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if v.TableName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TableName")) + } + if v.SchemaDefinition == nil { + invalidParams.Add(smithy.NewErrParamRequired("SchemaDefinition")) + } else if v.SchemaDefinition != nil { + if err := validateSchemaDefinition(v.SchemaDefinition); err != nil { + invalidParams.AddNested("SchemaDefinition", err.(smithy.InvalidParamsError)) + } + } + if v.Comment != nil { + if err := validateComment(v.Comment); err != nil { + invalidParams.AddNested("Comment", err.(smithy.InvalidParamsError)) + } + } + if v.CapacitySpecification != nil { + if err := validateCapacitySpecification(v.CapacitySpecification); err != nil { + invalidParams.AddNested("CapacitySpecification", err.(smithy.InvalidParamsError)) + } + } + if v.EncryptionSpecification != nil { + if err := validateEncryptionSpecification(v.EncryptionSpecification); err != nil { + invalidParams.AddNested("EncryptionSpecification", err.(smithy.InvalidParamsError)) + } + } + if v.PointInTimeRecovery != nil { + if err := validatePointInTimeRecovery(v.PointInTimeRecovery); err != nil { + invalidParams.AddNested("PointInTimeRecovery", err.(smithy.InvalidParamsError)) + } + } + if v.Ttl != nil { + if err := validateTimeToLive(v.Ttl); err != nil { + invalidParams.AddNested("Ttl", err.(smithy.InvalidParamsError)) + } + } + if v.Tags != nil { + if err := validateTagList(v.Tags); err != nil { + invalidParams.AddNested("Tags", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteKeyspaceInput(v *DeleteKeyspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteKeyspaceInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpDeleteTableInput(v *DeleteTableInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DeleteTableInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if v.TableName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TableName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetKeyspaceInput(v *GetKeyspaceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetKeyspaceInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpGetTableInput(v *GetTableInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "GetTableInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if v.TableName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TableName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListTablesInput(v *ListTablesInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListTablesInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpListTagsForResourceInput(v *ListTagsForResourceInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "ListTagsForResourceInput"} + if v.ResourceArn == nil { + invalidParams.Add(smithy.NewErrParamRequired("ResourceArn")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateOpRestoreTableInput(v *RestoreTableInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "RestoreTableInput"} + if v.SourceKeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceKeyspaceName")) + } + if v.SourceTableName == nil { + invalidParams.Add(smithy.NewErrParamRequired("SourceTableName")) + } + if v.TargetKeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetKeyspaceName")) + } + if v.TargetTableName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TargetTableName")) + } + if v.CapacitySpecificationOverride != nil { + if err := validateCapacitySpecification(v.CapacitySpecificationOverride); err != nil { + invalidParams.AddNested("CapacitySpecificationOverride", err.(smithy.InvalidParamsError)) + } + } + if v.EncryptionSpecificationOverride != nil { + if err := validateEncryptionSpecification(v.EncryptionSpecificationOverride); err != nil { + invalidParams.AddNested("EncryptionSpecificationOverride", err.(smithy.InvalidParamsError)) + } + } + if v.PointInTimeRecoveryOverride != nil { + if err := validatePointInTimeRecovery(v.PointInTimeRecoveryOverride); err != nil { + invalidParams.AddNested("PointInTimeRecoveryOverride", err.(smithy.InvalidParamsError)) + } + } + if v.TagsOverride != nil { + if err := validateTagList(v.TagsOverride); err != nil { + invalidParams.AddNested("TagsOverride", err.(smithy.InvalidParamsError)) + } + } + 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")) + } else 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 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.Tags == nil { + invalidParams.Add(smithy.NewErrParamRequired("Tags")) + } else 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 validateOpUpdateTableInput(v *UpdateTableInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateTableInput"} + if v.KeyspaceName == nil { + invalidParams.Add(smithy.NewErrParamRequired("KeyspaceName")) + } + if v.TableName == nil { + invalidParams.Add(smithy.NewErrParamRequired("TableName")) + } + if v.AddColumns != nil { + if err := validateColumnDefinitionList(v.AddColumns); err != nil { + invalidParams.AddNested("AddColumns", err.(smithy.InvalidParamsError)) + } + } + if v.CapacitySpecification != nil { + if err := validateCapacitySpecification(v.CapacitySpecification); err != nil { + invalidParams.AddNested("CapacitySpecification", err.(smithy.InvalidParamsError)) + } + } + if v.EncryptionSpecification != nil { + if err := validateEncryptionSpecification(v.EncryptionSpecification); err != nil { + invalidParams.AddNested("EncryptionSpecification", err.(smithy.InvalidParamsError)) + } + } + if v.PointInTimeRecovery != nil { + if err := validatePointInTimeRecovery(v.PointInTimeRecovery); err != nil { + invalidParams.AddNested("PointInTimeRecovery", err.(smithy.InvalidParamsError)) + } + } + if v.Ttl != nil { + if err := validateTimeToLive(v.Ttl); err != nil { + invalidParams.AddNested("Ttl", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} diff --git a/service/mediapackage/types/enums.go b/service/mediapackage/types/enums.go index 6d840ac84cf..cc6b30e591e 100644 --- a/service/mediapackage/types/enums.go +++ b/service/mediapackage/types/enums.go @@ -202,8 +202,9 @@ type Profile string // Enum values for Profile const ( - ProfileNone Profile = "NONE" - ProfileHbbtv15 Profile = "HBBTV_1_5" + ProfileNone Profile = "NONE" + ProfileHbbtv15 Profile = "HBBTV_1_5" + ProfileHybridcast Profile = "HYBRIDCAST" ) // Values returns all known values for Profile. Note that this can be expanded in @@ -213,6 +214,7 @@ func (Profile) Values() []Profile { return []Profile{ "NONE", "HBBTV_1_5", + "HYBRIDCAST", } } diff --git a/service/mgn/api_op_CreateReplicationConfigurationTemplate.go b/service/mgn/api_op_CreateReplicationConfigurationTemplate.go index 3e1c1b1c2e1..a5b1b7f4753 100644 --- a/service/mgn/api_op_CreateReplicationConfigurationTemplate.go +++ b/service/mgn/api_op_CreateReplicationConfigurationTemplate.go @@ -52,13 +52,13 @@ type CreateReplicationConfigurationTemplateInput struct { // This member is required. DataPlaneRouting types.ReplicationConfigurationDataPlaneRouting - // Request to configure the Staging Disk EBS volume type to "gp2" during + // Request to configure the default large staging disk EBS volume type during // Replication Settings template creation. // // This member is required. DefaultLargeStagingDiskType types.ReplicationConfigurationDefaultLargeStagingDiskType - // Request to configure EBS enryption during Replication Settings template + // Request to configure EBS encryption during Replication Settings template // creation. // // This member is required. @@ -70,8 +70,8 @@ type CreateReplicationConfigurationTemplateInput struct { // This member is required. ReplicationServerInstanceType *string - // Request to configure the Replication Server Secuirity group ID during - // Replication Settings template creation. + // Request to configure the Replication Server Security group ID during Replication + // Settings template creation. // // This member is required. ReplicationServersSecurityGroupsIDs []string @@ -82,7 +82,7 @@ type CreateReplicationConfigurationTemplateInput struct { // This member is required. StagingAreaSubnetId *string - // Request to configure Staiging Area tags during Replication Settings template + // Request to configure Staging Area tags during Replication Settings template // creation. // // This member is required. @@ -94,7 +94,7 @@ type CreateReplicationConfigurationTemplateInput struct { // This member is required. UseDedicatedReplicationServer *bool - // Request to configure an EBS enryption key during Replication Settings template + // Request to configure an EBS encryption key during Replication Settings template // creation. EbsEncryptionKeyArn *string @@ -106,7 +106,7 @@ type CreateReplicationConfigurationTemplateInput struct { type CreateReplicationConfigurationTemplateOutput struct { - // Replication Configuration template template ID. + // Replication Configuration template ID. // // This member is required. ReplicationConfigurationTemplateID *string @@ -118,7 +118,7 @@ type CreateReplicationConfigurationTemplateOutput struct { // Service Security group. AssociateDefaultSecurityGroup *bool - // Replication Configuration template bandwidth throtting. + // Replication Configuration template bandwidth throttling. BandwidthThrottling int64 // Replication Configuration template create Public IP. @@ -127,7 +127,7 @@ type CreateReplicationConfigurationTemplateOutput struct { // Replication Configuration template data plane routing. DataPlaneRouting types.ReplicationConfigurationDataPlaneRouting - // Replication Configuration template use dedault large Staging Disk type. + // Replication Configuration template use default large Staging Disk type. DefaultLargeStagingDiskType types.ReplicationConfigurationDefaultLargeStagingDiskType // Replication Configuration template EBS encryption. diff --git a/service/mgn/api_op_DeleteVcenterClient.go b/service/mgn/api_op_DeleteVcenterClient.go index d1a6d4c104a..3ebd272a39d 100644 --- a/service/mgn/api_op_DeleteVcenterClient.go +++ b/service/mgn/api_op_DeleteVcenterClient.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a single vCenter client by ID. +// Deletes a given vCenter client by ID. func (c *Client) DeleteVcenterClient(ctx context.Context, params *DeleteVcenterClientInput, optFns ...func(*Options)) (*DeleteVcenterClientOutput, error) { if params == nil { params = &DeleteVcenterClientInput{} diff --git a/service/mgn/api_op_DescribeJobLogItems.go b/service/mgn/api_op_DescribeJobLogItems.go index c4c67cc6286..a7762499591 100644 --- a/service/mgn/api_op_DescribeJobLogItems.go +++ b/service/mgn/api_op_DescribeJobLogItems.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Retrieves detailed Job log with paging. +// Retrieves detailed job log items with paging. func (c *Client) DescribeJobLogItems(ctx context.Context, params *DescribeJobLogItemsInput, optFns ...func(*Options)) (*DescribeJobLogItemsOutput, error) { if params == nil { params = &DescribeJobLogItemsInput{} diff --git a/service/mgn/api_op_DescribeJobs.go b/service/mgn/api_op_DescribeJobs.go index 08367f8ffd5..b2211d799e7 100644 --- a/service/mgn/api_op_DescribeJobs.go +++ b/service/mgn/api_op_DescribeJobs.go @@ -14,7 +14,7 @@ import ( // Returns a list of Jobs. Use the JobsID and fromDate and toData filters to limit // which jobs are returned. The response is sorted by creationDataTime - latest -// date first. Jobs are normaly created by the StartTest, StartCutover, and +// date first. Jobs are normally created by the StartTest, StartCutover, and // TerminateTargetInstances APIs. Jobs are also created by DiagnosticLaunch and // TerminateDiagnosticInstances, which are APIs available only to *Support* and // only used in response to relevant support tickets. @@ -40,10 +40,10 @@ type DescribeJobsInput struct { // This member is required. Filters *types.DescribeJobsRequestFilters - // Request to describe Job log by max results. + // Request to describe job log items by max results. MaxResults int32 - // Request to describe Job logby next token. + // Request to describe job log items by next token. NextToken *string noSmithyDocumentSerde @@ -135,7 +135,7 @@ var _ DescribeJobsAPIClient = (*Client)(nil) // DescribeJobsPaginatorOptions is the paginator options for DescribeJobs type DescribeJobsPaginatorOptions struct { - // Request to describe Job log by max results. + // Request to describe job log items by max results. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/mgn/api_op_DescribeVcenterClients.go b/service/mgn/api_op_DescribeVcenterClients.go index ee429df3541..a76073e6eea 100644 --- a/service/mgn/api_op_DescribeVcenterClients.go +++ b/service/mgn/api_op_DescribeVcenterClients.go @@ -12,7 +12,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all vCenter clients. +// Returns a list of the installed vCenter clients. func (c *Client) DescribeVcenterClients(ctx context.Context, params *DescribeVcenterClientsInput, optFns ...func(*Options)) (*DescribeVcenterClientsOutput, error) { if params == nil { params = &DescribeVcenterClientsInput{} diff --git a/service/mgn/api_op_DisconnectFromService.go b/service/mgn/api_op_DisconnectFromService.go index 561eebea055..a45aeb273a1 100644 --- a/service/mgn/api_op_DisconnectFromService.go +++ b/service/mgn/api_op_DisconnectFromService.go @@ -16,13 +16,13 @@ import ( // Migration Service for enabling the replication of these source servers will be // terminated / deleted within 90 minutes. Launched Test or Cutover instances will // NOT be terminated. If the agent on the source server has not been prevented from -// communciating with the Application Migration Service service, then it will +// communicating with the Application Migration Service service, then it will // receive a command to uninstall itself (within approximately 10 minutes). The // following properties of the SourceServer will be changed immediately: // dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The // totalStorageBytes property for each of dataReplicationInfo.replicatedDisks will // be set to zero; dataReplicationInfo.lagDuration and -// dataReplicationInfo.lagDurationwill be nullified. +// dataReplicationInfo.lagDuration will be nullified. func (c *Client) DisconnectFromService(ctx context.Context, params *DisconnectFromServiceInput, optFns ...func(*Options)) (*DisconnectFromServiceOutput, error) { if params == nil { params = &DisconnectFromServiceInput{} diff --git a/service/mgn/api_op_FinalizeCutover.go b/service/mgn/api_op_FinalizeCutover.go index 43bb77d8cc1..9b626300911 100644 --- a/service/mgn/api_op_FinalizeCutover.go +++ b/service/mgn/api_op_FinalizeCutover.go @@ -17,10 +17,10 @@ import ( // Cutover instances will NOT be terminated. The AWS Replication Agent will receive // a command to uninstall itself (within 10 minutes). The following properties of // the SourceServer will be changed immediately: -// dataReplicationInfo.dataReplicationState will be to DISCONNECTED; The +// dataReplicationInfo.dataReplicationState will be changed to DISCONNECTED; The // SourceServer.lifeCycle.state will be changed to CUTOVER; The totalStorageBytes // property fo each of dataReplicationInfo.replicatedDisks will be set to zero; -// dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be +// dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will be // nullified. func (c *Client) FinalizeCutover(ctx context.Context, params *FinalizeCutoverInput, optFns ...func(*Options)) (*FinalizeCutoverOutput, error) { if params == nil { @@ -39,7 +39,7 @@ func (c *Client) FinalizeCutover(ctx context.Context, params *FinalizeCutoverInp type FinalizeCutoverInput struct { - // Request to finalize Cutover by Soure Server ID. + // Request to finalize Cutover by Source Server ID. // // This member is required. SourceServerID *string diff --git a/service/mgn/api_op_GetLaunchConfiguration.go b/service/mgn/api_op_GetLaunchConfiguration.go index 86efd1b4893..7d918b8a7d7 100644 --- a/service/mgn/api_op_GetLaunchConfiguration.go +++ b/service/mgn/api_op_GetLaunchConfiguration.go @@ -39,28 +39,31 @@ type GetLaunchConfigurationInput struct { type GetLaunchConfigurationOutput struct { + // Launch configuration boot mode. + BootMode types.BootMode + // Copy Private IP during Launch Configuration. CopyPrivateIp *bool // Copy Tags during Launch Configuration. CopyTags *bool - // Configure EC2 lauch configuration template ID. + // Launch configuration EC2 Launch template ID. Ec2LaunchTemplateID *string - // Configure launch dispostion for launch configuration. + // Launch disposition for launch configuration. LaunchDisposition types.LaunchDisposition - // Configure launch configuration OS licensing. + // Launch configuration OS licensing. Licensing *types.Licensing - // Configure launch configuration name. + // Launch configuration name. Name *string - // Configure launch configuration Source Server ID. + // Launch configuration Source Server ID. SourceServerID *string - // Configure launch configuration Target instance type right sizing method. + // Launch configuration Target instance type right sizing method. TargetInstanceTypeRightSizingMethod types.TargetInstanceTypeRightSizingMethod // Metadata pertaining to the operation's result. diff --git a/service/mgn/api_op_GetReplicationConfiguration.go b/service/mgn/api_op_GetReplicationConfiguration.go index cc68857834a..e1ad88fd438 100644 --- a/service/mgn/api_op_GetReplicationConfiguration.go +++ b/service/mgn/api_op_GetReplicationConfiguration.go @@ -29,7 +29,7 @@ func (c *Client) GetReplicationConfiguration(ctx context.Context, params *GetRep type GetReplicationConfigurationInput struct { - // Request to get Replication Configuaration by Source Server ID. + // Request to get Replication Configuration by Source Server ID. // // This member is required. SourceServerID *string diff --git a/service/mgn/api_op_MarkAsArchived.go b/service/mgn/api_op_MarkAsArchived.go index 6a278afabd2..8f64ffaf4d6 100644 --- a/service/mgn/api_op_MarkAsArchived.go +++ b/service/mgn/api_op_MarkAsArchived.go @@ -13,7 +13,7 @@ import ( // Archives specific Source Servers by setting the SourceServer.isArchived property // to true for specified SourceServers by ID. This command only works for -// SourceServers with a lifecycle.state which equals DISCONNECTED or CUTOVER. +// SourceServers with a lifecycle. state which equals DISCONNECTED or CUTOVER. func (c *Client) MarkAsArchived(ctx context.Context, params *MarkAsArchivedInput, optFns ...func(*Options)) (*MarkAsArchivedOutput, error) { if params == nil { params = &MarkAsArchivedInput{} diff --git a/service/mgn/api_op_StartReplication.go b/service/mgn/api_op_StartReplication.go index 0ed95bdd626..57e030e2daa 100644 --- a/service/mgn/api_op_StartReplication.go +++ b/service/mgn/api_op_StartReplication.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Starts replication on source server by ID. +// Starts replication for SNAPSHOT_SHIPPING agents. func (c *Client) StartReplication(ctx context.Context, params *StartReplicationInput, optFns ...func(*Options)) (*StartReplicationOutput, error) { if params == nil { params = &StartReplicationInput{} diff --git a/service/mgn/api_op_StartTest.go b/service/mgn/api_op_StartTest.go index 75f4f4b2443..1e399e4c45d 100644 --- a/service/mgn/api_op_StartTest.go +++ b/service/mgn/api_op_StartTest.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lauches a Test Instance for specific Source Servers. This command starts a +// Launches a Test Instance for specific Source Servers. This command starts a // LAUNCH job whose initiatedBy property is StartTest and changes the // SourceServer.lifeCycle.state property to TESTING. func (c *Client) StartTest(ctx context.Context, params *StartTestInput, optFns ...func(*Options)) (*StartTestOutput, error) { diff --git a/service/mgn/api_op_UpdateLaunchConfiguration.go b/service/mgn/api_op_UpdateLaunchConfiguration.go index 055b9b65e28..5ac6f8aebf5 100644 --- a/service/mgn/api_op_UpdateLaunchConfiguration.go +++ b/service/mgn/api_op_UpdateLaunchConfiguration.go @@ -34,6 +34,9 @@ type UpdateLaunchConfigurationInput struct { // This member is required. SourceServerID *string + // Update Launch configuration boot mode request. + BootMode types.BootMode + // Update Launch configuration copy Private IP request. CopyPrivateIp *bool @@ -57,28 +60,31 @@ type UpdateLaunchConfigurationInput struct { type UpdateLaunchConfigurationOutput struct { + // Launch configuration boot mode. + BootMode types.BootMode + // Copy Private IP during Launch Configuration. CopyPrivateIp *bool // Copy Tags during Launch Configuration. CopyTags *bool - // Configure EC2 lauch configuration template ID. + // Launch configuration EC2 Launch template ID. Ec2LaunchTemplateID *string - // Configure launch dispostion for launch configuration. + // Launch disposition for launch configuration. LaunchDisposition types.LaunchDisposition - // Configure launch configuration OS licensing. + // Launch configuration OS licensing. Licensing *types.Licensing - // Configure launch configuration name. + // Launch configuration name. Name *string - // Configure launch configuration Source Server ID. + // Launch configuration Source Server ID. SourceServerID *string - // Configure launch configuration Target instance type right sizing method. + // Launch configuration Target instance type right sizing method. TargetInstanceTypeRightSizingMethod types.TargetInstanceTypeRightSizingMethod // Metadata pertaining to the operation's result. diff --git a/service/mgn/api_op_UpdateReplicationConfigurationTemplate.go b/service/mgn/api_op_UpdateReplicationConfigurationTemplate.go index 2f028a330f8..6d3ab837510 100644 --- a/service/mgn/api_op_UpdateReplicationConfigurationTemplate.go +++ b/service/mgn/api_op_UpdateReplicationConfigurationTemplate.go @@ -83,7 +83,7 @@ type UpdateReplicationConfigurationTemplateInput struct { type UpdateReplicationConfigurationTemplateOutput struct { - // Replication Configuration template template ID. + // Replication Configuration template ID. // // This member is required. ReplicationConfigurationTemplateID *string @@ -95,7 +95,7 @@ type UpdateReplicationConfigurationTemplateOutput struct { // Service Security group. AssociateDefaultSecurityGroup *bool - // Replication Configuration template bandwidth throtting. + // Replication Configuration template bandwidth throttling. BandwidthThrottling int64 // Replication Configuration template create Public IP. @@ -104,7 +104,7 @@ type UpdateReplicationConfigurationTemplateOutput struct { // Replication Configuration template data plane routing. DataPlaneRouting types.ReplicationConfigurationDataPlaneRouting - // Replication Configuration template use dedault large Staging Disk type. + // Replication Configuration template use default large Staging Disk type. DefaultLargeStagingDiskType types.ReplicationConfigurationDefaultLargeStagingDiskType // Replication Configuration template EBS encryption. diff --git a/service/mgn/api_op_UpdateSourceServerReplicationType.go b/service/mgn/api_op_UpdateSourceServerReplicationType.go index 341106f656c..9ca43d77556 100644 --- a/service/mgn/api_op_UpdateSourceServerReplicationType.go +++ b/service/mgn/api_op_UpdateSourceServerReplicationType.go @@ -11,7 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates source server Replication Type by ID. +// Allows you to change between the AGENT_BASED replication type and the +// SNAPSHOT_SHIPPING replication type. func (c *Client) UpdateSourceServerReplicationType(ctx context.Context, params *UpdateSourceServerReplicationTypeInput, optFns ...func(*Options)) (*UpdateSourceServerReplicationTypeOutput, error) { if params == nil { params = &UpdateSourceServerReplicationTypeInput{} diff --git a/service/mgn/deserializers.go b/service/mgn/deserializers.go index 0df1a23a21f..ce1b10bd6b1 100644 --- a/service/mgn/deserializers.go +++ b/service/mgn/deserializers.go @@ -2254,6 +2254,15 @@ func awsRestjson1_deserializeOpDocumentGetLaunchConfigurationOutput(v **GetLaunc for key, value := range shape { switch key { + case "bootMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BootMode to be of type string, got %T instead", value) + } + sv.BootMode = types.BootMode(jtv) + } + case "copyPrivateIp": if value != nil { jtv, ok := value.(bool) @@ -4311,6 +4320,15 @@ func awsRestjson1_deserializeOpDocumentUpdateLaunchConfigurationOutput(v **Updat for key, value := range shape { switch key { + case "bootMode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BootMode to be of type string, got %T instead", value) + } + sv.BootMode = types.BootMode(jtv) + } + case "copyPrivateIp": if value != nil { jtv, ok := value.(bool) @@ -7441,6 +7459,19 @@ func awsRestjson1_deserializeDocumentReplicationConfigurationReplicatedDisk(v ** sv.StagingDiskType = types.ReplicationConfigurationReplicatedDiskStagingDiskType(jtv) } + case "throughput": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.Throughput = i64 + } + default: _, _ = key, value diff --git a/service/mgn/serializers.go b/service/mgn/serializers.go index 3ae67a7e009..0d61a8da59c 100644 --- a/service/mgn/serializers.go +++ b/service/mgn/serializers.go @@ -1887,6 +1887,11 @@ func awsRestjson1_serializeOpDocumentUpdateLaunchConfigurationInput(v *UpdateLau object := value.Object() defer object.Close() + if len(v.BootMode) > 0 { + ok := object.Key("bootMode") + ok.String(string(v.BootMode)) + } + if v.CopyPrivateIp != nil { ok := object.Key("copyPrivateIp") ok.Boolean(*v.CopyPrivateIp) @@ -2419,6 +2424,11 @@ func awsRestjson1_serializeDocumentReplicationConfigurationReplicatedDisk(v *typ ok.String(string(v.StagingDiskType)) } + if v.Throughput != 0 { + ok := object.Key("throughput") + ok.Long(v.Throughput) + } + return nil } diff --git a/service/mgn/types/enums.go b/service/mgn/types/enums.go index 623bec4752a..854b0bef4d4 100644 --- a/service/mgn/types/enums.go +++ b/service/mgn/types/enums.go @@ -2,6 +2,24 @@ package types +type BootMode string + +// Enum values for BootMode +const ( + BootModeLegacyBios BootMode = "LEGACY_BIOS" + BootModeUefi BootMode = "UEFI" +) + +// Values returns all known values for BootMode. 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 (BootMode) Values() []BootMode { + return []BootMode{ + "LEGACY_BIOS", + "UEFI", + } +} + type ChangeServerLifeCycleStateSourceServerLifecycleState string // Enum values for ChangeServerLifeCycleStateSourceServerLifecycleState @@ -396,6 +414,7 @@ type ReplicationConfigurationDefaultLargeStagingDiskType string const ( ReplicationConfigurationDefaultLargeStagingDiskTypeGp2 ReplicationConfigurationDefaultLargeStagingDiskType = "GP2" ReplicationConfigurationDefaultLargeStagingDiskTypeSt1 ReplicationConfigurationDefaultLargeStagingDiskType = "ST1" + ReplicationConfigurationDefaultLargeStagingDiskTypeGp3 ReplicationConfigurationDefaultLargeStagingDiskType = "GP3" ) // Values returns all known values for @@ -406,6 +425,7 @@ func (ReplicationConfigurationDefaultLargeStagingDiskType) Values() []Replicatio return []ReplicationConfigurationDefaultLargeStagingDiskType{ "GP2", "ST1", + "GP3", } } @@ -438,6 +458,8 @@ const ( ReplicationConfigurationReplicatedDiskStagingDiskTypeSc1 ReplicationConfigurationReplicatedDiskStagingDiskType = "SC1" ReplicationConfigurationReplicatedDiskStagingDiskTypeSt1 ReplicationConfigurationReplicatedDiskStagingDiskType = "ST1" ReplicationConfigurationReplicatedDiskStagingDiskTypeStandard ReplicationConfigurationReplicatedDiskStagingDiskType = "STANDARD" + ReplicationConfigurationReplicatedDiskStagingDiskTypeGp3 ReplicationConfigurationReplicatedDiskStagingDiskType = "GP3" + ReplicationConfigurationReplicatedDiskStagingDiskTypeIo2 ReplicationConfigurationReplicatedDiskStagingDiskType = "IO2" ) // Values returns all known values for @@ -452,6 +474,8 @@ func (ReplicationConfigurationReplicatedDiskStagingDiskType) Values() []Replicat "SC1", "ST1", "STANDARD", + "GP3", + "IO2", } } diff --git a/service/mgn/types/errors.go b/service/mgn/types/errors.go index 6dbfc6880dd..ffeea37ea5a 100644 --- a/service/mgn/types/errors.go +++ b/service/mgn/types/errors.go @@ -145,7 +145,7 @@ func (e *ThrottlingException) ErrorMessage() string { func (e *ThrottlingException) ErrorCode() string { return "ThrottlingException" } func (e *ThrottlingException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Unitialized account exception. +// Uninitialized account exception. type UninitializedAccountException struct { Message *string diff --git a/service/mgn/types/types.go b/service/mgn/types/types.go index 8d63b6dba6a..231061c3421 100644 --- a/service/mgn/types/types.go +++ b/service/mgn/types/types.go @@ -56,7 +56,7 @@ type DataReplicationInfo struct { // Request to query the time when data replication will be complete. EtaDateTime *string - // Request to query data replication lag durating. + // Request to query data replication lag duration. LagDuration *string // Request to query data replication last snapshot time. @@ -104,7 +104,7 @@ type DataReplicationInitiation struct { noSmithyDocumentSerde } -// Data replication intiation step. +// Data replication initiation step. type DataReplicationInitiationStep struct { // Request to query data initiation step name. @@ -125,7 +125,7 @@ type DescribeJobsRequestFilters struct { // Request to describe Job log filters by job ID. JobIDs []string - // Request to describe Job log by last date. + // Request to describe job log items by last date. ToDate *string noSmithyDocumentSerde @@ -208,7 +208,7 @@ type Job struct { // Job status. Status JobStatus - // Tags associated with spcific Job. + // Tags associated with specific Job. Tags map[string]string // Job type. @@ -250,16 +250,16 @@ type JobLogEventData struct { noSmithyDocumentSerde } -// Configure launced instance. +// Launched instance. type LaunchedInstance struct { - // Configure launced instance EC2 ID. + // Launched instance EC2 ID. Ec2InstanceID *string - // Configure launced instance first boot. + // Launched instance first boot. FirstBoot FirstBoot - // Configure launced instance Job ID. + // Launched instance Job ID. JobID *string noSmithyDocumentSerde @@ -349,7 +349,7 @@ type LifeCycleLastCutoverReverted struct { // Lifecycle last Test. type LifeCycleLastTest struct { - // Lifecycle last Test finlized. + // Lifecycle last Test finalized. Finalized *LifeCycleLastTestFinalized // Lifecycle last Test initiated. @@ -361,7 +361,7 @@ type LifeCycleLastTest struct { noSmithyDocumentSerde } -// Lifecycle last Test finlized. +// Lifecycle last Test finalized. type LifeCycleLastTestFinalized struct { // Lifecycle Test failed API call date and time. @@ -442,12 +442,15 @@ type ReplicationConfigurationReplicatedDisk struct { // Replication Configuration replicated disk staging disk type. StagingDiskType ReplicationConfigurationReplicatedDiskStagingDiskType + // Replication Configuration replicated disk throughput. + Throughput int64 + noSmithyDocumentSerde } type ReplicationConfigurationTemplate struct { - // Replication Configuration template template ID. + // Replication Configuration template ID. // // This member is required. ReplicationConfigurationTemplateID *string @@ -459,7 +462,7 @@ type ReplicationConfigurationTemplate struct { // Service Security group. AssociateDefaultSecurityGroup *bool - // Replication Configuration template bandwidth throtting. + // Replication Configuration template bandwidth throttling. BandwidthThrottling int64 // Replication Configuration template create Public IP. @@ -468,7 +471,7 @@ type ReplicationConfigurationTemplate struct { // Replication Configuration template data plane routing. DataPlaneRouting ReplicationConfigurationDataPlaneRouting - // Replication Configuration template use dedault large Staging Disk type. + // Replication Configuration template use default large Staging Disk type. DefaultLargeStagingDiskType ReplicationConfigurationDefaultLargeStagingDiskType // Replication Configuration template EBS encryption. diff --git a/service/mq/internal/endpoints/endpoints.go b/service/mq/internal/endpoints/endpoints.go index c91c44c01c4..270545b6c33 100644 --- a/service/mq/internal/endpoints/endpoints.go +++ b/service/mq/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/panorama/api_op_DeletePackage.go b/service/panorama/api_op_DeletePackage.go index b050121b66e..ea6225becb5 100644 --- a/service/panorama/api_op_DeletePackage.go +++ b/service/panorama/api_op_DeletePackage.go @@ -10,7 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Deletes a package. +// Deletes a package. To delete a package, you need permission to call +// s3:DeleteObject in addition to permissions for the AWS Panorama API. func (c *Client) DeletePackage(ctx context.Context, params *DeletePackageInput, optFns ...func(*Options)) (*DeletePackageOutput, error) { if params == nil { params = &DeletePackageInput{} @@ -35,7 +36,7 @@ type DeletePackageInput struct { // Delete the package even if it has artifacts stored in its access point. Deletes // the package's artifacts from Amazon S3. - ForceDelete *bool + ForceDelete bool noSmithyDocumentSerde } diff --git a/service/panorama/api_op_DescribeDevice.go b/service/panorama/api_op_DescribeDevice.go index 5aa48be1eb5..3f69e54fcb7 100644 --- a/service/panorama/api_op_DescribeDevice.go +++ b/service/panorama/api_op_DescribeDevice.go @@ -40,6 +40,9 @@ type DescribeDeviceInput struct { type DescribeDeviceOutput struct { + // Beta software releases available for the device. + AlternateSoftwares []types.AlternateSoftwareMetadata + // The device's ARN. Arn *string @@ -61,6 +64,9 @@ type DescribeDeviceOutput struct { // The device's ID. DeviceId *string + // The most recent beta software release. + LatestAlternateSoftware *string + // The latest software version available for the device. LatestSoftware *string diff --git a/service/panorama/api_op_DescribePackageVersion.go b/service/panorama/api_op_DescribePackageVersion.go index 4bcab0d6836..23047a285c4 100644 --- a/service/panorama/api_op_DescribePackageVersion.go +++ b/service/panorama/api_op_DescribePackageVersion.go @@ -54,7 +54,7 @@ type DescribePackageVersionOutput struct { // Whether the version is the latest available. // // This member is required. - IsLatestPatch *bool + IsLatestPatch bool // The version's ID. // diff --git a/service/panorama/api_op_RegisterPackageVersion.go b/service/panorama/api_op_RegisterPackageVersion.go index 5c6ed09df29..65536f48785 100644 --- a/service/panorama/api_op_RegisterPackageVersion.go +++ b/service/panorama/api_op_RegisterPackageVersion.go @@ -44,7 +44,7 @@ type RegisterPackageVersionInput struct { PatchVersion *string // Whether to mark the new version as the latest version. - MarkLatest *bool + MarkLatest bool // An owner account. OwnerAccount *string diff --git a/service/panorama/deserializers.go b/service/panorama/deserializers.go index b64e2e6ab12..74404c01198 100644 --- a/service/panorama/deserializers.go +++ b/service/panorama/deserializers.go @@ -1844,6 +1844,11 @@ func awsRestjson1_deserializeOpDocumentDescribeDeviceOutput(v **DescribeDeviceOu for key, value := range shape { switch key { + case "AlternateSoftwares": + if err := awsRestjson1_deserializeDocumentAlternateSoftwares(&sv.AlternateSoftwares, value); err != nil { + return err + } + case "Arn": if value != nil { jtv, ok := value.(string) @@ -1910,6 +1915,15 @@ func awsRestjson1_deserializeOpDocumentDescribeDeviceOutput(v **DescribeDeviceOu sv.DeviceId = ptr.String(jtv) } + case "LatestAlternateSoftware": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected LatestAlternateSoftware to be of type string, got %T instead", value) + } + sv.LatestAlternateSoftware = ptr.String(jtv) + } + case "LatestSoftware": if value != nil { jtv, ok := value.(string) @@ -3394,7 +3408,7 @@ func awsRestjson1_deserializeOpDocumentDescribePackageVersionOutput(v **Describe if !ok { return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) } - sv.IsLatestPatch = ptr.Bool(jtv) + sv.IsLatestPatch = jtv } case "OwnerAccount": @@ -6124,6 +6138,80 @@ func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDenie return nil } +func awsRestjson1_deserializeDocumentAlternateSoftwareMetadata(v **types.AlternateSoftwareMetadata, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AlternateSoftwareMetadata + if *v == nil { + sv = &types.AlternateSoftwareMetadata{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Version": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Version to be of type string, got %T instead", value) + } + sv.Version = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentAlternateSoftwares(v *[]types.AlternateSoftwareMetadata, 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.AlternateSoftwareMetadata + if *v == nil { + cv = []types.AlternateSoftwareMetadata{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.AlternateSoftwareMetadata + destAddr := &col + if err := awsRestjson1_deserializeDocumentAlternateSoftwareMetadata(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentApplicationInstance(v **types.ApplicationInstance, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -7198,6 +7286,11 @@ func awsRestjson1_deserializeDocumentNetworkPayload(v **types.NetworkPayload, va return err } + case "Ntp": + if err := awsRestjson1_deserializeDocumentNtpPayload(&sv.Ntp, value); err != nil { + return err + } + default: _, _ = key, value @@ -7239,6 +7332,27 @@ func awsRestjson1_deserializeDocumentNetworkStatus(v **types.NetworkStatus, valu return err } + case "LastUpdatedTime": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.LastUpdatedTime = ptr.Time(smithytime.ParseEpochSeconds(f64)) + + default: + return fmt.Errorf("expected LastUpdatedTime to be a JSON Number, got %T instead", value) + + } + } + + case "NtpStatus": + if err := awsRestjson1_deserializeDocumentNtpStatus(&sv.NtpStatus, value); err != nil { + return err + } + default: _, _ = key, value @@ -7852,6 +7966,136 @@ func awsRestjson1_deserializeDocumentNodesList(v *[]types.Node, value interface{ return nil } +func awsRestjson1_deserializeDocumentNtpPayload(v **types.NtpPayload, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.NtpPayload + if *v == nil { + sv = &types.NtpPayload{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "NtpServers": + if err := awsRestjson1_deserializeDocumentNtpServerList(&sv.NtpServers, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentNtpServerList(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 IpAddressOrServerName to be of type string, got %T instead", value) + } + col = jtv + } + cv = append(cv, col) + + } + *v = cv + return nil +} + +func awsRestjson1_deserializeDocumentNtpStatus(v **types.NtpStatus, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.NtpStatus + if *v == nil { + sv = &types.NtpStatus{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ConnectionStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NetworkConnectionStatus to be of type string, got %T instead", value) + } + sv.ConnectionStatus = types.NetworkConnectionStatus(jtv) + } + + case "IpAddress": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected IpAddress to be of type string, got %T instead", value) + } + sv.IpAddress = ptr.String(jtv) + } + + case "NtpServerName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NtpServerName to be of type string, got %T instead", value) + } + sv.NtpServerName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentOutputPortList(v *[]types.NodeOutputPort, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -8472,7 +8716,7 @@ func awsRestjson1_deserializeDocumentPackageVersionOutputConfig(v **types.Packag if !ok { return fmt.Errorf("expected MarkLatestPatch to be of type *bool, got %T instead", value) } - sv.MarkLatest = ptr.Bool(jtv) + sv.MarkLatest = jtv } case "PackageName": diff --git a/service/panorama/serializers.go b/service/panorama/serializers.go index 48fd8b9a645..ea3f8ecd5e3 100644 --- a/service/panorama/serializers.go +++ b/service/panorama/serializers.go @@ -580,8 +580,8 @@ func awsRestjson1_serializeOpHttpBindingsDeletePackageInput(v *DeletePackageInpu return fmt.Errorf("unsupported serialization of nil %T", v) } - if v.ForceDelete != nil { - encoder.SetQuery("ForceDelete").Boolean(*v.ForceDelete) + if v.ForceDelete { + encoder.SetQuery("ForceDelete").Boolean(v.ForceDelete) } if v.PackageId == nil || len(*v.PackageId) == 0 { @@ -2022,9 +2022,9 @@ func awsRestjson1_serializeOpDocumentRegisterPackageVersionInput(v *RegisterPack object := value.Object() defer object.Close() - if v.MarkLatest != nil { + if v.MarkLatest { ok := object.Key("MarkLatest") - ok.Boolean(*v.MarkLatest) + ok.Boolean(v.MarkLatest) } if v.OwnerAccount != nil { @@ -2458,6 +2458,38 @@ func awsRestjson1_serializeDocumentNetworkPayload(v *types.NetworkPayload, value } } + if v.Ntp != nil { + ok := object.Key("Ntp") + if err := awsRestjson1_serializeDocumentNtpPayload(v.Ntp, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentNtpPayload(v *types.NtpPayload, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.NtpServers != nil { + ok := object.Key("NtpServers") + if err := awsRestjson1_serializeDocumentNtpServerList(v.NtpServers, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentNtpServerList(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 } @@ -2519,9 +2551,9 @@ func awsRestjson1_serializeDocumentPackageVersionOutputConfig(v *types.PackageVe object := value.Object() defer object.Close() - if v.MarkLatest != nil { + if v.MarkLatest { ok := object.Key("MarkLatest") - ok.Boolean(*v.MarkLatest) + ok.Boolean(v.MarkLatest) } if v.PackageName != nil { diff --git a/service/panorama/types/enums.go b/service/panorama/types/enums.go index a2edbd32b7c..20309809ff3 100644 --- a/service/panorama/types/enums.go +++ b/service/panorama/types/enums.go @@ -181,6 +181,7 @@ type NetworkConnectionStatus string const ( NetworkConnectionStatusConnected NetworkConnectionStatus = "CONNECTED" NetworkConnectionStatusNotConnected NetworkConnectionStatus = "NOT_CONNECTED" + NetworkConnectionStatusConnecting NetworkConnectionStatus = "CONNECTING" ) // Values returns all known values for NetworkConnectionStatus. Note that this can @@ -190,6 +191,7 @@ func (NetworkConnectionStatus) Values() []NetworkConnectionStatus { return []NetworkConnectionStatus{ "CONNECTED", "NOT_CONNECTED", + "CONNECTING", } } @@ -279,7 +281,8 @@ type PackageImportJobType string // Enum values for PackageImportJobType const ( - PackageImportJobTypeNodePackageVersion PackageImportJobType = "NODE_PACKAGE_VERSION" + PackageImportJobTypeNodePackageVersion PackageImportJobType = "NODE_PACKAGE_VERSION" + PackageImportJobTypeMarketplaceNodePackageVersion PackageImportJobType = "MARKETPLACE_NODE_PACKAGE_VERSION" ) // Values returns all known values for PackageImportJobType. Note that this can be @@ -288,6 +291,7 @@ const ( func (PackageImportJobType) Values() []PackageImportJobType { return []PackageImportJobType{ "NODE_PACKAGE_VERSION", + "MARKETPLACE_NODE_PACKAGE_VERSION", } } diff --git a/service/panorama/types/types.go b/service/panorama/types/types.go index 956570f207a..444e897fcf1 100644 --- a/service/panorama/types/types.go +++ b/service/panorama/types/types.go @@ -7,6 +7,15 @@ import ( "time" ) +// Details about a beta appliance software update. +type AlternateSoftwareMetadata struct { + + // The appliance software version. + Version *string + + noSmithyDocumentSerde +} + // An application instance on a device. type ApplicationInstance struct { @@ -218,6 +227,9 @@ type NetworkPayload struct { // Settings for Ethernet port 1. Ethernet1 *EthernetPayload + // Network time protocol (NTP) server settings. + Ntp *NtpPayload + noSmithyDocumentSerde } @@ -230,6 +242,12 @@ type NetworkStatus struct { // The status of Ethernet port 1. Ethernet1Status *EthernetStatus + // When the network status changed. + LastUpdatedTime *time.Time + + // Details about a network time protocol (NTP) server connection. + NtpStatus *NtpStatus + noSmithyDocumentSerde } @@ -395,6 +413,33 @@ type NodeOutputPort struct { noSmithyDocumentSerde } +// Network time protocol (NTP) server settings. Use this option to connect to local +// NTP servers instead of pool.ntp.org. +type NtpPayload struct { + + // NTP servers to use, in order of preference. + // + // This member is required. + NtpServers []string + + noSmithyDocumentSerde +} + +// Details about an NTP server connection. +type NtpStatus struct { + + // The connection's status. + ConnectionStatus NetworkConnectionStatus + + // The IP address of the server. + IpAddress *string + + // The domain name of the server. + NtpServerName *string + + noSmithyDocumentSerde +} + // An over-the-air update (OTA) job configuration. type OTAJobConfig struct { @@ -557,7 +602,7 @@ type PackageVersionOutputConfig struct { PackageVersion *string // Indicates that the version is recommended for all users. - MarkLatest *bool + MarkLatest bool noSmithyDocumentSerde } diff --git a/service/panorama/validators.go b/service/panorama/validators.go index 52044366e3f..7dafc970010 100644 --- a/service/panorama/validators.go +++ b/service/panorama/validators.go @@ -721,6 +721,26 @@ func validateNetworkPayload(v *types.NetworkPayload) error { invalidParams.AddNested("Ethernet1", err.(smithy.InvalidParamsError)) } } + if v.Ntp != nil { + if err := validateNtpPayload(v.Ntp); err != nil { + invalidParams.AddNested("Ntp", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateNtpPayload(v *types.NtpPayload) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "NtpPayload"} + if v.NtpServers == nil { + invalidParams.Add(smithy.NewErrParamRequired("NtpServers")) + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/route53recoverycluster/api_op_GetRoutingControlState.go b/service/route53recoverycluster/api_op_GetRoutingControlState.go index 45726276691..cfd4910f8da 100644 --- a/service/route53recoverycluster/api_op_GetRoutingControlState.go +++ b/service/route53recoverycluster/api_op_GetRoutingControlState.go @@ -13,15 +13,29 @@ import ( // Get the state for a routing control. A routing control is a simple on/off switch // that you can use to route traffic to cells. When the state is On, traffic flows -// to a cell. When it's off, traffic does not flow. Before you can create a routing -// control, you first must create a cluster to host the control. For more -// information, see CreateCluster -// (https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster.html). Access -// one of the endpoints for the cluster to get or update the routing control state -// to redirect traffic. For more information about working with routing controls, -// see Routing control -// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html) in the -// Route 53 Application Recovery Controller Developer Guide. +// to a cell. When it's Off, traffic does not flow. Before you can create a routing +// control, you must first create a cluster to host the control in a control panel. +// For more information, see Create routing control structures +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.create.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. Then you +// access one of the endpoints for the cluster to get or update the routing control +// state to redirect traffic. You must specify Regional endpoints when you work +// with API cluster operations to get or update routing control states in +// Application Recovery Controller. To see a code example for getting a routing +// control state, including accessing Regional cluster endpoints in sequence, see +// API examples +// (https://docs.aws.amazon.com/r53recovery/latest/dg/service_code_examples_actions.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. Learn +// more about working with routing controls in the following topics in the Amazon +// Route 53 Application Recovery Controller Developer Guide: +// +// * Viewing and +// updating routing control states +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.update.html) +// +// * +// Working with routing controls overall +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html) func (c *Client) GetRoutingControlState(ctx context.Context, params *GetRoutingControlStateInput, optFns ...func(*Options)) (*GetRoutingControlStateOutput, error) { if params == nil { params = &GetRoutingControlStateInput{} diff --git a/service/route53recoverycluster/api_op_UpdateRoutingControlState.go b/service/route53recoverycluster/api_op_UpdateRoutingControlState.go index b9d2efc5d0f..609d09eb184 100644 --- a/service/route53recoverycluster/api_op_UpdateRoutingControlState.go +++ b/service/route53recoverycluster/api_op_UpdateRoutingControlState.go @@ -12,11 +12,35 @@ import ( ) // Set the state of the routing control to reroute traffic. You can set the value -// to be On or Off. When the state is On, traffic flows to a cell. When it's off, -// traffic does not flow. For more information about working with routing controls, -// see Routing control -// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html) in the -// Route 53 Application Recovery Controller Developer Guide. +// to be On or Off. When the state is On, traffic flows to a cell. When it's Off, +// traffic does not flow. With Application Recovery Controller, you can add safety +// rules for routing controls, which are safeguards for routing control state +// updates that help prevent unexpected outcomes, like fail open traffic routing. +// However, there are scenarios when you might want to bypass the routing control +// safeguards that are enforced with safety rules that you've configured. For +// example, you might want to fail over quickly for disaster recovery, and one or +// more safety rules might be unexpectedly preventing you from updating a routing +// control state to reroute traffic. In a "break glass" scenario like this, you can +// override one or more safety rules to change a routing control state and fail +// over your application. The SafetyRulesToOverride property enables you override +// one or more safety rules and update routing control states. For more +// information, see Override safety rules to reroute traffic +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.override-safety-rule.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. You must +// specify Regional endpoints when you work with API cluster operations to get or +// update routing control states in Application Recovery Controller. To see a code +// example for getting a routing control state, including accessing Regional +// cluster endpoints in sequence, see API examples +// (https://docs.aws.amazon.com/r53recovery/latest/dg/service_code_examples_actions.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. +// +// * +// Viewing and updating routing control states +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.update.html) +// +// * +// Working with routing controls overall +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html) func (c *Client) UpdateRoutingControlState(ctx context.Context, params *UpdateRoutingControlStateInput, optFns ...func(*Options)) (*UpdateRoutingControlStateOutput, error) { if params == nil { params = &UpdateRoutingControlStateInput{} @@ -45,6 +69,15 @@ type UpdateRoutingControlStateInput struct { // This member is required. RoutingControlState types.RoutingControlState + // The Amazon Resource Numbers (ARNs) for the safety rules that you want to + // override when you're updating the state of a routing control. You can override + // one safety rule or multiple safety rules by including one or more ARNs, + // separated by commas. For more information, see Override safety rules to reroute + // traffic + // (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.override-safety-rule.html) + // in the Amazon Route 53 Application Recovery Controller Developer Guide. + SafetyRulesToOverride []string + noSmithyDocumentSerde } diff --git a/service/route53recoverycluster/api_op_UpdateRoutingControlStates.go b/service/route53recoverycluster/api_op_UpdateRoutingControlStates.go index 2bcab87c9b5..8294f8de723 100644 --- a/service/route53recoverycluster/api_op_UpdateRoutingControlStates.go +++ b/service/route53recoverycluster/api_op_UpdateRoutingControlStates.go @@ -12,11 +12,35 @@ import ( ) // Set multiple routing control states. You can set the value for each state to be -// On or Off. When the state is On, traffic flows to a cell. When it's off, traffic -// does not flow. For more information about working with routing controls, see -// Routing control -// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html) in the -// Route 53 Application Recovery Controller Developer Guide. +// On or Off. When the state is On, traffic flows to a cell. When it's Off, traffic +// does not flow. With Application Recovery Controller, you can add safety rules +// for routing controls, which are safeguards for routing control state updates +// that help prevent unexpected outcomes, like fail open traffic routing. However, +// there are scenarios when you might want to bypass the routing control safeguards +// that are enforced with safety rules that you've configured. For example, you +// might want to fail over quickly for disaster recovery, and one or more safety +// rules might be unexpectedly preventing you from updating a routing control state +// to reroute traffic. In a "break glass" scenario like this, you can override one +// or more safety rules to change a routing control state and fail over your +// application. The SafetyRulesToOverride property enables you override one or more +// safety rules and update routing control states. For more information, see +// Override safety rules to reroute traffic +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.override-safety-rule.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. You must +// specify Regional endpoints when you work with API cluster operations to get or +// update routing control states in Application Recovery Controller. To see a code +// example for getting a routing control state, including accessing Regional +// cluster endpoints in sequence, see API examples +// (https://docs.aws.amazon.com/r53recovery/latest/dg/service_code_examples_actions.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. +// +// * +// Viewing and updating routing control states +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.update.html) +// +// * +// Working with routing controls overall +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.html) func (c *Client) UpdateRoutingControlStates(ctx context.Context, params *UpdateRoutingControlStatesInput, optFns ...func(*Options)) (*UpdateRoutingControlStatesOutput, error) { if params == nil { params = &UpdateRoutingControlStatesInput{} @@ -39,6 +63,14 @@ type UpdateRoutingControlStatesInput struct { // This member is required. UpdateRoutingControlStateEntries []types.UpdateRoutingControlStateEntry + // The Amazon Resource Numbers (ARNs) for the safety rules that you want to + // override when you're updating routing control states. You can override one + // safety rule or multiple safety rules by including one or more ARNs, separated by + // commas. For more information, see Override safety rules to reroute traffic + // (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.override-safety-rule.html) + // in the Amazon Route 53 Application Recovery Controller Developer Guide. + SafetyRulesToOverride []string + noSmithyDocumentSerde } diff --git a/service/route53recoverycluster/doc.go b/service/route53recoverycluster/doc.go index 19d53857c71..11297e9909d 100644 --- a/service/route53recoverycluster/doc.go +++ b/service/route53recoverycluster/doc.go @@ -3,34 +3,54 @@ // Package route53recoverycluster provides the API client, operations, and // parameter types for Route53 Recovery Cluster. // -// Welcome to the Amazon Route 53 Application Recovery Controller API Reference -// Guide for Recovery Control Data Plane . Recovery control in Route 53 Application -// Recovery Controller includes extremely reliable routing controls that enable you -// to recover applications by rerouting traffic, for example, across Availability -// Zones or AWS Regions. Routing controls are simple on/off switches hosted on a -// cluster. A cluster is a set of five redundant regional endpoints against which -// you can execute API calls to update or get the state of routing controls. You -// use routing controls to failover traffic to recover your application across -// Availability Zones or Regions. This API guide includes information about how to -// get and update routing control states in Route 53 Application Recovery -// Controller. For more information about Route 53 Application Recovery Controller, -// see the following: +// Welcome to the Routing Control (Recovery Cluster) API Reference Guide for Amazon +// Route 53 Application Recovery Controller. With Amazon Route 53 Application +// Recovery Controller, you can use routing control with extreme reliability to +// recover applications by rerouting traffic across Availability Zones or AWS +// Regions. Routing controls are simple on/off switches hosted on a highly +// available cluster in Application Recovery Controller. A cluster provides a set +// of five redundant Regional endpoints against which you can run API calls to get +// or update the state of routing controls. To implement failover, you set one +// routing control on and another one off, to reroute traffic from one Availability +// Zone or Amazon Web Services Region to another. Be aware that you must specify +// the Regional endpoints for a cluster when you work with API cluster operations +// to get or update routing control states in Application Recovery Controller. In +// addition, you must specify the US West (Oregon) Region for Application Recovery +// Controller API calls. For example, use the parameter region us-west-2 with AWS +// CLI commands. For more information, see Get and update routing control states +// using the API +// (https://docs.aws.amazon.com/r53recovery/latest/dg/routing-control.update.api.html) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. This API +// guide includes information about the API operations for how to get and update +// routing control states in Application Recovery Controller. You also must set up +// the structures to support routing controls: clusters and control panels. For +// more information about working with routing control in Application Recovery +// Controller, see the following: // -// * You can create clusters, routing controls, and control -// panels by using the control plane API for Recovery Control. For more -// information, see Amazon Route 53 Application Recovery Controller Recovery -// Control API Reference +// * To create clusters, routing controls, and +// control panels by using the control plane API for routing control, see the +// Recovery Control Configuration API Reference Guide for Amazon Route 53 +// Application Recovery Controller // (https://docs.aws.amazon.com/recovery-cluster/latest/api/). // -// * Route 53 -// Application Recovery Controller also provides continuous readiness checks to -// ensure that your applications are scaled to handle failover traffic. For more -// information about the related API actions, see Amazon Route 53 Application -// Recovery Controller Recovery Readiness API Reference +// * Learn about the +// components in recovery control configuration, including clusters, routing +// controls, and control panels. For more information, see Recovery control +// components +// (https://docs.aws.amazon.com/r53recovery/latest/dg/introduction-components.html#introduction-components-routing) +// in the Amazon Route 53 Application Recovery Controller Developer Guide. +// +// * +// Application Recovery Controller also provides readiness checks that run +// continually to help make sure that your applications are scaled and ready to +// handle failover traffic. For more information about the related API actions, see +// the Recovery Readiness API Reference Guide for Amazon Route 53 Application +// Recovery Controller // (https://docs.aws.amazon.com/recovery-readiness/latest/api/). // // * For more // information about creating resilient applications and preparing for recovery -// readiness with Route 53 Application Recovery Controller, see the Amazon Route 53 -// Application Recovery Controller Developer Guide. +// readiness with Application Recovery Controller, see the Amazon Route 53 +// Application Recovery Controller Developer Guide +// (https://docs.aws.amazon.com/r53recovery/latest/dg/). package route53recoverycluster diff --git a/service/route53recoverycluster/serializers.go b/service/route53recoverycluster/serializers.go index 70562e81b70..42d88114fe4 100644 --- a/service/route53recoverycluster/serializers.go +++ b/service/route53recoverycluster/serializers.go @@ -179,6 +179,17 @@ func (m *awsAwsjson10_serializeOpUpdateRoutingControlStates) HandleSerialize(ctx return next.HandleSerialize(ctx, in) } +func awsAwsjson10_serializeDocumentArns(v []string, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + av.String(v[i]) + } + return nil +} + func awsAwsjson10_serializeDocumentUpdateRoutingControlStateEntries(v []types.UpdateRoutingControlStateEntry, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -235,6 +246,13 @@ func awsAwsjson10_serializeOpDocumentUpdateRoutingControlStateInput(v *UpdateRou ok.String(string(v.RoutingControlState)) } + if v.SafetyRulesToOverride != nil { + ok := object.Key("SafetyRulesToOverride") + if err := awsAwsjson10_serializeDocumentArns(v.SafetyRulesToOverride, ok); err != nil { + return err + } + } + return nil } @@ -242,6 +260,13 @@ func awsAwsjson10_serializeOpDocumentUpdateRoutingControlStatesInput(v *UpdateRo object := value.Object() defer object.Close() + if v.SafetyRulesToOverride != nil { + ok := object.Key("SafetyRulesToOverride") + if err := awsAwsjson10_serializeDocumentArns(v.SafetyRulesToOverride, ok); err != nil { + return err + } + } + if v.UpdateRoutingControlStateEntries != nil { ok := object.Key("UpdateRoutingControlStateEntries") if err := awsAwsjson10_serializeDocumentUpdateRoutingControlStateEntries(v.UpdateRoutingControlStateEntries, ok); err != nil { diff --git a/service/route53recoverycluster/types/types.go b/service/route53recoverycluster/types/types.go index be110825674..a1ad87afcb1 100644 --- a/service/route53recoverycluster/types/types.go +++ b/service/route53recoverycluster/types/types.go @@ -6,10 +6,10 @@ import ( smithydocument "github.com/aws/smithy-go/document" ) -// A routing control state. +// A routing control state entry. type UpdateRoutingControlStateEntry struct { - // The Amazon Resource Number (ARN) for the routing control state entry. + // The Amazon Resource Number (ARN) for a routing control state entry. // // This member is required. RoutingControlArn *string diff --git a/service/sqs/internal/endpoints/endpoints.go b/service/sqs/internal/endpoints/endpoints.go index 0c851ccda53..3423cd863fc 100644 --- a/service/sqs/internal/endpoints/endpoints.go +++ b/service/sqs/internal/endpoints/endpoints.go @@ -376,7 +376,7 @@ var defaultPartitions = endpoints.Partitions{ { Variant: endpoints.FIPSVariant, }: { - Hostname: "sqs-fips.{region}.amazonaws.com", + Hostname: "sqs.{region}.amazonaws.com", Protocols: []string{"https"}, SignatureVersions: []string{"v4"}, }, diff --git a/service/transfer/api_op_DescribeServer.go b/service/transfer/api_op_DescribeServer.go index c032cb36b46..a45eb321e29 100644 --- a/service/transfer/api_op_DescribeServer.go +++ b/service/transfer/api_op_DescribeServer.go @@ -4,11 +4,16 @@ package transfer 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/transfer/types" "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" + "time" ) // Describes a file transfer protocol-enabled server that you specify by passing @@ -116,6 +121,366 @@ func (c *Client) addOperationDescribeServerMiddlewares(stack *middleware.Stack, return nil } +// DescribeServerAPIClient is a client that implements the DescribeServer +// operation. +type DescribeServerAPIClient interface { + DescribeServer(context.Context, *DescribeServerInput, ...func(*Options)) (*DescribeServerOutput, error) +} + +var _ DescribeServerAPIClient = (*Client)(nil) + +// ServerOfflineWaiterOptions are waiter options for ServerOfflineWaiter +type ServerOfflineWaiterOptions 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, + // ServerOfflineWaiter will use default minimum delay of 30 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, ServerOfflineWaiter 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, *DescribeServerInput, *DescribeServerOutput, error) (bool, error) +} + +// ServerOfflineWaiter defines the waiters for ServerOffline +type ServerOfflineWaiter struct { + client DescribeServerAPIClient + + options ServerOfflineWaiterOptions +} + +// NewServerOfflineWaiter constructs a ServerOfflineWaiter. +func NewServerOfflineWaiter(client DescribeServerAPIClient, optFns ...func(*ServerOfflineWaiterOptions)) *ServerOfflineWaiter { + options := ServerOfflineWaiterOptions{} + options.MinDelay = 30 * time.Second + options.MaxDelay = 120 * time.Second + options.Retryable = serverOfflineStateRetryable + + for _, fn := range optFns { + fn(&options) + } + return &ServerOfflineWaiter{ + client: client, + options: options, + } +} + +// Wait calls the waiter function for ServerOffline waiter. The maxWaitDur is the +// maximum wait duration the waiter will wait. The maxWaitDur is required and must +// be greater than zero. +func (w *ServerOfflineWaiter) Wait(ctx context.Context, params *DescribeServerInput, maxWaitDur time.Duration, optFns ...func(*ServerOfflineWaiterOptions)) error { + _, err := w.WaitForOutput(ctx, params, maxWaitDur, optFns...) + return err +} + +// WaitForOutput calls the waiter function for ServerOffline 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 *ServerOfflineWaiter) WaitForOutput(ctx context.Context, params *DescribeServerInput, maxWaitDur time.Duration, optFns ...func(*ServerOfflineWaiterOptions)) (*DescribeServerOutput, 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.DescribeServer(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 ServerOffline waiter") +} + +func serverOfflineStateRetryable(ctx context.Context, input *DescribeServerInput, output *DescribeServerOutput, err error) (bool, error) { + + if err == nil { + pathValue, err := jmespath.Search("Server.State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "OFFLINE" + value, ok := pathValue.(types.State) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.State value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, nil + } + } + + if err == nil { + pathValue, err := jmespath.Search("Server.State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "STOP_FAILED" + value, ok := pathValue.(types.State) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.State value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, fmt.Errorf("waiter state transitioned to Failure") + } + } + + return true, nil +} + +// ServerOnlineWaiterOptions are waiter options for ServerOnlineWaiter +type ServerOnlineWaiterOptions 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, + // ServerOnlineWaiter will use default minimum delay of 30 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, ServerOnlineWaiter 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, *DescribeServerInput, *DescribeServerOutput, error) (bool, error) +} + +// ServerOnlineWaiter defines the waiters for ServerOnline +type ServerOnlineWaiter struct { + client DescribeServerAPIClient + + options ServerOnlineWaiterOptions +} + +// NewServerOnlineWaiter constructs a ServerOnlineWaiter. +func NewServerOnlineWaiter(client DescribeServerAPIClient, optFns ...func(*ServerOnlineWaiterOptions)) *ServerOnlineWaiter { + options := ServerOnlineWaiterOptions{} + options.MinDelay = 30 * time.Second + options.MaxDelay = 120 * time.Second + options.Retryable = serverOnlineStateRetryable + + for _, fn := range optFns { + fn(&options) + } + return &ServerOnlineWaiter{ + client: client, + options: options, + } +} + +// Wait calls the waiter function for ServerOnline waiter. The maxWaitDur is the +// maximum wait duration the waiter will wait. The maxWaitDur is required and must +// be greater than zero. +func (w *ServerOnlineWaiter) Wait(ctx context.Context, params *DescribeServerInput, maxWaitDur time.Duration, optFns ...func(*ServerOnlineWaiterOptions)) error { + _, err := w.WaitForOutput(ctx, params, maxWaitDur, optFns...) + return err +} + +// WaitForOutput calls the waiter function for ServerOnline 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 *ServerOnlineWaiter) WaitForOutput(ctx context.Context, params *DescribeServerInput, maxWaitDur time.Duration, optFns ...func(*ServerOnlineWaiterOptions)) (*DescribeServerOutput, 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.DescribeServer(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 ServerOnline waiter") +} + +func serverOnlineStateRetryable(ctx context.Context, input *DescribeServerInput, output *DescribeServerOutput, err error) (bool, error) { + + if err == nil { + pathValue, err := jmespath.Search("Server.State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "ONLINE" + value, ok := pathValue.(types.State) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.State value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, nil + } + } + + if err == nil { + pathValue, err := jmespath.Search("Server.State", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "START_FAILED" + value, ok := pathValue.(types.State) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.State value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, fmt.Errorf("waiter state transitioned to Failure") + } + } + + return true, nil +} + func newServiceMetadataMiddleware_opDescribeServer(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/transfer/generated.json b/service/transfer/generated.json index eea3e96a511..8d5ae713eab 100644 --- a/service/transfer/generated.json +++ b/service/transfer/generated.json @@ -3,7 +3,8 @@ "github.com/aws/aws-sdk-go-v2": "v1.4.0", "github.com/aws/aws-sdk-go-v2/internal/configsources": "v0.0.0-00010101000000-000000000000", "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2": "v2.0.0-00010101000000-000000000000", - "github.com/aws/smithy-go": "v1.4.0" + "github.com/aws/smithy-go": "v1.4.0", + "github.com/jmespath/go-jmespath": "v0.4.0" }, "files": [ "api_client.go", diff --git a/service/transfer/go.mod b/service/transfer/go.mod index 0b52e50aefb..7122d4361fb 100644 --- a/service/transfer/go.mod +++ b/service/transfer/go.mod @@ -7,6 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.5 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.3.0 github.com/aws/smithy-go v1.11.1-0.20220308004241-26b41c98827d + github.com/jmespath/go-jmespath v0.4.0 ) replace github.com/aws/aws-sdk-go-v2 => ../../ diff --git a/service/transfer/go.sum b/service/transfer/go.sum index e72dd2c914e..bf94f841ab9 100644 --- a/service/transfer/go.sum +++ b/service/transfer/go.sum @@ -1,13 +1,19 @@ github.com/aws/smithy-go v1.11.1-0.20220308004241-26b41c98827d h1:9NQZQGy4VfHVDB/1ya90aarpyyLB+g78X291mLKEHSs= github.com/aws/smithy-go v1.11.1-0.20220308004241-26b41c98827d/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 38070f3582b086f8667a7dcaf2c8cb8bcb02f3a1 Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Mon, 7 Mar 2022 18:14:49 -0800 Subject: [PATCH 3/4] documentation: Updated API Clients --- .../elasticache/api_op_CreateCacheCluster.go | 20 ++--- .../api_op_DescribeEC2InstanceLimits.go | 2 +- .../gamelift/api_op_DescribeMatchmaking.go | 6 +- .../greengrassv2/api_op_CreateDeployment.go | 3 +- .../api_op_GetConnectivityInfo.go | 2 +- .../api_op_UpdateConnectivityInfo.go | 2 +- .../macie/api_op_AssociateMemberAccount.go | 8 +- service/macie/api_op_AssociateS3Resources.go | 23 ++--- .../macie/api_op_DisassociateMemberAccount.go | 5 +- .../macie/api_op_DisassociateS3Resources.go | 24 ++--- service/macie/api_op_ListMemberAccounts.go | 33 +++---- service/macie/api_op_ListS3Resources.go | 34 +++---- service/macie/api_op_UpdateS3Resources.go | 16 ++-- service/macie/doc.go | 15 ++-- service/macie/types/errors.go | 14 +-- service/macie/types/types.go | 88 ++++++++++--------- .../api_op_CreateApplication.go | 7 +- .../api_op_CreateEnvironment.go | 3 +- .../api_op_CreateRoute.go | 16 ++-- .../api_op_CreateService.go | 2 +- .../api_op_DeleteRoute.go | 2 +- .../api_op_GetApplication.go | 3 +- .../api_op_ListEnvironmentVpcs.go | 4 +- service/migrationhubrefactorspaces/doc.go | 6 +- .../migrationhubrefactorspaces/types/types.go | 5 +- service/rds/api_op_CopyDBClusterSnapshot.go | 3 +- service/rds/api_op_CreateDBCluster.go | 25 +++--- .../api_op_CreateDBClusterParameterGroup.go | 3 +- service/rds/api_op_CreateDBClusterSnapshot.go | 3 +- service/rds/api_op_DeleteDBCluster.go | 6 +- .../api_op_DeleteDBClusterParameterGroup.go | 3 +- service/rds/api_op_DeleteDBClusterSnapshot.go | 3 +- ...api_op_DescribeDBClusterParameterGroups.go | 3 +- .../rds/api_op_DescribeDBClusterParameters.go | 3 +- .../rds/api_op_DescribeDBClusterSnapshots.go | 3 +- service/rds/api_op_DescribeDBClusters.go | 5 +- service/rds/api_op_FailoverDBCluster.go | 6 +- service/rds/api_op_ModifyDBCluster.go | 23 +++-- .../api_op_ModifyDBClusterParameterGroup.go | 3 +- .../rds/api_op_PromoteReadReplicaDBCluster.go | 3 +- service/rds/api_op_RebootDBCluster.go | 6 +- service/rds/api_op_RemoveRoleFromDBCluster.go | 3 +- .../api_op_ResetDBClusterParameterGroup.go | 3 +- service/rds/api_op_RestoreDBClusterFromS3.go | 9 +- .../api_op_RestoreDBClusterFromSnapshot.go | 23 +++-- .../api_op_RestoreDBClusterToPointInTime.go | 23 +++-- service/rds/api_op_StartDBCluster.go | 3 +- service/rds/api_op_StopDBCluster.go | 3 +- service/rds/types/types.go | 10 +-- .../api_op_UpdateApplication.go | 2 + .../api_op_UpdateAttributeGroup.go | 2 + service/sts/api_op_AssumeRole.go | 2 +- .../sts/api_op_AssumeRoleWithWebIdentity.go | 20 +++-- service/synthetics/types/types.go | 10 ++- service/timestreamquery/api_op_CancelQuery.go | 2 +- .../api_op_DescribeEndpoints.go | 4 +- service/timestreamquery/api_op_Query.go | 2 +- 57 files changed, 299 insertions(+), 266 deletions(-) diff --git a/service/elasticache/api_op_CreateCacheCluster.go b/service/elasticache/api_op_CreateCacheCluster.go index 7f3db552fb2..487b8677413 100644 --- a/service/elasticache/api_op_CreateCacheCluster.go +++ b/service/elasticache/api_op_CreateCacheCluster.go @@ -108,21 +108,13 @@ type CreateCacheClusterInput struct { // * Previous generation: (not recommended) // C1 node types: cache.c1.xlarge // - // * Memory optimized with data tiering: + // * Memory optimized: // - // * Current - // generation: R6gd node types (available only for Redis engine version 6.2 - // onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, - // cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge - // - // * Memory - // optimized: - // - // * Current generation: R6g node types (available only for Redis - // engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward). - // cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, - // cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge For region - // availability, see Supported Node Types + // * Current generation: R6g + // node types (available only for Redis engine version 5.0.6 onward and for + // Memcached engine version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, + // cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, + // cache.r6g.16xlarge For region availability, see Supported Node Types // (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) // R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, // cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: diff --git a/service/gamelift/api_op_DescribeEC2InstanceLimits.go b/service/gamelift/api_op_DescribeEC2InstanceLimits.go index 3769c91ba8c..d0e78b4eac6 100644 --- a/service/gamelift/api_op_DescribeEC2InstanceLimits.go +++ b/service/gamelift/api_op_DescribeEC2InstanceLimits.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// The GameLift service limits and current utilization for an Amazon Web Services +// Retrieves the instance limits and current utilization for an Amazon Web Services // Region or location. Instance limits control the number of instances, per // instance type, per location, that your Amazon Web Services account can use. // Learn more at Amazon EC2 Instance Types diff --git a/service/gamelift/api_op_DescribeMatchmaking.go b/service/gamelift/api_op_DescribeMatchmaking.go index 98fb6a7372b..c01e4d8e73f 100644 --- a/service/gamelift/api_op_DescribeMatchmaking.go +++ b/service/gamelift/api_op_DescribeMatchmaking.go @@ -20,9 +20,9 @@ import ( // practice can cause you to exceed your API limit, which results in errors. // Instead, as a best practice, set up an Amazon Simple Notification Service to // receive notifications, and provide the topic ARN in the matchmaking -// configuration. Continuously poling ticket status with DescribeMatchmaking should -// only be used for games in development with low matchmaking usage. Learn more -// Add FlexMatch to a game client +// configuration. Continuously polling ticket status with DescribeMatchmaking +// should only be used for games in development with low matchmaking usage. Learn +// more Add FlexMatch to a game client // (https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-client.html) // Set Up FlexMatch event notification // (https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html) diff --git a/service/greengrassv2/api_op_CreateDeployment.go b/service/greengrassv2/api_op_CreateDeployment.go index c60d7309b59..bdfec470ccb 100644 --- a/service/greengrassv2/api_op_CreateDeployment.go +++ b/service/greengrassv2/api_op_CreateDeployment.go @@ -20,8 +20,7 @@ import ( // previous deployment. IoT Greengrass applies the new deployment to the target // devices. Every deployment has a revision number that indicates how many // deployment revisions you define for a target. Use this operation to create a new -// revision of an existing deployment. This operation returns the revision number -// of the new deployment when you create it. For more information, see the Create +// revision of an existing deployment. For more information, see the Create // deployments // (https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) // in the IoT Greengrass V2 Developer Guide. diff --git a/service/greengrassv2/api_op_GetConnectivityInfo.go b/service/greengrassv2/api_op_GetConnectivityInfo.go index e2bc7d63ae2..b25ecdb7895 100644 --- a/service/greengrassv2/api_op_GetConnectivityInfo.go +++ b/service/greengrassv2/api_op_GetConnectivityInfo.go @@ -13,7 +13,7 @@ import ( // Retrieves connectivity information for a Greengrass core device. Connectivity // information includes endpoints and ports where client devices can connect to an -// MQTT broker on the core device. When a client device calls the Greengrass +// MQTT broker on the core device. When a client device calls the IoT Greengrass // discovery API // (https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-discover-api.html), // IoT Greengrass returns connectivity information for all of the core devices diff --git a/service/greengrassv2/api_op_UpdateConnectivityInfo.go b/service/greengrassv2/api_op_UpdateConnectivityInfo.go index a60c1435f60..14abb06c670 100644 --- a/service/greengrassv2/api_op_UpdateConnectivityInfo.go +++ b/service/greengrassv2/api_op_UpdateConnectivityInfo.go @@ -13,7 +13,7 @@ import ( // Updates connectivity information for a Greengrass core device. Connectivity // information includes endpoints and ports where client devices can connect to an -// MQTT broker on the core device. When a client device calls the Greengrass +// MQTT broker on the core device. When a client device calls the IoT Greengrass // discovery API // (https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-discover-api.html), // IoT Greengrass returns connectivity information for all of the core devices diff --git a/service/macie/api_op_AssociateMemberAccount.go b/service/macie/api_op_AssociateMemberAccount.go index 5ea943d14ea..6895a55eb42 100644 --- a/service/macie/api_op_AssociateMemberAccount.go +++ b/service/macie/api_op_AssociateMemberAccount.go @@ -10,8 +10,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Associates a specified AWS account with Amazon Macie Classic as a member -// account. +// (Discontinued) Associates a specified Amazon Web Services account with Amazon +// Macie Classic as a member account. func (c *Client) AssociateMemberAccount(ctx context.Context, params *AssociateMemberAccountInput, optFns ...func(*Options)) (*AssociateMemberAccountOutput, error) { if params == nil { params = &AssociateMemberAccountInput{} @@ -29,8 +29,8 @@ func (c *Client) AssociateMemberAccount(ctx context.Context, params *AssociateMe type AssociateMemberAccountInput struct { - // The ID of the AWS account that you want to associate with Amazon Macie Classic - // as a member account. + // (Discontinued) The ID of the Amazon Web Services account that you want to + // associate with Amazon Macie Classic as a member account. // // This member is required. MemberAccountId *string diff --git a/service/macie/api_op_AssociateS3Resources.go b/service/macie/api_op_AssociateS3Resources.go index 556a4d5d733..b954ea7aad9 100644 --- a/service/macie/api_op_AssociateS3Resources.go +++ b/service/macie/api_op_AssociateS3Resources.go @@ -11,11 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Associates specified S3 resources with Amazon Macie Classic for monitoring and -// data classification. If memberAccountId isn't specified, the action associates -// specified S3 resources with Macie Classic for the current Macie Classic -// administrator account. If memberAccountId is specified, the action associates -// specified S3 resources with Macie Classic for the specified member account. +// (Discontinued) Associates specified S3 resources with Amazon Macie Classic for +// monitoring and data classification. If memberAccountId isn't specified, the +// action associates specified S3 resources with Macie Classic for the current +// Macie Classic administrator account. If memberAccountId is specified, the action +// associates specified S3 resources with Macie Classic for the specified member +// account. func (c *Client) AssociateS3Resources(ctx context.Context, params *AssociateS3ResourcesInput, optFns ...func(*Options)) (*AssociateS3ResourcesOutput, error) { if params == nil { params = &AssociateS3ResourcesInput{} @@ -33,14 +34,14 @@ func (c *Client) AssociateS3Resources(ctx context.Context, params *AssociateS3Re type AssociateS3ResourcesInput struct { - // The S3 resources that you want to associate with Amazon Macie Classic for - // monitoring and data classification. + // (Discontinued) The S3 resources that you want to associate with Amazon Macie + // Classic for monitoring and data classification. // // This member is required. S3Resources []types.S3ResourceClassification - // The ID of the Amazon Macie Classic member account whose resources you want to - // associate with Macie Classic. + // (Discontinued) The ID of the Amazon Macie Classic member account whose resources + // you want to associate with Macie Classic. MemberAccountId *string noSmithyDocumentSerde @@ -48,8 +49,8 @@ type AssociateS3ResourcesInput struct { type AssociateS3ResourcesOutput struct { - // S3 resources that couldn't be associated with Amazon Macie Classic. An error - // code and an error message are provided for each failed item. + // (Discontinued) S3 resources that couldn't be associated with Amazon Macie + // Classic. An error code and an error message are provided for each failed item. FailedS3Resources []types.FailedS3Resource // Metadata pertaining to the operation's result. diff --git a/service/macie/api_op_DisassociateMemberAccount.go b/service/macie/api_op_DisassociateMemberAccount.go index 8f03a4dc810..ed22928c0d0 100644 --- a/service/macie/api_op_DisassociateMemberAccount.go +++ b/service/macie/api_op_DisassociateMemberAccount.go @@ -10,7 +10,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes the specified member account from Amazon Macie Classic. +// (Discontinued) Removes the specified member account from Amazon Macie Classic. func (c *Client) DisassociateMemberAccount(ctx context.Context, params *DisassociateMemberAccountInput, optFns ...func(*Options)) (*DisassociateMemberAccountOutput, error) { if params == nil { params = &DisassociateMemberAccountInput{} @@ -28,7 +28,8 @@ func (c *Client) DisassociateMemberAccount(ctx context.Context, params *Disassoc type DisassociateMemberAccountInput struct { - // The ID of the member account that you want to remove from Amazon Macie Classic. + // (Discontinued) The ID of the member account that you want to remove from Amazon + // Macie Classic. // // This member is required. MemberAccountId *string diff --git a/service/macie/api_op_DisassociateS3Resources.go b/service/macie/api_op_DisassociateS3Resources.go index 6fccea9cdb9..8f68f9b8e45 100644 --- a/service/macie/api_op_DisassociateS3Resources.go +++ b/service/macie/api_op_DisassociateS3Resources.go @@ -11,11 +11,11 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Removes specified S3 resources from being monitored by Amazon Macie Classic. If -// memberAccountId isn't specified, the action removes specified S3 resources from -// Macie Classic for the current Macie Classic administrator account. If -// memberAccountId is specified, the action removes specified S3 resources from -// Macie Classic for the specified member account. +// (Discontinued) Removes specified S3 resources from being monitored by Amazon +// Macie Classic. If memberAccountId isn't specified, the action removes specified +// S3 resources from Macie Classic for the current Macie Classic administrator +// account. If memberAccountId is specified, the action removes specified S3 +// resources from Macie Classic for the specified member account. func (c *Client) DisassociateS3Resources(ctx context.Context, params *DisassociateS3ResourcesInput, optFns ...func(*Options)) (*DisassociateS3ResourcesOutput, error) { if params == nil { params = &DisassociateS3ResourcesInput{} @@ -33,14 +33,14 @@ func (c *Client) DisassociateS3Resources(ctx context.Context, params *Disassocia type DisassociateS3ResourcesInput struct { - // The S3 resources (buckets or prefixes) that you want to remove from being - // monitored and classified by Amazon Macie Classic. + // (Discontinued) The S3 resources (buckets or prefixes) that you want to remove + // from being monitored and classified by Amazon Macie Classic. // // This member is required. AssociatedS3Resources []types.S3Resource - // The ID of the Amazon Macie Classic member account whose resources you want to - // remove from being monitored by Macie Classic. + // (Discontinued) The ID of the Amazon Macie Classic member account whose resources + // you want to remove from being monitored by Macie Classic. MemberAccountId *string noSmithyDocumentSerde @@ -48,9 +48,9 @@ type DisassociateS3ResourcesInput struct { type DisassociateS3ResourcesOutput struct { - // S3 resources that couldn't be removed from being monitored and classified by - // Amazon Macie Classic. An error code and an error message are provided for each - // failed item. + // (Discontinued) S3 resources that couldn't be removed from being monitored and + // classified by Amazon Macie Classic. An error code and an error message are + // provided for each failed item. FailedS3Resources []types.FailedS3Resource // Metadata pertaining to the operation's result. diff --git a/service/macie/api_op_ListMemberAccounts.go b/service/macie/api_op_ListMemberAccounts.go index 3d1361e4bb0..c6894008c23 100644 --- a/service/macie/api_op_ListMemberAccounts.go +++ b/service/macie/api_op_ListMemberAccounts.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all Amazon Macie Classic member accounts for the current Macie Classic -// administrator account. +// (Discontinued) Lists all Amazon Macie Classic member accounts for the current +// Macie Classic administrator account. func (c *Client) ListMemberAccounts(ctx context.Context, params *ListMemberAccountsInput, optFns ...func(*Options)) (*ListMemberAccountsOutput, error) { if params == nil { params = &ListMemberAccountsInput{} @@ -31,14 +31,14 @@ func (c *Client) ListMemberAccounts(ctx context.Context, params *ListMemberAccou type ListMemberAccountsInput struct { - // Use this parameter to indicate the maximum number of items that you want in the - // response. The default value is 250. + // (Discontinued) Use this parameter to indicate the maximum number of items that + // you want in the response. The default value is 250. MaxResults *int32 - // Use this parameter when paginating results. Set the value of this parameter to - // null on your first call to the ListMemberAccounts action. Subsequent calls to - // the action fill nextToken in the request with the value of nextToken from the - // previous response to continue listing data. + // (Discontinued) Use this parameter when paginating results. Set the value of this + // parameter to null on your first call to the ListMemberAccounts action. + // Subsequent calls to the action fill nextToken in the request with the value of + // nextToken from the previous response to continue listing data. NextToken *string noSmithyDocumentSerde @@ -46,14 +46,15 @@ type ListMemberAccountsInput struct { type ListMemberAccountsOutput struct { - // A list of the Amazon Macie Classic member accounts returned by the action. The - // current Macie Classic administrator account is also included in this list. + // (Discontinued) A list of the Amazon Macie Classic member accounts returned by + // the action. The current Macie Classic administrator account is also included in + // this list. MemberAccounts []types.MemberAccount - // When a response is generated, if there is more data to be listed, this parameter - // is present in the response and contains the value to use for the nextToken - // parameter in a subsequent pagination request. If there is no more data to be - // listed, this parameter is set to null. + // (Discontinued) When a response is generated, if there is more data to be listed, + // this parameter is present in the response and contains the value to use for the + // nextToken parameter in a subsequent pagination request. If there is no more data + // to be listed, this parameter is set to null. NextToken *string // Metadata pertaining to the operation's result. @@ -133,8 +134,8 @@ var _ ListMemberAccountsAPIClient = (*Client)(nil) // ListMemberAccountsPaginatorOptions is the paginator options for // ListMemberAccounts type ListMemberAccountsPaginatorOptions struct { - // Use this parameter to indicate the maximum number of items that you want in the - // response. The default value is 250. + // (Discontinued) Use this parameter to indicate the maximum number of items that + // you want in the response. The default value is 250. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/macie/api_op_ListS3Resources.go b/service/macie/api_op_ListS3Resources.go index 9c0abeece55..25fddeb8ebe 100644 --- a/service/macie/api_op_ListS3Resources.go +++ b/service/macie/api_op_ListS3Resources.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the S3 resources associated with Amazon Macie Classic. If -// memberAccountId isn't specified, the action lists the S3 resources associated +// (Discontinued) Lists all the S3 resources associated with Amazon Macie Classic. +// If memberAccountId isn't specified, the action lists the S3 resources associated // with Macie Classic for the current Macie Classic administrator account. If // memberAccountId is specified, the action lists the S3 resources associated with // Macie Classic for the specified member account. @@ -34,18 +34,18 @@ func (c *Client) ListS3Resources(ctx context.Context, params *ListS3ResourcesInp type ListS3ResourcesInput struct { - // Use this parameter to indicate the maximum number of items that you want in the - // response. The default value is 250. + // (Discontinued) Use this parameter to indicate the maximum number of items that + // you want in the response. The default value is 250. MaxResults *int32 - // The Amazon Macie Classic member account ID whose associated S3 resources you - // want to list. + // (Discontinued) The Amazon Macie Classic member account ID whose associated S3 + // resources you want to list. MemberAccountId *string - // Use this parameter when paginating results. Set its value to null on your first - // call to the ListS3Resources action. Subsequent calls to the action fill - // nextToken in the request with the value of nextToken from the previous response - // to continue listing data. + // (Discontinued) Use this parameter when paginating results. Set its value to null + // on your first call to the ListS3Resources action. Subsequent calls to the action + // fill nextToken in the request with the value of nextToken from the previous + // response to continue listing data. NextToken *string noSmithyDocumentSerde @@ -53,13 +53,13 @@ type ListS3ResourcesInput struct { type ListS3ResourcesOutput struct { - // When a response is generated, if there is more data to be listed, this parameter - // is present in the response and contains the value to use for the nextToken - // parameter in a subsequent pagination request. If there is no more data to be - // listed, this parameter is set to null. + // (Discontinued) When a response is generated, if there is more data to be listed, + // this parameter is present in the response and contains the value to use for the + // nextToken parameter in a subsequent pagination request. If there is no more data + // to be listed, this parameter is set to null. NextToken *string - // A list of the associated S3 resources returned by the action. + // (Discontinued) A list of the associated S3 resources returned by the action. S3Resources []types.S3ResourceClassification // Metadata pertaining to the operation's result. @@ -138,8 +138,8 @@ var _ ListS3ResourcesAPIClient = (*Client)(nil) // ListS3ResourcesPaginatorOptions is the paginator options for ListS3Resources type ListS3ResourcesPaginatorOptions struct { - // Use this parameter to indicate the maximum number of items that you want in the - // response. The default value is 250. + // (Discontinued) Use this parameter to indicate the maximum number of items that + // you want in the response. The default value is 250. Limit int32 // Set to true if pagination should stop if the service returns a pagination token diff --git a/service/macie/api_op_UpdateS3Resources.go b/service/macie/api_op_UpdateS3Resources.go index 189f3fa7d16..9b5c6920991 100644 --- a/service/macie/api_op_UpdateS3Resources.go +++ b/service/macie/api_op_UpdateS3Resources.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates the classification types for the specified S3 resources. If -// memberAccountId isn't specified, the action updates the classification types of -// the S3 resources associated with Amazon Macie Classic for the current Macie +// (Discontinued) Updates the classification types for the specified S3 resources. +// If memberAccountId isn't specified, the action updates the classification types +// of the S3 resources associated with Amazon Macie Classic for the current Macie // Classic administrator account. If memberAccountId is specified, the action // updates the classification types of the S3 resources associated with Macie // Classic for the specified member account. @@ -34,13 +34,13 @@ func (c *Client) UpdateS3Resources(ctx context.Context, params *UpdateS3Resource type UpdateS3ResourcesInput struct { - // The S3 resources whose classification types you want to update. + // (Discontinued) The S3 resources whose classification types you want to update. // // This member is required. S3ResourcesUpdate []types.S3ResourceClassificationUpdate - // The AWS ID of the Amazon Macie Classic member account whose S3 resources' - // classification types you want to update. + // (Discontinued) The Amazon Web Services account ID of the Amazon Macie Classic + // member account whose S3 resources' classification types you want to update. MemberAccountId *string noSmithyDocumentSerde @@ -48,8 +48,8 @@ type UpdateS3ResourcesInput struct { type UpdateS3ResourcesOutput struct { - // The S3 resources whose classification types can't be updated. An error code and - // an error message are provided for each failed item. + // (Discontinued) The S3 resources whose classification types can't be updated. An + // error code and an error message are provided for each failed item. FailedS3Resources []types.FailedS3Resource // Metadata pertaining to the operation's result. diff --git a/service/macie/doc.go b/service/macie/doc.go index 2577dea9d83..fd0a75428a6 100644 --- a/service/macie/doc.go +++ b/service/macie/doc.go @@ -3,11 +3,12 @@ // Package macie provides the API client, operations, and parameter types for // Amazon Macie. // -// Amazon Macie Classic Amazon Macie Classic is a security service that uses -// machine learning to automatically discover, classify, and protect sensitive data -// in AWS. Macie Classic recognizes sensitive data such as personally identifiable -// information (PII) or intellectual property, and provides you with dashboards and -// alerts that give visibility into how this data is being accessed or moved. For -// more information, see the Amazon Macie Classic User Guide -// (https://docs.aws.amazon.com/macie/latest/userguide/what-is-macie.html). +// Amazon Macie Classic Amazon Macie Classic has been discontinued and is no longer +// available. A new Amazon Macie is now available with significant design +// improvements and additional features, at a lower price and in most Amazon Web +// Services Regions. We encourage you to take advantage of the new and improved +// features, and benefit from the reduced cost. To learn about features and pricing +// for the new Macie, see Amazon Macie (http://aws.amazon.com/macie/). To learn how +// to use the new Macie, see the Amazon Macie User Guide +// (https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html). package macie diff --git a/service/macie/types/errors.go b/service/macie/types/errors.go index e8af93860d3..d0ecc4efd86 100644 --- a/service/macie/types/errors.go +++ b/service/macie/types/errors.go @@ -7,7 +7,8 @@ import ( smithy "github.com/aws/smithy-go" ) -// You do not have required permissions to access the requested resource. +// (Discontinued) You do not have required permissions to access the requested +// resource. type AccessDeniedException struct { Message *string @@ -28,7 +29,7 @@ func (e *AccessDeniedException) ErrorMessage() string { func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// Internal server error. +// (Discontinued) Internal server error. type InternalException struct { Message *string @@ -49,8 +50,8 @@ func (e *InternalException) ErrorMessage() string { func (e *InternalException) ErrorCode() string { return "InternalException" } func (e *InternalException) ErrorFault() smithy.ErrorFault { return smithy.FaultServer } -// The request was rejected because an invalid or out-of-range value was supplied -// for an input parameter. +// (Discontinued) The request was rejected because an invalid or out-of-range value +// was supplied for an input parameter. type InvalidInputException struct { Message *string @@ -72,8 +73,9 @@ func (e *InvalidInputException) ErrorMessage() string { func (e *InvalidInputException) ErrorCode() string { return "InvalidInputException" } func (e *InvalidInputException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } -// The request was rejected because it attempted to create resources beyond the -// current AWS account limits. The error code describes the limit exceeded. +// (Discontinued) The request was rejected because it attempted to create resources +// beyond the current Amazon Web Services account quotas. The error code describes +// the quota exceeded. type LimitExceededException struct { Message *string diff --git a/service/macie/types/types.go b/service/macie/types/types.go index c6198bb8d23..5457aea78c5 100644 --- a/service/macie/types/types.go +++ b/service/macie/types/types.go @@ -6,19 +6,19 @@ import ( smithydocument "github.com/aws/smithy-go/document" ) -// The classification type that Amazon Macie Classic applies to the associated S3 -// resources. +// (Discontinued) The classification type that Amazon Macie Classic applies to the +// associated S3 resources. type ClassificationType struct { - // A continuous classification of the objects that are added to a specified S3 - // bucket. Amazon Macie Classic begins performing continuous classification after a - // bucket is successfully associated with Macie Classic. + // (Discontinued) A continuous classification of the objects that are added to a + // specified S3 bucket. Amazon Macie Classic begins performing continuous + // classification after a bucket is successfully associated with Macie Classic. // // This member is required. Continuous S3ContinuousClassificationType - // A one-time classification of all of the existing objects in a specified S3 - // bucket. + // (Discontinued) A one-time classification of all of the existing objects in a + // specified S3 bucket. // // This member is required. OneTime S3OneTimeClassificationType @@ -26,103 +26,109 @@ type ClassificationType struct { noSmithyDocumentSerde } -// The classification type that Amazon Macie Classic applies to the associated S3 -// resources. At least one of the classification types (oneTime or continuous) must -// be specified. +// (Discontinued) The classification type that Amazon Macie Classic applies to the +// associated S3 resources. At least one of the classification types (oneTime or +// continuous) must be specified. type ClassificationTypeUpdate struct { - // A continuous classification of the objects that are added to a specified S3 - // bucket. Amazon Macie Classic begins performing continuous classification after a - // bucket is successfully associated with Macie Classic. + // (Discontinued) A continuous classification of the objects that are added to a + // specified S3 bucket. Amazon Macie Classic begins performing continuous + // classification after a bucket is successfully associated with Macie Classic. Continuous S3ContinuousClassificationType - // A one-time classification of all of the existing objects in a specified S3 - // bucket. + // (Discontinued) A one-time classification of all of the existing objects in a + // specified S3 bucket. OneTime S3OneTimeClassificationType noSmithyDocumentSerde } -// Includes details about the failed S3 resources. +// (Discontinued) Includes details about the failed S3 resources. type FailedS3Resource struct { - // The status code of a failed item. + // (Discontinued) The status code of a failed item. ErrorCode *string - // The error message of a failed item. + // (Discontinued) The error message of a failed item. ErrorMessage *string - // The failed S3 resources. + // (Discontinued) The failed S3 resources. FailedItem *S3Resource noSmithyDocumentSerde } -// Contains information about the Amazon Macie Classic member account. +// (Discontinued) Contains information about the Amazon Macie Classic member +// account. type MemberAccount struct { - // The AWS account ID of the Amazon Macie Classic member account. + // (Discontinued) The Amazon Web Services account ID of the Amazon Macie Classic + // member account. AccountId *string noSmithyDocumentSerde } -// Contains information about the S3 resource. This data type is used as a request -// parameter in the DisassociateS3Resources action and can be used as a response -// parameter in the AssociateS3Resources and UpdateS3Resources actions. +// (Discontinued) Contains information about the S3 resource. This data type is +// used as a request parameter in the DisassociateS3Resources action and can be +// used as a response parameter in the AssociateS3Resources and UpdateS3Resources +// actions. type S3Resource struct { - // The name of the S3 bucket. + // (Discontinued) The name of the S3 bucket. // // This member is required. BucketName *string - // The prefix of the S3 bucket. + // (Discontinued) The prefix of the S3 bucket. Prefix *string noSmithyDocumentSerde } -// The S3 resources that you want to associate with Amazon Macie Classic for -// monitoring and data classification. This data type is used as a request -// parameter in the AssociateS3Resources action and a response parameter in the -// ListS3Resources action. +// (Discontinued) The S3 resources that you want to associate with Amazon Macie +// Classic for monitoring and data classification. This data type is used as a +// request parameter in the AssociateS3Resources action and a response parameter in +// the ListS3Resources action. type S3ResourceClassification struct { - // The name of the S3 bucket that you want to associate with Amazon Macie Classic. + // (Discontinued) The name of the S3 bucket that you want to associate with Amazon + // Macie Classic. // // This member is required. BucketName *string - // The classification type that you want to specify for the resource associated - // with Amazon Macie Classic. + // (Discontinued) The classification type that you want to specify for the resource + // associated with Amazon Macie Classic. // // This member is required. ClassificationType *ClassificationType - // The prefix of the S3 bucket that you want to associate with Amazon Macie - // Classic. + // (Discontinued) The prefix of the S3 bucket that you want to associate with + // Amazon Macie Classic. Prefix *string noSmithyDocumentSerde } -// The S3 resources whose classification types you want to update. This data type -// is used as a request parameter in the UpdateS3Resources action. +// (Discontinued) The S3 resources whose classification types you want to update. +// This data type is used as a request parameter in the UpdateS3Resources action. type S3ResourceClassificationUpdate struct { - // The name of the S3 bucket whose classification types you want to update. + // (Discontinued) The name of the S3 bucket whose classification types you want to + // update. // // This member is required. BucketName *string - // The classification type that you want to update for the resource associated with - // Amazon Macie Classic. + // (Discontinued) The classification type that you want to update for the resource + // associated with Amazon Macie Classic. // // This member is required. ClassificationTypeUpdate *ClassificationTypeUpdate - // The prefix of the S3 bucket whose classification types you want to update. + // (Discontinued) The prefix of the S3 bucket whose classification types you want + // to update. Prefix *string noSmithyDocumentSerde diff --git a/service/migrationhubrefactorspaces/api_op_CreateApplication.go b/service/migrationhubrefactorspaces/api_op_CreateApplication.go index cc67b06ef52..7f9baae1569 100644 --- a/service/migrationhubrefactorspaces/api_op_CreateApplication.go +++ b/service/migrationhubrefactorspaces/api_op_CreateApplication.go @@ -16,8 +16,8 @@ import ( // Creates an Amazon Web Services Migration Hub Refactor Spaces application. The // account that owns the environment also owns the applications created inside the // environment, regardless of the account that creates the application. Refactor -// Spaces provisions the Amazon API Gateway and Network Load Balancer for the -// application proxy inside your account. +// Spaces provisions an Amazon API Gateway, API Gateway VPC link, and Network Load +// Balancer for the application proxy inside your account. func (c *Client) CreateApplication(ctx context.Context, params *CreateApplicationInput, optFns ...func(*Options)) (*CreateApplicationOutput, error) { if params == nil { params = &CreateApplicationInput{} @@ -101,7 +101,8 @@ type CreateApplicationOutput struct { // The name of the application. Name *string - // The Amazon Web Services account ID of the application owner. + // The Amazon Web Services account ID of the application owner (which is always the + // same as the environment owner account ID). OwnerAccountId *string // The proxy type of the proxy created within the application. diff --git a/service/migrationhubrefactorspaces/api_op_CreateEnvironment.go b/service/migrationhubrefactorspaces/api_op_CreateEnvironment.go index 127dcc1b7a7..8d359526bbd 100644 --- a/service/migrationhubrefactorspaces/api_op_CreateEnvironment.go +++ b/service/migrationhubrefactorspaces/api_op_CreateEnvironment.go @@ -14,7 +14,8 @@ import ( ) // Creates an Amazon Web Services Migration Hub Refactor Spaces environment. The -// caller owns the environment resource, and they are referred to as the +// caller owns the environment resource, and all Refactor Spaces applications, +// services, and routes created within the environment. They are referred to as the // environment owner. The environment owner has cross-account visibility and // control of Refactor Spaces resources that are added to the environment by other // accounts that the environment is shared with. When creating an environment, diff --git a/service/migrationhubrefactorspaces/api_op_CreateRoute.go b/service/migrationhubrefactorspaces/api_op_CreateRoute.go index 3c872a9452c..569c2587e36 100644 --- a/service/migrationhubrefactorspaces/api_op_CreateRoute.go +++ b/service/migrationhubrefactorspaces/api_op_CreateRoute.go @@ -29,10 +29,11 @@ import ( // Spaces routes traffic over the public internet. // // * If the service has an Lambda -// function endpoint, then Refactor Spaces uses the API Gateway Lambda -// integration. +// function endpoint, then Refactor Spaces configures the Lambda function's +// resource policy to allow the application's API Gateway to invoke the +// function. // -// A health check is performed on the service when the route is +// A one-time health check is performed on the service when the route is // created. If the health check fails, the route transitions to FAILED, and no // traffic is sent to the service. For Lambda functions, the Lambda function state // is checked. If the function is not active, the function configuration is updated @@ -49,7 +50,10 @@ import ( // groups // (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html). // The health check is considered successful if at least one target within the -// target group transitions to a healthy state. +// target group transitions to a healthy state. Services can have HTTP or HTTPS URL +// endpoints. For HTTPS URLs, publicly-signed certificates are supported. Private +// Certificate Authorities (CAs) are permitted only if the CA's domain is publicly +// resolvable. func (c *Client) CreateRoute(ctx context.Context, params *CreateRouteInput, optFns ...func(*Options)) (*CreateRouteOutput, error) { if params == nil { params = &CreateRouteInput{} @@ -135,11 +139,11 @@ type CreateRouteOutput struct { // The route type of the route. RouteType types.RouteType - // The ID of service in which the rute iscreated. Traffic that matches this route + // The ID of service in which the route is created. Traffic that matches this route // is forwarded to this service. ServiceId *string - // he current state of the route. + // The current state of the route. State types.RouteState // The tags assigned to the created route. A tag is a label that you assign to an diff --git a/service/migrationhubrefactorspaces/api_op_CreateService.go b/service/migrationhubrefactorspaces/api_op_CreateService.go index d441db6ef5e..167cae623f6 100644 --- a/service/migrationhubrefactorspaces/api_op_CreateService.go +++ b/service/migrationhubrefactorspaces/api_op_CreateService.go @@ -17,7 +17,7 @@ import ( // account owner of the service is always the environment owner, regardless of // which account in the environment creates the service. Services have either a URL // endpoint in a virtual private cloud (VPC), or a Lambda function endpoint. If an -// Amazon Web Services resourceis launched in a service VPC, and you want it to be +// Amazon Web Services resource is launched in a service VPC, and you want it to be // accessible to all of an environment’s services with VPCs and routes, apply the // RefactorSpacesSecurityGroup to the resource. Alternatively, to add more // cross-account constraints, apply your own security group. diff --git a/service/migrationhubrefactorspaces/api_op_DeleteRoute.go b/service/migrationhubrefactorspaces/api_op_DeleteRoute.go index 35b12c50323..d8fc33c65ac 100644 --- a/service/migrationhubrefactorspaces/api_op_DeleteRoute.go +++ b/service/migrationhubrefactorspaces/api_op_DeleteRoute.go @@ -50,7 +50,7 @@ type DeleteRouteInput struct { type DeleteRouteOutput struct { - // he ID of the application that the route belongs to. + // The ID of the application that the route belongs to. ApplicationId *string // The Amazon Resource Name (ARN) of the route. diff --git a/service/migrationhubrefactorspaces/api_op_GetApplication.go b/service/migrationhubrefactorspaces/api_op_GetApplication.go index fd5b7ae3b07..6c9c9464ee1 100644 --- a/service/migrationhubrefactorspaces/api_op_GetApplication.go +++ b/service/migrationhubrefactorspaces/api_op_GetApplication.go @@ -72,7 +72,8 @@ type GetApplicationOutput struct { // The name of the application. Name *string - // The Amazon Web Services account ID of the application owner. + // The Amazon Web Services account ID of the application owner (which is always the + // same as the environment owner account ID). OwnerAccountId *string // The proxy type of the proxy created within the application. diff --git a/service/migrationhubrefactorspaces/api_op_ListEnvironmentVpcs.go b/service/migrationhubrefactorspaces/api_op_ListEnvironmentVpcs.go index 9857d6f5d12..6c24223e0c4 100644 --- a/service/migrationhubrefactorspaces/api_op_ListEnvironmentVpcs.go +++ b/service/migrationhubrefactorspaces/api_op_ListEnvironmentVpcs.go @@ -12,8 +12,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Lists all the virtual private clouds (VPCs) that are part of an Amazon Web -// Services Migration Hub Refactor Spaces environment. +// Lists all Amazon Web Services Migration Hub Refactor Spaces service virtual +// private clouds (VPCs) that are part of the environment. func (c *Client) ListEnvironmentVpcs(ctx context.Context, params *ListEnvironmentVpcsInput, optFns ...func(*Options)) (*ListEnvironmentVpcsOutput, error) { if params == nil { params = &ListEnvironmentVpcsInput{} diff --git a/service/migrationhubrefactorspaces/doc.go b/service/migrationhubrefactorspaces/doc.go index fb7194cd69a..f1c47d5882b 100644 --- a/service/migrationhubrefactorspaces/doc.go +++ b/service/migrationhubrefactorspaces/doc.go @@ -10,5 +10,9 @@ // Alternatively, you can use one of the Amazon Web Services SDKs to access an API // that is tailored to the programming language or platform that you're using. For // more information, see Amazon Web Services SDKs -// (http://aws.amazon.com/tools/#SDKs). +// (http://aws.amazon.com/tools/#SDKs). To share Refactor Spaces environments with +// other Amazon Web Services accounts or with Organizations and their OUs, use +// Resource Access Manager's CreateResourceShare API. See CreateResourceShare +// (https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html) +// in the Amazon Web Services RAM API Reference. package migrationhubrefactorspaces diff --git a/service/migrationhubrefactorspaces/types/types.go b/service/migrationhubrefactorspaces/types/types.go index b12df89b15d..38b8aad7cc9 100644 --- a/service/migrationhubrefactorspaces/types/types.go +++ b/service/migrationhubrefactorspaces/types/types.go @@ -91,7 +91,7 @@ type ApplicationSummary struct { // The unique identifier of the application. ApplicationId *string - // he Amazon Resource Name (ARN) of the application. + // The Amazon Resource Name (ARN) of the application. Arn *string // The Amazon Web Services account ID of the application creator. @@ -112,7 +112,8 @@ type ApplicationSummary struct { // The name of the application. Name *string - // The Amazon Web Services account ID of the application owner. + // The Amazon Web Services account ID of the application owner (which is always the + // same as the environment owner account ID). OwnerAccountId *string // The proxy type of the proxy created within the application. diff --git a/service/rds/api_op_CopyDBClusterSnapshot.go b/service/rds/api_op_CopyDBClusterSnapshot.go index c7f6ab98a9f..811cc6db795 100644 --- a/service/rds/api_op_CopyDBClusterSnapshot.go +++ b/service/rds/api_op_CopyDBClusterSnapshot.go @@ -90,8 +90,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) CopyDBClusterSnapshot(ctx context.Context, params *CopyDBClusterSnapshotInput, optFns ...func(*Options)) (*CopyDBClusterSnapshotOutput, error) { if params == nil { params = &CopyDBClusterSnapshotInput{} diff --git a/service/rds/api_op_CreateDBCluster.go b/service/rds/api_op_CreateDBCluster.go index 77f342f9b08..1620dc66ccc 100644 --- a/service/rds/api_op_CreateDBCluster.go +++ b/service/rds/api_op_CreateDBCluster.go @@ -23,8 +23,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) CreateDBCluster(ctx context.Context, params *CreateDBClusterInput, optFns ...func(*Options)) (*CreateDBClusterOutput, error) { if params == nil { params = &CreateDBClusterInput{} @@ -121,7 +120,7 @@ type CreateDBClusterInput struct { // A value that indicates whether to copy all tags from the DB cluster to snapshots // of the DB cluster. The default is not to copy them. Valid for: Aurora DB - // clusters only + // clusters and Multi-AZ DB clusters CopyTagsToSnapshot *bool // The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, @@ -174,12 +173,19 @@ type CreateDBClusterInput struct { DomainIAMRoleName *string // The list of log types that need to be enabled for exporting to CloudWatch Logs. - // The values in the list depend on the DB engine being used. For more information, - // see Publishing Database Logs to Amazon CloudWatch Logs + // The values in the list depend on the DB engine being used. RDS for MySQL + // Possible values are error, general, and slowquery. RDS for PostgreSQL Possible + // values are postgresql and upgrade. Aurora MySQL Possible values are audit, + // error, general, and slowquery. Aurora PostgreSQL Possible value is postgresql. + // For more information about exporting CloudWatch Logs for Amazon RDS, see + // Publishing Database Logs to Amazon CloudWatch Logs + // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + // in the Amazon Relational Database Service User Guide. For more information about + // exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to + // Amazon CloudWatch Logs // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) - // in the Amazon Aurora User Guide. Aurora MySQL Possible values are audit, error, - // general, and slowquery. Aurora PostgreSQL Possible value is postgresql. Valid - // for: Aurora DB clusters only + // in the Amazon Aurora User Guide. Valid for: Aurora DB clusters and Multi-AZ DB + // clusters EnableCloudwatchLogsExports []string // A value that indicates whether to enable this DB cluster to forward write @@ -533,8 +539,7 @@ type CreateDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_CreateDBClusterParameterGroup.go b/service/rds/api_op_CreateDBClusterParameterGroup.go index 1aeec30c35b..5b5036a259e 100644 --- a/service/rds/api_op_CreateDBClusterParameterGroup.go +++ b/service/rds/api_op_CreateDBClusterParameterGroup.go @@ -39,8 +39,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) CreateDBClusterParameterGroup(ctx context.Context, params *CreateDBClusterParameterGroupInput, optFns ...func(*Options)) (*CreateDBClusterParameterGroupOutput, error) { if params == nil { params = &CreateDBClusterParameterGroupInput{} diff --git a/service/rds/api_op_CreateDBClusterSnapshot.go b/service/rds/api_op_CreateDBClusterSnapshot.go index ba86e16ad75..b1d6a99cb5c 100644 --- a/service/rds/api_op_CreateDBClusterSnapshot.go +++ b/service/rds/api_op_CreateDBClusterSnapshot.go @@ -17,8 +17,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) CreateDBClusterSnapshot(ctx context.Context, params *CreateDBClusterSnapshotInput, optFns ...func(*Options)) (*CreateDBClusterSnapshotOutput, error) { if params == nil { params = &CreateDBClusterSnapshotInput{} diff --git a/service/rds/api_op_DeleteDBCluster.go b/service/rds/api_op_DeleteDBCluster.go index 5ef65dd6e0c..37237af2376 100644 --- a/service/rds/api_op_DeleteDBCluster.go +++ b/service/rds/api_op_DeleteDBCluster.go @@ -19,8 +19,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) DeleteDBCluster(ctx context.Context, params *DeleteDBClusterInput, optFns ...func(*Options)) (*DeleteDBClusterOutput, error) { if params == nil { params = &DeleteDBClusterInput{} @@ -89,8 +88,7 @@ type DeleteDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_DeleteDBClusterParameterGroup.go b/service/rds/api_op_DeleteDBClusterParameterGroup.go index 5de01c26b08..2799e136e82 100644 --- a/service/rds/api_op_DeleteDBClusterParameterGroup.go +++ b/service/rds/api_op_DeleteDBClusterParameterGroup.go @@ -17,8 +17,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) DeleteDBClusterParameterGroup(ctx context.Context, params *DeleteDBClusterParameterGroupInput, optFns ...func(*Options)) (*DeleteDBClusterParameterGroupOutput, error) { if params == nil { params = &DeleteDBClusterParameterGroupInput{} diff --git a/service/rds/api_op_DeleteDBClusterSnapshot.go b/service/rds/api_op_DeleteDBClusterSnapshot.go index ecef841c507..6ec73ebd01d 100644 --- a/service/rds/api_op_DeleteDBClusterSnapshot.go +++ b/service/rds/api_op_DeleteDBClusterSnapshot.go @@ -19,8 +19,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) DeleteDBClusterSnapshot(ctx context.Context, params *DeleteDBClusterSnapshotInput, optFns ...func(*Options)) (*DeleteDBClusterSnapshotOutput, error) { if params == nil { params = &DeleteDBClusterSnapshotInput{} diff --git a/service/rds/api_op_DescribeDBClusterParameterGroups.go b/service/rds/api_op_DescribeDBClusterParameterGroups.go index 408295168cd..bc7048a57d0 100644 --- a/service/rds/api_op_DescribeDBClusterParameterGroups.go +++ b/service/rds/api_op_DescribeDBClusterParameterGroups.go @@ -20,8 +20,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) DescribeDBClusterParameterGroups(ctx context.Context, params *DescribeDBClusterParameterGroupsInput, optFns ...func(*Options)) (*DescribeDBClusterParameterGroupsOutput, error) { if params == nil { params = &DescribeDBClusterParameterGroupsInput{} diff --git a/service/rds/api_op_DescribeDBClusterParameters.go b/service/rds/api_op_DescribeDBClusterParameters.go index d90d3e4c101..27e1dc87a73 100644 --- a/service/rds/api_op_DescribeDBClusterParameters.go +++ b/service/rds/api_op_DescribeDBClusterParameters.go @@ -18,8 +18,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) DescribeDBClusterParameters(ctx context.Context, params *DescribeDBClusterParametersInput, optFns ...func(*Options)) (*DescribeDBClusterParametersOutput, error) { if params == nil { params = &DescribeDBClusterParametersInput{} diff --git a/service/rds/api_op_DescribeDBClusterSnapshots.go b/service/rds/api_op_DescribeDBClusterSnapshots.go index 1b06e4c5695..15f26887831 100644 --- a/service/rds/api_op_DescribeDBClusterSnapshots.go +++ b/service/rds/api_op_DescribeDBClusterSnapshots.go @@ -25,8 +25,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) DescribeDBClusterSnapshots(ctx context.Context, params *DescribeDBClusterSnapshotsInput, optFns ...func(*Options)) (*DescribeDBClusterSnapshotsOutput, error) { if params == nil { params = &DescribeDBClusterSnapshotsInput{} diff --git a/service/rds/api_op_DescribeDBClusters.go b/service/rds/api_op_DescribeDBClusters.go index 2b67a87776b..da2264db929 100644 --- a/service/rds/api_op_DescribeDBClusters.go +++ b/service/rds/api_op_DescribeDBClusters.go @@ -19,9 +19,8 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. This operation can also return information for Amazon -// Neptune DB instances and Amazon DocumentDB instances. +// in the Amazon RDS User Guide. This operation can also return information for +// Amazon Neptune DB instances and Amazon DocumentDB instances. func (c *Client) DescribeDBClusters(ctx context.Context, params *DescribeDBClustersInput, optFns ...func(*Options)) (*DescribeDBClustersOutput, error) { if params == nil { params = &DescribeDBClustersInput{} diff --git a/service/rds/api_op_FailoverDBCluster.go b/service/rds/api_op_FailoverDBCluster.go index d52bd794fb0..f7cfe0e47e7 100644 --- a/service/rds/api_op_FailoverDBCluster.go +++ b/service/rds/api_op_FailoverDBCluster.go @@ -28,8 +28,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) FailoverDBCluster(ctx context.Context, params *FailoverDBClusterInput, optFns ...func(*Options)) (*FailoverDBClusterOutput, error) { if params == nil { params = &FailoverDBClusterInput{} @@ -83,8 +82,7 @@ type FailoverDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_ModifyDBCluster.go b/service/rds/api_op_ModifyDBCluster.go index 72e9b5026ee..77893a52cb6 100644 --- a/service/rds/api_op_ModifyDBCluster.go +++ b/service/rds/api_op_ModifyDBCluster.go @@ -19,8 +19,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) ModifyDBCluster(ctx context.Context, params *ModifyDBClusterInput, optFns ...func(*Options)) (*ModifyDBClusterOutput, error) { if params == nil { params = &ModifyDBClusterInput{} @@ -94,12 +93,25 @@ type ModifyDBClusterInput struct { BackupRetentionPeriod *int32 // The configuration setting for the log types to be enabled for export to - // CloudWatch Logs for a specific DB cluster. Valid for: Aurora DB clusters only + // CloudWatch Logs for a specific DB cluster. The values in the list depend on the + // DB engine being used. RDS for MySQL Possible values are error, general, and + // slowquery. RDS for PostgreSQL Possible values are postgresql and upgrade. Aurora + // MySQL Possible values are audit, error, general, and slowquery. Aurora + // PostgreSQL Possible value is postgresql. For more information about exporting + // CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon + // CloudWatch Logs + // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + // in the Amazon Relational Database Service User Guide. For more information about + // exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to + // Amazon CloudWatch Logs + // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + // in the Amazon Aurora User Guide. Valid for: Aurora DB clusters and Multi-AZ DB + // clusters CloudwatchLogsExportConfiguration *types.CloudwatchLogsExportConfiguration // A value that indicates whether to copy all tags from the DB cluster to snapshots // of the DB cluster. The default is not to copy them. Valid for: Aurora DB - // clusters only + // clusters and Multi-AZ DB clusters CopyTagsToSnapshot *bool // The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, @@ -337,8 +349,7 @@ type ModifyDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_ModifyDBClusterParameterGroup.go b/service/rds/api_op_ModifyDBClusterParameterGroup.go index 1c5ab119d61..cba63c892a9 100644 --- a/service/rds/api_op_ModifyDBClusterParameterGroup.go +++ b/service/rds/api_op_ModifyDBClusterParameterGroup.go @@ -33,8 +33,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) ModifyDBClusterParameterGroup(ctx context.Context, params *ModifyDBClusterParameterGroupInput, optFns ...func(*Options)) (*ModifyDBClusterParameterGroupOutput, error) { if params == nil { params = &ModifyDBClusterParameterGroupInput{} diff --git a/service/rds/api_op_PromoteReadReplicaDBCluster.go b/service/rds/api_op_PromoteReadReplicaDBCluster.go index 0f27ab83d6d..54faf7b3817 100644 --- a/service/rds/api_op_PromoteReadReplicaDBCluster.go +++ b/service/rds/api_op_PromoteReadReplicaDBCluster.go @@ -61,8 +61,7 @@ type PromoteReadReplicaDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_RebootDBCluster.go b/service/rds/api_op_RebootDBCluster.go index 9485dc453ad..4dbbc1650a0 100644 --- a/service/rds/api_op_RebootDBCluster.go +++ b/service/rds/api_op_RebootDBCluster.go @@ -17,8 +17,7 @@ import ( // changes to take effect. Rebooting a DB cluster restarts the database engine // service. Rebooting a DB cluster results in a momentary outage, during which the // DB cluster status is set to rebooting. Use this operation only for a non-Aurora -// Multi-AZ DB cluster. The Multi-AZ DB clusters feature is in preview and is -// subject to change. For more information on Multi-AZ DB clusters, see Multi-AZ +// Multi-AZ DB cluster. For more information on Multi-AZ DB clusters, see Multi-AZ // deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) // in the Amazon RDS User Guide. @@ -67,8 +66,7 @@ type RebootDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_RemoveRoleFromDBCluster.go b/service/rds/api_op_RemoveRoleFromDBCluster.go index 5631312384f..729042135ae 100644 --- a/service/rds/api_op_RemoveRoleFromDBCluster.go +++ b/service/rds/api_op_RemoveRoleFromDBCluster.go @@ -17,8 +17,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) RemoveRoleFromDBCluster(ctx context.Context, params *RemoveRoleFromDBClusterInput, optFns ...func(*Options)) (*RemoveRoleFromDBClusterOutput, error) { if params == nil { params = &RemoveRoleFromDBClusterInput{} diff --git a/service/rds/api_op_ResetDBClusterParameterGroup.go b/service/rds/api_op_ResetDBClusterParameterGroup.go index 076e46c7763..bb12489ff35 100644 --- a/service/rds/api_op_ResetDBClusterParameterGroup.go +++ b/service/rds/api_op_ResetDBClusterParameterGroup.go @@ -25,8 +25,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) ResetDBClusterParameterGroup(ctx context.Context, params *ResetDBClusterParameterGroupInput, optFns ...func(*Options)) (*ResetDBClusterParameterGroupOutput, error) { if params == nil { params = &ResetDBClusterParameterGroupInput{} diff --git a/service/rds/api_op_RestoreDBClusterFromS3.go b/service/rds/api_op_RestoreDBClusterFromS3.go index 15ae535c640..13069dd85c6 100644 --- a/service/rds/api_op_RestoreDBClusterFromS3.go +++ b/service/rds/api_op_RestoreDBClusterFromS3.go @@ -172,8 +172,10 @@ type RestoreDBClusterFromS3Input struct { DomainIAMRoleName *string // The list of logs that the restored DB cluster is to export to CloudWatch Logs. - // The values in the list depend on the DB engine being used. For more information, - // see Publishing Database Logs to Amazon CloudWatch Logs + // The values in the list depend on the DB engine being used. Aurora MySQL Possible + // values are audit, error, general, and slowquery. Aurora PostgreSQL Possible + // value is postgresql. For more information about exporting CloudWatch Logs for + // Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) // in the Amazon Aurora User Guide. EnableCloudwatchLogsExports []string @@ -284,8 +286,7 @@ type RestoreDBClusterFromS3Output struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_RestoreDBClusterFromSnapshot.go b/service/rds/api_op_RestoreDBClusterFromSnapshot.go index b7653571f09..39619084c77 100644 --- a/service/rds/api_op_RestoreDBClusterFromSnapshot.go +++ b/service/rds/api_op_RestoreDBClusterFromSnapshot.go @@ -25,8 +25,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) RestoreDBClusterFromSnapshot(ctx context.Context, params *RestoreDBClusterFromSnapshotInput, optFns ...func(*Options)) (*RestoreDBClusterFromSnapshotOutput, error) { if params == nil { params = &RestoreDBClusterFromSnapshotInput{} @@ -98,7 +97,7 @@ type RestoreDBClusterFromSnapshotInput struct { // A value that indicates whether to copy all tags from the restored DB cluster to // snapshots of the restored DB cluster. The default is not to copy them. Valid - // for: Aurora DB clusters only + // for: Aurora DB clusters and Multi-AZ DB clusters CopyTagsToSnapshot *bool // The compute and memory capacity of the each DB instance in the Multi-AZ DB @@ -156,10 +155,19 @@ type RestoreDBClusterFromSnapshotInput struct { DomainIAMRoleName *string // The list of logs that the restored DB cluster is to export to Amazon CloudWatch - // Logs. The values in the list depend on the DB engine being used. For more - // information, see Publishing Database Logs to Amazon CloudWatch Logs + // Logs. The values in the list depend on the DB engine being used. RDS for MySQL + // Possible values are error, general, and slowquery. RDS for PostgreSQL Possible + // values are postgresql and upgrade. Aurora MySQL Possible values are audit, + // error, general, and slowquery. Aurora PostgreSQL Possible value is postgresql. + // For more information about exporting CloudWatch Logs for Amazon RDS, see + // Publishing Database Logs to Amazon CloudWatch Logs + // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + // in the Amazon Relational Database Service User Guide. For more information about + // exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to + // Amazon CloudWatch Logs // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) - // in the Amazon Aurora User Guide. Valid for: Aurora DB clusters only + // in the Amazon Aurora User Guide. Valid for: Aurora DB clusters and Multi-AZ DB + // clusters EnableCloudwatchLogsExports []string // A value that indicates whether to enable mapping of Amazon Web Services Identity @@ -314,8 +322,7 @@ type RestoreDBClusterFromSnapshotOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_RestoreDBClusterToPointInTime.go b/service/rds/api_op_RestoreDBClusterToPointInTime.go index 4512e1a1a37..47f70886f80 100644 --- a/service/rds/api_op_RestoreDBClusterToPointInTime.go +++ b/service/rds/api_op_RestoreDBClusterToPointInTime.go @@ -28,8 +28,7 @@ import ( // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. func (c *Client) RestoreDBClusterToPointInTime(ctx context.Context, params *RestoreDBClusterToPointInTimeInput, optFns ...func(*Options)) (*RestoreDBClusterToPointInTimeOutput, error) { if params == nil { params = &RestoreDBClusterToPointInTimeInput{} @@ -86,7 +85,7 @@ type RestoreDBClusterToPointInTimeInput struct { // A value that indicates whether to copy all tags from the restored DB cluster to // snapshots of the restored DB cluster. The default is not to copy them. Valid - // for: Aurora DB clusters only + // for: Aurora DB clusters and Multi-AZ DB clusters CopyTagsToSnapshot *bool // The compute and memory capacity of the each DB instance in the Multi-AZ DB @@ -140,10 +139,19 @@ type RestoreDBClusterToPointInTimeInput struct { DomainIAMRoleName *string // The list of logs that the restored DB cluster is to export to CloudWatch Logs. - // The values in the list depend on the DB engine being used. For more information, - // see Publishing Database Logs to Amazon CloudWatch Logs + // The values in the list depend on the DB engine being used. RDS for MySQL + // Possible values are error, general, and slowquery. RDS for PostgreSQL Possible + // values are postgresql and upgrade. Aurora MySQL Possible values are audit, + // error, general, and slowquery. Aurora PostgreSQL Possible value is postgresql. + // For more information about exporting CloudWatch Logs for Amazon RDS, see + // Publishing Database Logs to Amazon CloudWatch Logs + // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) + // in the Amazon Relational Database Service User Guide. For more information about + // exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to + // Amazon CloudWatch Logs // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) - // in the Amazon Aurora User Guide. Valid for: Aurora DB clusters only + // in the Amazon Aurora User Guide. Valid for: Aurora DB clusters and Multi-AZ DB + // clusters EnableCloudwatchLogsExports []string // A value that indicates whether to enable mapping of Amazon Web Services Identity @@ -312,8 +320,7 @@ type RestoreDBClusterToPointInTimeOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_StartDBCluster.go b/service/rds/api_op_StartDBCluster.go index a405d87025a..21f65dcd46b 100644 --- a/service/rds/api_op_StartDBCluster.go +++ b/service/rds/api_op_StartDBCluster.go @@ -61,8 +61,7 @@ type StartDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/api_op_StopDBCluster.go b/service/rds/api_op_StopDBCluster.go index b385f88b60a..3dc1af33440 100644 --- a/service/rds/api_op_StopDBCluster.go +++ b/service/rds/api_op_StopDBCluster.go @@ -62,8 +62,7 @@ type StopDBClusterOutput struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) - // in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and - // is subject to change. + // in the Amazon RDS User Guide. DBCluster *types.DBCluster // Metadata pertaining to the operation's result. diff --git a/service/rds/types/types.go b/service/rds/types/types.go index cde935d62e0..e65d5eadec5 100644 --- a/service/rds/types/types.go +++ b/service/rds/types/types.go @@ -351,8 +351,7 @@ type CustomAvailabilityZone struct { // in the Amazon Aurora User Guide. For more information on Multi-AZ DB clusters, // see Multi-AZ deployments with two readable standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) -// in the Amazon RDS User Guide. The Multi-AZ DB clusters feature is in preview and -// is subject to change. +// in the Amazon RDS User Guide. type DBCluster struct { // The name of the Amazon Kinesis data stream used for the database activity @@ -2899,10 +2898,9 @@ type OrderableDBInstanceOption struct { // A list of the supported DB engine modes. SupportedEngineModes []string - // Whether DB instances can be configured as a Multi-AZ DB cluster. The Multi-AZ DB - // clusters feature is in preview and is subject to change. For more information on - // Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB - // instances + // Whether DB instances can be configured as a Multi-AZ DB cluster. For more + // information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable + // standby DB instances // (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) // in the Amazon RDS User Guide. SupportsClusters bool diff --git a/service/servicecatalogappregistry/api_op_UpdateApplication.go b/service/servicecatalogappregistry/api_op_UpdateApplication.go index 363c0e16ab0..a82639c467c 100644 --- a/service/servicecatalogappregistry/api_op_UpdateApplication.go +++ b/service/servicecatalogappregistry/api_op_UpdateApplication.go @@ -39,6 +39,8 @@ type UpdateApplicationInput struct { // The new name of the application. The name must be unique in the region in which // you are updating the application. + // + // Deprecated: Name update for application is deprecated. Name *string noSmithyDocumentSerde diff --git a/service/servicecatalogappregistry/api_op_UpdateAttributeGroup.go b/service/servicecatalogappregistry/api_op_UpdateAttributeGroup.go index 1f16f4f82b8..20808feb53c 100644 --- a/service/servicecatalogappregistry/api_op_UpdateAttributeGroup.go +++ b/service/servicecatalogappregistry/api_op_UpdateAttributeGroup.go @@ -44,6 +44,8 @@ type UpdateAttributeGroupInput struct { // The new name of the attribute group. The name must be unique in the region in // which you are updating the attribute group. + // + // Deprecated: Name update for attribute group is deprecated. Name *string noSmithyDocumentSerde diff --git a/service/sts/api_op_AssumeRole.go b/service/sts/api_op_AssumeRole.go index a0cdc90775a..7d00b6bd7fa 100644 --- a/service/sts/api_op_AssumeRole.go +++ b/service/sts/api_op_AssumeRole.go @@ -273,7 +273,7 @@ type AssumeRoleInput struct { // session. If you pass a session tag with the same key as an inherited tag, the // operation fails. To view the inherited tags for a session, see the CloudTrail // logs. For more information, see Viewing Session Tags in CloudTrail - // (https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs) + // (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs) // in the IAM User Guide. Tags []types.Tag diff --git a/service/sts/api_op_AssumeRoleWithWebIdentity.go b/service/sts/api_op_AssumeRoleWithWebIdentity.go index 240fa1b8827..2e8b51c98d5 100644 --- a/service/sts/api_op_AssumeRoleWithWebIdentity.go +++ b/service/sts/api_op_AssumeRoleWithWebIdentity.go @@ -12,10 +12,12 @@ import ( // Returns a set of temporary security credentials for users who have been // authenticated in a mobile or web application with a web identity provider. -// Example providers include Amazon Cognito, Login with Amazon, Facebook, Google, -// or any OpenID Connect-compatible identity provider. For mobile applications, we -// recommend that you use Amazon Cognito. You can use Amazon Cognito with the -// Amazon Web Services SDK for iOS Developer Guide +// Example providers include the OAuth 2.0 providers Login with Amazon and +// Facebook, or any OpenID Connect-compatible identity provider such as Google or +// Amazon Cognito federated identities +// (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html). +// For mobile applications, we recommend that you use Amazon Cognito. You can use +// Amazon Cognito with the Amazon Web Services SDK for iOS Developer Guide // (http://aws.amazon.com/sdkforios/) and the Amazon Web Services SDK for Android // Developer Guide (http://aws.amazon.com/sdkforandroid/) to uniquely identify a // user. You can also supply the user with a consistent identity throughout the @@ -244,11 +246,11 @@ type AssumeRoleWithWebIdentityInput struct { // in the IAM User Guide. PolicyArns []types.PolicyDescriptorType - // The fully qualified host component of the domain name of the identity provider. - // Specify this value only for OAuth 2.0 access tokens. Currently www.amazon.com - // and graph.facebook.com are the only supported identity providers for OAuth 2.0 - // access tokens. Do not include URL schemes and port numbers. Do not specify this - // value for OpenID Connect ID tokens. + // The fully qualified host component of the domain name of the OAuth 2.0 identity + // provider. Do not specify this value for an OpenID Connect identity provider. + // Currently www.amazon.com and graph.facebook.com are the only supported identity + // providers for OAuth 2.0 access tokens. Do not include URL schemes and port + // numbers. Do not specify this value for OpenID Connect ID tokens. ProviderId *string noSmithyDocumentSerde diff --git a/service/synthetics/types/types.go b/service/synthetics/types/types.go index 5a53f74f48b..9243f204086 100644 --- a/service/synthetics/types/types.go +++ b/service/synthetics/types/types.go @@ -133,9 +133,13 @@ type Canary struct { // directly, the script code is contained in the value of Zipfile. type CanaryCodeInput struct { - // The entry point to use for the source code when running the canary. This value - // must end with the string .handler. The string is limited to 29 characters or - // fewer. + // The entry point to use for the source code when running the canary. For canaries + // that use the syn-python-selenium-1.0 runtime or a syn-nodejs.puppeteer runtime + // earlier than syn-nodejs.puppeteer-3.4, the handler must be specified as + // fileName.handler. For syn-python-selenium-1.1, syn-nodejs.puppeteer-3.4, and + // later runtimes, the handler can be specified as fileName.functionName , or you + // can specify a folder where canary scripts reside as + // folder/fileName.functionName . // // This member is required. Handler *string diff --git a/service/timestreamquery/api_op_CancelQuery.go b/service/timestreamquery/api_op_CancelQuery.go index 0e37b153e14..85b20fc2eb4 100644 --- a/service/timestreamquery/api_op_CancelQuery.go +++ b/service/timestreamquery/api_op_CancelQuery.go @@ -17,7 +17,7 @@ import ( // cancellation is an idempotent operation, subsequent cancellation requests will // return a CancellationMessage, indicating that the query has already been // canceled. See code sample -// (https://docs.aws.amazon.com/Timestream/latest/developerguide/code-samples.cancel-query.html) +// (https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.cancel-query.html) // for details. func (c *Client) CancelQuery(ctx context.Context, params *CancelQueryInput, optFns ...func(*Options)) (*CancelQueryOutput, error) { if params == nil { diff --git a/service/timestreamquery/api_op_DescribeEndpoints.go b/service/timestreamquery/api_op_DescribeEndpoints.go index 00f6ac0fc2a..78607941854 100644 --- a/service/timestreamquery/api_op_DescribeEndpoints.go +++ b/service/timestreamquery/api_op_DescribeEndpoints.go @@ -19,7 +19,7 @@ import ( // // * You are using VPC endpoints // (Amazon Web Services PrivateLink) with Timestream -// (https://docs.aws.amazon.com/Timestream/latest/developerguide/VPCEndpoints) +// (https://docs.aws.amazon.com/timestream/latest/developerguide/VPCEndpoints) // // * // Your application uses a programming language that does not yet have SDK @@ -30,7 +30,7 @@ import ( // For // detailed information on how and when to use and implement DescribeEndpoints, see // The Endpoint Discovery Pattern -// (https://docs.aws.amazon.com/Timestream/latest/developerguide/Using.API.html#Using-API.endpoint-discovery). +// (https://docs.aws.amazon.com/timestream/latest/developerguide/Using.API.html#Using-API.endpoint-discovery). func (c *Client) DescribeEndpoints(ctx context.Context, params *DescribeEndpointsInput, optFns ...func(*Options)) (*DescribeEndpointsOutput, error) { if params == nil { params = &DescribeEndpointsInput{} diff --git a/service/timestreamquery/api_op_Query.go b/service/timestreamquery/api_op_Query.go index cb00ba10c39..204c3fe77bf 100644 --- a/service/timestreamquery/api_op_Query.go +++ b/service/timestreamquery/api_op_Query.go @@ -17,7 +17,7 @@ import ( // Amazon Timestream data. Query will time out after 60 seconds. You must update // the default timeout in the SDK to support a timeout of 60 seconds. See the code // sample -// (https://docs.aws.amazon.com/Timestream/latest/developerguide/code-samples.run-query.html) +// (https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.run-query.html) // for details. Your query request will fail in the following cases: // // * If you From a5dd9c9151cc0a3bc70d40ccd52ee0ae3edd09d7 Mon Sep 17 00:00:00 2001 From: Sean McGrail Date: Mon, 7 Mar 2022 18:16:41 -0800 Subject: [PATCH 4/4] Add changelog descriptions --- .../7d2940d89e414e2ca0cabbb7c3e7229b.json | 32 +++++++++++++++++++ .../7f051288ceed4db68463fb7566817a82.json | 17 ++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .changelog/7d2940d89e414e2ca0cabbb7c3e7229b.json create mode 100644 .changelog/7f051288ceed4db68463fb7566817a82.json diff --git a/.changelog/7d2940d89e414e2ca0cabbb7c3e7229b.json b/.changelog/7d2940d89e414e2ca0cabbb7c3e7229b.json new file mode 100644 index 00000000000..8907cec4a81 --- /dev/null +++ b/.changelog/7d2940d89e414e2ca0cabbb7c3e7229b.json @@ -0,0 +1,32 @@ +{ + "id": "7d2940d8-9e41-4e2c-a0ca-bbb7c3e7229b", + "type": "feature", + "description": "Updated service client model to latest release.", + "modules": [ + "service/amplify", + "service/amplifyuibuilder", + "service/appflow", + "service/apprunner", + "service/athena", + "service/braket", + "service/chimesdkmeetings", + "service/cloudtrail", + "service/connect", + "service/devopsguru", + "service/ec2", + "service/ecr", + "service/ecs", + "service/finspacedata", + "service/fis", + "service/fsx", + "service/kafkaconnect", + "service/kendra", + "service/mediapackage", + "service/mgn", + "service/mq", + "service/panorama", + "service/route53recoverycluster", + "service/sqs", + "service/transfer" + ] +} \ No newline at end of file diff --git a/.changelog/7f051288ceed4db68463fb7566817a82.json b/.changelog/7f051288ceed4db68463fb7566817a82.json new file mode 100644 index 00000000000..e9847c8fefe --- /dev/null +++ b/.changelog/7f051288ceed4db68463fb7566817a82.json @@ -0,0 +1,17 @@ +{ + "id": "7f051288-ceed-4db6-8463-fb7566817a82", + "type": "documentation", + "description": "Updated service client model to latest release.", + "modules": [ + "service/elasticache", + "service/gamelift", + "service/greengrassv2", + "service/macie", + "service/migrationhubrefactorspaces", + "service/rds", + "service/servicecatalogappregistry", + "service/sts", + "service/synthetics", + "service/timestreamquery" + ] +} \ No newline at end of file