diff --git a/clients/client-accessanalyzer/src/endpoints.ts b/clients/client-accessanalyzer/src/endpoints.ts index b6df9a040b4f..9b744badd805 100644 --- a/clients/client-accessanalyzer/src/endpoints.ts +++ b/clients/client-accessanalyzer/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-account/src/endpoints.ts b/clients/client-account/src/endpoints.ts index 53371d440b75..1022a25171c7 100644 --- a/clients/client-account/src/endpoints.ts +++ b/clients/client-account/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-acm-pca/src/endpoints.ts b/clients/client-acm-pca/src/endpoints.ts index d348a781db37..8fc56c1a0479 100644 --- a/clients/client-acm-pca/src/endpoints.ts +++ b/clients/client-acm-pca/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-acm/src/endpoints.ts b/clients/client-acm/src/endpoints.ts index 2928c2f103c0..cb98f0e1c102 100644 --- a/clients/client-acm/src/endpoints.ts +++ b/clients/client-acm/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-alexa-for-business/src/endpoints.ts b/clients/client-alexa-for-business/src/endpoints.ts index ca011526d791..c49520ed5770 100644 --- a/clients/client-alexa-for-business/src/endpoints.ts +++ b/clients/client-alexa-for-business/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-amp/src/endpoints.ts b/clients/client-amp/src/endpoints.ts index b6c2de169c9c..eaa1fdaf0d8e 100644 --- a/clients/client-amp/src/endpoints.ts +++ b/clients/client-amp/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-amplify/src/endpoints.ts b/clients/client-amplify/src/endpoints.ts index d5255c75171d..dddd43ac0090 100644 --- a/clients/client-amplify/src/endpoints.ts +++ b/clients/client-amplify/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-amplifybackend/src/endpoints.ts b/clients/client-amplifybackend/src/endpoints.ts index 87a2fdf8c0d3..0befe34d1e16 100644 --- a/clients/client-amplifybackend/src/endpoints.ts +++ b/clients/client-amplifybackend/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-amplifyuibuilder/.gitignore b/clients/client-amplifyuibuilder/.gitignore new file mode 100644 index 000000000000..54f14c9aef25 --- /dev/null +++ b/clients/client-amplifyuibuilder/.gitignore @@ -0,0 +1,9 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/dist-* +*.tsbuildinfo +*.tgz +*.log +package-lock.json diff --git a/clients/client-amplifyuibuilder/LICENSE b/clients/client-amplifyuibuilder/LICENSE new file mode 100644 index 000000000000..f9e0c8672bca --- /dev/null +++ b/clients/client-amplifyuibuilder/LICENSE @@ -0,0 +1,201 @@ + 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 2018-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + 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/clients/client-amplifyuibuilder/README.md b/clients/client-amplifyuibuilder/README.md new file mode 100644 index 000000000000..3520ac7bb99d --- /dev/null +++ b/clients/client-amplifyuibuilder/README.md @@ -0,0 +1,212 @@ +# @aws-sdk/client-amplifyuibuilder + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-amplifyuibuilder/latest.svg)](https://www.npmjs.com/package/@aws-sdk/client-amplifyuibuilder) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-amplifyuibuilder.svg)](https://www.npmjs.com/package/@aws-sdk/client-amplifyuibuilder) + +## Description + +AWS SDK for JavaScript AmplifyUIBuilder Client for Node.js, Browser and React Native. + +

The Amplify UI Builder API provides a programmatic interface for creating 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 backend Amazon Web Services +resources.

+

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

+

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

+ +## Installing + +To install the this package, simply type add or install @aws-sdk/client-amplifyuibuilder +using your favorite package manager: + +- `npm install @aws-sdk/client-amplifyuibuilder` +- `yarn add @aws-sdk/client-amplifyuibuilder` +- `pnpm add @aws-sdk/client-amplifyuibuilder` + +## Getting Started + +### Import + +The AWS SDK is modulized by clients and commands. +To send a request, you only need to import the `AmplifyUIBuilderClient` and +the commands you need, for example `CreateComponentCommand`: + +```js +// ES5 example +const { AmplifyUIBuilderClient, CreateComponentCommand } = require("@aws-sdk/client-amplifyuibuilder"); +``` + +```ts +// ES6+ example +import { AmplifyUIBuilderClient, CreateComponentCommand } from "@aws-sdk/client-amplifyuibuilder"; +``` + +### Usage + +To send a request, you: + +- Initiate client with configuration (e.g. credentials, region). +- Initiate command with input parameters. +- Call `send` operation on client with command object as input. +- If you are using a custom http handler, you may call `destroy()` to close open connections. + +```js +// a client can be shared by different commands. +const client = new AmplifyUIBuilderClient({ region: "REGION" }); + +const params = { + /** input parameters */ +}; +const command = new CreateComponentCommand(params); +``` + +#### Async/await + +We recommend using [await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await) +operator to wait for the promise returned by send operation as follows: + +```js +// async/await. +try { + const data = await client.send(command); + // process data. +} catch (error) { + // error handling. +} finally { + // finally. +} +``` + +Async-await is clean, concise, intuitive, easy to debug and has better error handling +as compared to using Promise chains or callbacks. + +#### Promises + +You can also use [Promise chaining](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises#chaining) +to execute send operation. + +```js +client.send(command).then( + (data) => { + // process data. + }, + (error) => { + // error handling. + } +); +``` + +Promises can also be called using `.catch()` and `.finally()` as follows: + +```js +client + .send(command) + .then((data) => { + // process data. + }) + .catch((error) => { + // error handling. + }) + .finally(() => { + // finally. + }); +``` + +#### Callbacks + +We do not recommend using callbacks because of [callback hell](http://callbackhell.com/), +but they are supported by the send operation. + +```js +// callbacks. +client.send(command, (err, data) => { + // proccess err and data. +}); +``` + +#### v2 compatible style + +The client can also send requests using v2 compatible style. +However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post +on [modular packages in AWS SDK for JavaScript](https://aws.amazon.com/blogs/developer/modular-packages-in-aws-sdk-for-javascript/) + +```ts +import * as AWS from "@aws-sdk/client-amplifyuibuilder"; +const client = new AWS.AmplifyUIBuilder({ region: "REGION" }); + +// async/await. +try { + const data = await client.createComponent(params); + // process data. +} catch (error) { + // error handling. +} + +// Promises. +client + .createComponent(params) + .then((data) => { + // process data. + }) + .catch((error) => { + // error handling. + }); + +// callbacks. +client.createComponent(params, (err, data) => { + // proccess err and data. +}); +``` + +### Troubleshooting + +When the service returns an exception, the error will include the exception information, +as well as response metadata (e.g. request id). + +```js +try { + const data = await client.send(command); + // process data. +} catch (error) { + const { requestId, cfId, extendedRequestId } = error.$metadata; + console.log({ requestId, cfId, extendedRequestId }); + /** + * The keys within exceptions are also parsed. + * You can access them by specifying exception names: + * if (error.name === 'SomeServiceException') { + * const value = error.specialKeyInException; + * } + */ +} +``` + +## Getting Help + +Please use these community resources for getting help. +We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them. + +- Visit [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html) + or [API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.html). +- Check out the blog posts tagged with [`aws-sdk-js`](https://aws.amazon.com/blogs/developer/tag/aws-sdk-js/) + on AWS Developer Blog. +- Ask a question on [StackOverflow](https://stackoverflow.com/questions/tagged/aws-sdk-js) and tag it with `aws-sdk-js`. +- Join the AWS JavaScript community on [gitter](https://gitter.im/aws/aws-sdk-js-v3). +- If it turns out that you may have found a bug, please [open an issue](https://github.com/aws/aws-sdk-js-v3/issues/new/choose). + +To test your universal JavaScript code in Node.js, browser and react-native environments, +visit our [code samples repo](https://github.com/aws-samples/aws-sdk-js-tests). + +## Contributing + +This client code is generated automatically. Any modifications will be overwritten the next time the `@aws-sdk/client-amplifyuibuilder` package is updated. +To contribute to client you can check our [generate clients scripts](https://github.com/aws/aws-sdk-js-v3/tree/main/scripts/generate-clients). + +## License + +This SDK is distributed under the +[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0), +see LICENSE for more information. diff --git a/clients/client-amplifyuibuilder/jest.config.js b/clients/client-amplifyuibuilder/jest.config.js new file mode 100644 index 000000000000..02eed352c6a8 --- /dev/null +++ b/clients/client-amplifyuibuilder/jest.config.js @@ -0,0 +1,4 @@ +module.exports = { + preset: "ts-jest", + testMatch: ["**/*.spec.ts", "!**/*.browser.spec.ts", "!**/*.integ.spec.ts"], +}; diff --git a/clients/client-amplifyuibuilder/package.json b/clients/client-amplifyuibuilder/package.json new file mode 100644 index 000000000000..28d71b4d7556 --- /dev/null +++ b/clients/client-amplifyuibuilder/package.json @@ -0,0 +1,96 @@ +{ + "name": "@aws-sdk/client-amplifyuibuilder", + "description": "AWS SDK for JavaScript Amplifyuibuilder Client for Node.js, Browser and React Native", + "version": "3.0.0", + "scripts": { + "build": "yarn build:cjs && yarn build:es && yarn build:types", + "build:cjs": "tsc -p tsconfig.json", + "build:docs": "yarn clean:docs && typedoc ./", + "build:es": "tsc -p tsconfig.es.json", + "build:types": "tsc -p tsconfig.types.json", + "clean": "yarn clean:dist && yarn clean:docs", + "clean:dist": "rimraf ./dist-*", + "clean:docs": "rimraf ./docs", + "downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4", + "test": "jest --coverage --passWithNoTests" + }, + "main": "./dist-cjs/index.js", + "types": "./dist-types/index.d.ts", + "module": "./dist-es/index.js", + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "2.0.0", + "@aws-crypto/sha256-js": "2.0.0", + "@aws-sdk/client-sts": "3.43.0", + "@aws-sdk/config-resolver": "3.40.0", + "@aws-sdk/credential-provider-node": "3.41.0", + "@aws-sdk/fetch-http-handler": "3.40.0", + "@aws-sdk/hash-node": "3.40.0", + "@aws-sdk/invalid-dependency": "3.40.0", + "@aws-sdk/middleware-content-length": "3.40.0", + "@aws-sdk/middleware-host-header": "3.40.0", + "@aws-sdk/middleware-logger": "3.40.0", + "@aws-sdk/middleware-retry": "3.40.0", + "@aws-sdk/middleware-serde": "3.40.0", + "@aws-sdk/middleware-signing": "3.40.0", + "@aws-sdk/middleware-stack": "3.40.0", + "@aws-sdk/middleware-user-agent": "3.40.0", + "@aws-sdk/node-config-provider": "3.40.0", + "@aws-sdk/node-http-handler": "3.40.0", + "@aws-sdk/protocol-http": "3.40.0", + "@aws-sdk/smithy-client": "3.41.0", + "@aws-sdk/types": "3.40.0", + "@aws-sdk/url-parser": "3.40.0", + "@aws-sdk/util-base64-browser": "3.37.0", + "@aws-sdk/util-base64-node": "3.37.0", + "@aws-sdk/util-body-length-browser": "3.37.0", + "@aws-sdk/util-body-length-node": "3.37.0", + "@aws-sdk/util-user-agent-browser": "3.40.0", + "@aws-sdk/util-user-agent-node": "3.40.0", + "@aws-sdk/util-utf8-browser": "3.37.0", + "@aws-sdk/util-utf8-node": "3.37.0", + "tslib": "^2.3.0", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@aws-sdk/service-client-documentation-generator": "3.38.0", + "@types/node": "^12.7.5", + "@types/uuid": "^8.3.0", + "downlevel-dts": "0.7.0", + "jest": "^26.1.0", + "rimraf": "^3.0.0", + "ts-jest": "^26.4.1", + "typedoc": "^0.19.2", + "typescript": "~4.3.5" + }, + "engines": { + "node": ">=10.0.0" + }, + "typesVersions": { + "<4.0": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ] + } + }, + "files": [ + "dist-*" + ], + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0", + "browser": { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.browser" + }, + "react-native": { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.native" + }, + "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-amplifyuibuilder", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-amplifyuibuilder" + } +} diff --git a/clients/client-amplifyuibuilder/src/AmplifyUIBuilder.ts b/clients/client-amplifyuibuilder/src/AmplifyUIBuilder.ts new file mode 100644 index 000000000000..01fe2da51d56 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/AmplifyUIBuilder.ts @@ -0,0 +1,478 @@ +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +import { AmplifyUIBuilderClient } from "./AmplifyUIBuilderClient"; +import { + CreateComponentCommand, + CreateComponentCommandInput, + CreateComponentCommandOutput, +} from "./commands/CreateComponentCommand"; +import { CreateThemeCommand, CreateThemeCommandInput, CreateThemeCommandOutput } from "./commands/CreateThemeCommand"; +import { + DeleteComponentCommand, + DeleteComponentCommandInput, + DeleteComponentCommandOutput, +} from "./commands/DeleteComponentCommand"; +import { DeleteThemeCommand, DeleteThemeCommandInput, DeleteThemeCommandOutput } from "./commands/DeleteThemeCommand"; +import { + ExchangeCodeForTokenCommand, + ExchangeCodeForTokenCommandInput, + ExchangeCodeForTokenCommandOutput, +} from "./commands/ExchangeCodeForTokenCommand"; +import { + ExportComponentsCommand, + ExportComponentsCommandInput, + ExportComponentsCommandOutput, +} from "./commands/ExportComponentsCommand"; +import { + ExportThemesCommand, + ExportThemesCommandInput, + ExportThemesCommandOutput, +} from "./commands/ExportThemesCommand"; +import { + GetComponentCommand, + GetComponentCommandInput, + GetComponentCommandOutput, +} from "./commands/GetComponentCommand"; +import { GetThemeCommand, GetThemeCommandInput, GetThemeCommandOutput } from "./commands/GetThemeCommand"; +import { + ListComponentsCommand, + ListComponentsCommandInput, + ListComponentsCommandOutput, +} from "./commands/ListComponentsCommand"; +import { ListThemesCommand, ListThemesCommandInput, ListThemesCommandOutput } from "./commands/ListThemesCommand"; +import { + RefreshTokenCommand, + RefreshTokenCommandInput, + RefreshTokenCommandOutput, +} from "./commands/RefreshTokenCommand"; +import { + UpdateComponentCommand, + UpdateComponentCommandInput, + UpdateComponentCommandOutput, +} from "./commands/UpdateComponentCommand"; +import { UpdateThemeCommand, UpdateThemeCommandInput, UpdateThemeCommandOutput } from "./commands/UpdateThemeCommand"; + +/** + *

The Amplify UI Builder API provides a programmatic interface for creating 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 backend Amazon Web Services + * resources.

+ *

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

+ *

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

+ */ +export class AmplifyUIBuilder extends AmplifyUIBuilderClient { + /** + *

Creates a new component for an Amplify app.

+ */ + public createComponent( + args: CreateComponentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createComponent( + args: CreateComponentCommandInput, + cb: (err: any, data?: CreateComponentCommandOutput) => void + ): void; + public createComponent( + args: CreateComponentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateComponentCommandOutput) => void + ): void; + public createComponent( + args: CreateComponentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateComponentCommandOutput) => void), + cb?: (err: any, data?: CreateComponentCommandOutput) => void + ): Promise | void { + const command = new CreateComponentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

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

+ */ + public createTheme(args: CreateThemeCommandInput, options?: __HttpHandlerOptions): Promise; + public createTheme(args: CreateThemeCommandInput, cb: (err: any, data?: CreateThemeCommandOutput) => void): void; + public createTheme( + args: CreateThemeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateThemeCommandOutput) => void + ): void; + public createTheme( + args: CreateThemeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateThemeCommandOutput) => void), + cb?: (err: any, data?: CreateThemeCommandOutput) => void + ): Promise | void { + const command = new CreateThemeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes a component from an Amplify app.

+ */ + public deleteComponent( + args: DeleteComponentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteComponent( + args: DeleteComponentCommandInput, + cb: (err: any, data?: DeleteComponentCommandOutput) => void + ): void; + public deleteComponent( + args: DeleteComponentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteComponentCommandOutput) => void + ): void; + public deleteComponent( + args: DeleteComponentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteComponentCommandOutput) => void), + cb?: (err: any, data?: DeleteComponentCommandOutput) => void + ): Promise | void { + const command = new DeleteComponentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes a theme from an Amplify app.

+ */ + public deleteTheme(args: DeleteThemeCommandInput, options?: __HttpHandlerOptions): Promise; + public deleteTheme(args: DeleteThemeCommandInput, cb: (err: any, data?: DeleteThemeCommandOutput) => void): void; + public deleteTheme( + args: DeleteThemeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteThemeCommandOutput) => void + ): void; + public deleteTheme( + args: DeleteThemeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteThemeCommandOutput) => void), + cb?: (err: any, data?: DeleteThemeCommandOutput) => void + ): Promise | void { + const command = new DeleteThemeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Exchanges an access code for a token.

+ */ + public exchangeCodeForToken( + args: ExchangeCodeForTokenCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public exchangeCodeForToken( + args: ExchangeCodeForTokenCommandInput, + cb: (err: any, data?: ExchangeCodeForTokenCommandOutput) => void + ): void; + public exchangeCodeForToken( + args: ExchangeCodeForTokenCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ExchangeCodeForTokenCommandOutput) => void + ): void; + public exchangeCodeForToken( + args: ExchangeCodeForTokenCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ExchangeCodeForTokenCommandOutput) => void), + cb?: (err: any, data?: ExchangeCodeForTokenCommandOutput) => void + ): Promise | void { + const command = new ExchangeCodeForTokenCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

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

+ */ + public exportComponents( + args: ExportComponentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public exportComponents( + args: ExportComponentsCommandInput, + cb: (err: any, data?: ExportComponentsCommandOutput) => void + ): void; + public exportComponents( + args: ExportComponentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ExportComponentsCommandOutput) => void + ): void; + public exportComponents( + args: ExportComponentsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ExportComponentsCommandOutput) => void), + cb?: (err: any, data?: ExportComponentsCommandOutput) => void + ): Promise | void { + const command = new ExportComponentsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

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

+ */ + public exportThemes( + args: ExportThemesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public exportThemes(args: ExportThemesCommandInput, cb: (err: any, data?: ExportThemesCommandOutput) => void): void; + public exportThemes( + args: ExportThemesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ExportThemesCommandOutput) => void + ): void; + public exportThemes( + args: ExportThemesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ExportThemesCommandOutput) => void), + cb?: (err: any, data?: ExportThemesCommandOutput) => void + ): Promise | void { + const command = new ExportThemesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns an existing component for an Amplify app.

+ */ + public getComponent( + args: GetComponentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getComponent(args: GetComponentCommandInput, cb: (err: any, data?: GetComponentCommandOutput) => void): void; + public getComponent( + args: GetComponentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetComponentCommandOutput) => void + ): void; + public getComponent( + args: GetComponentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetComponentCommandOutput) => void), + cb?: (err: any, data?: GetComponentCommandOutput) => void + ): Promise | void { + const command = new GetComponentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns an existing theme for an Amplify app.

+ */ + public getTheme(args: GetThemeCommandInput, options?: __HttpHandlerOptions): Promise; + public getTheme(args: GetThemeCommandInput, cb: (err: any, data?: GetThemeCommandOutput) => void): void; + public getTheme( + args: GetThemeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetThemeCommandOutput) => void + ): void; + public getTheme( + args: GetThemeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetThemeCommandOutput) => void), + cb?: (err: any, data?: GetThemeCommandOutput) => void + ): Promise | void { + const command = new GetThemeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

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

+ */ + public listComponents( + args: ListComponentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listComponents( + args: ListComponentsCommandInput, + cb: (err: any, data?: ListComponentsCommandOutput) => void + ): void; + public listComponents( + args: ListComponentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListComponentsCommandOutput) => void + ): void; + public listComponents( + args: ListComponentsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListComponentsCommandOutput) => void), + cb?: (err: any, data?: ListComponentsCommandOutput) => void + ): Promise | void { + const command = new ListComponentsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

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

+ */ + public listThemes(args: ListThemesCommandInput, options?: __HttpHandlerOptions): Promise; + public listThemes(args: ListThemesCommandInput, cb: (err: any, data?: ListThemesCommandOutput) => void): void; + public listThemes( + args: ListThemesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListThemesCommandOutput) => void + ): void; + public listThemes( + args: ListThemesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListThemesCommandOutput) => void), + cb?: (err: any, data?: ListThemesCommandOutput) => void + ): Promise | void { + const command = new ListThemesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Refreshes a previously issued access token that might have expired.

+ */ + public refreshToken( + args: RefreshTokenCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public refreshToken(args: RefreshTokenCommandInput, cb: (err: any, data?: RefreshTokenCommandOutput) => void): void; + public refreshToken( + args: RefreshTokenCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RefreshTokenCommandOutput) => void + ): void; + public refreshToken( + args: RefreshTokenCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RefreshTokenCommandOutput) => void), + cb?: (err: any, data?: RefreshTokenCommandOutput) => void + ): Promise | void { + const command = new RefreshTokenCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates an existing component.

+ */ + public updateComponent( + args: UpdateComponentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateComponent( + args: UpdateComponentCommandInput, + cb: (err: any, data?: UpdateComponentCommandOutput) => void + ): void; + public updateComponent( + args: UpdateComponentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateComponentCommandOutput) => void + ): void; + public updateComponent( + args: UpdateComponentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateComponentCommandOutput) => void), + cb?: (err: any, data?: UpdateComponentCommandOutput) => void + ): Promise | void { + const command = new UpdateComponentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates an existing theme.

+ */ + public updateTheme(args: UpdateThemeCommandInput, options?: __HttpHandlerOptions): Promise; + public updateTheme(args: UpdateThemeCommandInput, cb: (err: any, data?: UpdateThemeCommandOutput) => void): void; + public updateTheme( + args: UpdateThemeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateThemeCommandOutput) => void + ): void; + public updateTheme( + args: UpdateThemeCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateThemeCommandOutput) => void), + cb?: (err: any, data?: UpdateThemeCommandOutput) => void + ): Promise | void { + const command = new UpdateThemeCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts b/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts new file mode 100644 index 000000000000..248954dc76c8 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/AmplifyUIBuilderClient.ts @@ -0,0 +1,300 @@ +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig, +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + getHostHeaderPlugin, + HostHeaderInputConfig, + HostHeaderResolvedConfig, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { getRetryPlugin, resolveRetryConfig, RetryInputConfig, RetryResolvedConfig } from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig, +} from "@aws-sdk/middleware-signing"; +import { + getUserAgentPlugin, + resolveUserAgentConfig, + UserAgentInputConfig, + UserAgentResolvedConfig, +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@aws-sdk/smithy-client"; +import { + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + Hash as __Hash, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + Provider, + RegionInfoProvider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, + UserAgent as __UserAgent, +} from "@aws-sdk/types"; + +import { CreateComponentCommandInput, CreateComponentCommandOutput } from "./commands/CreateComponentCommand"; +import { CreateThemeCommandInput, CreateThemeCommandOutput } from "./commands/CreateThemeCommand"; +import { DeleteComponentCommandInput, DeleteComponentCommandOutput } from "./commands/DeleteComponentCommand"; +import { DeleteThemeCommandInput, DeleteThemeCommandOutput } from "./commands/DeleteThemeCommand"; +import { + ExchangeCodeForTokenCommandInput, + ExchangeCodeForTokenCommandOutput, +} from "./commands/ExchangeCodeForTokenCommand"; +import { ExportComponentsCommandInput, ExportComponentsCommandOutput } from "./commands/ExportComponentsCommand"; +import { ExportThemesCommandInput, ExportThemesCommandOutput } from "./commands/ExportThemesCommand"; +import { GetComponentCommandInput, GetComponentCommandOutput } from "./commands/GetComponentCommand"; +import { GetThemeCommandInput, GetThemeCommandOutput } from "./commands/GetThemeCommand"; +import { ListComponentsCommandInput, ListComponentsCommandOutput } from "./commands/ListComponentsCommand"; +import { ListThemesCommandInput, ListThemesCommandOutput } from "./commands/ListThemesCommand"; +import { RefreshTokenCommandInput, RefreshTokenCommandOutput } from "./commands/RefreshTokenCommand"; +import { UpdateComponentCommandInput, UpdateComponentCommandOutput } from "./commands/UpdateComponentCommand"; +import { UpdateThemeCommandInput, UpdateThemeCommandOutput } from "./commands/UpdateThemeCommand"; +import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; + +export type ServiceInputTypes = + | CreateComponentCommandInput + | CreateThemeCommandInput + | DeleteComponentCommandInput + | DeleteThemeCommandInput + | ExchangeCodeForTokenCommandInput + | ExportComponentsCommandInput + | ExportThemesCommandInput + | GetComponentCommandInput + | GetThemeCommandInput + | ListComponentsCommandInput + | ListThemesCommandInput + | RefreshTokenCommandInput + | UpdateComponentCommandInput + | UpdateThemeCommandInput; + +export type ServiceOutputTypes = + | CreateComponentCommandOutput + | CreateThemeCommandOutput + | DeleteComponentCommandOutput + | DeleteThemeCommandOutput + | ExchangeCodeForTokenCommandOutput + | ExportComponentsCommandOutput + | ExportThemesCommandOutput + | GetComponentCommandOutput + | GetThemeCommandOutput + | ListComponentsCommandOutput + | ListThemesCommandOutput + | RefreshTokenCommandOutput + | UpdateComponentCommandOutput + | UpdateThemeCommandOutput; + +export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the {@link __Hash} interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + * @internal + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + * @internal + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + * @internal + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + * @internal + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array. + * @internal + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string. + * @internal + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array. + * @internal + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string. + * @internal + */ + utf8Encoder?: __Encoder; + + /** + * The runtime environment. + * @internal + */ + runtime?: string; + + /** + * Disable dyanamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * Value for how many times a request will be made at most in case of retry. + */ + maxAttempts?: number | __Provider; + + /** + * Specifies which retry algorithm to use. + */ + retryMode?: string | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Enables IPv6/IPv4 dualstack endpoint. + */ + useDualstackEndpoint?: boolean | __Provider; + + /** + * Enables FIPS compatible endpoints. + */ + useFipsEndpoint?: boolean | __Provider; + + /** + * Unique service identifier. + * @internal + */ + serviceId?: string; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * Default credentials provider; Not available in browser runtime. + * @internal + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * Fetch related hostname, signing name or signing region with given region. + * @internal + */ + regionInfoProvider?: RegionInfoProvider; + + /** + * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header + * @internal + */ + defaultUserAgentProvider?: Provider<__UserAgent>; +} + +type AmplifyUIBuilderClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + RetryInputConfig & + HostHeaderInputConfig & + AwsAuthInputConfig & + UserAgentInputConfig; +/** + * The configuration interface of AmplifyUIBuilderClient class constructor that set the region, credentials and other options. + */ +export interface AmplifyUIBuilderClientConfig extends AmplifyUIBuilderClientConfigType {} + +type AmplifyUIBuilderClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + RetryResolvedConfig & + HostHeaderResolvedConfig & + AwsAuthResolvedConfig & + UserAgentResolvedConfig; +/** + * The resolved configuration interface of AmplifyUIBuilderClient class. This is resolved and normalized from the {@link AmplifyUIBuilderClientConfig | constructor configuration interface}. + */ +export interface AmplifyUIBuilderClientResolvedConfig extends AmplifyUIBuilderClientResolvedConfigType {} + +/** + *

The Amplify UI Builder API provides a programmatic interface for creating 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 backend Amazon Web Services + * resources.

+ *

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

+ *

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

+ */ +export class AmplifyUIBuilderClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + AmplifyUIBuilderClientResolvedConfig +> { + /** + * The resolved configuration of AmplifyUIBuilderClient class. This is resolved and normalized from the {@link AmplifyUIBuilderClientConfig | constructor configuration interface}. + */ + readonly config: AmplifyUIBuilderClientResolvedConfig; + + constructor(configuration: AmplifyUIBuilderClientConfig) { + const _config_0 = __getRuntimeConfig(configuration); + const _config_1 = resolveRegionConfig(_config_0); + const _config_2 = resolveEndpointsConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveHostHeaderConfig(_config_3); + const _config_5 = resolveAwsAuthConfig(_config_4); + const _config_6 = resolveUserAgentConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + this.middlewareStack.use(getLoggerPlugin(this.config)); + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + } + + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy(): void { + super.destroy(); + } +} diff --git a/clients/client-amplifyuibuilder/src/commands/CreateComponentCommand.ts b/clients/client-amplifyuibuilder/src/commands/CreateComponentCommand.ts new file mode 100644 index 000000000000..175eb50e4551 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/CreateComponentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { CreateComponentRequest, CreateComponentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateComponentCommand, + serializeAws_restJson1CreateComponentCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateComponentCommandInput extends CreateComponentRequest {} +export interface CreateComponentCommandOutput extends CreateComponentResponse, __MetadataBearer {} + +/** + *

Creates a new component for an Amplify app.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, CreateComponentCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, CreateComponentCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new CreateComponentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateComponentCommandInput} for command's `input` shape. + * @see {@link CreateComponentCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class CreateComponentCommand extends $Command< + CreateComponentCommandInput, + CreateComponentCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateComponentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "CreateComponentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateComponentRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateComponentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateComponentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateComponentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateComponentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/CreateThemeCommand.ts b/clients/client-amplifyuibuilder/src/commands/CreateThemeCommand.ts new file mode 100644 index 000000000000..2b5dba0e1215 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/CreateThemeCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { CreateThemeRequest, CreateThemeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateThemeCommand, + serializeAws_restJson1CreateThemeCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateThemeCommandInput extends CreateThemeRequest {} +export interface CreateThemeCommandOutput extends CreateThemeResponse, __MetadataBearer {} + +/** + *

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

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, CreateThemeCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, CreateThemeCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new CreateThemeCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateThemeCommandInput} for command's `input` shape. + * @see {@link CreateThemeCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class CreateThemeCommand extends $Command< + CreateThemeCommandInput, + CreateThemeCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateThemeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "CreateThemeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateThemeRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateThemeResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateThemeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateThemeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateThemeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/DeleteComponentCommand.ts b/clients/client-amplifyuibuilder/src/commands/DeleteComponentCommand.ts new file mode 100644 index 000000000000..0910bd052361 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/DeleteComponentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { DeleteComponentRequest } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteComponentCommand, + serializeAws_restJson1DeleteComponentCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteComponentCommandInput extends DeleteComponentRequest {} +export interface DeleteComponentCommandOutput extends __MetadataBearer {} + +/** + *

Deletes a component from an Amplify app.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, DeleteComponentCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, DeleteComponentCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new DeleteComponentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteComponentCommandInput} for command's `input` shape. + * @see {@link DeleteComponentCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class DeleteComponentCommand extends $Command< + DeleteComponentCommandInput, + DeleteComponentCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteComponentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "DeleteComponentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteComponentRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteComponentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteComponentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteComponentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/DeleteThemeCommand.ts b/clients/client-amplifyuibuilder/src/commands/DeleteThemeCommand.ts new file mode 100644 index 000000000000..c1161896cf7d --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/DeleteThemeCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { DeleteThemeRequest } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteThemeCommand, + serializeAws_restJson1DeleteThemeCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteThemeCommandInput extends DeleteThemeRequest {} +export interface DeleteThemeCommandOutput extends __MetadataBearer {} + +/** + *

Deletes a theme from an Amplify app.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, DeleteThemeCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, DeleteThemeCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new DeleteThemeCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteThemeCommandInput} for command's `input` shape. + * @see {@link DeleteThemeCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class DeleteThemeCommand extends $Command< + DeleteThemeCommandInput, + DeleteThemeCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteThemeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "DeleteThemeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteThemeRequest.filterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteThemeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteThemeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteThemeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/ExchangeCodeForTokenCommand.ts b/clients/client-amplifyuibuilder/src/commands/ExchangeCodeForTokenCommand.ts new file mode 100644 index 000000000000..5c0dd07a2125 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/ExchangeCodeForTokenCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { ExchangeCodeForTokenRequest, ExchangeCodeForTokenResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ExchangeCodeForTokenCommand, + serializeAws_restJson1ExchangeCodeForTokenCommand, +} from "../protocols/Aws_restJson1"; + +export interface ExchangeCodeForTokenCommandInput extends ExchangeCodeForTokenRequest {} +export interface ExchangeCodeForTokenCommandOutput extends ExchangeCodeForTokenResponse, __MetadataBearer {} + +/** + *

Exchanges an access code for a token.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, ExchangeCodeForTokenCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, ExchangeCodeForTokenCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new ExchangeCodeForTokenCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ExchangeCodeForTokenCommandInput} for command's `input` shape. + * @see {@link ExchangeCodeForTokenCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class ExchangeCodeForTokenCommand extends $Command< + ExchangeCodeForTokenCommandInput, + ExchangeCodeForTokenCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ExchangeCodeForTokenCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "ExchangeCodeForTokenCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ExchangeCodeForTokenRequest.filterSensitiveLog, + outputFilterSensitiveLog: ExchangeCodeForTokenResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ExchangeCodeForTokenCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ExchangeCodeForTokenCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ExchangeCodeForTokenCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/ExportComponentsCommand.ts b/clients/client-amplifyuibuilder/src/commands/ExportComponentsCommand.ts new file mode 100644 index 000000000000..b0c8527dc8c4 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/ExportComponentsCommand.ts @@ -0,0 +1,96 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { ExportComponentsRequest, ExportComponentsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ExportComponentsCommand, + serializeAws_restJson1ExportComponentsCommand, +} from "../protocols/Aws_restJson1"; + +export interface ExportComponentsCommandInput extends ExportComponentsRequest {} +export interface ExportComponentsCommandOutput extends ExportComponentsResponse, __MetadataBearer {} + +/** + *

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

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, ExportComponentsCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, ExportComponentsCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new ExportComponentsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ExportComponentsCommandInput} for command's `input` shape. + * @see {@link ExportComponentsCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class ExportComponentsCommand extends $Command< + ExportComponentsCommandInput, + ExportComponentsCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ExportComponentsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "ExportComponentsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ExportComponentsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ExportComponentsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ExportComponentsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ExportComponentsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ExportComponentsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/ExportThemesCommand.ts b/clients/client-amplifyuibuilder/src/commands/ExportThemesCommand.ts new file mode 100644 index 000000000000..c07d94e5abc7 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/ExportThemesCommand.ts @@ -0,0 +1,96 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { ExportThemesRequest, ExportThemesResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ExportThemesCommand, + serializeAws_restJson1ExportThemesCommand, +} from "../protocols/Aws_restJson1"; + +export interface ExportThemesCommandInput extends ExportThemesRequest {} +export interface ExportThemesCommandOutput extends ExportThemesResponse, __MetadataBearer {} + +/** + *

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

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, ExportThemesCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, ExportThemesCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new ExportThemesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ExportThemesCommandInput} for command's `input` shape. + * @see {@link ExportThemesCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class ExportThemesCommand extends $Command< + ExportThemesCommandInput, + ExportThemesCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ExportThemesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "ExportThemesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ExportThemesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ExportThemesResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ExportThemesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ExportThemesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ExportThemesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/GetComponentCommand.ts b/clients/client-amplifyuibuilder/src/commands/GetComponentCommand.ts new file mode 100644 index 000000000000..9ef26ed36e9e --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/GetComponentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { GetComponentRequest, GetComponentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetComponentCommand, + serializeAws_restJson1GetComponentCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetComponentCommandInput extends GetComponentRequest {} +export interface GetComponentCommandOutput extends GetComponentResponse, __MetadataBearer {} + +/** + *

Returns an existing component for an Amplify app.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, GetComponentCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, GetComponentCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new GetComponentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetComponentCommandInput} for command's `input` shape. + * @see {@link GetComponentCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class GetComponentCommand extends $Command< + GetComponentCommandInput, + GetComponentCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetComponentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "GetComponentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetComponentRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetComponentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetComponentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetComponentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetComponentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/GetThemeCommand.ts b/clients/client-amplifyuibuilder/src/commands/GetThemeCommand.ts new file mode 100644 index 000000000000..cb8bf92b93a8 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/GetThemeCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { GetThemeRequest, GetThemeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetThemeCommand, + serializeAws_restJson1GetThemeCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetThemeCommandInput extends GetThemeRequest {} +export interface GetThemeCommandOutput extends GetThemeResponse, __MetadataBearer {} + +/** + *

Returns an existing theme for an Amplify app.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, GetThemeCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, GetThemeCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new GetThemeCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetThemeCommandInput} for command's `input` shape. + * @see {@link GetThemeCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class GetThemeCommand extends $Command< + GetThemeCommandInput, + GetThemeCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetThemeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "GetThemeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetThemeRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetThemeResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetThemeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetThemeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetThemeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/ListComponentsCommand.ts b/clients/client-amplifyuibuilder/src/commands/ListComponentsCommand.ts new file mode 100644 index 000000000000..3a4d29122964 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/ListComponentsCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { ListComponentsRequest, ListComponentsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListComponentsCommand, + serializeAws_restJson1ListComponentsCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListComponentsCommandInput extends ListComponentsRequest {} +export interface ListComponentsCommandOutput extends ListComponentsResponse, __MetadataBearer {} + +/** + *

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

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, ListComponentsCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, ListComponentsCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new ListComponentsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListComponentsCommandInput} for command's `input` shape. + * @see {@link ListComponentsCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class ListComponentsCommand extends $Command< + ListComponentsCommandInput, + ListComponentsCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListComponentsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "ListComponentsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListComponentsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListComponentsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListComponentsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListComponentsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListComponentsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/ListThemesCommand.ts b/clients/client-amplifyuibuilder/src/commands/ListThemesCommand.ts new file mode 100644 index 000000000000..a9a605925a41 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/ListThemesCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { ListThemesRequest, ListThemesResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListThemesCommand, + serializeAws_restJson1ListThemesCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListThemesCommandInput extends ListThemesRequest {} +export interface ListThemesCommandOutput extends ListThemesResponse, __MetadataBearer {} + +/** + *

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

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, ListThemesCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, ListThemesCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new ListThemesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListThemesCommandInput} for command's `input` shape. + * @see {@link ListThemesCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class ListThemesCommand extends $Command< + ListThemesCommandInput, + ListThemesCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListThemesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "ListThemesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListThemesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListThemesResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListThemesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListThemesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListThemesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/RefreshTokenCommand.ts b/clients/client-amplifyuibuilder/src/commands/RefreshTokenCommand.ts new file mode 100644 index 000000000000..d93ad42b321e --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/RefreshTokenCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { RefreshTokenRequest, RefreshTokenResponse } from "../models/models_0"; +import { + deserializeAws_restJson1RefreshTokenCommand, + serializeAws_restJson1RefreshTokenCommand, +} from "../protocols/Aws_restJson1"; + +export interface RefreshTokenCommandInput extends RefreshTokenRequest {} +export interface RefreshTokenCommandOutput extends RefreshTokenResponse, __MetadataBearer {} + +/** + *

Refreshes a previously issued access token that might have expired.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, RefreshTokenCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, RefreshTokenCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new RefreshTokenCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link RefreshTokenCommandInput} for command's `input` shape. + * @see {@link RefreshTokenCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class RefreshTokenCommand extends $Command< + RefreshTokenCommandInput, + RefreshTokenCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RefreshTokenCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "RefreshTokenCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RefreshTokenRequest.filterSensitiveLog, + outputFilterSensitiveLog: RefreshTokenResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: RefreshTokenCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1RefreshTokenCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1RefreshTokenCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/UpdateComponentCommand.ts b/clients/client-amplifyuibuilder/src/commands/UpdateComponentCommand.ts new file mode 100644 index 000000000000..4465e227d675 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/UpdateComponentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { UpdateComponentRequest, UpdateComponentResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateComponentCommand, + serializeAws_restJson1UpdateComponentCommand, +} from "../protocols/Aws_restJson1"; + +export interface UpdateComponentCommandInput extends UpdateComponentRequest {} +export interface UpdateComponentCommandOutput extends UpdateComponentResponse, __MetadataBearer {} + +/** + *

Updates an existing component.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, UpdateComponentCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, UpdateComponentCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new UpdateComponentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateComponentCommandInput} for command's `input` shape. + * @see {@link UpdateComponentCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class UpdateComponentCommand extends $Command< + UpdateComponentCommandInput, + UpdateComponentCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateComponentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "UpdateComponentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateComponentRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateComponentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateComponentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateComponentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateComponentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/UpdateThemeCommand.ts b/clients/client-amplifyuibuilder/src/commands/UpdateThemeCommand.ts new file mode 100644 index 000000000000..6ba7fda8a446 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/UpdateThemeCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AmplifyUIBuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AmplifyUIBuilderClient"; +import { UpdateThemeRequest, UpdateThemeResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateThemeCommand, + serializeAws_restJson1UpdateThemeCommand, +} from "../protocols/Aws_restJson1"; + +export interface UpdateThemeCommandInput extends UpdateThemeRequest {} +export interface UpdateThemeCommandOutput extends UpdateThemeResponse, __MetadataBearer {} + +/** + *

Updates an existing theme.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AmplifyUIBuilderClient, UpdateThemeCommand } from "@aws-sdk/client-amplifyuibuilder"; // ES Modules import + * // const { AmplifyUIBuilderClient, UpdateThemeCommand } = require("@aws-sdk/client-amplifyuibuilder"); // CommonJS import + * const client = new AmplifyUIBuilderClient(config); + * const command = new UpdateThemeCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateThemeCommandInput} for command's `input` shape. + * @see {@link UpdateThemeCommandOutput} for command's `response` shape. + * @see {@link AmplifyUIBuilderClientResolvedConfig | config} for AmplifyUIBuilderClient's `config` shape. + * + */ +export class UpdateThemeCommand extends $Command< + UpdateThemeCommandInput, + UpdateThemeCommandOutput, + AmplifyUIBuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateThemeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AmplifyUIBuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AmplifyUIBuilderClient"; + const commandName = "UpdateThemeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateThemeRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateThemeResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateThemeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateThemeCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateThemeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-amplifyuibuilder/src/commands/index.ts b/clients/client-amplifyuibuilder/src/commands/index.ts new file mode 100644 index 000000000000..e6836538317f --- /dev/null +++ b/clients/client-amplifyuibuilder/src/commands/index.ts @@ -0,0 +1,14 @@ +export * from "./CreateComponentCommand"; +export * from "./CreateThemeCommand"; +export * from "./DeleteComponentCommand"; +export * from "./DeleteThemeCommand"; +export * from "./ExchangeCodeForTokenCommand"; +export * from "./ExportComponentsCommand"; +export * from "./ExportThemesCommand"; +export * from "./GetComponentCommand"; +export * from "./GetThemeCommand"; +export * from "./ListComponentsCommand"; +export * from "./ListThemesCommand"; +export * from "./RefreshTokenCommand"; +export * from "./UpdateComponentCommand"; +export * from "./UpdateThemeCommand"; diff --git a/clients/client-amplifyuibuilder/src/endpoints.ts b/clients/client-amplifyuibuilder/src/endpoints.ts new file mode 100644 index 000000000000..fe4817df34e4 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/endpoints.ts @@ -0,0 +1,135 @@ +import { getRegionInfo, PartitionHash, RegionHash } from "@aws-sdk/config-resolver"; +import { RegionInfoProvider, RegionInfoProviderOptions } from "@aws-sdk/types"; + +const regionHash: RegionHash = {}; + +const partitionHash: PartitionHash = { + aws: { + regions: [ + "af-south-1", + "ap-east-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-northeast-3", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ap-southeast-3", + "ca-central-1", + "eu-central-1", + "eu-north-1", + "eu-south-1", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "me-south-1", + "sa-east-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2", + ], + regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", + variants: [ + { + hostname: "amplifyuibuilder.{region}.amazonaws.com", + tags: [], + }, + { + hostname: "amplifyuibuilder-fips.{region}.amazonaws.com", + tags: ["fips"], + }, + { + hostname: "amplifyuibuilder-fips.{region}.api.aws", + tags: ["dualstack", "fips"], + }, + { + hostname: "amplifyuibuilder.{region}.api.aws", + tags: ["dualstack"], + }, + ], + }, + "aws-cn": { + regions: ["cn-north-1", "cn-northwest-1"], + regionRegex: "^cn\\-\\w+\\-\\d+$", + variants: [ + { + hostname: "amplifyuibuilder.{region}.amazonaws.com.cn", + tags: [], + }, + { + hostname: "amplifyuibuilder-fips.{region}.amazonaws.com.cn", + tags: ["fips"], + }, + { + hostname: "amplifyuibuilder-fips.{region}.api.amazonwebservices.com.cn", + tags: ["dualstack", "fips"], + }, + { + hostname: "amplifyuibuilder.{region}.api.amazonwebservices.com.cn", + tags: ["dualstack"], + }, + ], + }, + "aws-iso": { + regions: ["us-iso-east-1", "us-iso-west-1"], + regionRegex: "^us\\-iso\\-\\w+\\-\\d+$", + variants: [ + { + hostname: "amplifyuibuilder.{region}.c2s.ic.gov", + tags: [], + }, + { + hostname: "amplifyuibuilder-fips.{region}.c2s.ic.gov", + tags: ["fips"], + }, + ], + }, + "aws-iso-b": { + regions: ["us-isob-east-1"], + regionRegex: "^us\\-isob\\-\\w+\\-\\d+$", + variants: [ + { + hostname: "amplifyuibuilder.{region}.sc2s.sgov.gov", + tags: [], + }, + { + hostname: "amplifyuibuilder-fips.{region}.sc2s.sgov.gov", + tags: ["fips"], + }, + ], + }, + "aws-us-gov": { + regions: ["us-gov-east-1", "us-gov-west-1"], + regionRegex: "^us\\-gov\\-\\w+\\-\\d+$", + variants: [ + { + hostname: "amplifyuibuilder.{region}.amazonaws.com", + tags: [], + }, + { + hostname: "amplifyuibuilder-fips.{region}.amazonaws.com", + tags: ["fips"], + }, + { + hostname: "amplifyuibuilder-fips.{region}.api.aws", + tags: ["dualstack", "fips"], + }, + { + hostname: "amplifyuibuilder.{region}.api.aws", + tags: ["dualstack"], + }, + ], + }, +}; + +export const defaultRegionInfoProvider: RegionInfoProvider = async ( + region: string, + options?: RegionInfoProviderOptions +) => + getRegionInfo(region, { + ...options, + signingService: "amplifyuibuilder", + regionHash, + partitionHash, + }); diff --git a/clients/client-amplifyuibuilder/src/index.ts b/clients/client-amplifyuibuilder/src/index.ts new file mode 100644 index 000000000000..bfe3dc4df844 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/index.ts @@ -0,0 +1,5 @@ +export * from "./AmplifyUIBuilder"; +export * from "./AmplifyUIBuilderClient"; +export * from "./commands"; +export * from "./models"; +export * from "./pagination"; diff --git a/clients/client-amplifyuibuilder/src/models/index.ts b/clients/client-amplifyuibuilder/src/models/index.ts new file mode 100644 index 000000000000..09c5d6e09b8c --- /dev/null +++ b/clients/client-amplifyuibuilder/src/models/index.ts @@ -0,0 +1 @@ +export * from "./models_0"; diff --git a/clients/client-amplifyuibuilder/src/models/models_0.ts b/clients/client-amplifyuibuilder/src/models/models_0.ts new file mode 100644 index 000000000000..c1352f263a71 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/models/models_0.ts @@ -0,0 +1,1652 @@ +import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException } from "@aws-sdk/types"; + +/** + *

Associates a component property to a binding property. This enables exposed properties on + * the top level component to propagate data to the component's property values.

+ */ +export interface ComponentPropertyBindingProperties { + /** + *

The component property to bind to the data field.

+ */ + property: string | undefined; + + /** + *

The data field to bind the property to.

+ */ + field?: string; +} + +export namespace ComponentPropertyBindingProperties { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentPropertyBindingProperties): any => ({ + ...obj, + }); +} + +/** + *

Describes how to bind a component property to form data.

+ */ +export interface FormBindingElement { + /** + *

The name of the component to retrieve a value from.

+ */ + element: string | undefined; + + /** + *

The property to retrieve a value from.

+ */ + property: string | undefined; +} + +export namespace FormBindingElement { + /** + * @internal + */ + export const filterSensitiveLog = (obj: FormBindingElement): any => ({ + ...obj, + }); +} + +export type SortDirection = "ASC" | "DESC"; + +/** + *

Describes how to sort the data that you bind to a component.

+ */ +export interface SortProperty { + /** + *

The field to perform the sort on.

+ */ + field: string | undefined; + + /** + *

The direction of the sort, either ascending or descending.

+ */ + direction: SortDirection | string | undefined; +} + +export namespace SortProperty { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SortProperty): any => ({ + ...obj, + }); +} + +/** + *

Describes the style configuration of a unique variation of a main component.

+ */ +export interface ComponentVariant { + /** + *

The combination of variants that comprise this variant.

+ */ + variantValues?: { [key: string]: string }; + + /** + *

The properties of the component variant that can be overriden when customizing an instance + * of the component.

+ */ + overrides?: { [key: string]: { [key: string]: string } }; +} + +export namespace ComponentVariant { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentVariant): any => ({ + ...obj, + }); +} + +/** + *

An internal error has occurred. Please retry your request.

+ */ +export interface InternalServerException extends __SmithyException, $MetadataBearer { + name: "InternalServerException"; + $fault: "server"; + message?: string; +} + +export namespace InternalServerException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InternalServerException): any => ({ + ...obj, + }); +} + +/** + *

An invalid or out-of-range value was supplied for the input parameter.

+ */ +export interface InvalidParameterException extends __SmithyException, $MetadataBearer { + name: "InvalidParameterException"; + $fault: "client"; + message?: string; +} + +export namespace InvalidParameterException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InvalidParameterException): any => ({ + ...obj, + }); +} + +/** + *

The resource specified in the request conflicts with an existing resource.

+ */ +export interface ResourceConflictException extends __SmithyException, $MetadataBearer { + name: "ResourceConflictException"; + $fault: "client"; + message?: string; +} + +export namespace ResourceConflictException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ResourceConflictException): any => ({ + ...obj, + }); +} + +/** + *

You exceeded your service quota. Service quotas, also referred to as limits, are the + * maximum number of service resources or operations for your Amazon Web Services account.

+ */ +export interface ServiceQuotaExceededException extends __SmithyException, $MetadataBearer { + name: "ServiceQuotaExceededException"; + $fault: "client"; + message?: string; +} + +export namespace ServiceQuotaExceededException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ServiceQuotaExceededException): any => ({ + ...obj, + }); +} + +export interface DeleteComponentRequest { + /** + *

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

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID of the component to delete.

+ */ + id: string | undefined; +} + +export namespace DeleteComponentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteComponentRequest): any => ({ + ...obj, + }); +} + +/** + *

The requested resource does not exist, or access was denied.

+ */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + message?: string; +} + +export namespace ResourceNotFoundException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + +export interface ExportComponentsRequest { + /** + *

The unique ID of the Amplify app to export components to.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; +} + +export namespace ExportComponentsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExportComponentsRequest): any => ({ + ...obj, + }); +} + +export interface GetComponentRequest { + /** + *

The unique ID of the Amplify app.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID of the component.

+ */ + id: string | undefined; +} + +export namespace GetComponentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetComponentRequest): any => ({ + ...obj, + }); +} + +export interface ListComponentsRequest { + /** + *

The unique ID for the Amplify app.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The token to request the next page of results.

+ */ + nextToken?: string; + + /** + *

The maximum number of components to retrieve.

+ */ + maxResults?: number; +} + +export namespace ListComponentsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListComponentsRequest): any => ({ + ...obj, + }); +} + +/** + *

Contains a summary of a component. This is a read-only data type that is returned by + * ListComponents.

+ */ +export interface ComponentSummary { + /** + *

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

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID of the component.

+ */ + id: string | undefined; + + /** + *

The name of the component.

+ */ + name: string | undefined; + + /** + *

The component type.

+ */ + componentType: string | undefined; +} + +export namespace ComponentSummary { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentSummary): any => ({ + ...obj, + }); +} + +export interface ListComponentsResponse { + /** + *

The list of components for the Amplify app.

+ */ + entities: ComponentSummary[] | undefined; + + /** + *

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

+ */ + nextToken?: string; +} + +export namespace ListComponentsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListComponentsResponse): any => ({ + ...obj, + }); +} + +export enum TokenProviders { + /** + * The figma token provider. + */ + FIGMA = "figma", +} + +/** + *

Describes the configuration of a request to exchange an access code for a token.

+ */ +export interface ExchangeCodeForTokenRequestBody { + /** + *

The access code to send in the request.

+ */ + code: string | undefined; + + /** + *

The location of the application that will receive the access code.

+ */ + redirectUri: string | undefined; +} + +export namespace ExchangeCodeForTokenRequestBody { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExchangeCodeForTokenRequestBody): any => ({ + ...obj, + ...(obj.code && { code: SENSITIVE_STRING }), + }); +} + +export interface ExchangeCodeForTokenRequest { + /** + *

The third-party provider for the token. The only valid value is figma.

+ */ + provider: TokenProviders | string | undefined; + + /** + *

Describes the configuration of the request.

+ */ + request: ExchangeCodeForTokenRequestBody | undefined; +} + +export namespace ExchangeCodeForTokenRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExchangeCodeForTokenRequest): any => ({ + ...obj, + ...(obj.request && { request: ExchangeCodeForTokenRequestBody.filterSensitiveLog(obj.request) }), + }); +} + +export interface ExchangeCodeForTokenResponse { + /** + *

The access token.

+ */ + accessToken: string | undefined; + + /** + *

The date and time when the new access token expires.

+ */ + expiresIn: number | undefined; + + /** + *

The token to use to refresh a previously issued access token that might have + * expired.

+ */ + refreshToken: string | undefined; +} + +export namespace ExchangeCodeForTokenResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExchangeCodeForTokenResponse): any => ({ + ...obj, + ...(obj.accessToken && { accessToken: SENSITIVE_STRING }), + ...(obj.refreshToken && { refreshToken: SENSITIVE_STRING }), + }); +} + +/** + *

Describes a refresh token.

+ */ +export interface RefreshTokenRequestBody { + /** + *

The token to use to refresh a previously issued access token that might have + * expired.

+ */ + token: string | undefined; +} + +export namespace RefreshTokenRequestBody { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RefreshTokenRequestBody): any => ({ + ...obj, + ...(obj.token && { token: SENSITIVE_STRING }), + }); +} + +export interface RefreshTokenRequest { + /** + *

The third-party provider for the token. The only valid value is figma.

+ */ + provider: TokenProviders | string | undefined; + + /** + *

Information about the refresh token request.

+ */ + refreshTokenBody: RefreshTokenRequestBody | undefined; +} + +export namespace RefreshTokenRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RefreshTokenRequest): any => ({ + ...obj, + ...(obj.refreshTokenBody && { refreshTokenBody: RefreshTokenRequestBody.filterSensitiveLog(obj.refreshTokenBody) }), + }); +} + +export interface RefreshTokenResponse { + /** + *

The access token.

+ */ + accessToken: string | undefined; + + /** + *

The date and time when the new access token expires.

+ */ + expiresIn: number | undefined; +} + +export namespace RefreshTokenResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RefreshTokenResponse): any => ({ + ...obj, + ...(obj.accessToken && { accessToken: SENSITIVE_STRING }), + }); +} + +export interface DeleteThemeRequest { + /** + *

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

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID of the theme to delete.

+ */ + id: string | undefined; +} + +export namespace DeleteThemeRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteThemeRequest): any => ({ + ...obj, + }); +} + +export interface ExportThemesRequest { + /** + *

The unique ID of the Amplify app to export the themes to.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; +} + +export namespace ExportThemesRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExportThemesRequest): any => ({ + ...obj, + }); +} + +export interface GetThemeRequest { + /** + *

The unique ID of the Amplify app.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID for the theme.

+ */ + id: string | undefined; +} + +export namespace GetThemeRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetThemeRequest): any => ({ + ...obj, + }); +} + +export interface ListThemesRequest { + /** + *

The unique ID for the Amplify app.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The token to request the next page of results.

+ */ + nextToken?: string; + + /** + *

The maximum number of theme results to return in the response.

+ */ + maxResults?: number; +} + +export namespace ListThemesRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListThemesRequest): any => ({ + ...obj, + }); +} + +/** + *

Describes the basic information about a theme.

+ */ +export interface ThemeSummary { + /** + *

The unique ID for the app associated with the theme summary.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The ID of the theme.

+ */ + id: string | undefined; + + /** + *

The name of the theme.

+ */ + name: string | undefined; +} + +export namespace ThemeSummary { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ThemeSummary): any => ({ + ...obj, + }); +} + +export interface ListThemesResponse { + /** + *

The list of themes for the Amplify app.

+ */ + entities: ThemeSummary[] | undefined; + + /** + *

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

+ */ + nextToken?: string; +} + +export namespace ListThemesResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListThemesResponse): any => ({ + ...obj, + }); +} + +/** + *

Describes the configuration of a theme's properties.

+ */ +export interface ThemeValue { + /** + *

The value of a theme property.

+ */ + value?: string; + + /** + *

A list of key-value pairs that define the theme's properties.

+ */ + children?: ThemeValues[]; +} + +export namespace ThemeValue { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ThemeValue): any => ({ + ...obj, + }); +} + +/** + *

A key-value pair that defines a property of a theme.

+ */ +export interface ThemeValues { + /** + *

The name of the property.

+ */ + key?: string; + + /** + *

The value of the property.

+ */ + value?: ThemeValue; +} + +export namespace ThemeValues { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ThemeValues): any => ({ + ...obj, + }); +} + +/** + *

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

+ */ +export interface Predicate { + /** + *

A list of predicates to combine logically.

+ */ + or?: Predicate[]; + + /** + *

A list of predicates to combine logically.

+ */ + and?: Predicate[]; + + /** + *

The field to query.

+ */ + field?: string; + + /** + *

The operator to use to perform the evaluation.

+ */ + operator?: string; + + /** + *

The value to use when performing the evaluation.

+ */ + operand?: string; +} + +export namespace Predicate { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Predicate): any => ({ + ...obj, + }); +} + +/** + *

Represents the data binding configuration for a specific property using data stored in + * Amazon Web Services. For Amazon Web Services connected properties, you can bind a property to + * data stored in an Amazon S3 bucket, an Amplify DataStore model or an + * authenticated user attribute.

+ */ +export interface ComponentBindingPropertiesValueProperties { + /** + *

An Amplify DataStore model.

+ */ + model?: string; + + /** + *

The field to bind the data to.

+ */ + field?: string; + + /** + *

A list of predicates for binding a component's properties to data.

+ */ + predicates?: Predicate[]; + + /** + *

An authenticated user attribute.

+ */ + userAttribute?: string; + + /** + *

An Amazon S3 bucket.

+ */ + bucket?: string; + + /** + *

The storage key for an Amazon S3 bucket.

+ */ + key?: string; + + /** + *

The default value to assign to the property.

+ */ + defaultValue?: string; +} + +export namespace ComponentBindingPropertiesValueProperties { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentBindingPropertiesValueProperties): any => ({ + ...obj, + }); +} + +/** + *

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

+ */ +export interface ComponentDataConfiguration { + /** + *

The name of the data model to use to bind data to a component.

+ */ + model: string | undefined; + + /** + *

Describes how to sort the component's properties.

+ */ + sort?: SortProperty[]; + + /** + *

Represents the conditional logic to use when binding data to a component. Use this + * property to retrieve only a subset of the data in a collection.

+ */ + predicate?: Predicate; + + /** + *

A list of IDs to use to bind data to a component. Use this property to bind specifically + * chosen data, rather than data retrieved from a query.

+ */ + identifiers?: string[]; +} + +export namespace ComponentDataConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentDataConfiguration): any => ({ + ...obj, + }); +} + +/** + *

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

+ */ +export interface ComponentProperty { + /** + *

The value to assign to the component property.

+ */ + value?: string; + + /** + *

The information to bind the component property to data at runtime.

+ */ + bindingProperties?: ComponentPropertyBindingProperties; + + /** + *

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

+ */ + collectionBindingProperties?: ComponentPropertyBindingProperties; + + /** + *

The default value to assign to the component property.

+ */ + defaultValue?: string; + + /** + *

The data model to use to assign a value to the component property.

+ */ + model?: string; + + /** + *

The information to bind the component property to form data.

+ */ + bindings?: { [key: string]: FormBindingElement }; + + /** + *

An event that occurs in your app. Use this for workflow data binding.

+ */ + event?: string; + + /** + *

An authenticated user attribute to use to assign a value to the component property.

+ */ + userAttribute?: 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..

+ */ + condition?: ComponentConditionProperty; + + /** + *

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

+ */ + configured?: boolean; + + /** + *

The component type.

+ */ + type?: string; + + /** + *

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

+ */ + importedValue?: string; +} + +export namespace ComponentProperty { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentProperty): any => ({ + ...obj, + }); +} + +/** + *

Represents the data binding configuration for a component at runtime. You can use + * ComponentBindingPropertiesValue to add exposed properties to a component to + * allow different values to be entered when a component is reused in different places in an + * app.

+ */ +export interface ComponentBindingPropertiesValue { + /** + *

The property type.

+ */ + type?: string; + + /** + *

Describes the properties to customize with data at runtime.

+ */ + bindingProperties?: ComponentBindingPropertiesValueProperties; + + /** + *

The default value of the property.

+ */ + defaultValue?: string; +} + +export namespace ComponentBindingPropertiesValue { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentBindingPropertiesValue): any => ({ + ...obj, + }); +} + +/** + *

Represents all of the information that is required to create a theme.

+ */ +export interface CreateThemeData { + /** + *

The name of the theme.

+ */ + name: string | undefined; + + /** + *

A list of key-value pairs that defines the properties of the theme.

+ */ + values: ThemeValues[] | undefined; + + /** + *

Describes the properties that can be overriden to customize an instance of the + * theme.

+ */ + overrides?: ThemeValues[]; + + /** + *

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

+ */ + tags?: { [key: string]: string }; +} + +export namespace CreateThemeData { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateThemeData): any => ({ + ...obj, + }); +} + +/** + *

A theme is a collection of style settings that apply globally to the components associated + * with an Amplify application.

+ */ +export interface Theme { + /** + *

The unique ID for the Amplify app associated with the theme.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The ID for the theme.

+ */ + id: string | undefined; + + /** + *

The name of the theme.

+ */ + name: string | undefined; + + /** + *

The time that the theme was created.

+ */ + createdAt: Date | undefined; + + /** + *

The time that the theme was modified.

+ */ + modifiedAt?: Date; + + /** + *

A list of key-value pairs that defines the properties of the theme.

+ */ + values: ThemeValues[] | undefined; + + /** + *

Describes the properties that can be overriden to customize a theme.

+ */ + overrides?: ThemeValues[]; + + /** + *

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

+ */ + tags?: { [key: string]: string }; +} + +export namespace Theme { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Theme): any => ({ + ...obj, + }); +} + +/** + *

Saves the data binding information for a theme.

+ */ +export interface UpdateThemeData { + /** + *

The unique ID of the theme to update.

+ */ + id?: string; + + /** + *

The name of the theme to update.

+ */ + name?: string; + + /** + *

A list of key-value pairs that define the theme's properties.

+ */ + values: ThemeValues[] | undefined; + + /** + *

Describes the properties that can be overriden to customize the theme.

+ */ + overrides?: ThemeValues[]; +} + +export namespace UpdateThemeData { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateThemeData): any => ({ + ...obj, + }); +} + +/** + *

Represents a conditional expression to set a component property. Use + * ComponentConditionProperty to set a property to different values conditionally, + * based on the value of another property.

+ */ +export interface ComponentConditionProperty { + /** + *

The name of the conditional property.

+ */ + property?: string; + + /** + *

The name of a field. Specify this when the property is a data model.

+ */ + field?: string; + + /** + *

The operator to use to perform the evaluation, such as eq to represent + * equals.

+ */ + operator?: string; + + /** + *

The value of the property to evaluate.

+ */ + operand?: string; + + /** + *

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

+ */ + then?: ComponentProperty; + + /** + *

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

+ */ + else?: ComponentProperty; +} + +export namespace ComponentConditionProperty { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentConditionProperty): any => ({ + ...obj, + }); +} + +export interface CreateThemeRequest { + /** + *

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

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique client token.

+ */ + clientToken?: string; + + /** + *

Represents the configuration of the theme to create.

+ */ + themeToCreate: CreateThemeData | undefined; +} + +export namespace CreateThemeRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateThemeRequest): any => ({ + ...obj, + }); +} + +export interface CreateThemeResponse { + /** + *

Describes the configuration of the new theme.

+ */ + entity?: Theme; +} + +export namespace CreateThemeResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateThemeResponse): any => ({ + ...obj, + }); +} + +export interface GetThemeResponse { + /** + *

Represents the configuration settings for the theme.

+ */ + theme?: Theme; +} + +export namespace GetThemeResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetThemeResponse): any => ({ + ...obj, + }); +} + +export interface UpdateThemeRequest { + /** + *

The unique ID for the Amplify app.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID for the theme.

+ */ + id: string | undefined; + + /** + *

The unique client token.

+ */ + clientToken?: string; + + /** + *

The configuration of the updated theme.

+ */ + updatedTheme: UpdateThemeData | undefined; +} + +export namespace UpdateThemeRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateThemeRequest): any => ({ + ...obj, + }); +} + +export interface UpdateThemeResponse { + /** + *

Describes the configuration of the updated theme.

+ */ + entity?: Theme; +} + +export namespace UpdateThemeResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateThemeResponse): any => ({ + ...obj, + }); +} + +export interface ExportThemesResponse { + /** + *

Represents the configuration of the exported themes.

+ */ + entities: Theme[] | undefined; +} + +export namespace ExportThemesResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExportThemesResponse): any => ({ + ...obj, + }); +} + +/** + *

A nested UI configuration within a parent Component.

+ */ +export interface ComponentChild { + /** + *

The type of the child component.

+ */ + componentType: string | undefined; + + /** + *

The name of the child component.

+ */ + name: string | undefined; + + /** + *

Describes the properties of the child component.

+ */ + properties: { [key: string]: ComponentProperty } | undefined; + + /** + *

The list of ComponentChild instances for this component.

+ */ + children?: ComponentChild[]; +} + +export namespace ComponentChild { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ComponentChild): any => ({ + ...obj, + }); +} + +/** + *

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 instance + * inherits the configuration of the main Component.

+ */ +export interface Component { + /** + *

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

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID of the component in its original source system, such as Figma.

+ */ + sourceId?: string; + + /** + *

The unique ID of the component.

+ */ + id: string | undefined; + + /** + *

The name of the component.

+ */ + name: string | undefined; + + /** + *

The type of the component. This can be an Amplify custom UI component or another custom + * component.

+ */ + componentType: string | undefined; + + /** + *

Describes the component's properties.

+ */ + properties: { [key: string]: ComponentProperty } | undefined; + + /** + *

A list of the component's ComponentChild instances.

+ */ + children?: ComponentChild[]; + + /** + *

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

+ */ + variants: ComponentVariant[] | undefined; + + /** + *

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

+ */ + overrides: { [key: string]: { [key: string]: string } } | undefined; + + /** + *

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

+ */ + bindingProperties: { [key: string]: ComponentBindingPropertiesValue } | undefined; + + /** + *

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

+ */ + collectionProperties?: { [key: string]: ComponentDataConfiguration }; + + /** + *

The time that the component was created.

+ */ + createdAt: Date | undefined; + + /** + *

The time that the component was modified.

+ */ + modifiedAt?: Date; + + /** + *

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

+ */ + tags?: { [key: string]: string }; +} + +export namespace Component { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Component): any => ({ + ...obj, + }); +} + +/** + *

Represents all of the information that is required to create a component.

+ */ +export interface CreateComponentData { + /** + *

The name of the component

+ */ + name: string | undefined; + + /** + *

The unique ID of the component in its original source system, such as Figma.

+ */ + sourceId?: string; + + /** + *

The component type. This can be an Amplify custom UI component or another custom + * component.

+ */ + componentType: string | undefined; + + /** + *

Describes the component's properties.

+ */ + properties: { [key: string]: ComponentProperty } | undefined; + + /** + *

A list of child components that are instances of the main component.

+ */ + children?: ComponentChild[]; + + /** + *

A list of the unique variants of this component.

+ */ + variants: ComponentVariant[] | undefined; + + /** + *

Describes the component properties that can be overriden to customize an instance of the + * component.

+ */ + overrides: { [key: string]: { [key: string]: string } } | undefined; + + /** + *

The data binding information for the component's properties.

+ */ + bindingProperties: { [key: string]: ComponentBindingPropertiesValue } | undefined; + + /** + *

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

+ */ + collectionProperties?: { [key: string]: ComponentDataConfiguration }; + + /** + *

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

+ */ + tags?: { [key: string]: string }; +} + +export namespace CreateComponentData { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateComponentData): any => ({ + ...obj, + }); +} + +/** + *

Updates and saves all of the information about a component, based on component ID.

+ */ +export interface UpdateComponentData { + /** + *

The unique ID of the component to update.

+ */ + id?: string; + + /** + *

The name of the component to update.

+ */ + name?: string; + + /** + *

The unique ID of the component in its original source system, such as Figma.

+ */ + sourceId?: string; + + /** + *

The type of the component. This can be an Amplify custom UI component or another custom + * component.

+ */ + componentType?: string; + + /** + *

Describes the component's properties.

+ */ + properties?: { [key: string]: ComponentProperty }; + + /** + *

The components that are instances of the main component.

+ */ + children?: ComponentChild[]; + + /** + *

A list of the unique variants of the main component being updated.

+ */ + variants?: ComponentVariant[]; + + /** + *

Describes the properties that can be overriden to customize the component.

+ */ + overrides?: { [key: string]: { [key: string]: string } }; + + /** + *

The data binding information for the component's properties.

+ */ + bindingProperties?: { [key: string]: ComponentBindingPropertiesValue }; + + /** + *

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

+ */ + collectionProperties?: { [key: string]: ComponentDataConfiguration }; +} + +export namespace UpdateComponentData { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateComponentData): any => ({ + ...obj, + }); +} + +export interface CreateComponentRequest { + /** + *

The unique ID of the Amplify app to associate with the component.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique client token.

+ */ + clientToken?: string; + + /** + *

Represents the configuration of the component to create.

+ */ + componentToCreate: CreateComponentData | undefined; +} + +export namespace CreateComponentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateComponentRequest): any => ({ + ...obj, + }); +} + +export interface CreateComponentResponse { + /** + *

Describes the configuration of the new component.

+ */ + entity?: Component; +} + +export namespace CreateComponentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateComponentResponse): any => ({ + ...obj, + }); +} + +export interface GetComponentResponse { + /** + *

Represents the configuration settings for the component.

+ */ + component?: Component; +} + +export namespace GetComponentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetComponentResponse): any => ({ + ...obj, + }); +} + +export interface UpdateComponentRequest { + /** + *

The unique ID for the Amplify app.

+ */ + appId: string | undefined; + + /** + *

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

+ */ + environmentName: string | undefined; + + /** + *

The unique ID for the component.

+ */ + id: string | undefined; + + /** + *

The unique client token.

+ */ + clientToken?: string; + + /** + *

The configuration of the updated component.

+ */ + updatedComponent: UpdateComponentData | undefined; +} + +export namespace UpdateComponentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateComponentRequest): any => ({ + ...obj, + }); +} + +export interface UpdateComponentResponse { + /** + *

Describes the configuration of the updated component.

+ */ + entity?: Component; +} + +export namespace UpdateComponentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateComponentResponse): any => ({ + ...obj, + }); +} + +export interface ExportComponentsResponse { + /** + *

Represents the configuration of the exported components.

+ */ + entities: Component[] | undefined; +} + +export namespace ExportComponentsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExportComponentsResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-amplifyuibuilder/src/pagination/Interfaces.ts b/clients/client-amplifyuibuilder/src/pagination/Interfaces.ts new file mode 100644 index 000000000000..60a6a978a1b1 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/pagination/Interfaces.ts @@ -0,0 +1,8 @@ +import { PaginationConfiguration } from "@aws-sdk/types"; + +import { AmplifyUIBuilder } from "../AmplifyUIBuilder"; +import { AmplifyUIBuilderClient } from "../AmplifyUIBuilderClient"; + +export interface AmplifyUIBuilderPaginationConfiguration extends PaginationConfiguration { + client: AmplifyUIBuilder | AmplifyUIBuilderClient; +} diff --git a/clients/client-amplifyuibuilder/src/pagination/ListComponentsPaginator.ts b/clients/client-amplifyuibuilder/src/pagination/ListComponentsPaginator.ts new file mode 100644 index 000000000000..2703e44e2007 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/pagination/ListComponentsPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { AmplifyUIBuilder } from "../AmplifyUIBuilder"; +import { AmplifyUIBuilderClient } from "../AmplifyUIBuilderClient"; +import { + ListComponentsCommand, + ListComponentsCommandInput, + ListComponentsCommandOutput, +} from "../commands/ListComponentsCommand"; +import { AmplifyUIBuilderPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AmplifyUIBuilderClient, + input: ListComponentsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListComponentsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AmplifyUIBuilder, + input: ListComponentsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listComponents(input, ...args); +}; +export async function* paginateListComponents( + config: AmplifyUIBuilderPaginationConfiguration, + input: ListComponentsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.nextToken + let token: typeof input.nextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListComponentsCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AmplifyUIBuilder) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AmplifyUIBuilderClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AmplifyUIBuilder | AmplifyUIBuilderClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-amplifyuibuilder/src/pagination/ListThemesPaginator.ts b/clients/client-amplifyuibuilder/src/pagination/ListThemesPaginator.ts new file mode 100644 index 000000000000..fcf5f159e017 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/pagination/ListThemesPaginator.ts @@ -0,0 +1,55 @@ +import { Paginator } from "@aws-sdk/types"; + +import { AmplifyUIBuilder } from "../AmplifyUIBuilder"; +import { AmplifyUIBuilderClient } from "../AmplifyUIBuilderClient"; +import { ListThemesCommand, ListThemesCommandInput, ListThemesCommandOutput } from "../commands/ListThemesCommand"; +import { AmplifyUIBuilderPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: AmplifyUIBuilderClient, + input: ListThemesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListThemesCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: AmplifyUIBuilder, + input: ListThemesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listThemes(input, ...args); +}; +export async function* paginateListThemes( + config: AmplifyUIBuilderPaginationConfiguration, + input: ListThemesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.nextToken + let token: typeof input.nextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListThemesCommandOutput; + while (hasNext) { + input.nextToken = token; + input["maxResults"] = config.pageSize; + if (config.client instanceof AmplifyUIBuilder) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof AmplifyUIBuilderClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected AmplifyUIBuilder | AmplifyUIBuilderClient"); + } + yield page; + token = page.nextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-amplifyuibuilder/src/pagination/index.ts b/clients/client-amplifyuibuilder/src/pagination/index.ts new file mode 100644 index 000000000000..21bdcabbcc66 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/pagination/index.ts @@ -0,0 +1,3 @@ +export * from "./Interfaces"; +export * from "./ListComponentsPaginator"; +export * from "./ListThemesPaginator"; diff --git a/clients/client-amplifyuibuilder/src/protocols/Aws_restJson1.ts b/clients/client-amplifyuibuilder/src/protocols/Aws_restJson1.ts new file mode 100644 index 000000000000..f849722ea65f --- /dev/null +++ b/clients/client-amplifyuibuilder/src/protocols/Aws_restJson1.ts @@ -0,0 +1,2819 @@ +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { + expectBoolean as __expectBoolean, + expectInt32 as __expectInt32, + expectNonNull as __expectNonNull, + expectObject as __expectObject, + expectString as __expectString, + extendedEncodeURIComponent as __extendedEncodeURIComponent, + parseRfc3339DateTime as __parseRfc3339DateTime, +} from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, + SmithyException as __SmithyException, +} from "@aws-sdk/types"; +import { v4 as generateIdempotencyToken } from "uuid"; + +import { CreateComponentCommandInput, CreateComponentCommandOutput } from "../commands/CreateComponentCommand"; +import { CreateThemeCommandInput, CreateThemeCommandOutput } from "../commands/CreateThemeCommand"; +import { DeleteComponentCommandInput, DeleteComponentCommandOutput } from "../commands/DeleteComponentCommand"; +import { DeleteThemeCommandInput, DeleteThemeCommandOutput } from "../commands/DeleteThemeCommand"; +import { + ExchangeCodeForTokenCommandInput, + ExchangeCodeForTokenCommandOutput, +} from "../commands/ExchangeCodeForTokenCommand"; +import { ExportComponentsCommandInput, ExportComponentsCommandOutput } from "../commands/ExportComponentsCommand"; +import { ExportThemesCommandInput, ExportThemesCommandOutput } from "../commands/ExportThemesCommand"; +import { GetComponentCommandInput, GetComponentCommandOutput } from "../commands/GetComponentCommand"; +import { GetThemeCommandInput, GetThemeCommandOutput } from "../commands/GetThemeCommand"; +import { ListComponentsCommandInput, ListComponentsCommandOutput } from "../commands/ListComponentsCommand"; +import { ListThemesCommandInput, ListThemesCommandOutput } from "../commands/ListThemesCommand"; +import { RefreshTokenCommandInput, RefreshTokenCommandOutput } from "../commands/RefreshTokenCommand"; +import { UpdateComponentCommandInput, UpdateComponentCommandOutput } from "../commands/UpdateComponentCommand"; +import { UpdateThemeCommandInput, UpdateThemeCommandOutput } from "../commands/UpdateThemeCommand"; +import { + Component, + ComponentBindingPropertiesValue, + ComponentBindingPropertiesValueProperties, + ComponentChild, + ComponentConditionProperty, + ComponentDataConfiguration, + ComponentProperty, + ComponentPropertyBindingProperties, + ComponentSummary, + ComponentVariant, + CreateComponentData, + CreateThemeData, + ExchangeCodeForTokenRequestBody, + FormBindingElement, + InternalServerException, + InvalidParameterException, + Predicate, + RefreshTokenRequestBody, + ResourceConflictException, + ResourceNotFoundException, + ServiceQuotaExceededException, + SortProperty, + Theme, + ThemeSummary, + ThemeValue, + ThemeValues, + UpdateComponentData, + UpdateThemeData, +} from "../models/models_0"; + +export const serializeAws_restJson1CreateComponentCommand = async ( + input: CreateComponentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/components"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + const query: any = { + ...(input.clientToken !== undefined && { clientToken: input.clientToken }), + }; + let body: any; + if (input.componentToCreate !== undefined) { + body = serializeAws_restJson1CreateComponentData(input.componentToCreate, context); + } + if (body === undefined) { + body = {}; + } + body = JSON.stringify(body); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1CreateThemeCommand = async ( + input: CreateThemeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/themes"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + const query: any = { + ...(input.clientToken !== undefined && { clientToken: input.clientToken }), + }; + let body: any; + if (input.themeToCreate !== undefined) { + body = serializeAws_restJson1CreateThemeData(input.themeToCreate, context); + } + if (body === undefined) { + body = {}; + } + body = JSON.stringify(body); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1DeleteComponentCommand = async ( + input: DeleteComponentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/components/{id}"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteThemeCommand = async ( + input: DeleteThemeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/themes/{id}"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ExchangeCodeForTokenCommand = async ( + input: ExchangeCodeForTokenCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tokens/{provider}"; + if (input.provider !== undefined) { + const labelValue: string = input.provider; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: provider."); + } + resolvedPath = resolvedPath.replace("{provider}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: provider."); + } + let body: any; + if (input.request !== undefined) { + body = serializeAws_restJson1ExchangeCodeForTokenRequestBody(input.request, context); + } + if (body === undefined) { + body = {}; + } + body = JSON.stringify(body); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ExportComponentsCommand = async ( + input: ExportComponentsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/export/app/{appId}/environment/{environmentName}/components"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ExportThemesCommand = async ( + input: ExportThemesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/export/app/{appId}/environment/{environmentName}/themes"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetComponentCommand = async ( + input: GetComponentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/components/{id}"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1GetThemeCommand = async ( + input: GetThemeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/themes/{id}"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1ListComponentsCommand = async ( + input: ListComponentsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/components"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListThemesCommand = async ( + input: ListThemesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/themes"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1RefreshTokenCommand = async ( + input: RefreshTokenCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tokens/{provider}/refresh"; + if (input.provider !== undefined) { + const labelValue: string = input.provider; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: provider."); + } + resolvedPath = resolvedPath.replace("{provider}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: provider."); + } + let body: any; + if (input.refreshTokenBody !== undefined) { + body = serializeAws_restJson1RefreshTokenRequestBody(input.refreshTokenBody, context); + } + if (body === undefined) { + body = {}; + } + body = JSON.stringify(body); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateComponentCommand = async ( + input: UpdateComponentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/components/{id}"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + const query: any = { + ...(input.clientToken !== undefined && { clientToken: input.clientToken }), + }; + let body: any; + if (input.updatedComponent !== undefined) { + body = serializeAws_restJson1UpdateComponentData(input.updatedComponent, context); + } + if (body === undefined) { + body = {}; + } + body = JSON.stringify(body); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1UpdateThemeCommand = async ( + input: UpdateThemeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/app/{appId}/environment/{environmentName}/themes/{id}"; + if (input.appId !== undefined) { + const labelValue: string = input.appId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: appId."); + } + resolvedPath = resolvedPath.replace("{appId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: appId."); + } + if (input.environmentName !== undefined) { + const labelValue: string = input.environmentName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: environmentName."); + } + resolvedPath = resolvedPath.replace("{environmentName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: environmentName."); + } + if (input.id !== undefined) { + const labelValue: string = input.id; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: id."); + } + resolvedPath = resolvedPath.replace("{id}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: id."); + } + const query: any = { + ...(input.clientToken !== undefined && { clientToken: input.clientToken }), + }; + let body: any; + if (input.updatedTheme !== undefined) { + body = serializeAws_restJson1UpdateThemeData(input.updatedTheme, context); + } + if (body === undefined) { + body = {}; + } + body = JSON.stringify(body); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const deserializeAws_restJson1CreateComponentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateComponentCommandError(output, context); + } + const contents: CreateComponentCommandOutput = { + $metadata: deserializeMetadata(output), + entity: undefined, + }; + const data: { [key: string]: any } | undefined = __expectObject(await parseBody(output.body, context)); + contents.entity = deserializeAws_restJson1Component(data, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateComponentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceConflictException": + case "com.amazonaws.amplifyuibuilder#ResourceConflictException": + response = { + ...(await deserializeAws_restJson1ResourceConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.amplifyuibuilder#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateThemeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateThemeCommandError(output, context); + } + const contents: CreateThemeCommandOutput = { + $metadata: deserializeMetadata(output), + entity: undefined, + }; + const data: { [key: string]: any } | undefined = __expectObject(await parseBody(output.body, context)); + contents.entity = deserializeAws_restJson1Theme(data, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateThemeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceConflictException": + case "com.amazonaws.amplifyuibuilder#ResourceConflictException": + response = { + ...(await deserializeAws_restJson1ResourceConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.amplifyuibuilder#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteComponentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteComponentCommandError(output, context); + } + const contents: DeleteComponentCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteComponentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.amplifyuibuilder#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DeleteThemeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteThemeCommandError(output, context); + } + const contents: DeleteThemeCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteThemeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.amplifyuibuilder#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ExchangeCodeForTokenCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ExchangeCodeForTokenCommandError(output, context); + } + const contents: ExchangeCodeForTokenCommandOutput = { + $metadata: deserializeMetadata(output), + accessToken: undefined, + expiresIn: undefined, + refreshToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.accessToken !== undefined && data.accessToken !== null) { + contents.accessToken = __expectString(data.accessToken); + } + if (data.expiresIn !== undefined && data.expiresIn !== null) { + contents.expiresIn = __expectInt32(data.expiresIn); + } + if (data.refreshToken !== undefined && data.refreshToken !== null) { + contents.refreshToken = __expectString(data.refreshToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ExchangeCodeForTokenCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ExportComponentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ExportComponentsCommandError(output, context); + } + const contents: ExportComponentsCommandOutput = { + $metadata: deserializeMetadata(output), + entities: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.entities !== undefined && data.entities !== null) { + contents.entities = deserializeAws_restJson1ComponentList(data.entities, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ExportComponentsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ExportThemesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ExportThemesCommandError(output, context); + } + const contents: ExportThemesCommandOutput = { + $metadata: deserializeMetadata(output), + entities: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.entities !== undefined && data.entities !== null) { + contents.entities = deserializeAws_restJson1ThemeList(data.entities, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ExportThemesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetComponentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetComponentCommandError(output, context); + } + const contents: GetComponentCommandOutput = { + $metadata: deserializeMetadata(output), + component: undefined, + }; + const data: { [key: string]: any } | undefined = __expectObject(await parseBody(output.body, context)); + contents.component = deserializeAws_restJson1Component(data, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetComponentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.amplifyuibuilder#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetThemeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetThemeCommandError(output, context); + } + const contents: GetThemeCommandOutput = { + $metadata: deserializeMetadata(output), + theme: undefined, + }; + const data: { [key: string]: any } | undefined = __expectObject(await parseBody(output.body, context)); + contents.theme = deserializeAws_restJson1Theme(data, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetThemeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.amplifyuibuilder#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListComponentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListComponentsCommandError(output, context); + } + const contents: ListComponentsCommandOutput = { + $metadata: deserializeMetadata(output), + entities: undefined, + nextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.entities !== undefined && data.entities !== null) { + contents.entities = deserializeAws_restJson1ComponentSummaryList(data.entities, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = __expectString(data.nextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListComponentsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListThemesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListThemesCommandError(output, context); + } + const contents: ListThemesCommandOutput = { + $metadata: deserializeMetadata(output), + entities: undefined, + nextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.entities !== undefined && data.entities !== null) { + contents.entities = deserializeAws_restJson1ThemeSummaryList(data.entities, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = __expectString(data.nextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListThemesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1RefreshTokenCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1RefreshTokenCommandError(output, context); + } + const contents: RefreshTokenCommandOutput = { + $metadata: deserializeMetadata(output), + accessToken: undefined, + expiresIn: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.accessToken !== undefined && data.accessToken !== null) { + contents.accessToken = __expectString(data.accessToken); + } + if (data.expiresIn !== undefined && data.expiresIn !== null) { + contents.expiresIn = __expectInt32(data.expiresIn); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1RefreshTokenCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateComponentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateComponentCommandError(output, context); + } + const contents: UpdateComponentCommandOutput = { + $metadata: deserializeMetadata(output), + entity: undefined, + }; + const data: { [key: string]: any } | undefined = __expectObject(await parseBody(output.body, context)); + contents.entity = deserializeAws_restJson1Component(data, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateComponentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceConflictException": + case "com.amazonaws.amplifyuibuilder#ResourceConflictException": + response = { + ...(await deserializeAws_restJson1ResourceConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateThemeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateThemeCommandError(output, context); + } + const contents: UpdateThemeCommandOutput = { + $metadata: deserializeMetadata(output), + entity: undefined, + }; + const data: { [key: string]: any } | undefined = __expectObject(await parseBody(output.body, context)); + contents.entity = deserializeAws_restJson1Theme(data, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateThemeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.amplifyuibuilder#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidParameterException": + case "com.amazonaws.amplifyuibuilder#InvalidParameterException": + response = { + ...(await deserializeAws_restJson1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceConflictException": + case "com.amazonaws.amplifyuibuilder#ResourceConflictException": + response = { + ...(await deserializeAws_restJson1ResourceConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_restJson1InternalServerExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InternalServerException = { + name: "InternalServerException", + $fault: "server", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = __expectString(data.message); + } + return contents; +}; + +const deserializeAws_restJson1InvalidParameterExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InvalidParameterException = { + name: "InvalidParameterException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = __expectString(data.message); + } + return contents; +}; + +const deserializeAws_restJson1ResourceConflictExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ResourceConflictException = { + name: "ResourceConflictException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = __expectString(data.message); + } + return contents; +}; + +const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = __expectString(data.message); + } + return contents; +}; + +const deserializeAws_restJson1ServiceQuotaExceededExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ServiceQuotaExceededException = { + name: "ServiceQuotaExceededException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = __expectString(data.message); + } + return contents; +}; + +const serializeAws_restJson1ComponentBindingProperties = ( + input: { [key: string]: ComponentBindingPropertiesValue }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: serializeAws_restJson1ComponentBindingPropertiesValue(value, context), + }; + }, {}); +}; + +const serializeAws_restJson1ComponentBindingPropertiesValue = ( + input: ComponentBindingPropertiesValue, + context: __SerdeContext +): any => { + return { + ...(input.bindingProperties !== undefined && + input.bindingProperties !== null && { + bindingProperties: serializeAws_restJson1ComponentBindingPropertiesValueProperties( + input.bindingProperties, + context + ), + }), + ...(input.defaultValue !== undefined && input.defaultValue !== null && { defaultValue: input.defaultValue }), + ...(input.type !== undefined && input.type !== null && { type: input.type }), + }; +}; + +const serializeAws_restJson1ComponentBindingPropertiesValueProperties = ( + input: ComponentBindingPropertiesValueProperties, + context: __SerdeContext +): any => { + return { + ...(input.bucket !== undefined && input.bucket !== null && { bucket: input.bucket }), + ...(input.defaultValue !== undefined && input.defaultValue !== null && { defaultValue: input.defaultValue }), + ...(input.field !== undefined && input.field !== null && { field: input.field }), + ...(input.key !== undefined && input.key !== null && { key: input.key }), + ...(input.model !== undefined && input.model !== null && { model: input.model }), + ...(input.predicates !== undefined && + input.predicates !== null && { predicates: serializeAws_restJson1PredicateList(input.predicates, context) }), + ...(input.userAttribute !== undefined && input.userAttribute !== null && { userAttribute: input.userAttribute }), + }; +}; + +const serializeAws_restJson1ComponentChild = (input: ComponentChild, context: __SerdeContext): any => { + return { + ...(input.children !== undefined && + input.children !== null && { children: serializeAws_restJson1ComponentChildList(input.children, context) }), + ...(input.componentType !== undefined && input.componentType !== null && { componentType: input.componentType }), + ...(input.name !== undefined && input.name !== null && { name: input.name }), + ...(input.properties !== undefined && + input.properties !== null && { + properties: serializeAws_restJson1ComponentProperties(input.properties, context), + }), + }; +}; + +const serializeAws_restJson1ComponentChildList = (input: ComponentChild[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1ComponentChild(entry, context); + }); +}; + +const serializeAws_restJson1ComponentCollectionProperties = ( + input: { [key: string]: ComponentDataConfiguration }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: serializeAws_restJson1ComponentDataConfiguration(value, context), + }; + }, {}); +}; + +const serializeAws_restJson1ComponentConditionProperty = ( + input: ComponentConditionProperty, + context: __SerdeContext +): any => { + return { + ...(input.else !== undefined && + input.else !== null && { else: serializeAws_restJson1ComponentProperty(input.else, context) }), + ...(input.field !== undefined && input.field !== null && { field: input.field }), + ...(input.operand !== undefined && input.operand !== null && { operand: input.operand }), + ...(input.operator !== undefined && input.operator !== null && { operator: input.operator }), + ...(input.property !== undefined && input.property !== null && { property: input.property }), + ...(input.then !== undefined && + input.then !== null && { then: serializeAws_restJson1ComponentProperty(input.then, context) }), + }; +}; + +const serializeAws_restJson1ComponentDataConfiguration = ( + input: ComponentDataConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.identifiers !== undefined && + input.identifiers !== null && { identifiers: serializeAws_restJson1IdentifierList(input.identifiers, context) }), + ...(input.model !== undefined && input.model !== null && { model: input.model }), + ...(input.predicate !== undefined && + input.predicate !== null && { predicate: serializeAws_restJson1Predicate(input.predicate, context) }), + ...(input.sort !== undefined && + input.sort !== null && { sort: serializeAws_restJson1SortPropertyList(input.sort, context) }), + }; +}; + +const serializeAws_restJson1ComponentOverrides = ( + input: { [key: string]: { [key: string]: string } }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: serializeAws_restJson1ComponentOverridesValue(value, context), + }; + }, {}); +}; + +const serializeAws_restJson1ComponentOverridesValue = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + +const serializeAws_restJson1ComponentProperties = ( + input: { [key: string]: ComponentProperty }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: serializeAws_restJson1ComponentProperty(value, context), + }; + }, {}); +}; + +const serializeAws_restJson1ComponentProperty = (input: ComponentProperty, context: __SerdeContext): any => { + return { + ...(input.bindingProperties !== undefined && + input.bindingProperties !== null && { + bindingProperties: serializeAws_restJson1ComponentPropertyBindingProperties(input.bindingProperties, context), + }), + ...(input.bindings !== undefined && + input.bindings !== null && { bindings: serializeAws_restJson1FormBindings(input.bindings, context) }), + ...(input.collectionBindingProperties !== undefined && + input.collectionBindingProperties !== null && { + collectionBindingProperties: serializeAws_restJson1ComponentPropertyBindingProperties( + input.collectionBindingProperties, + context + ), + }), + ...(input.concat !== undefined && + input.concat !== null && { concat: serializeAws_restJson1ComponentPropertyList(input.concat, context) }), + ...(input.condition !== undefined && + input.condition !== null && { + condition: serializeAws_restJson1ComponentConditionProperty(input.condition, context), + }), + ...(input.configured !== undefined && input.configured !== null && { configured: input.configured }), + ...(input.defaultValue !== undefined && input.defaultValue !== null && { defaultValue: input.defaultValue }), + ...(input.event !== undefined && input.event !== null && { event: input.event }), + ...(input.importedValue !== undefined && input.importedValue !== null && { importedValue: input.importedValue }), + ...(input.model !== undefined && input.model !== null && { model: input.model }), + ...(input.type !== undefined && input.type !== null && { type: input.type }), + ...(input.userAttribute !== undefined && input.userAttribute !== null && { userAttribute: input.userAttribute }), + ...(input.value !== undefined && input.value !== null && { value: input.value }), + }; +}; + +const serializeAws_restJson1ComponentPropertyBindingProperties = ( + input: ComponentPropertyBindingProperties, + context: __SerdeContext +): any => { + return { + ...(input.field !== undefined && input.field !== null && { field: input.field }), + ...(input.property !== undefined && input.property !== null && { property: input.property }), + }; +}; + +const serializeAws_restJson1ComponentPropertyList = (input: ComponentProperty[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1ComponentProperty(entry, context); + }); +}; + +const serializeAws_restJson1ComponentVariant = (input: ComponentVariant, context: __SerdeContext): any => { + return { + ...(input.overrides !== undefined && + input.overrides !== null && { overrides: serializeAws_restJson1ComponentOverrides(input.overrides, context) }), + ...(input.variantValues !== undefined && + input.variantValues !== null && { + variantValues: serializeAws_restJson1ComponentVariantValues(input.variantValues, context), + }), + }; +}; + +const serializeAws_restJson1ComponentVariants = (input: ComponentVariant[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1ComponentVariant(entry, context); + }); +}; + +const serializeAws_restJson1ComponentVariantValues = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + +const serializeAws_restJson1CreateComponentData = (input: CreateComponentData, context: __SerdeContext): any => { + return { + ...(input.bindingProperties !== undefined && + input.bindingProperties !== null && { + bindingProperties: serializeAws_restJson1ComponentBindingProperties(input.bindingProperties, context), + }), + ...(input.children !== undefined && + input.children !== null && { children: serializeAws_restJson1ComponentChildList(input.children, context) }), + ...(input.collectionProperties !== undefined && + input.collectionProperties !== null && { + collectionProperties: serializeAws_restJson1ComponentCollectionProperties(input.collectionProperties, context), + }), + ...(input.componentType !== undefined && input.componentType !== null && { componentType: input.componentType }), + ...(input.name !== undefined && input.name !== null && { name: input.name }), + ...(input.overrides !== undefined && + input.overrides !== null && { overrides: serializeAws_restJson1ComponentOverrides(input.overrides, context) }), + ...(input.properties !== undefined && + input.properties !== null && { + properties: serializeAws_restJson1ComponentProperties(input.properties, context), + }), + ...(input.sourceId !== undefined && input.sourceId !== null && { sourceId: input.sourceId }), + ...(input.tags !== undefined && input.tags !== null && { tags: serializeAws_restJson1Tags(input.tags, context) }), + ...(input.variants !== undefined && + input.variants !== null && { variants: serializeAws_restJson1ComponentVariants(input.variants, context) }), + }; +}; + +const serializeAws_restJson1CreateThemeData = (input: CreateThemeData, context: __SerdeContext): any => { + return { + ...(input.name !== undefined && input.name !== null && { name: input.name }), + ...(input.overrides !== undefined && + input.overrides !== null && { overrides: serializeAws_restJson1ThemeValuesList(input.overrides, context) }), + ...(input.tags !== undefined && input.tags !== null && { tags: serializeAws_restJson1Tags(input.tags, context) }), + ...(input.values !== undefined && + input.values !== null && { values: serializeAws_restJson1ThemeValuesList(input.values, context) }), + }; +}; + +const serializeAws_restJson1ExchangeCodeForTokenRequestBody = ( + input: ExchangeCodeForTokenRequestBody, + context: __SerdeContext +): any => { + return { + ...(input.code !== undefined && input.code !== null && { code: input.code }), + ...(input.redirectUri !== undefined && input.redirectUri !== null && { redirectUri: input.redirectUri }), + }; +}; + +const serializeAws_restJson1FormBindingElement = (input: FormBindingElement, context: __SerdeContext): any => { + return { + ...(input.element !== undefined && input.element !== null && { element: input.element }), + ...(input.property !== undefined && input.property !== null && { property: input.property }), + }; +}; + +const serializeAws_restJson1FormBindings = ( + input: { [key: string]: FormBindingElement }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: serializeAws_restJson1FormBindingElement(value, context), + }; + }, {}); +}; + +const serializeAws_restJson1IdentifierList = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1Predicate = (input: Predicate, context: __SerdeContext): any => { + return { + ...(input.and !== undefined && + input.and !== null && { and: serializeAws_restJson1PredicateList(input.and, context) }), + ...(input.field !== undefined && input.field !== null && { field: input.field }), + ...(input.operand !== undefined && input.operand !== null && { operand: input.operand }), + ...(input.operator !== undefined && input.operator !== null && { operator: input.operator }), + ...(input.or !== undefined && input.or !== null && { or: serializeAws_restJson1PredicateList(input.or, context) }), + }; +}; + +const serializeAws_restJson1PredicateList = (input: Predicate[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1Predicate(entry, context); + }); +}; + +const serializeAws_restJson1RefreshTokenRequestBody = ( + input: RefreshTokenRequestBody, + context: __SerdeContext +): any => { + return { + ...(input.token !== undefined && input.token !== null && { token: input.token }), + }; +}; + +const serializeAws_restJson1SortProperty = (input: SortProperty, context: __SerdeContext): any => { + return { + ...(input.direction !== undefined && input.direction !== null && { direction: input.direction }), + ...(input.field !== undefined && input.field !== null && { field: input.field }), + }; +}; + +const serializeAws_restJson1SortPropertyList = (input: SortProperty[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1SortProperty(entry, context); + }); +}; + +const serializeAws_restJson1Tags = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + +const serializeAws_restJson1ThemeValue = (input: ThemeValue, context: __SerdeContext): any => { + return { + ...(input.children !== undefined && + input.children !== null && { children: serializeAws_restJson1ThemeValuesList(input.children, context) }), + ...(input.value !== undefined && input.value !== null && { value: input.value }), + }; +}; + +const serializeAws_restJson1ThemeValues = (input: ThemeValues, context: __SerdeContext): any => { + return { + ...(input.key !== undefined && input.key !== null && { key: input.key }), + ...(input.value !== undefined && + input.value !== null && { value: serializeAws_restJson1ThemeValue(input.value, context) }), + }; +}; + +const serializeAws_restJson1ThemeValuesList = (input: ThemeValues[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1ThemeValues(entry, context); + }); +}; + +const serializeAws_restJson1UpdateComponentData = (input: UpdateComponentData, context: __SerdeContext): any => { + return { + ...(input.bindingProperties !== undefined && + input.bindingProperties !== null && { + bindingProperties: serializeAws_restJson1ComponentBindingProperties(input.bindingProperties, context), + }), + ...(input.children !== undefined && + input.children !== null && { children: serializeAws_restJson1ComponentChildList(input.children, context) }), + ...(input.collectionProperties !== undefined && + input.collectionProperties !== null && { + collectionProperties: serializeAws_restJson1ComponentCollectionProperties(input.collectionProperties, context), + }), + ...(input.componentType !== undefined && input.componentType !== null && { componentType: input.componentType }), + ...(input.id !== undefined && input.id !== null && { id: input.id }), + ...(input.name !== undefined && input.name !== null && { name: input.name }), + ...(input.overrides !== undefined && + input.overrides !== null && { overrides: serializeAws_restJson1ComponentOverrides(input.overrides, context) }), + ...(input.properties !== undefined && + input.properties !== null && { + properties: serializeAws_restJson1ComponentProperties(input.properties, context), + }), + ...(input.sourceId !== undefined && input.sourceId !== null && { sourceId: input.sourceId }), + ...(input.variants !== undefined && + input.variants !== null && { variants: serializeAws_restJson1ComponentVariants(input.variants, context) }), + }; +}; + +const serializeAws_restJson1UpdateThemeData = (input: UpdateThemeData, context: __SerdeContext): any => { + return { + ...(input.id !== undefined && input.id !== null && { id: input.id }), + ...(input.name !== undefined && input.name !== null && { name: input.name }), + ...(input.overrides !== undefined && + input.overrides !== null && { overrides: serializeAws_restJson1ThemeValuesList(input.overrides, context) }), + ...(input.values !== undefined && + input.values !== null && { values: serializeAws_restJson1ThemeValuesList(input.values, context) }), + }; +}; + +const deserializeAws_restJson1Component = (output: any, context: __SerdeContext): Component => { + return { + appId: __expectString(output.appId), + bindingProperties: + output.bindingProperties !== undefined && output.bindingProperties !== null + ? deserializeAws_restJson1ComponentBindingProperties(output.bindingProperties, context) + : undefined, + children: + output.children !== undefined && output.children !== null + ? deserializeAws_restJson1ComponentChildList(output.children, context) + : undefined, + collectionProperties: + output.collectionProperties !== undefined && output.collectionProperties !== null + ? deserializeAws_restJson1ComponentCollectionProperties(output.collectionProperties, context) + : undefined, + componentType: __expectString(output.componentType), + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? __expectNonNull(__parseRfc3339DateTime(output.createdAt)) + : undefined, + environmentName: __expectString(output.environmentName), + id: __expectString(output.id), + modifiedAt: + output.modifiedAt !== undefined && output.modifiedAt !== null + ? __expectNonNull(__parseRfc3339DateTime(output.modifiedAt)) + : undefined, + name: __expectString(output.name), + overrides: + output.overrides !== undefined && output.overrides !== null + ? deserializeAws_restJson1ComponentOverrides(output.overrides, context) + : undefined, + properties: + output.properties !== undefined && output.properties !== null + ? deserializeAws_restJson1ComponentProperties(output.properties, context) + : undefined, + sourceId: __expectString(output.sourceId), + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1Tags(output.tags, context) + : undefined, + variants: + output.variants !== undefined && output.variants !== null + ? deserializeAws_restJson1ComponentVariants(output.variants, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ComponentBindingProperties = ( + output: any, + context: __SerdeContext +): { [key: string]: ComponentBindingPropertiesValue } => { + return Object.entries(output).reduce( + (acc: { [key: string]: ComponentBindingPropertiesValue }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: deserializeAws_restJson1ComponentBindingPropertiesValue(value, context), + }; + }, + {} + ); +}; + +const deserializeAws_restJson1ComponentBindingPropertiesValue = ( + output: any, + context: __SerdeContext +): ComponentBindingPropertiesValue => { + return { + bindingProperties: + output.bindingProperties !== undefined && output.bindingProperties !== null + ? deserializeAws_restJson1ComponentBindingPropertiesValueProperties(output.bindingProperties, context) + : undefined, + defaultValue: __expectString(output.defaultValue), + type: __expectString(output.type), + } as any; +}; + +const deserializeAws_restJson1ComponentBindingPropertiesValueProperties = ( + output: any, + context: __SerdeContext +): ComponentBindingPropertiesValueProperties => { + return { + bucket: __expectString(output.bucket), + defaultValue: __expectString(output.defaultValue), + field: __expectString(output.field), + key: __expectString(output.key), + model: __expectString(output.model), + predicates: + output.predicates !== undefined && output.predicates !== null + ? deserializeAws_restJson1PredicateList(output.predicates, context) + : undefined, + userAttribute: __expectString(output.userAttribute), + } as any; +}; + +const deserializeAws_restJson1ComponentChild = (output: any, context: __SerdeContext): ComponentChild => { + return { + children: + output.children !== undefined && output.children !== null + ? deserializeAws_restJson1ComponentChildList(output.children, context) + : undefined, + componentType: __expectString(output.componentType), + name: __expectString(output.name), + properties: + output.properties !== undefined && output.properties !== null + ? deserializeAws_restJson1ComponentProperties(output.properties, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ComponentChildList = (output: any, context: __SerdeContext): ComponentChild[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ComponentChild(entry, context); + }); +}; + +const deserializeAws_restJson1ComponentCollectionProperties = ( + output: any, + context: __SerdeContext +): { [key: string]: ComponentDataConfiguration } => { + return Object.entries(output).reduce( + (acc: { [key: string]: ComponentDataConfiguration }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: deserializeAws_restJson1ComponentDataConfiguration(value, context), + }; + }, + {} + ); +}; + +const deserializeAws_restJson1ComponentConditionProperty = ( + output: any, + context: __SerdeContext +): ComponentConditionProperty => { + return { + else: + output.else !== undefined && output.else !== null + ? deserializeAws_restJson1ComponentProperty(output.else, context) + : undefined, + field: __expectString(output.field), + operand: __expectString(output.operand), + operator: __expectString(output.operator), + property: __expectString(output.property), + then: + output.then !== undefined && output.then !== null + ? deserializeAws_restJson1ComponentProperty(output.then, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ComponentDataConfiguration = ( + output: any, + context: __SerdeContext +): ComponentDataConfiguration => { + return { + identifiers: + output.identifiers !== undefined && output.identifiers !== null + ? deserializeAws_restJson1IdentifierList(output.identifiers, context) + : undefined, + model: __expectString(output.model), + predicate: + output.predicate !== undefined && output.predicate !== null + ? deserializeAws_restJson1Predicate(output.predicate, context) + : undefined, + sort: + output.sort !== undefined && output.sort !== null + ? deserializeAws_restJson1SortPropertyList(output.sort, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ComponentList = (output: any, context: __SerdeContext): Component[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Component(entry, context); + }); +}; + +const deserializeAws_restJson1ComponentOverrides = ( + output: any, + context: __SerdeContext +): { [key: string]: { [key: string]: string } } => { + return Object.entries(output).reduce( + (acc: { [key: string]: { [key: string]: string } }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: deserializeAws_restJson1ComponentOverridesValue(value, context), + }; + }, + {} + ); +}; + +const deserializeAws_restJson1ComponentOverridesValue = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + +const deserializeAws_restJson1ComponentProperties = ( + output: any, + context: __SerdeContext +): { [key: string]: ComponentProperty } => { + return Object.entries(output).reduce((acc: { [key: string]: ComponentProperty }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: deserializeAws_restJson1ComponentProperty(value, context), + }; + }, {}); +}; + +const deserializeAws_restJson1ComponentProperty = (output: any, context: __SerdeContext): ComponentProperty => { + return { + bindingProperties: + output.bindingProperties !== undefined && output.bindingProperties !== null + ? deserializeAws_restJson1ComponentPropertyBindingProperties(output.bindingProperties, context) + : undefined, + bindings: + output.bindings !== undefined && output.bindings !== null + ? deserializeAws_restJson1FormBindings(output.bindings, context) + : undefined, + collectionBindingProperties: + output.collectionBindingProperties !== undefined && output.collectionBindingProperties !== null + ? deserializeAws_restJson1ComponentPropertyBindingProperties(output.collectionBindingProperties, context) + : undefined, + concat: + output.concat !== undefined && output.concat !== null + ? deserializeAws_restJson1ComponentPropertyList(output.concat, context) + : undefined, + condition: + output.condition !== undefined && output.condition !== null + ? deserializeAws_restJson1ComponentConditionProperty(output.condition, context) + : undefined, + configured: __expectBoolean(output.configured), + defaultValue: __expectString(output.defaultValue), + event: __expectString(output.event), + importedValue: __expectString(output.importedValue), + model: __expectString(output.model), + type: __expectString(output.type), + userAttribute: __expectString(output.userAttribute), + value: __expectString(output.value), + } as any; +}; + +const deserializeAws_restJson1ComponentPropertyBindingProperties = ( + output: any, + context: __SerdeContext +): ComponentPropertyBindingProperties => { + return { + field: __expectString(output.field), + property: __expectString(output.property), + } as any; +}; + +const deserializeAws_restJson1ComponentPropertyList = (output: any, context: __SerdeContext): ComponentProperty[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ComponentProperty(entry, context); + }); +}; + +const deserializeAws_restJson1ComponentSummary = (output: any, context: __SerdeContext): ComponentSummary => { + return { + appId: __expectString(output.appId), + componentType: __expectString(output.componentType), + environmentName: __expectString(output.environmentName), + id: __expectString(output.id), + name: __expectString(output.name), + } as any; +}; + +const deserializeAws_restJson1ComponentSummaryList = (output: any, context: __SerdeContext): ComponentSummary[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ComponentSummary(entry, context); + }); +}; + +const deserializeAws_restJson1ComponentVariant = (output: any, context: __SerdeContext): ComponentVariant => { + return { + overrides: + output.overrides !== undefined && output.overrides !== null + ? deserializeAws_restJson1ComponentOverrides(output.overrides, context) + : undefined, + variantValues: + output.variantValues !== undefined && output.variantValues !== null + ? deserializeAws_restJson1ComponentVariantValues(output.variantValues, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ComponentVariants = (output: any, context: __SerdeContext): ComponentVariant[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ComponentVariant(entry, context); + }); +}; + +const deserializeAws_restJson1ComponentVariantValues = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + +const deserializeAws_restJson1FormBindingElement = (output: any, context: __SerdeContext): FormBindingElement => { + return { + element: __expectString(output.element), + property: __expectString(output.property), + } as any; +}; + +const deserializeAws_restJson1FormBindings = ( + output: any, + context: __SerdeContext +): { [key: string]: FormBindingElement } => { + return Object.entries(output).reduce((acc: { [key: string]: FormBindingElement }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: deserializeAws_restJson1FormBindingElement(value, context), + }; + }, {}); +}; + +const deserializeAws_restJson1IdentifierList = (output: any, context: __SerdeContext): string[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + +const deserializeAws_restJson1Predicate = (output: any, context: __SerdeContext): Predicate => { + return { + and: + output.and !== undefined && output.and !== null + ? deserializeAws_restJson1PredicateList(output.and, context) + : undefined, + field: __expectString(output.field), + operand: __expectString(output.operand), + operator: __expectString(output.operator), + or: + output.or !== undefined && output.or !== null + ? deserializeAws_restJson1PredicateList(output.or, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1PredicateList = (output: any, context: __SerdeContext): Predicate[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Predicate(entry, context); + }); +}; + +const deserializeAws_restJson1SortProperty = (output: any, context: __SerdeContext): SortProperty => { + return { + direction: __expectString(output.direction), + field: __expectString(output.field), + } as any; +}; + +const deserializeAws_restJson1SortPropertyList = (output: any, context: __SerdeContext): SortProperty[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1SortProperty(entry, context); + }); +}; + +const deserializeAws_restJson1Tags = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + +const deserializeAws_restJson1Theme = (output: any, context: __SerdeContext): Theme => { + return { + appId: __expectString(output.appId), + createdAt: + output.createdAt !== undefined && output.createdAt !== null + ? __expectNonNull(__parseRfc3339DateTime(output.createdAt)) + : undefined, + environmentName: __expectString(output.environmentName), + id: __expectString(output.id), + modifiedAt: + output.modifiedAt !== undefined && output.modifiedAt !== null + ? __expectNonNull(__parseRfc3339DateTime(output.modifiedAt)) + : undefined, + name: __expectString(output.name), + overrides: + output.overrides !== undefined && output.overrides !== null + ? deserializeAws_restJson1ThemeValuesList(output.overrides, context) + : undefined, + tags: + output.tags !== undefined && output.tags !== null + ? deserializeAws_restJson1Tags(output.tags, context) + : undefined, + values: + output.values !== undefined && output.values !== null + ? deserializeAws_restJson1ThemeValuesList(output.values, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ThemeList = (output: any, context: __SerdeContext): Theme[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Theme(entry, context); + }); +}; + +const deserializeAws_restJson1ThemeSummary = (output: any, context: __SerdeContext): ThemeSummary => { + return { + appId: __expectString(output.appId), + environmentName: __expectString(output.environmentName), + id: __expectString(output.id), + name: __expectString(output.name), + } as any; +}; + +const deserializeAws_restJson1ThemeSummaryList = (output: any, context: __SerdeContext): ThemeSummary[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ThemeSummary(entry, context); + }); +}; + +const deserializeAws_restJson1ThemeValue = (output: any, context: __SerdeContext): ThemeValue => { + return { + children: + output.children !== undefined && output.children !== null + ? deserializeAws_restJson1ThemeValuesList(output.children, context) + : undefined, + value: __expectString(output.value), + } as any; +}; + +const deserializeAws_restJson1ThemeValues = (output: any, context: __SerdeContext): ThemeValues => { + return { + key: __expectString(output.key), + value: + output.value !== undefined && output.value !== null + ? deserializeAws_restJson1ThemeValue(output.value, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ThemeValuesList = (output: any, context: __SerdeContext): ThemeValues[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ThemeValues(entry, context); + }); +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"], +}); + +// Collect low-level response body stream to Uint8Array. +const collectBody = (streamBody: any = new Uint8Array(), context: __SerdeContext): Promise => { + if (streamBody instanceof Uint8Array) { + return Promise.resolve(streamBody); + } + return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); +}; + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const isSerializableHeaderValue = (value: any): boolean => + value !== undefined && + value !== null && + value !== "" && + (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && + (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); + +const parseBody = (streamBody: any, context: __SerdeContext): any => + collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); + +/** + * Load an error code for the aws.rest-json-1.1 protocol. + */ +const loadRestJsonErrorCode = (output: __HttpResponse, data: any): string => { + const findKey = (object: any, key: string) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase()); + + const sanitizeErrorCode = (rawValue: string): string => { + let cleanValue = rawValue; + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }; + + const headerKey = findKey(output.headers, "x-amzn-errortype"); + if (headerKey !== undefined) { + return sanitizeErrorCode(output.headers[headerKey]); + } + + if (data.code !== undefined) { + return sanitizeErrorCode(data.code); + } + + if (data["__type"] !== undefined) { + return sanitizeErrorCode(data["__type"]); + } + + return ""; +}; diff --git a/clients/client-amplifyuibuilder/src/runtimeConfig.browser.ts b/clients/client-amplifyuibuilder/src/runtimeConfig.browser.ts new file mode 100644 index 000000000000..0d7c8aa9700f --- /dev/null +++ b/clients/client-amplifyuibuilder/src/runtimeConfig.browser.ts @@ -0,0 +1,44 @@ +// @ts-ignore: package.json will be imported from dist folders +import packageInfo from "../package.json"; // eslint-disable-line + +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from "@aws-sdk/config-resolver"; +import { FetchHttpHandler, streamCollector } from "@aws-sdk/fetch-http-handler"; +import { invalidProvider } from "@aws-sdk/invalid-dependency"; +import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from "@aws-sdk/middleware-retry"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { AmplifyUIBuilderClientConfig } from "./AmplifyUIBuilderClient"; +import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: AmplifyUIBuilderClientConfig) => { + const clientSharedValues = getSharedRuntimeConfig(config); + return { + ...clientSharedValues, + ...config, + runtime: "browser", + base64Decoder: config?.base64Decoder ?? fromBase64, + base64Encoder: config?.base64Encoder ?? toBase64, + bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? ((_: unknown) => () => Promise.reject(new Error("Credential is missing"))), + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), + maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS, + region: config?.region ?? invalidProvider("Region is missing"), + requestHandler: config?.requestHandler ?? new FetchHttpHandler(), + retryMode: config?.retryMode ?? (() => Promise.resolve(DEFAULT_RETRY_MODE)), + sha256: config?.sha256 ?? Sha256, + streamCollector: config?.streamCollector ?? streamCollector, + useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)), + useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)), + utf8Decoder: config?.utf8Decoder ?? fromUtf8, + utf8Encoder: config?.utf8Encoder ?? toUtf8, + }; +}; diff --git a/clients/client-amplifyuibuilder/src/runtimeConfig.native.ts b/clients/client-amplifyuibuilder/src/runtimeConfig.native.ts new file mode 100644 index 000000000000..d03c89af8c48 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/runtimeConfig.native.ts @@ -0,0 +1,17 @@ +import { Sha256 } from "@aws-crypto/sha256-js"; + +import { AmplifyUIBuilderClientConfig } from "./AmplifyUIBuilderClient"; +import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: AmplifyUIBuilderClientConfig) => { + const browserDefaults = getBrowserRuntimeConfig(config); + return { + ...browserDefaults, + ...config, + runtime: "react-native", + sha256: config?.sha256 ?? Sha256, + }; +}; diff --git a/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts b/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts new file mode 100644 index 000000000000..78fd3e2bee0c --- /dev/null +++ b/clients/client-amplifyuibuilder/src/runtimeConfig.shared.ts @@ -0,0 +1,17 @@ +import { Logger as __Logger } from "@aws-sdk/types"; +import { parseUrl } from "@aws-sdk/url-parser"; + +import { AmplifyUIBuilderClientConfig } from "./AmplifyUIBuilderClient"; +import { defaultRegionInfoProvider } from "./endpoints"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: AmplifyUIBuilderClientConfig) => ({ + apiVersion: "2021-08-11", + disableHostPrefix: config?.disableHostPrefix ?? false, + logger: config?.logger ?? ({} as __Logger), + regionInfoProvider: config?.regionInfoProvider ?? defaultRegionInfoProvider, + serviceId: config?.serviceId ?? "AmplifyUIBuilder", + urlParser: config?.urlParser ?? parseUrl, +}); diff --git a/clients/client-amplifyuibuilder/src/runtimeConfig.ts b/clients/client-amplifyuibuilder/src/runtimeConfig.ts new file mode 100644 index 000000000000..a1466d813dd4 --- /dev/null +++ b/clients/client-amplifyuibuilder/src/runtimeConfig.ts @@ -0,0 +1,53 @@ +// @ts-ignore: package.json will be imported from dist folders +import packageInfo from "../package.json"; // eslint-disable-line + +import { decorateDefaultCredentialProvider } from "@aws-sdk/client-sts"; +import { + NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, +} from "@aws-sdk/config-resolver"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { Hash } from "@aws-sdk/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from "@aws-sdk/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@aws-sdk/node-config-provider"; +import { NodeHttpHandler, streamCollector } from "@aws-sdk/node-http-handler"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { AmplifyUIBuilderClientConfig } from "./AmplifyUIBuilderClient"; +import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared"; +import { emitWarningIfUnsupportedVersion } from "@aws-sdk/smithy-client"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: AmplifyUIBuilderClientConfig) => { + emitWarningIfUnsupportedVersion(process.version); + const clientSharedValues = getSharedRuntimeConfig(config); + return { + ...clientSharedValues, + ...config, + runtime: "node", + base64Decoder: config?.base64Decoder ?? fromBase64, + base64Encoder: config?.base64Encoder ?? toBase64, + bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? decorateDefaultCredentialProvider(credentialDefaultProvider), + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), + maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS), + region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS), + requestHandler: config?.requestHandler ?? new NodeHttpHandler(), + retryMode: config?.retryMode ?? loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS), + sha256: config?.sha256 ?? Hash.bind(null, "sha256"), + streamCollector: config?.streamCollector ?? streamCollector, + useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS), + useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS), + utf8Decoder: config?.utf8Decoder ?? fromUtf8, + utf8Encoder: config?.utf8Encoder ?? toUtf8, + }; +}; diff --git a/clients/client-amplifyuibuilder/tsconfig.es.json b/clients/client-amplifyuibuilder/tsconfig.es.json new file mode 100644 index 000000000000..4c72364cd1a0 --- /dev/null +++ b/clients/client-amplifyuibuilder/tsconfig.es.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "lib": ["dom", "es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"], + "outDir": "dist-es" + } +} diff --git a/clients/client-amplifyuibuilder/tsconfig.json b/clients/client-amplifyuibuilder/tsconfig.json new file mode 100644 index 000000000000..093039289c53 --- /dev/null +++ b/clients/client-amplifyuibuilder/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "rootDir": "./src", + "alwaysStrict": true, + "target": "ES2018", + "module": "commonjs", + "strict": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "outDir": "dist-cjs", + "removeComments": true + }, + "typedocOptions": { + "exclude": ["**/node_modules/**", "**/*.spec.ts", "**/protocols/*.ts", "**/e2e/*.ts", "**/endpoints.ts"], + "excludeNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "includeDeclarations": true, + "stripInternal": true, + "readme": "README.md", + "mode": "file", + "out": "docs", + "theme": "minimal", + "plugin": ["@aws-sdk/service-client-documentation-generator"] + }, + "exclude": ["test/**/*"] +} diff --git a/clients/client-amplifyuibuilder/tsconfig.types.json b/clients/client-amplifyuibuilder/tsconfig.types.json new file mode 100644 index 000000000000..4c3dfa7b3d25 --- /dev/null +++ b/clients/client-amplifyuibuilder/tsconfig.types.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "removeComments": false, + "declaration": true, + "declarationDir": "dist-types", + "emitDeclarationOnly": true + }, + "exclude": ["test/**/*", "dist-types/**/*"] +} diff --git a/clients/client-api-gateway/src/endpoints.ts b/clients/client-api-gateway/src/endpoints.ts index b1fd36857c96..7b16df0a6427 100644 --- a/clients/client-api-gateway/src/endpoints.ts +++ b/clients/client-api-gateway/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-api-gateway/src/models/models_0.ts b/clients/client-api-gateway/src/models/models_0.ts index 6f61441268c5..57b00f3f435c 100644 --- a/clients/client-api-gateway/src/models/models_0.ts +++ b/clients/client-api-gateway/src/models/models_0.ts @@ -29,12 +29,12 @@ export namespace AccessLogSettings { */ export interface ThrottleSettings { /** - *

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

+ *

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

*/ burstLimit?: number; /** - *

The API request steady-state rate limit.

+ *

The API target request rate limit.

*/ rateLimit?: number; } @@ -2905,7 +2905,7 @@ export enum QuotaPeriodType { */ export interface QuotaSettings { /** - *

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

+ *

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

*/ limit?: number; @@ -2974,7 +2974,10 @@ export namespace CreateUsagePlanRequest { } /** - *

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

+ *

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

*
*

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

*
@@ -3004,12 +3007,12 @@ export interface UsagePlan { apiStages?: ApiStage[]; /** - *

The request throttle limits of a usage plan.

+ *

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

*/ throttle?: ThrottleSettings; /** - *

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

+ *

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

*/ quota?: QuotaSettings; diff --git a/clients/client-apigatewaymanagementapi/src/endpoints.ts b/clients/client-apigatewaymanagementapi/src/endpoints.ts index 265b2f582655..479acf730ebc 100644 --- a/clients/client-apigatewaymanagementapi/src/endpoints.ts +++ b/clients/client-apigatewaymanagementapi/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-apigatewayv2/src/endpoints.ts b/clients/client-apigatewayv2/src/endpoints.ts index b1fd36857c96..7b16df0a6427 100644 --- a/clients/client-apigatewayv2/src/endpoints.ts +++ b/clients/client-apigatewayv2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-app-mesh/src/endpoints.ts b/clients/client-app-mesh/src/endpoints.ts index 9ff019b55eeb..911b4ce10b4d 100644 --- a/clients/client-app-mesh/src/endpoints.ts +++ b/clients/client-app-mesh/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appconfig/src/endpoints.ts b/clients/client-appconfig/src/endpoints.ts index 6f747c5bce87..b94c45cccd44 100644 --- a/clients/client-appconfig/src/endpoints.ts +++ b/clients/client-appconfig/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appconfigdata/src/endpoints.ts b/clients/client-appconfigdata/src/endpoints.ts index 9cad5eba5350..9b5ab6e03ecb 100644 --- a/clients/client-appconfigdata/src/endpoints.ts +++ b/clients/client-appconfigdata/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appflow/src/endpoints.ts b/clients/client-appflow/src/endpoints.ts index 9304b6a8933f..fe0580f66b41 100644 --- a/clients/client-appflow/src/endpoints.ts +++ b/clients/client-appflow/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appintegrations/src/endpoints.ts b/clients/client-appintegrations/src/endpoints.ts index 20a9bbec0803..33ae06f717e0 100644 --- a/clients/client-appintegrations/src/endpoints.ts +++ b/clients/client-appintegrations/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-application-auto-scaling/src/endpoints.ts b/clients/client-application-auto-scaling/src/endpoints.ts index 3e6b3de3ed6c..e71631197aa9 100644 --- a/clients/client-application-auto-scaling/src/endpoints.ts +++ b/clients/client-application-auto-scaling/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-application-discovery-service/src/endpoints.ts b/clients/client-application-discovery-service/src/endpoints.ts index a16eafe23530..48bec2f0483c 100644 --- a/clients/client-application-discovery-service/src/endpoints.ts +++ b/clients/client-application-discovery-service/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-application-insights/src/endpoints.ts b/clients/client-application-insights/src/endpoints.ts index 12337f49796d..674286332101 100644 --- a/clients/client-application-insights/src/endpoints.ts +++ b/clients/client-application-insights/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-applicationcostprofiler/src/endpoints.ts b/clients/client-applicationcostprofiler/src/endpoints.ts index e27aeb4486c7..b68e66674d6e 100644 --- a/clients/client-applicationcostprofiler/src/endpoints.ts +++ b/clients/client-applicationcostprofiler/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-apprunner/src/endpoints.ts b/clients/client-apprunner/src/endpoints.ts index d3a8dbc4fae9..9a055bee25aa 100644 --- a/clients/client-apprunner/src/endpoints.ts +++ b/clients/client-apprunner/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appstream/src/endpoints.ts b/clients/client-appstream/src/endpoints.ts index bc91b82eac37..3776ce1866f6 100644 --- a/clients/client-appstream/src/endpoints.ts +++ b/clients/client-appstream/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appsync/README.md b/clients/client-appsync/README.md index e79d656010af..f9da3b2ca3b7 100644 --- a/clients/client-appsync/README.md +++ b/clients/client-appsync/README.md @@ -25,16 +25,16 @@ using your favorite package manager: The AWS SDK is modulized by clients and commands. To send a request, you only need to import the `AppSyncClient` and -the commands you need, for example `CreateApiCacheCommand`: +the commands you need, for example `AssociateApiCommand`: ```js // ES5 example -const { AppSyncClient, CreateApiCacheCommand } = require("@aws-sdk/client-appsync"); +const { AppSyncClient, AssociateApiCommand } = require("@aws-sdk/client-appsync"); ``` ```ts // ES6+ example -import { AppSyncClient, CreateApiCacheCommand } from "@aws-sdk/client-appsync"; +import { AppSyncClient, AssociateApiCommand } from "@aws-sdk/client-appsync"; ``` ### Usage @@ -53,7 +53,7 @@ const client = new AppSyncClient({ region: "REGION" }); const params = { /** input parameters */ }; -const command = new CreateApiCacheCommand(params); +const command = new AssociateApiCommand(params); ``` #### Async/await @@ -132,7 +132,7 @@ const client = new AWS.AppSync({ region: "REGION" }); // async/await. try { - const data = await client.createApiCache(params); + const data = await client.associateApi(params); // process data. } catch (error) { // error handling. @@ -140,7 +140,7 @@ try { // Promises. client - .createApiCache(params) + .associateApi(params) .then((data) => { // process data. }) @@ -149,7 +149,7 @@ client }); // callbacks. -client.createApiCache(params, (err, data) => { +client.associateApi(params, (err, data) => { // proccess err and data. }); ``` diff --git a/clients/client-appsync/src/AppSync.ts b/clients/client-appsync/src/AppSync.ts index 5c3e81c2754f..12e5dd49d899 100644 --- a/clients/client-appsync/src/AppSync.ts +++ b/clients/client-appsync/src/AppSync.ts @@ -1,6 +1,11 @@ import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; import { AppSyncClient } from "./AppSyncClient"; +import { + AssociateApiCommand, + AssociateApiCommandInput, + AssociateApiCommandOutput, +} from "./commands/AssociateApiCommand"; import { CreateApiCacheCommand, CreateApiCacheCommandInput, @@ -16,6 +21,11 @@ import { CreateDataSourceCommandInput, CreateDataSourceCommandOutput, } from "./commands/CreateDataSourceCommand"; +import { + CreateDomainNameCommand, + CreateDomainNameCommandInput, + CreateDomainNameCommandOutput, +} from "./commands/CreateDomainNameCommand"; import { CreateFunctionCommand, CreateFunctionCommandInput, @@ -47,6 +57,11 @@ import { DeleteDataSourceCommandInput, DeleteDataSourceCommandOutput, } from "./commands/DeleteDataSourceCommand"; +import { + DeleteDomainNameCommand, + DeleteDomainNameCommandInput, + DeleteDomainNameCommandOutput, +} from "./commands/DeleteDomainNameCommand"; import { DeleteFunctionCommand, DeleteFunctionCommandInput, @@ -63,17 +78,32 @@ import { DeleteResolverCommandOutput, } from "./commands/DeleteResolverCommand"; import { DeleteTypeCommand, DeleteTypeCommandInput, DeleteTypeCommandOutput } from "./commands/DeleteTypeCommand"; +import { + DisassociateApiCommand, + DisassociateApiCommandInput, + DisassociateApiCommandOutput, +} from "./commands/DisassociateApiCommand"; import { FlushApiCacheCommand, FlushApiCacheCommandInput, FlushApiCacheCommandOutput, } from "./commands/FlushApiCacheCommand"; +import { + GetApiAssociationCommand, + GetApiAssociationCommandInput, + GetApiAssociationCommandOutput, +} from "./commands/GetApiAssociationCommand"; import { GetApiCacheCommand, GetApiCacheCommandInput, GetApiCacheCommandOutput } from "./commands/GetApiCacheCommand"; import { GetDataSourceCommand, GetDataSourceCommandInput, GetDataSourceCommandOutput, } from "./commands/GetDataSourceCommand"; +import { + GetDomainNameCommand, + GetDomainNameCommandInput, + GetDomainNameCommandOutput, +} from "./commands/GetDomainNameCommand"; import { GetFunctionCommand, GetFunctionCommandInput, GetFunctionCommandOutput } from "./commands/GetFunctionCommand"; import { GetGraphqlApiCommand, @@ -98,6 +128,11 @@ import { ListDataSourcesCommandInput, ListDataSourcesCommandOutput, } from "./commands/ListDataSourcesCommand"; +import { + ListDomainNamesCommand, + ListDomainNamesCommandInput, + ListDomainNamesCommandOutput, +} from "./commands/ListDomainNamesCommand"; import { ListFunctionsCommand, ListFunctionsCommandInput, @@ -150,6 +185,11 @@ import { UpdateDataSourceCommandInput, UpdateDataSourceCommandOutput, } from "./commands/UpdateDataSourceCommand"; +import { + UpdateDomainNameCommand, + UpdateDomainNameCommandInput, + UpdateDomainNameCommandOutput, +} from "./commands/UpdateDomainNameCommand"; import { UpdateFunctionCommand, UpdateFunctionCommandInput, @@ -172,6 +212,35 @@ import { UpdateTypeCommand, UpdateTypeCommandInput, UpdateTypeCommandOutput } fr * sources using GraphQL from your application.

*/ export class AppSync extends AppSyncClient { + /** + *

Maps an endpoint to your custom domain.

+ */ + public associateApi( + args: AssociateApiCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public associateApi(args: AssociateApiCommandInput, cb: (err: any, data?: AssociateApiCommandOutput) => void): void; + public associateApi( + args: AssociateApiCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AssociateApiCommandOutput) => void + ): void; + public associateApi( + args: AssociateApiCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AssociateApiCommandOutput) => void), + cb?: (err: any, data?: AssociateApiCommandOutput) => void + ): Promise | void { + const command = new AssociateApiCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Creates a cache for the GraphQL API.

*/ @@ -205,8 +274,7 @@ export class AppSync extends AppSyncClient { } /** - *

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

+ *

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

*/ public createApiKey( args: CreateApiKeyCommandInput, @@ -266,9 +334,41 @@ export class AppSync extends AppSyncClient { } } + /** + *

Creates a custom DomainName object.

+ */ + public createDomainName( + args: CreateDomainNameCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createDomainName( + args: CreateDomainNameCommandInput, + cb: (err: any, data?: CreateDomainNameCommandOutput) => void + ): void; + public createDomainName( + args: CreateDomainNameCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateDomainNameCommandOutput) => void + ): void; + public createDomainName( + args: CreateDomainNameCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateDomainNameCommandOutput) => void), + cb?: (err: any, data?: CreateDomainNameCommandOutput) => void + ): Promise | void { + const command = new CreateDomainNameCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Creates a Function object.

- *

A function is a reusable entity. Multiple functions can be used to compose the resolver + *

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

*/ public createFunction( @@ -334,7 +434,7 @@ export class AppSync extends AppSyncClient { /** *

Creates a Resolver object.

- *

A resolver converts incoming requests into a format that a data source can understand + *

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

*/ public createResolver( @@ -485,6 +585,38 @@ export class AppSync extends AppSyncClient { } } + /** + *

Deletes a custom DomainName object.

+ */ + public deleteDomainName( + args: DeleteDomainNameCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteDomainName( + args: DeleteDomainNameCommandInput, + cb: (err: any, data?: DeleteDomainNameCommandOutput) => void + ): void; + public deleteDomainName( + args: DeleteDomainNameCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteDomainNameCommandOutput) => void + ): void; + public deleteDomainName( + args: DeleteDomainNameCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteDomainNameCommandOutput) => void), + cb?: (err: any, data?: DeleteDomainNameCommandOutput) => void + ): Promise | void { + const command = new DeleteDomainNameCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Deletes a Function.

*/ @@ -607,6 +739,38 @@ export class AppSync extends AppSyncClient { } } + /** + *

Removes an ApiAssociation object from a custom domain.

+ */ + public disassociateApi( + args: DisassociateApiCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public disassociateApi( + args: DisassociateApiCommandInput, + cb: (err: any, data?: DisassociateApiCommandOutput) => void + ): void; + public disassociateApi( + args: DisassociateApiCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateApiCommandOutput) => void + ): void; + public disassociateApi( + args: DisassociateApiCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DisassociateApiCommandOutput) => void), + cb?: (err: any, data?: DisassociateApiCommandOutput) => void + ): Promise | void { + const command = new DisassociateApiCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Flushes an ApiCache object.

*/ @@ -639,6 +803,38 @@ export class AppSync extends AppSyncClient { } } + /** + *

Retrieves an ApiAssociation object.

+ */ + public getApiAssociation( + args: GetApiAssociationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getApiAssociation( + args: GetApiAssociationCommandInput, + cb: (err: any, data?: GetApiAssociationCommandOutput) => void + ): void; + public getApiAssociation( + args: GetApiAssociationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetApiAssociationCommandOutput) => void + ): void; + public getApiAssociation( + args: GetApiAssociationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetApiAssociationCommandOutput) => void), + cb?: (err: any, data?: GetApiAssociationCommandOutput) => void + ): Promise | void { + const command = new GetApiAssociationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Retrieves an ApiCache object.

*/ @@ -697,6 +893,38 @@ export class AppSync extends AppSyncClient { } } + /** + *

Retrieves a custom DomainName object.

+ */ + public getDomainName( + args: GetDomainNameCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getDomainName( + args: GetDomainNameCommandInput, + cb: (err: any, data?: GetDomainNameCommandOutput) => void + ): void; + public getDomainName( + args: GetDomainNameCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetDomainNameCommandOutput) => void + ): void; + public getDomainName( + args: GetDomainNameCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetDomainNameCommandOutput) => void), + cb?: (err: any, data?: GetDomainNameCommandOutput) => void + ): Promise | void { + const command = new GetDomainNameCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Get a Function.

*/ @@ -935,6 +1163,38 @@ export class AppSync extends AppSyncClient { } } + /** + *

Lists multiple custom domain names.

+ */ + public listDomainNames( + args: ListDomainNamesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listDomainNames( + args: ListDomainNamesCommandInput, + cb: (err: any, data?: ListDomainNamesCommandOutput) => void + ): void; + public listDomainNames( + args: ListDomainNamesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDomainNamesCommandOutput) => void + ): void; + public listDomainNames( + args: ListDomainNamesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListDomainNamesCommandOutput) => void), + cb?: (err: any, data?: ListDomainNamesCommandOutput) => void + ): Promise | void { + const command = new ListDomainNamesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

List multiple functions.

*/ @@ -1246,7 +1506,7 @@ export class AppSync extends AppSyncClient { } /** - *

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

+ *

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

*/ public updateApiKey( args: UpdateApiKeyCommandInput, @@ -1306,6 +1566,38 @@ export class AppSync extends AppSyncClient { } } + /** + *

Updates a custom DomainName object.

+ */ + public updateDomainName( + args: UpdateDomainNameCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateDomainName( + args: UpdateDomainNameCommandInput, + cb: (err: any, data?: UpdateDomainNameCommandOutput) => void + ): void; + public updateDomainName( + args: UpdateDomainNameCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateDomainNameCommandOutput) => void + ): void; + public updateDomainName( + args: UpdateDomainNameCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateDomainNameCommandOutput) => void), + cb?: (err: any, data?: UpdateDomainNameCommandOutput) => void + ): Promise | void { + const command = new UpdateDomainNameCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Updates a Function object.

*/ diff --git a/clients/client-appsync/src/AppSyncClient.ts b/clients/client-appsync/src/AppSyncClient.ts index bc5824483eec..846ea57c4452 100644 --- a/clients/client-appsync/src/AppSyncClient.ts +++ b/clients/client-appsync/src/AppSyncClient.ts @@ -49,9 +49,11 @@ import { UserAgent as __UserAgent, } from "@aws-sdk/types"; +import { AssociateApiCommandInput, AssociateApiCommandOutput } from "./commands/AssociateApiCommand"; import { CreateApiCacheCommandInput, CreateApiCacheCommandOutput } from "./commands/CreateApiCacheCommand"; import { CreateApiKeyCommandInput, CreateApiKeyCommandOutput } from "./commands/CreateApiKeyCommand"; import { CreateDataSourceCommandInput, CreateDataSourceCommandOutput } from "./commands/CreateDataSourceCommand"; +import { CreateDomainNameCommandInput, CreateDomainNameCommandOutput } from "./commands/CreateDomainNameCommand"; import { CreateFunctionCommandInput, CreateFunctionCommandOutput } from "./commands/CreateFunctionCommand"; import { CreateGraphqlApiCommandInput, CreateGraphqlApiCommandOutput } from "./commands/CreateGraphqlApiCommand"; import { CreateResolverCommandInput, CreateResolverCommandOutput } from "./commands/CreateResolverCommand"; @@ -59,13 +61,17 @@ import { CreateTypeCommandInput, CreateTypeCommandOutput } from "./commands/Crea import { DeleteApiCacheCommandInput, DeleteApiCacheCommandOutput } from "./commands/DeleteApiCacheCommand"; import { DeleteApiKeyCommandInput, DeleteApiKeyCommandOutput } from "./commands/DeleteApiKeyCommand"; import { DeleteDataSourceCommandInput, DeleteDataSourceCommandOutput } from "./commands/DeleteDataSourceCommand"; +import { DeleteDomainNameCommandInput, DeleteDomainNameCommandOutput } from "./commands/DeleteDomainNameCommand"; import { DeleteFunctionCommandInput, DeleteFunctionCommandOutput } from "./commands/DeleteFunctionCommand"; import { DeleteGraphqlApiCommandInput, DeleteGraphqlApiCommandOutput } from "./commands/DeleteGraphqlApiCommand"; import { DeleteResolverCommandInput, DeleteResolverCommandOutput } from "./commands/DeleteResolverCommand"; import { DeleteTypeCommandInput, DeleteTypeCommandOutput } from "./commands/DeleteTypeCommand"; +import { DisassociateApiCommandInput, DisassociateApiCommandOutput } from "./commands/DisassociateApiCommand"; import { FlushApiCacheCommandInput, FlushApiCacheCommandOutput } from "./commands/FlushApiCacheCommand"; +import { GetApiAssociationCommandInput, GetApiAssociationCommandOutput } from "./commands/GetApiAssociationCommand"; import { GetApiCacheCommandInput, GetApiCacheCommandOutput } from "./commands/GetApiCacheCommand"; import { GetDataSourceCommandInput, GetDataSourceCommandOutput } from "./commands/GetDataSourceCommand"; +import { GetDomainNameCommandInput, GetDomainNameCommandOutput } from "./commands/GetDomainNameCommand"; import { GetFunctionCommandInput, GetFunctionCommandOutput } from "./commands/GetFunctionCommand"; import { GetGraphqlApiCommandInput, GetGraphqlApiCommandOutput } from "./commands/GetGraphqlApiCommand"; import { @@ -80,6 +86,7 @@ import { import { GetTypeCommandInput, GetTypeCommandOutput } from "./commands/GetTypeCommand"; import { ListApiKeysCommandInput, ListApiKeysCommandOutput } from "./commands/ListApiKeysCommand"; import { ListDataSourcesCommandInput, ListDataSourcesCommandOutput } from "./commands/ListDataSourcesCommand"; +import { ListDomainNamesCommandInput, ListDomainNamesCommandOutput } from "./commands/ListDomainNamesCommand"; import { ListFunctionsCommandInput, ListFunctionsCommandOutput } from "./commands/ListFunctionsCommand"; import { ListGraphqlApisCommandInput, ListGraphqlApisCommandOutput } from "./commands/ListGraphqlApisCommand"; import { @@ -101,6 +108,7 @@ import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./command import { UpdateApiCacheCommandInput, UpdateApiCacheCommandOutput } from "./commands/UpdateApiCacheCommand"; import { UpdateApiKeyCommandInput, UpdateApiKeyCommandOutput } from "./commands/UpdateApiKeyCommand"; import { UpdateDataSourceCommandInput, UpdateDataSourceCommandOutput } from "./commands/UpdateDataSourceCommand"; +import { UpdateDomainNameCommandInput, UpdateDomainNameCommandOutput } from "./commands/UpdateDomainNameCommand"; import { UpdateFunctionCommandInput, UpdateFunctionCommandOutput } from "./commands/UpdateFunctionCommand"; import { UpdateGraphqlApiCommandInput, UpdateGraphqlApiCommandOutput } from "./commands/UpdateGraphqlApiCommand"; import { UpdateResolverCommandInput, UpdateResolverCommandOutput } from "./commands/UpdateResolverCommand"; @@ -108,9 +116,11 @@ import { UpdateTypeCommandInput, UpdateTypeCommandOutput } from "./commands/Upda import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; export type ServiceInputTypes = + | AssociateApiCommandInput | CreateApiCacheCommandInput | CreateApiKeyCommandInput | CreateDataSourceCommandInput + | CreateDomainNameCommandInput | CreateFunctionCommandInput | CreateGraphqlApiCommandInput | CreateResolverCommandInput @@ -118,13 +128,17 @@ export type ServiceInputTypes = | DeleteApiCacheCommandInput | DeleteApiKeyCommandInput | DeleteDataSourceCommandInput + | DeleteDomainNameCommandInput | DeleteFunctionCommandInput | DeleteGraphqlApiCommandInput | DeleteResolverCommandInput | DeleteTypeCommandInput + | DisassociateApiCommandInput | FlushApiCacheCommandInput + | GetApiAssociationCommandInput | GetApiCacheCommandInput | GetDataSourceCommandInput + | GetDomainNameCommandInput | GetFunctionCommandInput | GetGraphqlApiCommandInput | GetIntrospectionSchemaCommandInput @@ -133,6 +147,7 @@ export type ServiceInputTypes = | GetTypeCommandInput | ListApiKeysCommandInput | ListDataSourcesCommandInput + | ListDomainNamesCommandInput | ListFunctionsCommandInput | ListGraphqlApisCommandInput | ListResolversByFunctionCommandInput @@ -145,15 +160,18 @@ export type ServiceInputTypes = | UpdateApiCacheCommandInput | UpdateApiKeyCommandInput | UpdateDataSourceCommandInput + | UpdateDomainNameCommandInput | UpdateFunctionCommandInput | UpdateGraphqlApiCommandInput | UpdateResolverCommandInput | UpdateTypeCommandInput; export type ServiceOutputTypes = + | AssociateApiCommandOutput | CreateApiCacheCommandOutput | CreateApiKeyCommandOutput | CreateDataSourceCommandOutput + | CreateDomainNameCommandOutput | CreateFunctionCommandOutput | CreateGraphqlApiCommandOutput | CreateResolverCommandOutput @@ -161,13 +179,17 @@ export type ServiceOutputTypes = | DeleteApiCacheCommandOutput | DeleteApiKeyCommandOutput | DeleteDataSourceCommandOutput + | DeleteDomainNameCommandOutput | DeleteFunctionCommandOutput | DeleteGraphqlApiCommandOutput | DeleteResolverCommandOutput | DeleteTypeCommandOutput + | DisassociateApiCommandOutput | FlushApiCacheCommandOutput + | GetApiAssociationCommandOutput | GetApiCacheCommandOutput | GetDataSourceCommandOutput + | GetDomainNameCommandOutput | GetFunctionCommandOutput | GetGraphqlApiCommandOutput | GetIntrospectionSchemaCommandOutput @@ -176,6 +198,7 @@ export type ServiceOutputTypes = | GetTypeCommandOutput | ListApiKeysCommandOutput | ListDataSourcesCommandOutput + | ListDomainNamesCommandOutput | ListFunctionsCommandOutput | ListGraphqlApisCommandOutput | ListResolversByFunctionCommandOutput @@ -188,6 +211,7 @@ export type ServiceOutputTypes = | UpdateApiCacheCommandOutput | UpdateApiKeyCommandOutput | UpdateDataSourceCommandOutput + | UpdateDomainNameCommandOutput | UpdateFunctionCommandOutput | UpdateGraphqlApiCommandOutput | UpdateResolverCommandOutput diff --git a/clients/client-appsync/src/commands/AssociateApiCommand.ts b/clients/client-appsync/src/commands/AssociateApiCommand.ts new file mode 100644 index 000000000000..bb0a4adcade5 --- /dev/null +++ b/clients/client-appsync/src/commands/AssociateApiCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { AssociateApiRequest, AssociateApiResponse } from "../models/models_0"; +import { + deserializeAws_restJson1AssociateApiCommand, + serializeAws_restJson1AssociateApiCommand, +} from "../protocols/Aws_restJson1"; + +export interface AssociateApiCommandInput extends AssociateApiRequest {} +export interface AssociateApiCommandOutput extends AssociateApiResponse, __MetadataBearer {} + +/** + *

Maps an endpoint to your custom domain.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, AssociateApiCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, AssociateApiCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new AssociateApiCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link AssociateApiCommandInput} for command's `input` shape. + * @see {@link AssociateApiCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class AssociateApiCommand extends $Command< + AssociateApiCommandInput, + AssociateApiCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AssociateApiCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "AssociateApiCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AssociateApiRequest.filterSensitiveLog, + outputFilterSensitiveLog: AssociateApiResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AssociateApiCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1AssociateApiCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1AssociateApiCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/CreateApiKeyCommand.ts b/clients/client-appsync/src/commands/CreateApiKeyCommand.ts index a0dc71cfdcd3..3a6c860aebd4 100644 --- a/clients/client-appsync/src/commands/CreateApiKeyCommand.ts +++ b/clients/client-appsync/src/commands/CreateApiKeyCommand.ts @@ -22,8 +22,7 @@ export interface CreateApiKeyCommandInput extends CreateApiKeyRequest {} export interface CreateApiKeyCommandOutput extends CreateApiKeyResponse, __MetadataBearer {} /** - *

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

+ *

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

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appsync/src/commands/CreateDomainNameCommand.ts b/clients/client-appsync/src/commands/CreateDomainNameCommand.ts new file mode 100644 index 000000000000..82cf25451267 --- /dev/null +++ b/clients/client-appsync/src/commands/CreateDomainNameCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { CreateDomainNameRequest, CreateDomainNameResponse } from "../models/models_0"; +import { + deserializeAws_restJson1CreateDomainNameCommand, + serializeAws_restJson1CreateDomainNameCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateDomainNameCommandInput extends CreateDomainNameRequest {} +export interface CreateDomainNameCommandOutput extends CreateDomainNameResponse, __MetadataBearer {} + +/** + *

Creates a custom DomainName object.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, CreateDomainNameCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, CreateDomainNameCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new CreateDomainNameCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateDomainNameCommandInput} for command's `input` shape. + * @see {@link CreateDomainNameCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class CreateDomainNameCommand extends $Command< + CreateDomainNameCommandInput, + CreateDomainNameCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateDomainNameCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "CreateDomainNameCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateDomainNameRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateDomainNameResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateDomainNameCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateDomainNameCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateDomainNameCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/CreateFunctionCommand.ts b/clients/client-appsync/src/commands/CreateFunctionCommand.ts index ddde3130548c..a9726732a4c1 100644 --- a/clients/client-appsync/src/commands/CreateFunctionCommand.ts +++ b/clients/client-appsync/src/commands/CreateFunctionCommand.ts @@ -23,7 +23,7 @@ export interface CreateFunctionCommandOutput extends CreateFunctionResponse, __M /** *

Creates a Function object.

- *

A function is a reusable entity. Multiple functions can be used to compose the resolver + *

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

* @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-appsync/src/commands/CreateResolverCommand.ts b/clients/client-appsync/src/commands/CreateResolverCommand.ts index e1cb2b3ba0e3..730dc65f5402 100644 --- a/clients/client-appsync/src/commands/CreateResolverCommand.ts +++ b/clients/client-appsync/src/commands/CreateResolverCommand.ts @@ -23,7 +23,7 @@ export interface CreateResolverCommandOutput extends CreateResolverResponse, __M /** *

Creates a Resolver object.

- *

A resolver converts incoming requests into a format that a data source can understand + *

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

* @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-appsync/src/commands/DeleteDomainNameCommand.ts b/clients/client-appsync/src/commands/DeleteDomainNameCommand.ts new file mode 100644 index 000000000000..277a474399f2 --- /dev/null +++ b/clients/client-appsync/src/commands/DeleteDomainNameCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { DeleteDomainNameRequest, DeleteDomainNameResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DeleteDomainNameCommand, + serializeAws_restJson1DeleteDomainNameCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteDomainNameCommandInput extends DeleteDomainNameRequest {} +export interface DeleteDomainNameCommandOutput extends DeleteDomainNameResponse, __MetadataBearer {} + +/** + *

Deletes a custom DomainName object.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, DeleteDomainNameCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, DeleteDomainNameCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new DeleteDomainNameCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteDomainNameCommandInput} for command's `input` shape. + * @see {@link DeleteDomainNameCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class DeleteDomainNameCommand extends $Command< + DeleteDomainNameCommandInput, + DeleteDomainNameCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteDomainNameCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "DeleteDomainNameCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteDomainNameRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteDomainNameResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteDomainNameCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteDomainNameCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteDomainNameCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/DisassociateApiCommand.ts b/clients/client-appsync/src/commands/DisassociateApiCommand.ts new file mode 100644 index 000000000000..09e82954346e --- /dev/null +++ b/clients/client-appsync/src/commands/DisassociateApiCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { DisassociateApiRequest, DisassociateApiResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DisassociateApiCommand, + serializeAws_restJson1DisassociateApiCommand, +} from "../protocols/Aws_restJson1"; + +export interface DisassociateApiCommandInput extends DisassociateApiRequest {} +export interface DisassociateApiCommandOutput extends DisassociateApiResponse, __MetadataBearer {} + +/** + *

Removes an ApiAssociation object from a custom domain.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, DisassociateApiCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, DisassociateApiCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new DisassociateApiCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DisassociateApiCommandInput} for command's `input` shape. + * @see {@link DisassociateApiCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class DisassociateApiCommand extends $Command< + DisassociateApiCommandInput, + DisassociateApiCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DisassociateApiCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "DisassociateApiCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DisassociateApiRequest.filterSensitiveLog, + outputFilterSensitiveLog: DisassociateApiResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DisassociateApiCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DisassociateApiCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DisassociateApiCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/GetApiAssociationCommand.ts b/clients/client-appsync/src/commands/GetApiAssociationCommand.ts new file mode 100644 index 000000000000..d347a723c264 --- /dev/null +++ b/clients/client-appsync/src/commands/GetApiAssociationCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { GetApiAssociationRequest, GetApiAssociationResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetApiAssociationCommand, + serializeAws_restJson1GetApiAssociationCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetApiAssociationCommandInput extends GetApiAssociationRequest {} +export interface GetApiAssociationCommandOutput extends GetApiAssociationResponse, __MetadataBearer {} + +/** + *

Retrieves an ApiAssociation object.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, GetApiAssociationCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, GetApiAssociationCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new GetApiAssociationCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetApiAssociationCommandInput} for command's `input` shape. + * @see {@link GetApiAssociationCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class GetApiAssociationCommand extends $Command< + GetApiAssociationCommandInput, + GetApiAssociationCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetApiAssociationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "GetApiAssociationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetApiAssociationRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetApiAssociationResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetApiAssociationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetApiAssociationCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetApiAssociationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/GetDomainNameCommand.ts b/clients/client-appsync/src/commands/GetDomainNameCommand.ts new file mode 100644 index 000000000000..fe6e50774d66 --- /dev/null +++ b/clients/client-appsync/src/commands/GetDomainNameCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { GetDomainNameRequest, GetDomainNameResponse } from "../models/models_0"; +import { + deserializeAws_restJson1GetDomainNameCommand, + serializeAws_restJson1GetDomainNameCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetDomainNameCommandInput extends GetDomainNameRequest {} +export interface GetDomainNameCommandOutput extends GetDomainNameResponse, __MetadataBearer {} + +/** + *

Retrieves a custom DomainName object.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, GetDomainNameCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, GetDomainNameCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new GetDomainNameCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetDomainNameCommandInput} for command's `input` shape. + * @see {@link GetDomainNameCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class GetDomainNameCommand extends $Command< + GetDomainNameCommandInput, + GetDomainNameCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetDomainNameCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "GetDomainNameCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetDomainNameRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetDomainNameResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetDomainNameCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetDomainNameCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetDomainNameCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/ListDomainNamesCommand.ts b/clients/client-appsync/src/commands/ListDomainNamesCommand.ts new file mode 100644 index 000000000000..0df24a70d7eb --- /dev/null +++ b/clients/client-appsync/src/commands/ListDomainNamesCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { ListDomainNamesRequest, ListDomainNamesResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListDomainNamesCommand, + serializeAws_restJson1ListDomainNamesCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListDomainNamesCommandInput extends ListDomainNamesRequest {} +export interface ListDomainNamesCommandOutput extends ListDomainNamesResponse, __MetadataBearer {} + +/** + *

Lists multiple custom domain names.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, ListDomainNamesCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, ListDomainNamesCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new ListDomainNamesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListDomainNamesCommandInput} for command's `input` shape. + * @see {@link ListDomainNamesCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class ListDomainNamesCommand extends $Command< + ListDomainNamesCommandInput, + ListDomainNamesCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListDomainNamesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "ListDomainNamesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListDomainNamesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListDomainNamesResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListDomainNamesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListDomainNamesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListDomainNamesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/UpdateApiKeyCommand.ts b/clients/client-appsync/src/commands/UpdateApiKeyCommand.ts index 7f932c170381..18b99a7d4990 100644 --- a/clients/client-appsync/src/commands/UpdateApiKeyCommand.ts +++ b/clients/client-appsync/src/commands/UpdateApiKeyCommand.ts @@ -22,7 +22,7 @@ export interface UpdateApiKeyCommandInput extends UpdateApiKeyRequest {} export interface UpdateApiKeyCommandOutput extends UpdateApiKeyResponse, __MetadataBearer {} /** - *

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

+ *

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

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-appsync/src/commands/UpdateDomainNameCommand.ts b/clients/client-appsync/src/commands/UpdateDomainNameCommand.ts new file mode 100644 index 000000000000..0ccab8b1dfda --- /dev/null +++ b/clients/client-appsync/src/commands/UpdateDomainNameCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AppSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppSyncClient"; +import { UpdateDomainNameRequest, UpdateDomainNameResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UpdateDomainNameCommand, + serializeAws_restJson1UpdateDomainNameCommand, +} from "../protocols/Aws_restJson1"; + +export interface UpdateDomainNameCommandInput extends UpdateDomainNameRequest {} +export interface UpdateDomainNameCommandOutput extends UpdateDomainNameResponse, __MetadataBearer {} + +/** + *

Updates a custom DomainName object.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { AppSyncClient, UpdateDomainNameCommand } from "@aws-sdk/client-appsync"; // ES Modules import + * // const { AppSyncClient, UpdateDomainNameCommand } = require("@aws-sdk/client-appsync"); // CommonJS import + * const client = new AppSyncClient(config); + * const command = new UpdateDomainNameCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateDomainNameCommandInput} for command's `input` shape. + * @see {@link UpdateDomainNameCommandOutput} for command's `response` shape. + * @see {@link AppSyncClientResolvedConfig | config} for AppSyncClient's `config` shape. + * + */ +export class UpdateDomainNameCommand extends $Command< + UpdateDomainNameCommandInput, + UpdateDomainNameCommandOutput, + AppSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateDomainNameCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: AppSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "AppSyncClient"; + const commandName = "UpdateDomainNameCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateDomainNameRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateDomainNameResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateDomainNameCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateDomainNameCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateDomainNameCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-appsync/src/commands/index.ts b/clients/client-appsync/src/commands/index.ts index d10cd88a194e..2827af421ce9 100644 --- a/clients/client-appsync/src/commands/index.ts +++ b/clients/client-appsync/src/commands/index.ts @@ -1,6 +1,8 @@ +export * from "./AssociateApiCommand"; export * from "./CreateApiCacheCommand"; export * from "./CreateApiKeyCommand"; export * from "./CreateDataSourceCommand"; +export * from "./CreateDomainNameCommand"; export * from "./CreateFunctionCommand"; export * from "./CreateGraphqlApiCommand"; export * from "./CreateResolverCommand"; @@ -8,13 +10,17 @@ export * from "./CreateTypeCommand"; export * from "./DeleteApiCacheCommand"; export * from "./DeleteApiKeyCommand"; export * from "./DeleteDataSourceCommand"; +export * from "./DeleteDomainNameCommand"; export * from "./DeleteFunctionCommand"; export * from "./DeleteGraphqlApiCommand"; export * from "./DeleteResolverCommand"; export * from "./DeleteTypeCommand"; +export * from "./DisassociateApiCommand"; export * from "./FlushApiCacheCommand"; +export * from "./GetApiAssociationCommand"; export * from "./GetApiCacheCommand"; export * from "./GetDataSourceCommand"; +export * from "./GetDomainNameCommand"; export * from "./GetFunctionCommand"; export * from "./GetGraphqlApiCommand"; export * from "./GetIntrospectionSchemaCommand"; @@ -23,6 +29,7 @@ export * from "./GetSchemaCreationStatusCommand"; export * from "./GetTypeCommand"; export * from "./ListApiKeysCommand"; export * from "./ListDataSourcesCommand"; +export * from "./ListDomainNamesCommand"; export * from "./ListFunctionsCommand"; export * from "./ListGraphqlApisCommand"; export * from "./ListResolversByFunctionCommand"; @@ -35,6 +42,7 @@ export * from "./UntagResourceCommand"; export * from "./UpdateApiCacheCommand"; export * from "./UpdateApiKeyCommand"; export * from "./UpdateDataSourceCommand"; +export * from "./UpdateDomainNameCommand"; export * from "./UpdateFunctionCommand"; export * from "./UpdateGraphqlApiCommand"; export * from "./UpdateResolverCommand"; diff --git a/clients/client-appsync/src/endpoints.ts b/clients/client-appsync/src/endpoints.ts index e5b91eadf6ed..5fa1f1bbbec4 100644 --- a/clients/client-appsync/src/endpoints.ts +++ b/clients/client-appsync/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-appsync/src/models/models_0.ts b/clients/client-appsync/src/models/models_0.ts index 804624bcd11b..f62cfc9da1c5 100644 --- a/clients/client-appsync/src/models/models_0.ts +++ b/clients/client-appsync/src/models/models_0.ts @@ -1,7 +1,7 @@ import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException } from "@aws-sdk/types"; /** - *

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

+ *

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

*/ export interface AccessDeniedException extends __SmithyException, $MetadataBearer { name: "AccessDeniedException"; @@ -27,25 +27,28 @@ export enum AuthenticationType { } /** - *

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

+ *

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

*/ export interface LambdaAuthorizerConfig { /** *

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

+ * seconds). The Lambda function can override this by returning a + * ttlOverride key in its response. A value of 0 disables caching of + * responses.

*/ authorizerResultTtlInSeconds?: number; /** - *

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

+ *

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

*

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

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

*

* aws lambda add-permission --function-name * "arn:aws:lambda:us-east-2:111122223333:function:my-function" --statement-id "appsync" @@ -71,30 +74,30 @@ export namespace LambdaAuthorizerConfig { } /** - *

Describes an OpenID Connect configuration.

+ *

Describes an OpenID Connect (OIDC) configuration.

*/ export interface OpenIDConnectConfig { /** - *

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

+ *

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

*/ issuer: string | undefined; /** - *

The client identifier of the Relying party at the OpenID identity provider. This - * identifier is typically obtained when the Relying party is registered with the OpenID - * identity provider. You can specify a regular expression so the AppSync can + *

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

*/ clientId?: string; /** - *

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

+ *

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

*/ iatTTL?: number; /** - *

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

+ *

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

*/ authTTL?: number; } @@ -143,13 +146,13 @@ export namespace CognitoUserPoolConfig { */ export interface AdditionalAuthenticationProvider { /** - *

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

+ *

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

*/ authenticationType?: AuthenticationType | string; /** - *

The OpenID Connect configuration.

+ *

The OIDC configuration.

*/ openIDConnectConfig?: OpenIDConnectConfig; @@ -159,7 +162,7 @@ export interface AdditionalAuthenticationProvider { userPoolConfig?: CognitoUserPoolConfig; /** - *

Configuration for Amazon Web Services Lambda function authorization.

+ *

Configuration for Lambda function authorization.

*/ lambdaAuthorizerConfig?: LambdaAuthorizerConfig; } @@ -173,6 +176,63 @@ export namespace AdditionalAuthenticationProvider { }); } +export enum AssociationStatus { + Failed = "FAILED", + Processing = "PROCESSING", + Success = "SUCCESS", +} + +/** + *

Describes an ApiAssociation object.

+ */ +export interface ApiAssociation { + /** + *

The domain name.

+ */ + domainName?: string; + + /** + *

The API ID.

+ */ + apiId?: string; + + /** + *

Identifies the status of an association.

+ *
    + *
  • + *

    + * PROCESSING: The API association is being + * created. You cannot modify association requests during processing.

    + *
  • + *
  • + *

    + * SUCCESS: The API association was successful. + * You can modify associations after success.

    + *
  • + *
  • + *

    + * FAILED: The API association has failed. You + * can modify associations after failure.

    + *
  • + *
+ */ + associationStatus?: AssociationStatus | string; + + /** + *

Details about the last deployment status.

+ */ + deploymentDetail?: string; +} + +export namespace ApiAssociation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ApiAssociation): any => ({ + ...obj, + }); +} + export enum ApiCachingBehavior { FULL_REQUEST_CACHING = "FULL_REQUEST_CACHING", PER_RESOLVER_CACHING = "PER_RESOLVER_CACHING", @@ -210,7 +270,7 @@ export enum ApiCacheType { export interface ApiCache { /** *

TTL in seconds for cache entries.

- *

Valid values are between 1 and 3600 seconds.

+ *

Valid values are 1–3,600 seconds.

*/ ttl?: number; @@ -232,13 +292,13 @@ export interface ApiCache { apiCachingBehavior?: ApiCachingBehavior | string; /** - *

Transit encryption flag when connecting to cache. This setting cannot be updated after + *

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

*/ transitEncryptionEnabled?: boolean; /** - *

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

+ *

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

*/ atRestEncryptionEnabled?: boolean; @@ -367,10 +427,10 @@ export namespace ApiCache { *

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

*

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

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

*
    *
  • *

    @@ -390,15 +450,15 @@ export namespace ApiCache { * DeleteApiKey deletes the item from the table.

    *
  • *
  • - *

    Expiration is stored in Amazon DynamoDB as milliseconds. This results in a bug - * where keys are not automatically deleted because DynamoDB expects the TTL to be - * stored in seconds. As a one-time action, we will delete these keys from the table - * after February 21, 2018.

    + *

    Expiration is stored in DynamoDB as milliseconds. This results in a + * bug where keys are not automatically deleted because DynamoDB expects the + * TTL to be stored in seconds. As a one-time action, we deleted these keys from the + * table on February 21, 2018.

    *
  • *
*

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

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

*
    *
  • *

    @@ -414,21 +474,21 @@ export namespace ApiCache { *

    * UpdateApiKey returns the expiration time and and deletion time in * seconds and accepts a user-provided expiration time in seconds. Expired API keys are - * kept for 60 days after the expiration time. Key expiration time can be updated while - * the key is not deleted.

    + * kept for 60 days after the expiration time. You can update the key expiration time as + * long as the key isn't deleted.

    *
  • *
  • *

    * DeleteApiKey deletes the item from the table.

    *
  • *
  • - *

    Expiration is stored in Amazon DynamoDB as seconds. After the expiration time, - * using the key to authenticate will fail. But the key can be reinstated before - * deletion.

    + *

    Expiration is stored in DynamoDB as seconds. After the expiration + * time, using the key to authenticate will fail. However, you can reinstate the key + * before deletion.

    *
  • *
  • - *

    Deletion is stored in Amazon DynamoDB as seconds. The key will be deleted after - * deletion time.

    + *

    Deletion is stored in DynamoDB as seconds. The key is deleted after + * deletion time.

    *
  • *
*/ @@ -520,21 +580,114 @@ export namespace ApiLimitExceededException { }); } +export interface AssociateApiRequest { + /** + *

The domain name.

+ */ + domainName: string | undefined; + + /** + *

The API ID.

+ */ + apiId: string | undefined; +} + +export namespace AssociateApiRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AssociateApiRequest): any => ({ + ...obj, + }); +} + +export interface AssociateApiResponse { + /** + *

The ApiAssociation object.

+ */ + apiAssociation?: ApiAssociation; +} + +export namespace AssociateApiResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AssociateApiResponse): any => ({ + ...obj, + }); +} + +/** + *

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

+ */ +export interface BadRequestException extends __SmithyException, $MetadataBearer { + name: "BadRequestException"; + $fault: "client"; + message?: string; +} + +export namespace BadRequestException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: BadRequestException): any => ({ + ...obj, + }); +} + +/** + *

An internal AppSync error occurred. Try your request again.

+ */ +export interface InternalFailureException extends __SmithyException, $MetadataBearer { + name: "InternalFailureException"; + $fault: "server"; + message?: string; +} + +export namespace InternalFailureException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InternalFailureException): any => ({ + ...obj, + }); +} + +/** + *

The resource specified in the request was not found. Check the resource, and then try + * again.

+ */ +export interface NotFoundException extends __SmithyException, $MetadataBearer { + name: "NotFoundException"; + $fault: "client"; + message?: string; +} + +export namespace NotFoundException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: NotFoundException): any => ({ + ...obj, + }); +} + export enum AuthorizationType { AWS_IAM = "AWS_IAM", } /** - *

The Identity and Access Management configuration.

+ *

The Identity and Access Management (IAM) configuration.

*/ export interface AwsIamConfig { /** - *

The signing region for Identity and Access Management authorization.

+ *

The signing Amazon Web Services Region for IAM authorization.

*/ signingRegion?: string; /** - *

The signing service name for Identity and Access Management authorization.

+ *

The signing service name for IAM authorization.

*/ signingServiceName?: string; } @@ -549,23 +702,23 @@ export namespace AwsIamConfig { } /** - *

The authorization config in case the HTTP endpoint requires authorization.

+ *

The authorization configuration in case the HTTP endpoint requires authorization.

*/ export interface AuthorizationConfig { /** - *

The authorization type required by the HTTP endpoint.

+ *

The authorization type that the HTTP endpoint requires.

*
    *
  • *

    - * AWS_IAM: The authorization type is - * Sigv4.

    + * AWS_IAM: The authorization type is Signature + * Version 4 (SigV4).

    *
  • *
*/ authorizationType: AuthorizationType | string | undefined; /** - *

The Identity and Access Management settings.

+ *

The Identity and Access Management (IAM) settings.

*/ awsIamConfig?: AwsIamConfig; } @@ -579,28 +732,9 @@ export namespace AuthorizationConfig { }); } -/** - *

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

- */ -export interface BadRequestException extends __SmithyException, $MetadataBearer { - name: "BadRequestException"; - $fault: "client"; - message?: string; -} - -export namespace BadRequestException { - /** - * @internal - */ - export const filterSensitiveLog = (obj: BadRequestException): any => ({ - ...obj, - }); -} - /** *

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

+ * make your change.

*/ export interface ConcurrentModificationException extends __SmithyException, $MetadataBearer { name: "ConcurrentModificationException"; @@ -622,24 +756,24 @@ export namespace ConcurrentModificationException { */ export interface CreateApiCacheRequest { /** - *

The GraphQL API Id.

+ *

The GraphQL API ID.

*/ apiId: string | undefined; /** *

TTL in seconds for cache entries.

- *

Valid values are between 1 and 3600 seconds.

+ *

Valid values are 1–3,600 seconds.

*/ ttl: number | undefined; /** - *

Transit encryption flag when connecting to cache. This setting cannot be updated after + *

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

*/ transitEncryptionEnabled?: boolean; /** - *

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

+ *

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

*/ atRestEncryptionEnabled?: boolean; @@ -768,44 +902,7 @@ export namespace CreateApiCacheResponse { } /** - *

An internal AppSync error occurred. Try your request again.

- */ -export interface InternalFailureException extends __SmithyException, $MetadataBearer { - name: "InternalFailureException"; - $fault: "server"; - message?: string; -} - -export namespace InternalFailureException { - /** - * @internal - */ - export const filterSensitiveLog = (obj: InternalFailureException): any => ({ - ...obj, - }); -} - -/** - *

The resource specified in the request was not found. Check the resource, and then try - * again.

- */ -export interface NotFoundException extends __SmithyException, $MetadataBearer { - name: "NotFoundException"; - $fault: "client"; - message?: string; -} - -export namespace NotFoundException { - /** - * @internal - */ - export const filterSensitiveLog = (obj: NotFoundException): any => ({ - ...obj, - }); -} - -/** - *

You are not authorized to perform this operation.

+ *

You aren't authorized to perform this operation.

*/ export interface UnauthorizedException extends __SmithyException, $MetadataBearer { name: "UnauthorizedException"; @@ -834,9 +931,9 @@ export interface CreateApiKeyRequest { description?: string; /** - *

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

+ *

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

*/ expires?: number; } @@ -889,7 +986,7 @@ export namespace LimitExceededException { */ export interface DeltaSyncConfig { /** - *

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

+ *

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

*/ baseTableTTL?: number; @@ -899,7 +996,8 @@ export interface DeltaSyncConfig { deltaSyncTableName?: string; /** - *

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

+ *

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

*/ deltaSyncTableTTL?: number; } @@ -933,7 +1031,7 @@ export interface DynamodbDataSourceConfig { useCallerCredentials?: boolean; /** - *

The DeltaSyncConfig for a versioned datasource.

+ *

The DeltaSyncConfig for a versioned data source.

*/ deltaSyncConfig?: DeltaSyncConfig; @@ -984,15 +1082,15 @@ export namespace ElasticsearchDataSourceConfig { */ export interface HttpDataSourceConfig { /** - *

The HTTP URL endpoint. You can either specify the domain name or IP, and port - * combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, + *

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

*/ endpoint?: string; /** - *

The authorization config in case the HTTP endpoint requires authorization.

+ *

The authorization configuration in case the HTTP endpoint requires authorization.

*/ authorizationConfig?: AuthorizationConfig; } @@ -1007,11 +1105,11 @@ export namespace HttpDataSourceConfig { } /** - *

Describes an Amazon Web Services Lambda data source configuration.

+ *

Describes an Lambda data source configuration.

*/ export interface LambdaDataSourceConfig { /** - *

The ARN for the Lambda function.

+ *

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

*/ lambdaFunctionArn: string | undefined; } @@ -1050,16 +1148,16 @@ export namespace OpenSearchServiceDataSourceConfig { } /** - *

The Amazon RDS HTTP endpoint configuration.

+ *

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

*/ export interface RdsHttpEndpointConfig { /** - *

Amazon Web Services Region for RDS HTTP endpoint.

+ *

Amazon Web Services Region for Amazon RDS HTTP endpoint.

*/ awsRegion?: string; /** - *

Amazon RDS cluster ARN.

+ *

Amazon RDS cluster Amazon Resource Name (ARN).

*/ dbClusterIdentifier?: string; @@ -1074,7 +1172,8 @@ export interface RdsHttpEndpointConfig { schema?: string; /** - *

Amazon Web Services secret store ARN for database credentials.

+ *

Amazon Web Services secret store Amazon Resource Name (ARN) for database + * credentials.

*/ awsSecretStoreArn?: string; } @@ -1102,7 +1201,8 @@ export interface RelationalDatabaseDataSourceConfig { *
  • *

    * RDS_HTTP_ENDPOINT: The relational database - * source type is an Amazon RDS HTTP endpoint.

    + * source type is an Amazon Relational Database Service (Amazon RDS) HTTP + * endpoint.

    *
  • * */ @@ -1155,8 +1255,8 @@ export interface CreateDataSourceRequest { type: DataSourceType | string | undefined; /** - *

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

    + *

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

    */ serviceRoleArn?: string; @@ -1166,7 +1266,7 @@ export interface CreateDataSourceRequest { dynamodbConfig?: DynamodbDataSourceConfig; /** - *

    Amazon Web Services Lambda settings.

    + *

    Lambda settings.

    */ lambdaConfig?: LambdaDataSourceConfig; @@ -1207,7 +1307,7 @@ export namespace CreateDataSourceRequest { */ export interface DataSource { /** - *

    The data source ARN.

    + *

    The data source Amazon Resource Name (ARN).

    */ dataSourceArn?: string; @@ -1226,12 +1326,11 @@ export interface DataSource { *
      *
    • *

      - * AWS_LAMBDA: The data source is an Amazon Web Services Lambda function.

      + * AWS_LAMBDA: The data source is an Lambda function.

      *
    • *
    • *

      - * AMAZON_DYNAMODB: The data source is an Amazon - * DynamoDB table.

      + * AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table.

      *
    • *
    • *

      @@ -1245,10 +1344,10 @@ export interface DataSource { *

    • *
    • *

      - * NONE: There is no data source. This type is - * used when you wish to invoke a GraphQL operation without connecting to a data source, - * such as performing data transformation with resolvers or triggering a subscription to - * be invoked from a mutation.

      + * NONE: There is no data source. Use this type + * when you want to invoke a GraphQL operation without connecting to a data source, such + * as when you're performing data transformation with resolvers or invoking a + * subscription from a mutation.

      *
    • *
    • *

      @@ -1265,18 +1364,18 @@ export interface DataSource { type?: DataSourceType | string; /** - *

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

      + *

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

      */ serviceRoleArn?: string; /** - *

      Amazon DynamoDB settings.

      + *

      DynamoDB settings.

      */ dynamodbConfig?: DynamodbDataSourceConfig; /** - *

      Amazon Web Services Lambda settings.

      + *

      Lambda settings.

      */ lambdaConfig?: LambdaDataSourceConfig; @@ -1326,6 +1425,91 @@ export namespace CreateDataSourceResponse { }); } +export interface CreateDomainNameRequest { + /** + *

      The domain name.

      + */ + domainName: string | undefined; + + /** + *

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

      + */ + certificateArn: string | undefined; + + /** + *

      A description of the DomainName.

      + */ + description?: string; +} + +export namespace CreateDomainNameRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateDomainNameRequest): any => ({ + ...obj, + }); +} + +/** + *

      Describes a configuration for a custom domain.

      + */ +export interface DomainNameConfig { + /** + *

      The domain name.

      + */ + domainName?: string; + + /** + *

      A description of the DomainName configuration.

      + */ + description?: string; + + /** + *

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

      + */ + certificateArn?: string; + + /** + *

      The domain name that AppSync provides.

      + */ + appsyncDomainName?: string; + + /** + *

      The ID of your Amazon Route 53 hosted zone.

      + */ + hostedZoneId?: string; +} + +export namespace DomainNameConfig { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DomainNameConfig): any => ({ + ...obj, + }); +} + +export interface CreateDomainNameResponse { + /** + *

      The configuration for the DomainName.

      + */ + domainNameConfig?: DomainNameConfig; +} + +export namespace CreateDomainNameResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateDomainNameResponse): any => ({ + ...obj, + }); +} + export enum ConflictDetectionType { NONE = "NONE", VERSION = "VERSION", @@ -1339,12 +1523,13 @@ export enum ConflictHandlerType { } /** - *

      The LambdaConflictHandlerConfig object when configuring LAMBDA as the - * Conflict Handler.

      + *

      The LambdaConflictHandlerConfig object when configuring LAMBDA + * as the Conflict Handler.

      */ export interface LambdaConflictHandlerConfig { /** - *

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

      + *

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

      */ lambdaConflictHandlerArn?: string; } @@ -1360,8 +1545,8 @@ export namespace LambdaConflictHandlerConfig { /** *

      Describes a Sync configuration for a resolver.

      - *

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

      + *

      Specifies which Conflict Detection strategy and Resolution strategy to use when the + * resolver is invoked.

      */ export interface SyncConfig { /** @@ -1370,7 +1555,7 @@ export interface SyncConfig { *
    • *

      * OPTIMISTIC_CONCURRENCY: Resolve conflicts by - * rejecting mutations when versions do not match the latest version at the + * rejecting mutations when versions don't match the latest version at the * server.

      *
    • *
    • @@ -1380,8 +1565,8 @@ export interface SyncConfig { *
    • *
    • *

      - * LAMBDA: Resolve conflicts with a Lambda - * function supplied in the LambdaConflictHandlerConfig.

      + * LAMBDA: Resolve conflicts with an Lambda function supplied in the + * LambdaConflictHandlerConfig.

      *
    • *
    */ @@ -1397,7 +1582,7 @@ export interface SyncConfig { * *
  • *

    - * NONE: Do not detect conflicts when executing + * NONE: Do not detect conflicts when invoking * this resolver.

    *
  • * @@ -1405,8 +1590,8 @@ export interface SyncConfig { conflictDetection?: ConflictDetectionType | string; /** - *

    The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict - * Handler.

    + *

    The LambdaConflictHandlerConfig when configuring LAMBDA as the + * Conflict Handler.

    */ lambdaConflictHandlerConfig?: LambdaConflictHandlerConfig; } @@ -1449,20 +1634,20 @@ export interface CreateFunctionRequest { requestMappingTemplate?: string; /** - *

    The Function response mapping template.

    + *

    The Function response mapping template.

    */ responseMappingTemplate?: string; /** - *

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

    + *

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

    */ functionVersion: string | undefined; /** *

    Describes a Sync configuration for a resolver.

    - *

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

    + *

    Specifies which Conflict Detection strategy and Resolution strategy to use when the + * resolver is invoked.

    */ syncConfig?: SyncConfig; } @@ -1477,7 +1662,7 @@ export namespace CreateFunctionRequest { } /** - *

    A function is a reusable entity. Multiple functions can be used to compose the resolver + *

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

    */ export interface FunctionConfiguration { @@ -1487,7 +1672,7 @@ export interface FunctionConfiguration { functionId?: string; /** - *

    The ARN of the Function object.

    + *

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

    */ functionArn?: string; @@ -1518,15 +1703,15 @@ export interface FunctionConfiguration { responseMappingTemplate?: string; /** - *

    The version of the request mapping template. Currently only the 2018-05-29 version of + *

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

    */ functionVersion?: string; /** *

    Describes a Sync configuration for a resolver.

    - *

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

    + *

    Specifies which Conflict Detection strategy and Resolution strategy to use when the + * resolver is invoked.

    */ syncConfig?: SyncConfig; } @@ -1563,11 +1748,11 @@ export enum FieldLogLevel { } /** - *

    The CloudWatch Logs configuration.

    + *

    The Amazon CloudWatch Logs configuration.

    */ export interface LogConfig { /** - *

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

    + *

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

    *
      *
    • *

      @@ -1610,8 +1795,8 @@ export interface LogConfig { fieldLogLevel: FieldLogLevel | string | undefined; /** - *

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

      + *

      The service role that AppSync assumes to publish to CloudWatch + * logs in your account.

      */ cloudWatchLogsRoleArn: string | undefined; @@ -1651,8 +1836,7 @@ export interface UserPoolConfig { awsRegion: string | undefined; /** - *

      The action that you want your GraphQL API to take when a request that uses Amazon - * Cognito user pool authentication doesn't match the Amazon Cognito user pool + *

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

      */ defaultAction: DefaultAction | string | undefined; @@ -1685,8 +1869,8 @@ export interface CreateGraphqlApiRequest { logConfig?: LogConfig; /** - *

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

      + *

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

      */ authenticationType: AuthenticationType | string | undefined; @@ -1696,7 +1880,7 @@ export interface CreateGraphqlApiRequest { userPoolConfig?: UserPoolConfig; /** - *

      The OpenID Connect configuration.

      + *

      The OIDC configuration.

      */ openIDConnectConfig?: OpenIDConnectConfig; @@ -1712,13 +1896,13 @@ export interface CreateGraphqlApiRequest { additionalAuthenticationProviders?: AdditionalAuthenticationProvider[]; /** - *

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

      + *

      A flag indicating whether to use X-Ray tracing for the + * GraphqlApi.

      */ xrayEnabled?: boolean; /** - *

      Configuration for Amazon Web Services Lambda function authorization.

      + *

      Configuration for Lambda function authorization.

      */ lambdaAuthorizerConfig?: LambdaAuthorizerConfig; } @@ -1767,7 +1951,7 @@ export interface GraphqlApi { openIDConnectConfig?: OpenIDConnectConfig; /** - *

      The ARN.

      + *

      The Amazon Resource Name (ARN).

      */ arn?: string; @@ -1788,19 +1972,19 @@ export interface GraphqlApi { additionalAuthenticationProviders?: AdditionalAuthenticationProvider[]; /** - *

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

      + *

      A flag indicating whether to use X-Ray tracing for this + * GraphqlApi.

      */ xrayEnabled?: boolean; /** - *

      The ARN of the WAF ACL associated with this GraphqlApi, - * if one exists.

      + *

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

      */ wafWebAclArn?: string; /** - *

      Configuration for Amazon Web Services Lambda function authorization.

      + *

      Configuration for Lambda function authorization.

      */ lambdaAuthorizerConfig?: LambdaAuthorizerConfig; } @@ -1831,17 +2015,17 @@ export namespace CreateGraphqlApiResponse { } /** - *

      The caching configuration for a resolver that has caching enabled.

      + *

      The caching configuration for a resolver that has caching activated.

      */ export interface CachingConfig { /** - *

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

      - *

      Valid values are between 1 and 3600 seconds.

      + *

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

      + *

      Valid values are 1–3,600 seconds.

      */ ttl?: number; /** - *

      The caching keys for a resolver that has caching enabled.

      + *

      The caching keys for a resolver that has caching activated.

      *

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

      */ @@ -1903,17 +2087,18 @@ export interface CreateResolverRequest { dataSourceName?: string; /** - *

      The mapping template to be used for requests.

      + *

      The mapping template to use for requests.

      *

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

      - *

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

      + *

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

      */ requestMappingTemplate?: string; /** - *

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

      + *

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

      */ responseMappingTemplate?: string; @@ -1923,15 +2108,15 @@ export interface CreateResolverRequest { *
    • *

      * UNIT: A UNIT resolver type. A UNIT resolver is - * the default resolver type. A UNIT resolver enables you to execute a GraphQL query - * against a single data source.

      + * the default resolver type. You can use a UNIT resolver to run a GraphQL query against + * a single data source.

      *
    • *
    • *

      - * PIPELINE: A PIPELINE resolver type. A PIPELINE - * resolver enables you to execute a series of Function in a serial manner. - * You can use a pipeline resolver to execute a GraphQL query against multiple data - * sources.

      + * PIPELINE: A PIPELINE resolver type. You can + * use a PIPELINE resolver to invoke a series of Function objects in a + * serial manner. You can use a pipeline resolver to run a GraphQL query against + * multiple data sources.

      *
    • *
    */ @@ -1943,7 +2128,7 @@ export interface CreateResolverRequest { pipelineConfig?: PipelineConfig; /** - *

    The SyncConfig for a resolver attached to a versioned datasource.

    + *

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

    */ syncConfig?: SyncConfig; @@ -1982,7 +2167,7 @@ export interface Resolver { dataSourceName?: string; /** - *

    The resolver ARN.

    + *

    The resolver Amazon Resource Name (ARN).

    */ resolverArn?: string; @@ -2002,15 +2187,15 @@ export interface Resolver { *
  • *

    * UNIT: A UNIT resolver type. A UNIT resolver is - * the default resolver type. A UNIT resolver enables you to execute a GraphQL query - * against a single data source.

    + * the default resolver type. You can use a UNIT resolver to run a GraphQL query against + * a single data source.

    *
  • *
  • *

    - * PIPELINE: A PIPELINE resolver type. A PIPELINE - * resolver enables you to execute a series of Function in a serial manner. - * You can use a pipeline resolver to execute a GraphQL query against multiple data - * sources.

    + * PIPELINE: A PIPELINE resolver type. You can + * use a PIPELINE resolver to invoke a series of Function objects in a + * serial manner. You can use a pipeline resolver to run a GraphQL query against + * multiple data sources.

    *
  • * */ @@ -2022,7 +2207,7 @@ export interface Resolver { pipelineConfig?: PipelineConfig; /** - *

    The SyncConfig for a resolver attached to a versioned datasource.

    + *

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

    */ syncConfig?: SyncConfig; @@ -2105,7 +2290,7 @@ export interface Type { description?: string; /** - *

    The type ARN.

    + *

    The type Amazon Resource Name (ARN).

    */ arn?: string; @@ -2242,6 +2427,33 @@ export namespace DeleteDataSourceResponse { }); } +export interface DeleteDomainNameRequest { + /** + *

    The domain name.

    + */ + domainName: string | undefined; +} + +export namespace DeleteDomainNameRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteDomainNameRequest): any => ({ + ...obj, + }); +} + +export interface DeleteDomainNameResponse {} + +export namespace DeleteDomainNameResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteDomainNameResponse): any => ({ + ...obj, + }); +} + export interface DeleteFunctionRequest { /** *

    The GraphQL API ID.

    @@ -2370,6 +2582,33 @@ export namespace DeleteTypeResponse { }); } +export interface DisassociateApiRequest { + /** + *

    The domain name.

    + */ + domainName: string | undefined; +} + +export namespace DisassociateApiRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DisassociateApiRequest): any => ({ + ...obj, + }); +} + +export interface DisassociateApiResponse {} + +export namespace DisassociateApiResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DisassociateApiResponse): any => ({ + ...obj, + }); +} + /** *

    Represents the input of a FlushApiCache operation.

    */ @@ -2403,6 +2642,38 @@ export namespace FlushApiCacheResponse { }); } +export interface GetApiAssociationRequest { + /** + *

    The domain name.

    + */ + domainName: string | undefined; +} + +export namespace GetApiAssociationRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetApiAssociationRequest): any => ({ + ...obj, + }); +} + +export interface GetApiAssociationResponse { + /** + *

    The ApiAssociation object.

    + */ + apiAssociation?: ApiAssociation; +} + +export namespace GetApiAssociationResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetApiAssociationResponse): any => ({ + ...obj, + }); +} + /** *

    Represents the input of a GetApiCache operation.

    */ @@ -2478,6 +2749,38 @@ export namespace GetDataSourceResponse { }); } +export interface GetDomainNameRequest { + /** + *

    The domain name.

    + */ + domainName: string | undefined; +} + +export namespace GetDomainNameRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetDomainNameRequest): any => ({ + ...obj, + }); +} + +export interface GetDomainNameResponse { + /** + *

    The configuration for the DomainName.

    + */ + domainNameConfig?: DomainNameConfig; +} + +export namespace GetDomainNameResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetDomainNameResponse): any => ({ + ...obj, + }); +} + export interface GetFunctionRequest { /** *

    The GraphQL API ID.

    @@ -2752,13 +3055,13 @@ export interface ListApiKeysRequest { apiId: string | undefined; /** - *

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

    + *

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

    */ nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -2779,8 +3082,8 @@ export interface ListApiKeysResponse { apiKeys?: ApiKey[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -2801,13 +3104,13 @@ export interface ListDataSourcesRequest { apiId: string | undefined; /** - *

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

    + *

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

    */ nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -2828,8 +3131,8 @@ export interface ListDataSourcesResponse { dataSources?: DataSource[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -2843,6 +3146,48 @@ export namespace ListDataSourcesResponse { }); } +export interface ListDomainNamesRequest { + /** + *

    The API token.

    + */ + nextToken?: string; + + /** + *

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

    + */ + maxResults?: number; +} + +export namespace ListDomainNamesRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListDomainNamesRequest): any => ({ + ...obj, + }); +} + +export interface ListDomainNamesResponse { + /** + *

    Lists configurations for multiple domain names.

    + */ + domainNameConfigs?: DomainNameConfig[]; + + /** + *

    The API token.

    + */ + nextToken?: string; +} + +export namespace ListDomainNamesResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListDomainNamesResponse): any => ({ + ...obj, + }); +} + export interface ListFunctionsRequest { /** *

    The GraphQL API ID.

    @@ -2850,13 +3195,13 @@ export interface ListFunctionsRequest { apiId: string | undefined; /** - *

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

    + *

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

    */ nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -2877,8 +3222,8 @@ export interface ListFunctionsResponse { functions?: FunctionConfiguration[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -2894,13 +3239,13 @@ export namespace ListFunctionsResponse { export interface ListGraphqlApisRequest { /** - *

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

    + *

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

    */ nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -2921,8 +3266,8 @@ export interface ListGraphqlApisResponse { graphqlApis?: GraphqlApi[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -2948,13 +3293,13 @@ export interface ListResolversRequest { typeName: string | undefined; /** - *

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

    + *

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

    */ nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -2975,8 +3320,8 @@ export interface ListResolversResponse { resolvers?: Resolver[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -2997,7 +3342,7 @@ export interface ListResolversByFunctionRequest { apiId: string | undefined; /** - *

    The Function ID.

    + *

    The function ID.

    */ functionId: string | undefined; @@ -3008,7 +3353,7 @@ export interface ListResolversByFunctionRequest { nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -3029,7 +3374,7 @@ export interface ListResolversByFunctionResponse { resolvers?: Resolver[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -3045,7 +3390,7 @@ export namespace ListResolversByFunctionResponse { export interface ListTagsForResourceRequest { /** - *

    The GraphqlApi ARN.

    + *

    The GraphqlApi Amazon Resource Name (ARN).

    */ resourceArn: string | undefined; } @@ -3087,13 +3432,13 @@ export interface ListTypesRequest { format: TypeDefinitionFormat | string | undefined; /** - *

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

    + *

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

    */ nextToken?: string; /** - *

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

    + *

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

    */ maxResults?: number; } @@ -3114,8 +3459,8 @@ export interface ListTypesResponse { types?: Type[]; /** - *

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

    + *

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

    */ nextToken?: string; } @@ -3169,7 +3514,7 @@ export namespace StartSchemaCreationResponse { export interface TagResourceRequest { /** - *

    The GraphqlApi ARN.

    + *

    The GraphqlApi Amazon Resource Name (ARN).

    */ resourceArn: string | undefined; @@ -3201,7 +3546,7 @@ export namespace TagResourceResponse { export interface UntagResourceRequest { /** - *

    The GraphqlApi ARN.

    + *

    The GraphqlApi Amazon Resource Name (ARN).

    */ resourceArn: string | undefined; @@ -3236,13 +3581,13 @@ export namespace UntagResourceResponse { */ export interface UpdateApiCacheRequest { /** - *

    The GraphQL API Id.

    + *

    The GraphQL API ID.

    */ apiId: string | undefined; /** *

    TTL in seconds for cache entries.

    - *

    Valid values are between 1 and 3600 seconds.

    + *

    Valid values are 1–3,600 seconds.

    */ ttl: number | undefined; @@ -3387,8 +3732,8 @@ export interface UpdateApiKeyRequest { description?: string; /** - *

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

    + *

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

    */ expires?: number; } @@ -3440,7 +3785,7 @@ export interface UpdateDataSourceRequest { type: DataSourceType | string | undefined; /** - *

    The new service role ARN for the data source.

    + *

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

    */ serviceRoleArn?: string; @@ -3450,7 +3795,7 @@ export interface UpdateDataSourceRequest { dynamodbConfig?: DynamodbDataSourceConfig; /** - *

    The new Amazon Web Services Lambda configuration.

    + *

    The new Lambda configuration.

    */ lambdaConfig?: LambdaDataSourceConfig; @@ -3502,6 +3847,43 @@ export namespace UpdateDataSourceResponse { }); } +export interface UpdateDomainNameRequest { + /** + *

    The domain name.

    + */ + domainName: string | undefined; + + /** + *

    A description of the DomainName.

    + */ + description?: string; +} + +export namespace UpdateDomainNameRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateDomainNameRequest): any => ({ + ...obj, + }); +} + +export interface UpdateDomainNameResponse { + /** + *

    The configuration for the DomainName.

    + */ + domainNameConfig?: DomainNameConfig; +} + +export namespace UpdateDomainNameResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateDomainNameResponse): any => ({ + ...obj, + }); +} + export interface UpdateFunctionRequest { /** *

    The GraphQL API ID.

    @@ -3536,20 +3918,20 @@ export interface UpdateFunctionRequest { requestMappingTemplate?: string; /** - *

    The Function request mapping template.

    + *

    The Function request mapping template.

    */ responseMappingTemplate?: string; /** - *

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

    + *

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

    */ functionVersion: string | undefined; /** *

    Describes a Sync configuration for a resolver.

    - *

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

    + *

    Specifies which Conflict Detection strategy and Resolution strategy to use when the + * resolver is invoked.

    */ syncConfig?: SyncConfig; } @@ -3601,7 +3983,7 @@ export interface UpdateGraphqlApiRequest { authenticationType?: AuthenticationType | string; /** - *

    The new Amazon Cognito user pool configuration for the GraphqlApi + *

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

    */ userPoolConfig?: UserPoolConfig; @@ -3618,13 +4000,13 @@ export interface UpdateGraphqlApiRequest { additionalAuthenticationProviders?: AdditionalAuthenticationProvider[]; /** - *

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

    + *

    A flag indicating whether to use X-Ray tracing for the + * GraphqlApi.

    */ xrayEnabled?: boolean; /** - *

    Configuration for Amazon Web Services Lambda function authorization.

    + *

    Configuration for Lambda function authorization.

    */ lambdaAuthorizerConfig?: LambdaAuthorizerConfig; } @@ -3680,8 +4062,9 @@ export interface UpdateResolverRequest { *

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

    - *

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

    + *

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

    */ requestMappingTemplate?: string; @@ -3696,15 +4079,15 @@ export interface UpdateResolverRequest { *
  • *

    * UNIT: A UNIT resolver type. A UNIT resolver is - * the default resolver type. A UNIT resolver enables you to execute a GraphQL query - * against a single data source.

    + * the default resolver type. You can use a UNIT resolver to run a GraphQL query against + * a single data source.

    *
  • *
  • *

    - * PIPELINE: A PIPELINE resolver type. A PIPELINE - * resolver enables you to execute a series of Function in a serial manner. - * You can use a pipeline resolver to execute a GraphQL query against multiple data - * sources.

    + * PIPELINE: A PIPELINE resolver type. You can + * use a PIPELINE resolver to invoke a series of Function objects in a + * serial manner. You can use a pipeline resolver to run a GraphQL query against + * multiple data sources.

    *
  • * */ @@ -3716,7 +4099,7 @@ export interface UpdateResolverRequest { pipelineConfig?: PipelineConfig; /** - *

    The SyncConfig for a resolver attached to a versioned datasource.

    + *

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

    */ syncConfig?: SyncConfig; diff --git a/clients/client-appsync/src/protocols/Aws_restJson1.ts b/clients/client-appsync/src/protocols/Aws_restJson1.ts index 3b390f07804c..875df7aa1e95 100644 --- a/clients/client-appsync/src/protocols/Aws_restJson1.ts +++ b/clients/client-appsync/src/protocols/Aws_restJson1.ts @@ -16,9 +16,11 @@ import { SmithyException as __SmithyException, } from "@aws-sdk/types"; +import { AssociateApiCommandInput, AssociateApiCommandOutput } from "../commands/AssociateApiCommand"; import { CreateApiCacheCommandInput, CreateApiCacheCommandOutput } from "../commands/CreateApiCacheCommand"; import { CreateApiKeyCommandInput, CreateApiKeyCommandOutput } from "../commands/CreateApiKeyCommand"; import { CreateDataSourceCommandInput, CreateDataSourceCommandOutput } from "../commands/CreateDataSourceCommand"; +import { CreateDomainNameCommandInput, CreateDomainNameCommandOutput } from "../commands/CreateDomainNameCommand"; import { CreateFunctionCommandInput, CreateFunctionCommandOutput } from "../commands/CreateFunctionCommand"; import { CreateGraphqlApiCommandInput, CreateGraphqlApiCommandOutput } from "../commands/CreateGraphqlApiCommand"; import { CreateResolverCommandInput, CreateResolverCommandOutput } from "../commands/CreateResolverCommand"; @@ -26,13 +28,17 @@ import { CreateTypeCommandInput, CreateTypeCommandOutput } from "../commands/Cre import { DeleteApiCacheCommandInput, DeleteApiCacheCommandOutput } from "../commands/DeleteApiCacheCommand"; import { DeleteApiKeyCommandInput, DeleteApiKeyCommandOutput } from "../commands/DeleteApiKeyCommand"; import { DeleteDataSourceCommandInput, DeleteDataSourceCommandOutput } from "../commands/DeleteDataSourceCommand"; +import { DeleteDomainNameCommandInput, DeleteDomainNameCommandOutput } from "../commands/DeleteDomainNameCommand"; import { DeleteFunctionCommandInput, DeleteFunctionCommandOutput } from "../commands/DeleteFunctionCommand"; import { DeleteGraphqlApiCommandInput, DeleteGraphqlApiCommandOutput } from "../commands/DeleteGraphqlApiCommand"; import { DeleteResolverCommandInput, DeleteResolverCommandOutput } from "../commands/DeleteResolverCommand"; import { DeleteTypeCommandInput, DeleteTypeCommandOutput } from "../commands/DeleteTypeCommand"; +import { DisassociateApiCommandInput, DisassociateApiCommandOutput } from "../commands/DisassociateApiCommand"; import { FlushApiCacheCommandInput, FlushApiCacheCommandOutput } from "../commands/FlushApiCacheCommand"; +import { GetApiAssociationCommandInput, GetApiAssociationCommandOutput } from "../commands/GetApiAssociationCommand"; import { GetApiCacheCommandInput, GetApiCacheCommandOutput } from "../commands/GetApiCacheCommand"; import { GetDataSourceCommandInput, GetDataSourceCommandOutput } from "../commands/GetDataSourceCommand"; +import { GetDomainNameCommandInput, GetDomainNameCommandOutput } from "../commands/GetDomainNameCommand"; import { GetFunctionCommandInput, GetFunctionCommandOutput } from "../commands/GetFunctionCommand"; import { GetGraphqlApiCommandInput, GetGraphqlApiCommandOutput } from "../commands/GetGraphqlApiCommand"; import { @@ -47,6 +53,7 @@ import { import { GetTypeCommandInput, GetTypeCommandOutput } from "../commands/GetTypeCommand"; import { ListApiKeysCommandInput, ListApiKeysCommandOutput } from "../commands/ListApiKeysCommand"; import { ListDataSourcesCommandInput, ListDataSourcesCommandOutput } from "../commands/ListDataSourcesCommand"; +import { ListDomainNamesCommandInput, ListDomainNamesCommandOutput } from "../commands/ListDomainNamesCommand"; import { ListFunctionsCommandInput, ListFunctionsCommandOutput } from "../commands/ListFunctionsCommand"; import { ListGraphqlApisCommandInput, ListGraphqlApisCommandOutput } from "../commands/ListGraphqlApisCommand"; import { @@ -68,6 +75,7 @@ import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../comman import { UpdateApiCacheCommandInput, UpdateApiCacheCommandOutput } from "../commands/UpdateApiCacheCommand"; import { UpdateApiKeyCommandInput, UpdateApiKeyCommandOutput } from "../commands/UpdateApiKeyCommand"; import { UpdateDataSourceCommandInput, UpdateDataSourceCommandOutput } from "../commands/UpdateDataSourceCommand"; +import { UpdateDomainNameCommandInput, UpdateDomainNameCommandOutput } from "../commands/UpdateDomainNameCommand"; import { UpdateFunctionCommandInput, UpdateFunctionCommandOutput } from "../commands/UpdateFunctionCommand"; import { UpdateGraphqlApiCommandInput, UpdateGraphqlApiCommandOutput } from "../commands/UpdateGraphqlApiCommand"; import { UpdateResolverCommandInput, UpdateResolverCommandOutput } from "../commands/UpdateResolverCommand"; @@ -75,6 +83,7 @@ import { UpdateTypeCommandInput, UpdateTypeCommandOutput } from "../commands/Upd import { AccessDeniedException, AdditionalAuthenticationProvider, + ApiAssociation, ApiCache, ApiKey, ApiKeyLimitExceededException, @@ -88,6 +97,7 @@ import { ConcurrentModificationException, DataSource, DeltaSyncConfig, + DomainNameConfig, DynamodbDataSourceConfig, ElasticsearchDataSourceConfig, FunctionConfiguration, @@ -113,6 +123,40 @@ import { UserPoolConfig, } from "../models/models_0"; +export const serializeAws_restJson1AssociateApiCommand = async ( + input: AssociateApiCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames/{domainName}/apiassociation"; + if (input.domainName !== undefined) { + const labelValue: string = input.domainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: domainName."); + } + resolvedPath = resolvedPath.replace("{domainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: domainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.apiId !== undefined && input.apiId !== null && { apiId: input.apiId }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1CreateApiCacheCommand = async ( input: CreateApiCacheCommandInput, context: __SerdeContext @@ -256,6 +300,33 @@ export const serializeAws_restJson1CreateDataSourceCommand = async ( }); }; +export const serializeAws_restJson1CreateDomainNameCommand = async ( + input: CreateDomainNameCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames"; + let body: any; + body = JSON.stringify({ + ...(input.certificateArn !== undefined && + input.certificateArn !== null && { certificateArn: input.certificateArn }), + ...(input.description !== undefined && input.description !== null && { description: input.description }), + ...(input.domainName !== undefined && input.domainName !== null && { domainName: input.domainName }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1CreateFunctionCommand = async ( input: CreateFunctionCommandInput, context: __SerdeContext @@ -550,6 +621,35 @@ export const serializeAws_restJson1DeleteDataSourceCommand = async ( }); }; +export const serializeAws_restJson1DeleteDomainNameCommand = async ( + input: DeleteDomainNameCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames/{domainName}"; + if (input.domainName !== undefined) { + const labelValue: string = input.domainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: domainName."); + } + resolvedPath = resolvedPath.replace("{domainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: domainName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1DeleteFunctionCommand = async ( input: DeleteFunctionCommandInput, context: __SerdeContext @@ -702,6 +802,35 @@ export const serializeAws_restJson1DeleteTypeCommand = async ( }); }; +export const serializeAws_restJson1DisassociateApiCommand = async ( + input: DisassociateApiCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames/{domainName}/apiassociation"; + if (input.domainName !== undefined) { + const labelValue: string = input.domainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: domainName."); + } + resolvedPath = resolvedPath.replace("{domainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: domainName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1FlushApiCacheCommand = async ( input: FlushApiCacheCommandInput, context: __SerdeContext @@ -731,6 +860,35 @@ export const serializeAws_restJson1FlushApiCacheCommand = async ( }); }; +export const serializeAws_restJson1GetApiAssociationCommand = async ( + input: GetApiAssociationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames/{domainName}/apiassociation"; + if (input.domainName !== undefined) { + const labelValue: string = input.domainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: domainName."); + } + resolvedPath = resolvedPath.replace("{domainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: domainName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1GetApiCacheCommand = async ( input: GetApiCacheCommandInput, context: __SerdeContext @@ -798,6 +956,35 @@ export const serializeAws_restJson1GetDataSourceCommand = async ( }); }; +export const serializeAws_restJson1GetDomainNameCommand = async ( + input: GetDomainNameCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames/{domainName}"; + if (input.domainName !== undefined) { + const labelValue: string = input.domainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: domainName."); + } + resolvedPath = resolvedPath.replace("{domainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: domainName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1GetFunctionCommand = async ( input: GetFunctionCommandInput, context: __SerdeContext @@ -1083,6 +1270,30 @@ export const serializeAws_restJson1ListDataSourcesCommand = async ( }); }; +export const serializeAws_restJson1ListDomainNamesCommand = async ( + input: ListDomainNamesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames"; + const query: any = { + ...(input.nextToken !== undefined && { nextToken: input.nextToken }), + ...(input.maxResults !== undefined && { maxResults: input.maxResults.toString() }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + export const serializeAws_restJson1ListFunctionsCommand = async ( input: ListFunctionsCommandInput, context: __SerdeContext @@ -1548,6 +1759,40 @@ export const serializeAws_restJson1UpdateDataSourceCommand = async ( }); }; +export const serializeAws_restJson1UpdateDomainNameCommand = async ( + input: UpdateDomainNameCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/domainnames/{domainName}"; + if (input.domainName !== undefined) { + const labelValue: string = input.domainName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: domainName."); + } + resolvedPath = resolvedPath.replace("{domainName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: domainName."); + } + let body: any; + body = JSON.stringify({ + ...(input.description !== undefined && input.description !== null && { description: input.description }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1UpdateFunctionCommand = async ( input: UpdateFunctionCommandInput, context: __SerdeContext @@ -1772,6 +2017,85 @@ export const serializeAws_restJson1UpdateTypeCommand = async ( }); }; +export const deserializeAws_restJson1AssociateApiCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1AssociateApiCommandError(output, context); + } + const contents: AssociateApiCommandOutput = { + $metadata: deserializeMetadata(output), + apiAssociation: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.apiAssociation !== undefined && data.apiAssociation !== null) { + contents.apiAssociation = deserializeAws_restJson1ApiAssociation(data.apiAssociation, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1AssociateApiCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.appsync#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1CreateApiCacheCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2049,28 +2373,99 @@ const deserializeAws_restJson1CreateDataSourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1CreateFunctionCommand = async ( +export const deserializeAws_restJson1CreateDomainNameCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1CreateFunctionCommandError(output, context); + return deserializeAws_restJson1CreateDomainNameCommandError(output, context); } - const contents: CreateFunctionCommandOutput = { + const contents: CreateDomainNameCommandOutput = { $metadata: deserializeMetadata(output), - functionConfiguration: undefined, + domainNameConfig: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.functionConfiguration !== undefined && data.functionConfiguration !== null) { - contents.functionConfiguration = deserializeAws_restJson1FunctionConfiguration(data.functionConfiguration, context); + if (data.domainNameConfig !== undefined && data.domainNameConfig !== null) { + contents.domainNameConfig = deserializeAws_restJson1DomainNameConfig(data.domainNameConfig, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1CreateFunctionCommandError = async ( +const deserializeAws_restJson1CreateDomainNameCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1CreateFunctionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1CreateFunctionCommandError(output, context); + } + const contents: CreateFunctionCommandOutput = { + $metadata: deserializeMetadata(output), + functionConfiguration: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.functionConfiguration !== undefined && data.functionConfiguration !== null) { + contents.functionConfiguration = deserializeAws_restJson1FunctionConfiguration(data.functionConfiguration, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1CreateFunctionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2630,6 +3025,89 @@ const deserializeAws_restJson1DeleteDataSourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1DeleteDomainNameCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteDomainNameCommandError(output, context); + } + const contents: DeleteDomainNameCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteDomainNameCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConcurrentModificationException": + case "com.amazonaws.appsync#ConcurrentModificationException": + response = { + ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.appsync#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1DeleteFunctionCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2874,21 +3352,274 @@ const deserializeAws_restJson1DeleteResolverCommandError = async ( export const deserializeAws_restJson1DeleteTypeCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DeleteTypeCommandError(output, context); + } + const contents: DeleteTypeCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DeleteTypeCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConcurrentModificationException": + case "com.amazonaws.appsync#ConcurrentModificationException": + response = { + ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.appsync#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "UnauthorizedException": + case "com.amazonaws.appsync#UnauthorizedException": + response = { + ...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1DisassociateApiCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DisassociateApiCommandError(output, context); + } + const contents: DisassociateApiCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DisassociateApiCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConcurrentModificationException": + case "com.amazonaws.appsync#ConcurrentModificationException": + response = { + ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.appsync#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1FlushApiCacheCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1FlushApiCacheCommandError(output, context); + } + const contents: FlushApiCacheCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1FlushApiCacheCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConcurrentModificationException": + case "com.amazonaws.appsync#ConcurrentModificationException": + response = { + ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.appsync#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "UnauthorizedException": + case "com.amazonaws.appsync#UnauthorizedException": + response = { + ...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetApiAssociationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeleteTypeCommandError(output, context); + return deserializeAws_restJson1GetApiAssociationCommandError(output, context); } - const contents: DeleteTypeCommandOutput = { + const contents: GetApiAssociationCommandOutput = { $metadata: deserializeMetadata(output), + apiAssociation: undefined, }; - await collectBody(output.body, context); + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.apiAssociation !== undefined && data.apiAssociation !== null) { + contents.apiAssociation = deserializeAws_restJson1ApiAssociation(data.apiAssociation, context); + } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeleteTypeCommandError = async ( +const deserializeAws_restJson1GetApiAssociationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2897,18 +3628,18 @@ const deserializeAws_restJson1DeleteTypeCommandError = async ( let errorCode = "UnknownError"; errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "BadRequestException": - case "com.amazonaws.appsync#BadRequestException": + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": response = { - ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "ConcurrentModificationException": - case "com.amazonaws.appsync#ConcurrentModificationException": + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": response = { - ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -2929,14 +3660,6 @@ const deserializeAws_restJson1DeleteTypeCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "UnauthorizedException": - case "com.amazonaws.appsync#UnauthorizedException": - response = { - ...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -2954,24 +3677,28 @@ const deserializeAws_restJson1DeleteTypeCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1FlushApiCacheCommand = async ( +export const deserializeAws_restJson1GetApiCacheCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1FlushApiCacheCommandError(output, context); + return deserializeAws_restJson1GetApiCacheCommandError(output, context); } - const contents: FlushApiCacheCommandOutput = { + const contents: GetApiCacheCommandOutput = { $metadata: deserializeMetadata(output), + apiCache: undefined, }; - await collectBody(output.body, context); + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.apiCache !== undefined && data.apiCache !== null) { + contents.apiCache = deserializeAws_restJson1ApiCache(data.apiCache, context); + } return Promise.resolve(contents); }; -const deserializeAws_restJson1FlushApiCacheCommandError = async ( +const deserializeAws_restJson1GetApiCacheCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3037,28 +3764,28 @@ const deserializeAws_restJson1FlushApiCacheCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetApiCacheCommand = async ( +export const deserializeAws_restJson1GetDataSourceCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetApiCacheCommandError(output, context); + return deserializeAws_restJson1GetDataSourceCommandError(output, context); } - const contents: GetApiCacheCommandOutput = { + const contents: GetDataSourceCommandOutput = { $metadata: deserializeMetadata(output), - apiCache: undefined, + dataSource: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.apiCache !== undefined && data.apiCache !== null) { - contents.apiCache = deserializeAws_restJson1ApiCache(data.apiCache, context); + if (data.dataSource !== undefined && data.dataSource !== null) { + contents.dataSource = deserializeAws_restJson1DataSource(data.dataSource, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetApiCacheCommandError = async ( +const deserializeAws_restJson1GetDataSourceCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3124,28 +3851,28 @@ const deserializeAws_restJson1GetApiCacheCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetDataSourceCommand = async ( +export const deserializeAws_restJson1GetDomainNameCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetDataSourceCommandError(output, context); + return deserializeAws_restJson1GetDomainNameCommandError(output, context); } - const contents: GetDataSourceCommandOutput = { + const contents: GetDomainNameCommandOutput = { $metadata: deserializeMetadata(output), - dataSource: undefined, + domainNameConfig: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.dataSource !== undefined && data.dataSource !== null) { - contents.dataSource = deserializeAws_restJson1DataSource(data.dataSource, context); + if (data.domainNameConfig !== undefined && data.domainNameConfig !== null) { + contents.domainNameConfig = deserializeAws_restJson1DomainNameConfig(data.domainNameConfig, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetDataSourceCommandError = async ( +const deserializeAws_restJson1GetDomainNameCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3154,18 +3881,18 @@ const deserializeAws_restJson1GetDataSourceCommandError = async ( let errorCode = "UnknownError"; errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "BadRequestException": - case "com.amazonaws.appsync#BadRequestException": + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": response = { - ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "ConcurrentModificationException": - case "com.amazonaws.appsync#ConcurrentModificationException": + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": response = { - ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -3186,14 +3913,6 @@ const deserializeAws_restJson1GetDataSourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "UnauthorizedException": - case "com.amazonaws.appsync#UnauthorizedException": - response = { - ...(await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -3853,6 +4572,81 @@ const deserializeAws_restJson1ListDataSourcesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1ListDomainNamesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListDomainNamesCommandError(output, context); + } + const contents: ListDomainNamesCommandOutput = { + $metadata: deserializeMetadata(output), + domainNameConfigs: undefined, + nextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.domainNameConfigs !== undefined && data.domainNameConfigs !== null) { + contents.domainNameConfigs = deserializeAws_restJson1DomainNameConfigs(data.domainNameConfigs, context); + } + if (data.nextToken !== undefined && data.nextToken !== null) { + contents.nextToken = __expectString(data.nextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListDomainNamesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1ListFunctionsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -4901,6 +5695,93 @@ const deserializeAws_restJson1UpdateDataSourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1UpdateDomainNameCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateDomainNameCommandError(output, context); + } + const contents: UpdateDomainNameCommandOutput = { + $metadata: deserializeMetadata(output), + domainNameConfig: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.domainNameConfig !== undefined && data.domainNameConfig !== null) { + contents.domainNameConfig = deserializeAws_restJson1DomainNameConfig(data.domainNameConfig, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateDomainNameCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.appsync#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "BadRequestException": + case "com.amazonaws.appsync#BadRequestException": + response = { + ...(await deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConcurrentModificationException": + case "com.amazonaws.appsync#ConcurrentModificationException": + response = { + ...(await deserializeAws_restJson1ConcurrentModificationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalFailureException": + case "com.amazonaws.appsync#InternalFailureException": + response = { + ...(await deserializeAws_restJson1InternalFailureExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.appsync#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1UpdateFunctionCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -5735,6 +6616,15 @@ const deserializeAws_restJson1AdditionalAuthenticationProviders = ( }); }; +const deserializeAws_restJson1ApiAssociation = (output: any, context: __SerdeContext): ApiAssociation => { + return { + apiId: __expectString(output.apiId), + associationStatus: __expectString(output.associationStatus), + deploymentDetail: __expectString(output.deploymentDetail), + domainName: __expectString(output.domainName), + } as any; +}; + const deserializeAws_restJson1ApiCache = (output: any, context: __SerdeContext): ApiCache => { return { apiCachingBehavior: __expectString(output.apiCachingBehavior), @@ -5865,6 +6755,27 @@ const deserializeAws_restJson1DeltaSyncConfig = (output: any, context: __SerdeCo } as any; }; +const deserializeAws_restJson1DomainNameConfig = (output: any, context: __SerdeContext): DomainNameConfig => { + return { + appsyncDomainName: __expectString(output.appsyncDomainName), + certificateArn: __expectString(output.certificateArn), + description: __expectString(output.description), + domainName: __expectString(output.domainName), + hostedZoneId: __expectString(output.hostedZoneId), + } as any; +}; + +const deserializeAws_restJson1DomainNameConfigs = (output: any, context: __SerdeContext): DomainNameConfig[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1DomainNameConfig(entry, context); + }); +}; + const deserializeAws_restJson1DynamodbDataSourceConfig = ( output: any, context: __SerdeContext diff --git a/clients/client-athena/src/endpoints.ts b/clients/client-athena/src/endpoints.ts index dd3bbdfd76ea..88f30dac528c 100644 --- a/clients/client-athena/src/endpoints.ts +++ b/clients/client-athena/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-auditmanager/src/endpoints.ts b/clients/client-auditmanager/src/endpoints.ts index 559f97315d70..d584f1e21c69 100644 --- a/clients/client-auditmanager/src/endpoints.ts +++ b/clients/client-auditmanager/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-auto-scaling-plans/src/endpoints.ts b/clients/client-auto-scaling-plans/src/endpoints.ts index 0f9288335191..9d65dac6d2dd 100644 --- a/clients/client-auto-scaling-plans/src/endpoints.ts +++ b/clients/client-auto-scaling-plans/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-auto-scaling/src/endpoints.ts b/clients/client-auto-scaling/src/endpoints.ts index ae9eb1561663..0464377927dd 100644 --- a/clients/client-auto-scaling/src/endpoints.ts +++ b/clients/client-auto-scaling/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-backup-gateway/src/endpoints.ts b/clients/client-backup-gateway/src/endpoints.ts index 7f4326c6cd4e..7fe07d347fcd 100644 --- a/clients/client-backup-gateway/src/endpoints.ts +++ b/clients/client-backup-gateway/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-backup/src/endpoints.ts b/clients/client-backup/src/endpoints.ts index 5082b4f7d270..f412a4fd7298 100644 --- a/clients/client-backup/src/endpoints.ts +++ b/clients/client-backup/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-batch/src/endpoints.ts b/clients/client-batch/src/endpoints.ts index 25b4a11c6ee8..963ccd4d298e 100644 --- a/clients/client-batch/src/endpoints.ts +++ b/clients/client-batch/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-braket/src/endpoints.ts b/clients/client-braket/src/endpoints.ts index cac667250120..6cd79d2c8f1a 100644 --- a/clients/client-braket/src/endpoints.ts +++ b/clients/client-braket/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-budgets/src/endpoints.ts b/clients/client-budgets/src/endpoints.ts index a75c3054d65d..8d0bbf54c0b6 100644 --- a/clients/client-budgets/src/endpoints.ts +++ b/clients/client-budgets/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-chime-sdk-identity/src/endpoints.ts b/clients/client-chime-sdk-identity/src/endpoints.ts index bd6de5fc6048..e79827d1114b 100644 --- a/clients/client-chime-sdk-identity/src/endpoints.ts +++ b/clients/client-chime-sdk-identity/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-chime-sdk-meetings/src/endpoints.ts b/clients/client-chime-sdk-meetings/src/endpoints.ts index b34f5bb65306..cc3ed299f8d2 100644 --- a/clients/client-chime-sdk-meetings/src/endpoints.ts +++ b/clients/client-chime-sdk-meetings/src/endpoints.ts @@ -1,7 +1,32 @@ import { getRegionInfo, PartitionHash, RegionHash } from "@aws-sdk/config-resolver"; import { RegionInfoProvider, RegionInfoProviderOptions } from "@aws-sdk/types"; -const regionHash: RegionHash = {}; +const regionHash: RegionHash = { + "us-east-1": { + variants: [ + { + hostname: "meetings-chime.us-east-1.amazonaws.com", + tags: [], + }, + { + hostname: "meetings-chime-fips.us-east-1.amazonaws.com", + tags: ["fips"], + }, + ], + }, + "us-west-2": { + variants: [ + { + hostname: "meetings-chime.us-west-2.amazonaws.com", + tags: [], + }, + { + hostname: "meetings-chime-fips.us-west-2.amazonaws.com", + tags: ["fips"], + }, + ], + }, +}; const partitionHash: PartitionHash = { aws: { @@ -14,6 +39,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", @@ -24,9 +50,11 @@ const partitionHash: PartitionHash = { "me-south-1", "sa-east-1", "us-east-1", + "us-east-1-fips", "us-east-2", "us-west-1", "us-west-2", + "us-west-2-fips", ], regionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$", variants: [ diff --git a/clients/client-chime-sdk-messaging/src/endpoints.ts b/clients/client-chime-sdk-messaging/src/endpoints.ts index 3a42ec63a13b..505c995c3cb1 100644 --- a/clients/client-chime-sdk-messaging/src/endpoints.ts +++ b/clients/client-chime-sdk-messaging/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-chime-sdk-messaging/src/models/models_0.ts b/clients/client-chime-sdk-messaging/src/models/models_0.ts index 22fb68068cd8..452129dfa059 100644 --- a/clients/client-chime-sdk-messaging/src/models/models_0.ts +++ b/clients/client-chime-sdk-messaging/src/models/models_0.ts @@ -689,6 +689,64 @@ export namespace ChannelFlow { }); } +/** + *

    A list of message attribute values.

    + */ +export interface MessageAttributeValue { + /** + *

    The strings in a message attribute value.

    + */ + StringValues?: string[]; +} + +export namespace MessageAttributeValue { + /** + * @internal + */ + export const filterSensitiveLog = (obj: MessageAttributeValue): any => ({ + ...obj, + ...(obj.StringValues && { StringValues: SENSITIVE_STRING }), + }); +} + +export enum PushNotificationType { + DEFAULT = "DEFAULT", + VOIP = "VOIP", +} + +/** + *

    The push notification configuration of the message.

    + */ +export interface PushNotificationConfiguration { + /** + *

    The title of the push notification.

    + */ + Title?: string; + + /** + *

    The body of the push notification.

    + */ + Body?: string; + + /** + *

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

    + */ + Type?: PushNotificationType | string; +} + +export namespace PushNotificationConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PushNotificationConfiguration): any => ({ + ...obj, + ...(obj.Title && { Title: SENSITIVE_STRING }), + ...(obj.Body && { Body: SENSITIVE_STRING }), + }); +} + /** *

    Stores information about a callback.

    */ @@ -707,6 +765,16 @@ export interface ChannelMessageCallback { *

    The message metadata.

    */ Metadata?: string; + + /** + *

    The push notification configuration of the message.

    + */ + PushNotification?: PushNotificationConfiguration; + + /** + *

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

    + */ + MessageAttributes?: { [key: string]: MessageAttributeValue }; } export namespace ChannelMessageCallback { @@ -717,6 +785,18 @@ export namespace ChannelMessageCallback { ...obj, ...(obj.Content && { Content: SENSITIVE_STRING }), ...(obj.Metadata && { Metadata: SENSITIVE_STRING }), + ...(obj.PushNotification && { + PushNotification: PushNotificationConfiguration.filterSensitiveLog(obj.PushNotification), + }), + ...(obj.MessageAttributes && { + MessageAttributes: Object.entries(obj.MessageAttributes).reduce( + (acc: any, [key, value]: [string, MessageAttributeValue]) => ({ + ...acc, + [key]: MessageAttributeValue.filterSensitiveLog(value), + }), + {} + ), + }), }); } @@ -990,26 +1070,6 @@ export namespace ChannelMembershipSummary { }); } -/** - *

    A list of message attribute values.

    - */ -export interface MessageAttributeValue { - /** - *

    The strings in a message attribute value.

    - */ - StringValues?: string[]; -} - -export namespace MessageAttributeValue { - /** - * @internal - */ - export const filterSensitiveLog = (obj: MessageAttributeValue): any => ({ - ...obj, - ...(obj.StringValues && { StringValues: SENSITIVE_STRING }), - }); -} - export enum ChannelMessagePersistenceType { NON_PERSISTENT = "NON_PERSISTENT", PERSISTENT = "PERSISTENT", @@ -2390,9 +2450,9 @@ export interface ListChannelMembershipsRequest { /** *

    The membership type of a user, DEFAULT or HIDDEN. Default - * members are always returned as part of ListChannelMemberships. Hidden members + * members are returned as part of ListChannelMemberships if no type is specified. Hidden members * are only returned if the type filter in ListChannelMemberships equals - * HIDDEN. Otherwise hidden members are not returned.

    + * HIDDEN.

    */ Type?: ChannelMembershipType | string; @@ -2975,44 +3035,6 @@ export namespace RedactChannelMessageResponse { }); } -export enum PushNotificationType { - DEFAULT = "DEFAULT", - VOIP = "VOIP", -} - -/** - *

    The push notification configuration of the message.

    - */ -export interface PushNotificationConfiguration { - /** - *

    The title of the push notification.

    - */ - Title: string | undefined; - - /** - *

    The body of the push notification.

    - */ - Body: string | undefined; - - /** - *

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

    - */ - Type: PushNotificationType | string | undefined; -} - -export namespace PushNotificationConfiguration { - /** - * @internal - */ - export const filterSensitiveLog = (obj: PushNotificationConfiguration): any => ({ - ...obj, - ...(obj.Title && { Title: SENSITIVE_STRING }), - ...(obj.Body && { Body: SENSITIVE_STRING }), - }); -} - export interface SendChannelMessageRequest { /** *

    The ARN of the channel.

    diff --git a/clients/client-chime-sdk-messaging/src/protocols/Aws_restJson1.ts b/clients/client-chime-sdk-messaging/src/protocols/Aws_restJson1.ts index 93f7ea6aaa03..291f5c98884b 100644 --- a/clients/client-chime-sdk-messaging/src/protocols/Aws_restJson1.ts +++ b/clients/client-chime-sdk-messaging/src/protocols/Aws_restJson1.ts @@ -6577,8 +6577,16 @@ const serializeAws_restJson1ChannelMembershipPreferences = ( const serializeAws_restJson1ChannelMessageCallback = (input: ChannelMessageCallback, context: __SerdeContext): any => { return { ...(input.Content !== undefined && input.Content !== null && { Content: input.Content }), + ...(input.MessageAttributes !== undefined && + input.MessageAttributes !== null && { + MessageAttributes: serializeAws_restJson1MessageAttributeMap(input.MessageAttributes, context), + }), ...(input.MessageId !== undefined && input.MessageId !== null && { MessageId: input.MessageId }), ...(input.Metadata !== undefined && input.Metadata !== null && { Metadata: input.Metadata }), + ...(input.PushNotification !== undefined && + input.PushNotification !== null && { + PushNotification: serializeAws_restJson1PushNotificationConfiguration(input.PushNotification, context), + }), }; }; diff --git a/clients/client-chime/src/endpoints.ts b/clients/client-chime/src/endpoints.ts index 13d2fde15bce..6a383b7f669e 100644 --- a/clients/client-chime/src/endpoints.ts +++ b/clients/client-chime/src/endpoints.ts @@ -24,6 +24,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-cloud9/src/endpoints.ts b/clients/client-cloud9/src/endpoints.ts index 79fccd9484d9..37083cefd817 100644 --- a/clients/client-cloud9/src/endpoints.ts +++ b/clients/client-cloud9/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudcontrol/src/endpoints.ts b/clients/client-cloudcontrol/src/endpoints.ts index 5c69b9342078..6248a38729e7 100644 --- a/clients/client-cloudcontrol/src/endpoints.ts +++ b/clients/client-cloudcontrol/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-clouddirectory/src/endpoints.ts b/clients/client-clouddirectory/src/endpoints.ts index 27fcfeb622fe..179ddc4214d1 100644 --- a/clients/client-clouddirectory/src/endpoints.ts +++ b/clients/client-clouddirectory/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudformation/src/endpoints.ts b/clients/client-cloudformation/src/endpoints.ts index 87ccdcddc5f9..78018ca1b0ee 100644 --- a/clients/client-cloudformation/src/endpoints.ts +++ b/clients/client-cloudformation/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudfront/src/endpoints.ts b/clients/client-cloudfront/src/endpoints.ts index 3fc0c810e127..1c1a3a9aa21f 100644 --- a/clients/client-cloudfront/src/endpoints.ts +++ b/clients/client-cloudfront/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-cloudhsm-v2/src/endpoints.ts b/clients/client-cloudhsm-v2/src/endpoints.ts index 5e8335282c6c..e84277a7d88d 100644 --- a/clients/client-cloudhsm-v2/src/endpoints.ts +++ b/clients/client-cloudhsm-v2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudhsm/src/endpoints.ts b/clients/client-cloudhsm/src/endpoints.ts index 3bb15adb87ac..1ebd8ee6ea75 100644 --- a/clients/client-cloudhsm/src/endpoints.ts +++ b/clients/client-cloudhsm/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudsearch-domain/src/endpoints.ts b/clients/client-cloudsearch-domain/src/endpoints.ts index 443abfab7a87..3f18711c4048 100644 --- a/clients/client-cloudsearch-domain/src/endpoints.ts +++ b/clients/client-cloudsearch-domain/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudsearch/src/endpoints.ts b/clients/client-cloudsearch/src/endpoints.ts index 05298ba35ce3..bc5df1423ad4 100644 --- a/clients/client-cloudsearch/src/endpoints.ts +++ b/clients/client-cloudsearch/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudtrail/src/endpoints.ts b/clients/client-cloudtrail/src/endpoints.ts index e41684e3bcc6..638b77fde8cc 100644 --- a/clients/client-cloudtrail/src/endpoints.ts +++ b/clients/client-cloudtrail/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudwatch-events/src/endpoints.ts b/clients/client-cloudwatch-events/src/endpoints.ts index 6e6b75d81970..f85979f649db 100644 --- a/clients/client-cloudwatch-events/src/endpoints.ts +++ b/clients/client-cloudwatch-events/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudwatch-logs/src/endpoints.ts b/clients/client-cloudwatch-logs/src/endpoints.ts index 9ba7ab1dad84..129d656be98b 100644 --- a/clients/client-cloudwatch-logs/src/endpoints.ts +++ b/clients/client-cloudwatch-logs/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cloudwatch-logs/src/models/models_0.ts b/clients/client-cloudwatch-logs/src/models/models_0.ts index 8d9ca28d9e6d..4b2b6db07a98 100644 --- a/clients/client-cloudwatch-logs/src/models/models_0.ts +++ b/clients/client-cloudwatch-logs/src/models/models_0.ts @@ -2199,6 +2199,21 @@ export interface PutDestinationPolicyRequest { * to the associated destination. This can be up to 5120 bytes.

    */ accessPolicy: string | undefined; + + /** + *

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

    + *

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

    + */ + forceUpdate?: boolean; } export namespace PutDestinationPolicyRequest { @@ -2417,7 +2432,7 @@ export interface PutResourcePolicyRequest { * and aws:SourceAccount * condition context keys.

    *

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

    *

    *

    diff --git a/clients/client-cloudwatch-logs/src/protocols/Aws_json1_1.ts b/clients/client-cloudwatch-logs/src/protocols/Aws_json1_1.ts index 80efe6a66b3b..3a9624e5391f 100644 --- a/clients/client-cloudwatch-logs/src/protocols/Aws_json1_1.ts +++ b/clients/client-cloudwatch-logs/src/protocols/Aws_json1_1.ts @@ -3176,6 +3176,14 @@ const deserializeAws_json1_1PutQueryDefinitionCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "LimitExceededException": + case "com.amazonaws.cloudwatchlogs#LimitExceededException": + response = { + ...(await deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ResourceNotFoundException": case "com.amazonaws.cloudwatchlogs#ResourceNotFoundException": response = { @@ -4307,6 +4315,7 @@ const serializeAws_json1_1PutDestinationPolicyRequest = ( ...(input.accessPolicy !== undefined && input.accessPolicy !== null && { accessPolicy: input.accessPolicy }), ...(input.destinationName !== undefined && input.destinationName !== null && { destinationName: input.destinationName }), + ...(input.forceUpdate !== undefined && input.forceUpdate !== null && { forceUpdate: input.forceUpdate }), }; }; diff --git a/clients/client-cloudwatch/src/endpoints.ts b/clients/client-cloudwatch/src/endpoints.ts index f081937f7016..0c29e917194a 100644 --- a/clients/client-cloudwatch/src/endpoints.ts +++ b/clients/client-cloudwatch/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codeartifact/src/endpoints.ts b/clients/client-codeartifact/src/endpoints.ts index acf0ba344620..f24db8064c6f 100644 --- a/clients/client-codeartifact/src/endpoints.ts +++ b/clients/client-codeartifact/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codebuild/src/endpoints.ts b/clients/client-codebuild/src/endpoints.ts index b836396bb7d3..286dbbc30703 100644 --- a/clients/client-codebuild/src/endpoints.ts +++ b/clients/client-codebuild/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codecommit/src/endpoints.ts b/clients/client-codecommit/src/endpoints.ts index 47562436bc27..53df24c75ffb 100644 --- a/clients/client-codecommit/src/endpoints.ts +++ b/clients/client-codecommit/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-codedeploy/src/endpoints.ts b/clients/client-codedeploy/src/endpoints.ts index a199fbc4ff96..ae57b09e90d0 100644 --- a/clients/client-codedeploy/src/endpoints.ts +++ b/clients/client-codedeploy/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codeguru-reviewer/src/endpoints.ts b/clients/client-codeguru-reviewer/src/endpoints.ts index 56dcb7086005..55511032f041 100644 --- a/clients/client-codeguru-reviewer/src/endpoints.ts +++ b/clients/client-codeguru-reviewer/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codeguruprofiler/src/endpoints.ts b/clients/client-codeguruprofiler/src/endpoints.ts index 9d6ed831d35a..efd5a0b40531 100644 --- a/clients/client-codeguruprofiler/src/endpoints.ts +++ b/clients/client-codeguruprofiler/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codepipeline/src/endpoints.ts b/clients/client-codepipeline/src/endpoints.ts index da53af5180c8..88d499da6f8e 100644 --- a/clients/client-codepipeline/src/endpoints.ts +++ b/clients/client-codepipeline/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codestar-connections/src/endpoints.ts b/clients/client-codestar-connections/src/endpoints.ts index 3e91df53562b..276632329497 100644 --- a/clients/client-codestar-connections/src/endpoints.ts +++ b/clients/client-codestar-connections/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codestar-notifications/src/endpoints.ts b/clients/client-codestar-notifications/src/endpoints.ts index d8f713e30a16..6c934f147754 100644 --- a/clients/client-codestar-notifications/src/endpoints.ts +++ b/clients/client-codestar-notifications/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-codestar/src/endpoints.ts b/clients/client-codestar/src/endpoints.ts index ac8900730901..ba1475fa8744 100644 --- a/clients/client-codestar/src/endpoints.ts +++ b/clients/client-codestar/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cognito-identity-provider/src/endpoints.ts b/clients/client-cognito-identity-provider/src/endpoints.ts index 777a1d37fb4c..40af52e0fe70 100644 --- a/clients/client-cognito-identity-provider/src/endpoints.ts +++ b/clients/client-cognito-identity-provider/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cognito-identity/src/endpoints.ts b/clients/client-cognito-identity/src/endpoints.ts index cca77de59905..ac48eb7a1019 100644 --- a/clients/client-cognito-identity/src/endpoints.ts +++ b/clients/client-cognito-identity/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cognito-sync/src/endpoints.ts b/clients/client-cognito-sync/src/endpoints.ts index f32afdd272d3..055c731130d0 100644 --- a/clients/client-cognito-sync/src/endpoints.ts +++ b/clients/client-cognito-sync/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-comprehend/src/endpoints.ts b/clients/client-comprehend/src/endpoints.ts index c4c4b3d5f6ac..ee0277a3fc4a 100644 --- a/clients/client-comprehend/src/endpoints.ts +++ b/clients/client-comprehend/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-comprehendmedical/README.md b/clients/client-comprehendmedical/README.md index afcc3cb53b00..3d5398d4db18 100644 --- a/clients/client-comprehendmedical/README.md +++ b/clients/client-comprehendmedical/README.md @@ -7,7 +7,7 @@ AWS SDK for JavaScript ComprehendMedical Client for Node.js, Browser and React Native. -

    Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions +

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

    ## Installing diff --git a/clients/client-comprehendmedical/src/ComprehendMedical.ts b/clients/client-comprehendmedical/src/ComprehendMedical.ts index 2c30487bd330..a5b9e6ca9e4d 100644 --- a/clients/client-comprehendmedical/src/ComprehendMedical.ts +++ b/clients/client-comprehendmedical/src/ComprehendMedical.ts @@ -20,6 +20,11 @@ import { DescribeRxNormInferenceJobCommandInput, DescribeRxNormInferenceJobCommandOutput, } from "./commands/DescribeRxNormInferenceJobCommand"; +import { + DescribeSNOMEDCTInferenceJobCommand, + DescribeSNOMEDCTInferenceJobCommandInput, + DescribeSNOMEDCTInferenceJobCommandOutput, +} from "./commands/DescribeSNOMEDCTInferenceJobCommand"; import { DetectEntitiesCommand, DetectEntitiesCommandInput, @@ -37,6 +42,11 @@ import { InferICD10CMCommandOutput, } from "./commands/InferICD10CMCommand"; import { InferRxNormCommand, InferRxNormCommandInput, InferRxNormCommandOutput } from "./commands/InferRxNormCommand"; +import { + InferSNOMEDCTCommand, + InferSNOMEDCTCommandInput, + InferSNOMEDCTCommandOutput, +} from "./commands/InferSNOMEDCTCommand"; import { ListEntitiesDetectionV2JobsCommand, ListEntitiesDetectionV2JobsCommandInput, @@ -57,6 +67,11 @@ import { ListRxNormInferenceJobsCommandInput, ListRxNormInferenceJobsCommandOutput, } from "./commands/ListRxNormInferenceJobsCommand"; +import { + ListSNOMEDCTInferenceJobsCommand, + ListSNOMEDCTInferenceJobsCommandInput, + ListSNOMEDCTInferenceJobsCommandOutput, +} from "./commands/ListSNOMEDCTInferenceJobsCommand"; import { StartEntitiesDetectionV2JobCommand, StartEntitiesDetectionV2JobCommandInput, @@ -77,6 +92,11 @@ import { StartRxNormInferenceJobCommandInput, StartRxNormInferenceJobCommandOutput, } from "./commands/StartRxNormInferenceJobCommand"; +import { + StartSNOMEDCTInferenceJobCommand, + StartSNOMEDCTInferenceJobCommandInput, + StartSNOMEDCTInferenceJobCommandOutput, +} from "./commands/StartSNOMEDCTInferenceJobCommand"; import { StopEntitiesDetectionV2JobCommand, StopEntitiesDetectionV2JobCommandInput, @@ -97,10 +117,15 @@ import { StopRxNormInferenceJobCommandInput, StopRxNormInferenceJobCommandOutput, } from "./commands/StopRxNormInferenceJobCommand"; +import { + StopSNOMEDCTInferenceJobCommand, + StopSNOMEDCTInferenceJobCommandInput, + StopSNOMEDCTInferenceJobCommandOutput, +} from "./commands/StopSNOMEDCTInferenceJobCommand"; import { ComprehendMedicalClient } from "./ComprehendMedicalClient"; /** - *

    Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions + *

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

    */ export class ComprehendMedical extends ComprehendMedicalClient { @@ -236,6 +261,40 @@ export class ComprehendMedical extends ComprehendMedicalClient { } } + /** + *

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

    + */ + public describeSNOMEDCTInferenceJob( + args: DescribeSNOMEDCTInferenceJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeSNOMEDCTInferenceJob( + args: DescribeSNOMEDCTInferenceJobCommandInput, + cb: (err: any, data?: DescribeSNOMEDCTInferenceJobCommandOutput) => void + ): void; + public describeSNOMEDCTInferenceJob( + args: DescribeSNOMEDCTInferenceJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeSNOMEDCTInferenceJobCommandOutput) => void + ): void; + public describeSNOMEDCTInferenceJob( + args: DescribeSNOMEDCTInferenceJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeSNOMEDCTInferenceJobCommandOutput) => void), + cb?: (err: any, data?: DescribeSNOMEDCTInferenceJobCommandOutput) => void + ): Promise | void { + const command = new DescribeSNOMEDCTInferenceJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** * @deprecated * @@ -402,6 +461,39 @@ export class ComprehendMedical extends ComprehendMedicalClient { } } + /** + *

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

    + */ + public inferSNOMEDCT( + args: InferSNOMEDCTCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public inferSNOMEDCT( + args: InferSNOMEDCTCommandInput, + cb: (err: any, data?: InferSNOMEDCTCommandOutput) => void + ): void; + public inferSNOMEDCT( + args: InferSNOMEDCTCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: InferSNOMEDCTCommandOutput) => void + ): void; + public inferSNOMEDCT( + args: InferSNOMEDCTCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: InferSNOMEDCTCommandOutput) => void), + cb?: (err: any, data?: InferSNOMEDCTCommandOutput) => void + ): Promise | void { + const command = new InferSNOMEDCTCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Gets a list of medical entity detection jobs that you have submitted.

    */ @@ -531,6 +623,40 @@ export class ComprehendMedical extends ComprehendMedicalClient { } } + /** + *

    + * Gets a list of InferSNOMEDCT jobs a user has submitted. + *

    + */ + public listSNOMEDCTInferenceJobs( + args: ListSNOMEDCTInferenceJobsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listSNOMEDCTInferenceJobs( + args: ListSNOMEDCTInferenceJobsCommandInput, + cb: (err: any, data?: ListSNOMEDCTInferenceJobsCommandOutput) => void + ): void; + public listSNOMEDCTInferenceJobs( + args: ListSNOMEDCTInferenceJobsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListSNOMEDCTInferenceJobsCommandOutput) => void + ): void; + public listSNOMEDCTInferenceJobs( + args: ListSNOMEDCTInferenceJobsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListSNOMEDCTInferenceJobsCommandOutput) => void), + cb?: (err: any, data?: ListSNOMEDCTInferenceJobsCommandOutput) => void + ): Promise | void { + const command = new ListSNOMEDCTInferenceJobsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

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

    @@ -665,6 +791,40 @@ export class ComprehendMedical extends ComprehendMedicalClient { } } + /** + *

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

    + */ + public startSNOMEDCTInferenceJob( + args: StartSNOMEDCTInferenceJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public startSNOMEDCTInferenceJob( + args: StartSNOMEDCTInferenceJobCommandInput, + cb: (err: any, data?: StartSNOMEDCTInferenceJobCommandOutput) => void + ): void; + public startSNOMEDCTInferenceJob( + args: StartSNOMEDCTInferenceJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartSNOMEDCTInferenceJobCommandOutput) => void + ): void; + public startSNOMEDCTInferenceJob( + args: StartSNOMEDCTInferenceJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StartSNOMEDCTInferenceJobCommandOutput) => void), + cb?: (err: any, data?: StartSNOMEDCTInferenceJobCommandOutput) => void + ): Promise | void { + const command = new StartSNOMEDCTInferenceJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

    Stops a medical entities detection job in progress.

    */ @@ -792,4 +952,38 @@ export class ComprehendMedical extends ComprehendMedicalClient { return this.send(command, optionsOrCb); } } + + /** + *

    + * Stops an InferSNOMEDCT inference job in progress. + *

    + */ + public stopSNOMEDCTInferenceJob( + args: StopSNOMEDCTInferenceJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public stopSNOMEDCTInferenceJob( + args: StopSNOMEDCTInferenceJobCommandInput, + cb: (err: any, data?: StopSNOMEDCTInferenceJobCommandOutput) => void + ): void; + public stopSNOMEDCTInferenceJob( + args: StopSNOMEDCTInferenceJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StopSNOMEDCTInferenceJobCommandOutput) => void + ): void; + public stopSNOMEDCTInferenceJob( + args: StopSNOMEDCTInferenceJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StopSNOMEDCTInferenceJobCommandOutput) => void), + cb?: (err: any, data?: StopSNOMEDCTInferenceJobCommandOutput) => void + ): Promise | void { + const command = new StopSNOMEDCTInferenceJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } } diff --git a/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts b/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts index 8b87e96ea614..0e74945ee3d0 100644 --- a/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts +++ b/clients/client-comprehendmedical/src/ComprehendMedicalClient.ts @@ -65,11 +65,16 @@ import { DescribeRxNormInferenceJobCommandInput, DescribeRxNormInferenceJobCommandOutput, } from "./commands/DescribeRxNormInferenceJobCommand"; +import { + DescribeSNOMEDCTInferenceJobCommandInput, + DescribeSNOMEDCTInferenceJobCommandOutput, +} from "./commands/DescribeSNOMEDCTInferenceJobCommand"; import { DetectEntitiesCommandInput, DetectEntitiesCommandOutput } from "./commands/DetectEntitiesCommand"; import { DetectEntitiesV2CommandInput, DetectEntitiesV2CommandOutput } from "./commands/DetectEntitiesV2Command"; import { DetectPHICommandInput, DetectPHICommandOutput } from "./commands/DetectPHICommand"; import { InferICD10CMCommandInput, InferICD10CMCommandOutput } from "./commands/InferICD10CMCommand"; import { InferRxNormCommandInput, InferRxNormCommandOutput } from "./commands/InferRxNormCommand"; +import { InferSNOMEDCTCommandInput, InferSNOMEDCTCommandOutput } from "./commands/InferSNOMEDCTCommand"; import { ListEntitiesDetectionV2JobsCommandInput, ListEntitiesDetectionV2JobsCommandOutput, @@ -86,6 +91,10 @@ import { ListRxNormInferenceJobsCommandInput, ListRxNormInferenceJobsCommandOutput, } from "./commands/ListRxNormInferenceJobsCommand"; +import { + ListSNOMEDCTInferenceJobsCommandInput, + ListSNOMEDCTInferenceJobsCommandOutput, +} from "./commands/ListSNOMEDCTInferenceJobsCommand"; import { StartEntitiesDetectionV2JobCommandInput, StartEntitiesDetectionV2JobCommandOutput, @@ -102,6 +111,10 @@ import { StartRxNormInferenceJobCommandInput, StartRxNormInferenceJobCommandOutput, } from "./commands/StartRxNormInferenceJobCommand"; +import { + StartSNOMEDCTInferenceJobCommandInput, + StartSNOMEDCTInferenceJobCommandOutput, +} from "./commands/StartSNOMEDCTInferenceJobCommand"; import { StopEntitiesDetectionV2JobCommandInput, StopEntitiesDetectionV2JobCommandOutput, @@ -118,6 +131,10 @@ import { StopRxNormInferenceJobCommandInput, StopRxNormInferenceJobCommandOutput, } from "./commands/StopRxNormInferenceJobCommand"; +import { + StopSNOMEDCTInferenceJobCommandInput, + StopSNOMEDCTInferenceJobCommandOutput, +} from "./commands/StopSNOMEDCTInferenceJobCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; export type ServiceInputTypes = @@ -125,46 +142,56 @@ export type ServiceInputTypes = | DescribeICD10CMInferenceJobCommandInput | DescribePHIDetectionJobCommandInput | DescribeRxNormInferenceJobCommandInput + | DescribeSNOMEDCTInferenceJobCommandInput | DetectEntitiesCommandInput | DetectEntitiesV2CommandInput | DetectPHICommandInput | InferICD10CMCommandInput | InferRxNormCommandInput + | InferSNOMEDCTCommandInput | ListEntitiesDetectionV2JobsCommandInput | ListICD10CMInferenceJobsCommandInput | ListPHIDetectionJobsCommandInput | ListRxNormInferenceJobsCommandInput + | ListSNOMEDCTInferenceJobsCommandInput | StartEntitiesDetectionV2JobCommandInput | StartICD10CMInferenceJobCommandInput | StartPHIDetectionJobCommandInput | StartRxNormInferenceJobCommandInput + | StartSNOMEDCTInferenceJobCommandInput | StopEntitiesDetectionV2JobCommandInput | StopICD10CMInferenceJobCommandInput | StopPHIDetectionJobCommandInput - | StopRxNormInferenceJobCommandInput; + | StopRxNormInferenceJobCommandInput + | StopSNOMEDCTInferenceJobCommandInput; export type ServiceOutputTypes = | DescribeEntitiesDetectionV2JobCommandOutput | DescribeICD10CMInferenceJobCommandOutput | DescribePHIDetectionJobCommandOutput | DescribeRxNormInferenceJobCommandOutput + | DescribeSNOMEDCTInferenceJobCommandOutput | DetectEntitiesCommandOutput | DetectEntitiesV2CommandOutput | DetectPHICommandOutput | InferICD10CMCommandOutput | InferRxNormCommandOutput + | InferSNOMEDCTCommandOutput | ListEntitiesDetectionV2JobsCommandOutput | ListICD10CMInferenceJobsCommandOutput | ListPHIDetectionJobsCommandOutput | ListRxNormInferenceJobsCommandOutput + | ListSNOMEDCTInferenceJobsCommandOutput | StartEntitiesDetectionV2JobCommandOutput | StartICD10CMInferenceJobCommandOutput | StartPHIDetectionJobCommandOutput | StartRxNormInferenceJobCommandOutput + | StartSNOMEDCTInferenceJobCommandOutput | StopEntitiesDetectionV2JobCommandOutput | StopICD10CMInferenceJobCommandOutput | StopPHIDetectionJobCommandOutput - | StopRxNormInferenceJobCommandOutput; + | StopRxNormInferenceJobCommandOutput + | StopSNOMEDCTInferenceJobCommandOutput; export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { /** @@ -315,7 +342,7 @@ type ComprehendMedicalClientResolvedConfigType = __SmithyResolvedConfiguration<_ export interface ComprehendMedicalClientResolvedConfig extends ComprehendMedicalClientResolvedConfigType {} /** - *

    Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions + *

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

    */ export class ComprehendMedicalClient extends __Client< diff --git a/clients/client-comprehendmedical/src/commands/DescribeSNOMEDCTInferenceJobCommand.ts b/clients/client-comprehendmedical/src/commands/DescribeSNOMEDCTInferenceJobCommand.ts new file mode 100644 index 000000000000..e94d6b3a3c13 --- /dev/null +++ b/clients/client-comprehendmedical/src/commands/DescribeSNOMEDCTInferenceJobCommand.ts @@ -0,0 +1,106 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ComprehendMedicalClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ComprehendMedicalClient"; +import { DescribeSNOMEDCTInferenceJobRequest, DescribeSNOMEDCTInferenceJobResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DescribeSNOMEDCTInferenceJobCommand, + serializeAws_json1_1DescribeSNOMEDCTInferenceJobCommand, +} from "../protocols/Aws_json1_1"; + +export interface DescribeSNOMEDCTInferenceJobCommandInput extends DescribeSNOMEDCTInferenceJobRequest {} +export interface DescribeSNOMEDCTInferenceJobCommandOutput + extends DescribeSNOMEDCTInferenceJobResponse, + __MetadataBearer {} + +/** + *

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

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ComprehendMedicalClient, DescribeSNOMEDCTInferenceJobCommand } from "@aws-sdk/client-comprehendmedical"; // ES Modules import + * // const { ComprehendMedicalClient, DescribeSNOMEDCTInferenceJobCommand } = require("@aws-sdk/client-comprehendmedical"); // CommonJS import + * const client = new ComprehendMedicalClient(config); + * const command = new DescribeSNOMEDCTInferenceJobCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeSNOMEDCTInferenceJobCommandInput} for command's `input` shape. + * @see {@link DescribeSNOMEDCTInferenceJobCommandOutput} for command's `response` shape. + * @see {@link ComprehendMedicalClientResolvedConfig | config} for ComprehendMedicalClient's `config` shape. + * + */ +export class DescribeSNOMEDCTInferenceJobCommand extends $Command< + DescribeSNOMEDCTInferenceJobCommandInput, + DescribeSNOMEDCTInferenceJobCommandOutput, + ComprehendMedicalClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeSNOMEDCTInferenceJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ComprehendMedicalClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ComprehendMedicalClient"; + const commandName = "DescribeSNOMEDCTInferenceJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeSNOMEDCTInferenceJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeSNOMEDCTInferenceJobResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeSNOMEDCTInferenceJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeSNOMEDCTInferenceJobCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeSNOMEDCTInferenceJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-comprehendmedical/src/commands/InferSNOMEDCTCommand.ts b/clients/client-comprehendmedical/src/commands/InferSNOMEDCTCommand.ts new file mode 100644 index 000000000000..871061077431 --- /dev/null +++ b/clients/client-comprehendmedical/src/commands/InferSNOMEDCTCommand.ts @@ -0,0 +1,100 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ComprehendMedicalClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ComprehendMedicalClient"; +import { InferSNOMEDCTRequest, InferSNOMEDCTResponse } from "../models/models_0"; +import { + deserializeAws_json1_1InferSNOMEDCTCommand, + serializeAws_json1_1InferSNOMEDCTCommand, +} from "../protocols/Aws_json1_1"; + +export interface InferSNOMEDCTCommandInput extends InferSNOMEDCTRequest {} +export interface InferSNOMEDCTCommandOutput extends InferSNOMEDCTResponse, __MetadataBearer {} + +/** + *

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

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ComprehendMedicalClient, InferSNOMEDCTCommand } from "@aws-sdk/client-comprehendmedical"; // ES Modules import + * // const { ComprehendMedicalClient, InferSNOMEDCTCommand } = require("@aws-sdk/client-comprehendmedical"); // CommonJS import + * const client = new ComprehendMedicalClient(config); + * const command = new InferSNOMEDCTCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link InferSNOMEDCTCommandInput} for command's `input` shape. + * @see {@link InferSNOMEDCTCommandOutput} for command's `response` shape. + * @see {@link ComprehendMedicalClientResolvedConfig | config} for ComprehendMedicalClient's `config` shape. + * + */ +export class InferSNOMEDCTCommand extends $Command< + InferSNOMEDCTCommandInput, + InferSNOMEDCTCommandOutput, + ComprehendMedicalClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: InferSNOMEDCTCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ComprehendMedicalClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ComprehendMedicalClient"; + const commandName = "InferSNOMEDCTCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: InferSNOMEDCTRequest.filterSensitiveLog, + outputFilterSensitiveLog: InferSNOMEDCTResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: InferSNOMEDCTCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1InferSNOMEDCTCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1InferSNOMEDCTCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-comprehendmedical/src/commands/ListSNOMEDCTInferenceJobsCommand.ts b/clients/client-comprehendmedical/src/commands/ListSNOMEDCTInferenceJobsCommand.ts new file mode 100644 index 000000000000..5dfa225fa3ca --- /dev/null +++ b/clients/client-comprehendmedical/src/commands/ListSNOMEDCTInferenceJobsCommand.ts @@ -0,0 +1,104 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ComprehendMedicalClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ComprehendMedicalClient"; +import { ListSNOMEDCTInferenceJobsRequest, ListSNOMEDCTInferenceJobsResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListSNOMEDCTInferenceJobsCommand, + serializeAws_json1_1ListSNOMEDCTInferenceJobsCommand, +} from "../protocols/Aws_json1_1"; + +export interface ListSNOMEDCTInferenceJobsCommandInput extends ListSNOMEDCTInferenceJobsRequest {} +export interface ListSNOMEDCTInferenceJobsCommandOutput extends ListSNOMEDCTInferenceJobsResponse, __MetadataBearer {} + +/** + *

    + * Gets a list of InferSNOMEDCT jobs a user has submitted. + *

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ComprehendMedicalClient, ListSNOMEDCTInferenceJobsCommand } from "@aws-sdk/client-comprehendmedical"; // ES Modules import + * // const { ComprehendMedicalClient, ListSNOMEDCTInferenceJobsCommand } = require("@aws-sdk/client-comprehendmedical"); // CommonJS import + * const client = new ComprehendMedicalClient(config); + * const command = new ListSNOMEDCTInferenceJobsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListSNOMEDCTInferenceJobsCommandInput} for command's `input` shape. + * @see {@link ListSNOMEDCTInferenceJobsCommandOutput} for command's `response` shape. + * @see {@link ComprehendMedicalClientResolvedConfig | config} for ComprehendMedicalClient's `config` shape. + * + */ +export class ListSNOMEDCTInferenceJobsCommand extends $Command< + ListSNOMEDCTInferenceJobsCommandInput, + ListSNOMEDCTInferenceJobsCommandOutput, + ComprehendMedicalClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListSNOMEDCTInferenceJobsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ComprehendMedicalClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ComprehendMedicalClient"; + const commandName = "ListSNOMEDCTInferenceJobsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListSNOMEDCTInferenceJobsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListSNOMEDCTInferenceJobsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListSNOMEDCTInferenceJobsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListSNOMEDCTInferenceJobsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1ListSNOMEDCTInferenceJobsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-comprehendmedical/src/commands/StartSNOMEDCTInferenceJobCommand.ts b/clients/client-comprehendmedical/src/commands/StartSNOMEDCTInferenceJobCommand.ts new file mode 100644 index 000000000000..110ba4311348 --- /dev/null +++ b/clients/client-comprehendmedical/src/commands/StartSNOMEDCTInferenceJobCommand.ts @@ -0,0 +1,104 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ComprehendMedicalClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ComprehendMedicalClient"; +import { StartSNOMEDCTInferenceJobRequest, StartSNOMEDCTInferenceJobResponse } from "../models/models_0"; +import { + deserializeAws_json1_1StartSNOMEDCTInferenceJobCommand, + serializeAws_json1_1StartSNOMEDCTInferenceJobCommand, +} from "../protocols/Aws_json1_1"; + +export interface StartSNOMEDCTInferenceJobCommandInput extends StartSNOMEDCTInferenceJobRequest {} +export interface StartSNOMEDCTInferenceJobCommandOutput extends StartSNOMEDCTInferenceJobResponse, __MetadataBearer {} + +/** + *

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

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ComprehendMedicalClient, StartSNOMEDCTInferenceJobCommand } from "@aws-sdk/client-comprehendmedical"; // ES Modules import + * // const { ComprehendMedicalClient, StartSNOMEDCTInferenceJobCommand } = require("@aws-sdk/client-comprehendmedical"); // CommonJS import + * const client = new ComprehendMedicalClient(config); + * const command = new StartSNOMEDCTInferenceJobCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link StartSNOMEDCTInferenceJobCommandInput} for command's `input` shape. + * @see {@link StartSNOMEDCTInferenceJobCommandOutput} for command's `response` shape. + * @see {@link ComprehendMedicalClientResolvedConfig | config} for ComprehendMedicalClient's `config` shape. + * + */ +export class StartSNOMEDCTInferenceJobCommand extends $Command< + StartSNOMEDCTInferenceJobCommandInput, + StartSNOMEDCTInferenceJobCommandOutput, + ComprehendMedicalClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartSNOMEDCTInferenceJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ComprehendMedicalClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ComprehendMedicalClient"; + const commandName = "StartSNOMEDCTInferenceJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StartSNOMEDCTInferenceJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: StartSNOMEDCTInferenceJobResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StartSNOMEDCTInferenceJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1StartSNOMEDCTInferenceJobCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1StartSNOMEDCTInferenceJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-comprehendmedical/src/commands/StopSNOMEDCTInferenceJobCommand.ts b/clients/client-comprehendmedical/src/commands/StopSNOMEDCTInferenceJobCommand.ts new file mode 100644 index 000000000000..c60cb13ae1be --- /dev/null +++ b/clients/client-comprehendmedical/src/commands/StopSNOMEDCTInferenceJobCommand.ts @@ -0,0 +1,101 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ComprehendMedicalClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../ComprehendMedicalClient"; +import { StopSNOMEDCTInferenceJobRequest, StopSNOMEDCTInferenceJobResponse } from "../models/models_0"; +import { + deserializeAws_json1_1StopSNOMEDCTInferenceJobCommand, + serializeAws_json1_1StopSNOMEDCTInferenceJobCommand, +} from "../protocols/Aws_json1_1"; + +export interface StopSNOMEDCTInferenceJobCommandInput extends StopSNOMEDCTInferenceJobRequest {} +export interface StopSNOMEDCTInferenceJobCommandOutput extends StopSNOMEDCTInferenceJobResponse, __MetadataBearer {} + +/** + *

    + * Stops an InferSNOMEDCT inference job in progress. + *

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ComprehendMedicalClient, StopSNOMEDCTInferenceJobCommand } from "@aws-sdk/client-comprehendmedical"; // ES Modules import + * // const { ComprehendMedicalClient, StopSNOMEDCTInferenceJobCommand } = require("@aws-sdk/client-comprehendmedical"); // CommonJS import + * const client = new ComprehendMedicalClient(config); + * const command = new StopSNOMEDCTInferenceJobCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link StopSNOMEDCTInferenceJobCommandInput} for command's `input` shape. + * @see {@link StopSNOMEDCTInferenceJobCommandOutput} for command's `response` shape. + * @see {@link ComprehendMedicalClientResolvedConfig | config} for ComprehendMedicalClient's `config` shape. + * + */ +export class StopSNOMEDCTInferenceJobCommand extends $Command< + StopSNOMEDCTInferenceJobCommandInput, + StopSNOMEDCTInferenceJobCommandOutput, + ComprehendMedicalClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StopSNOMEDCTInferenceJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ComprehendMedicalClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ComprehendMedicalClient"; + const commandName = "StopSNOMEDCTInferenceJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StopSNOMEDCTInferenceJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: StopSNOMEDCTInferenceJobResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StopSNOMEDCTInferenceJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1StopSNOMEDCTInferenceJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1StopSNOMEDCTInferenceJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-comprehendmedical/src/commands/index.ts b/clients/client-comprehendmedical/src/commands/index.ts index 19b38e0d2892..1c18ff64565c 100644 --- a/clients/client-comprehendmedical/src/commands/index.ts +++ b/clients/client-comprehendmedical/src/commands/index.ts @@ -2,20 +2,25 @@ export * from "./DescribeEntitiesDetectionV2JobCommand"; export * from "./DescribeICD10CMInferenceJobCommand"; export * from "./DescribePHIDetectionJobCommand"; export * from "./DescribeRxNormInferenceJobCommand"; +export * from "./DescribeSNOMEDCTInferenceJobCommand"; export * from "./DetectEntitiesCommand"; export * from "./DetectEntitiesV2Command"; export * from "./DetectPHICommand"; export * from "./InferICD10CMCommand"; export * from "./InferRxNormCommand"; +export * from "./InferSNOMEDCTCommand"; export * from "./ListEntitiesDetectionV2JobsCommand"; export * from "./ListICD10CMInferenceJobsCommand"; export * from "./ListPHIDetectionJobsCommand"; export * from "./ListRxNormInferenceJobsCommand"; +export * from "./ListSNOMEDCTInferenceJobsCommand"; export * from "./StartEntitiesDetectionV2JobCommand"; export * from "./StartICD10CMInferenceJobCommand"; export * from "./StartPHIDetectionJobCommand"; export * from "./StartRxNormInferenceJobCommand"; +export * from "./StartSNOMEDCTInferenceJobCommand"; export * from "./StopEntitiesDetectionV2JobCommand"; export * from "./StopICD10CMInferenceJobCommand"; export * from "./StopPHIDetectionJobCommand"; export * from "./StopRxNormInferenceJobCommand"; +export * from "./StopSNOMEDCTInferenceJobCommand"; diff --git a/clients/client-comprehendmedical/src/endpoints.ts b/clients/client-comprehendmedical/src/endpoints.ts index 538da94ed073..de05721735cd 100644 --- a/clients/client-comprehendmedical/src/endpoints.ts +++ b/clients/client-comprehendmedical/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-comprehendmedical/src/models/models_0.ts b/clients/client-comprehendmedical/src/models/models_0.ts index 098851553ef4..85ce59fde449 100644 --- a/clients/client-comprehendmedical/src/models/models_0.ts +++ b/clients/client-comprehendmedical/src/models/models_0.ts @@ -25,6 +25,7 @@ export enum RelationshipType { ROUTE_OR_MODE = "ROUTE_OR_MODE", STRENGTH = "STRENGTH", SYSTEM_ORGAN_SITE = "SYSTEM_ORGAN_SITE", + TEST_UNIT = "TEST_UNIT", TEST_UNITS = "TEST_UNITS", TEST_VALUE = "TEST_VALUE", WITH_DOSAGE = "WITH_DOSAGE", @@ -47,7 +48,7 @@ export interface Trait { Name?: AttributeName | string; /** - *

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

    + *

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

    */ Score?: number; } @@ -71,12 +72,15 @@ export enum EntitySubType { DIRECTION = "DIRECTION", DOSAGE = "DOSAGE", DURATION = "DURATION", + DX_NAME = "DX_NAME", EMAIL = "EMAIL", FORM = "FORM", FREQUENCY = "FREQUENCY", GENERIC_NAME = "GENERIC_NAME", + ID = "ID", IDENTIFIER = "IDENTIFIER", NAME = "NAME", + PHONE_OR_FAX = "PHONE_OR_FAX", PROCEDURE_NAME = "PROCEDURE_NAME", PROFESSION = "PROFESSION", QUALITY = "QUALITY", @@ -86,6 +90,7 @@ export enum EntitySubType { STRENGTH = "STRENGTH", SYSTEM_ORGAN_SITE = "SYSTEM_ORGAN_SITE", TEST_NAME = "TEST_NAME", + TEST_UNIT = "TEST_UNIT", TEST_UNITS = "TEST_UNITS", TEST_VALUE = "TEST_VALUE", TIME_EXPRESSION = "TIME_EXPRESSION", @@ -111,13 +116,13 @@ export interface Attribute { Type?: EntitySubType | string; /** - *

    The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized + *

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

    */ Score?: number; /** - *

    The level of confidence that Amazon Comprehend Medical has that this attribute is correctly related to this + *

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

    */ RelationshipScore?: number; @@ -172,9 +177,32 @@ export namespace Attribute { }); } +/** + *

    + * The number of characters in the input text to be analyzed. + *

    + */ +export interface Characters { + /** + *

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

    + */ + OriginalTextCharacters?: number; +} + +export namespace Characters { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Characters): any => ({ + ...obj, + }); +} + export interface DescribeEntitiesDetectionV2JobRequest { /** - *

    The identifier that Amazon Comprehend Medical generated for the job. The + *

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

    */ @@ -245,7 +273,7 @@ export interface OutputDataConfig { S3Bucket: string | undefined; /** - *

    The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory + *

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

    */ @@ -320,7 +348,7 @@ export interface ComprehendMedicalAsyncJobProperties { LanguageCode?: LanguageCode | string; /** - *

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

    + *

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

    */ DataAccessRoleArn?: string; @@ -478,7 +506,7 @@ export namespace DescribeICD10CMInferenceJobResponse { export interface DescribePHIDetectionJobRequest { /** - *

    The identifier that Amazon Comprehend Medical generated for the job. The StartPHIDetectionJob + *

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

    */ JobId: string | undefined; @@ -542,6 +570,40 @@ export namespace DescribeRxNormInferenceJobResponse { }); } +export interface DescribeSNOMEDCTInferenceJobRequest { + /** + *

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

    + */ + JobId: string | undefined; +} + +export namespace DescribeSNOMEDCTInferenceJobRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeSNOMEDCTInferenceJobRequest): any => ({ + ...obj, + }); +} + +export interface DescribeSNOMEDCTInferenceJobResponse { + /** + *

    Provides information about a detection job.

    + */ + ComprehendMedicalAsyncJobProperties?: ComprehendMedicalAsyncJobProperties; +} + +export namespace DescribeSNOMEDCTInferenceJobResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeSNOMEDCTInferenceJobResponse): any => ({ + ...obj, + }); +} + export interface DetectEntitiesRequest { /** *

    A UTF-8 text string containing the clinical content being examined for entities. Each @@ -582,7 +644,7 @@ export interface Entity { EndOffset?: number; /** - *

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

    + *

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

    */ Score?: number; @@ -622,11 +684,11 @@ export namespace Entity { } /** - *

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

    + *

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

    */ export interface UnmappedAttribute { /** - *

    The type of the attribute, could be one of the following values: "MEDICATION", + *

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

    */ @@ -651,7 +713,7 @@ export interface DetectEntitiesResponse { /** *

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

    */ Entities: Entity[] | undefined; @@ -705,7 +767,7 @@ export namespace InvalidEncodingException { } /** - *

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

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

    */ export interface ServiceUnavailableException extends __SmithyException, $MetadataBearer { @@ -817,7 +879,7 @@ export interface DetectPHIResponse { /** *

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

    */ Entities: Entity[] | undefined; @@ -891,7 +953,7 @@ export interface ICD10CMTrait { Name?: ICD10CMTraitName | string; /** - *

    The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized + *

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

    */ Score?: number; @@ -1410,6 +1472,391 @@ export namespace InferRxNormResponse { }); } +export interface InferSNOMEDCTRequest { + /** + *

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

    + */ + Text: string | undefined; +} + +export namespace InferSNOMEDCTRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InferSNOMEDCTRequest): any => ({ + ...obj, + }); +} + +export enum SNOMEDCTEntityCategory { + ANATOMY = "ANATOMY", + MEDICAL_CONDITION = "MEDICAL_CONDITION", + TEST_TREATMENT_PROCEDURE = "TEST_TREATMENT_PROCEDURE", +} + +export enum SNOMEDCTRelationshipType { + ACUITY = "ACUITY", + DIRECTION = "DIRECTION", + QUALITY = "QUALITY", + SYSTEM_ORGAN_SITE = "SYSTEM_ORGAN_SITE", + TEST_UNITS = "TEST_UNITS", + TEST_VALUE = "TEST_VALUE", +} + +/** + *

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

    + */ +export interface SNOMEDCTConcept { + /** + *

    + * The description of the SNOMED-CT concept. + *

    + */ + Description?: string; + + /** + *

    + * The numeric ID for the SNOMED-CT concept. + *

    + */ + Code?: string; + + /** + *

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

    + */ + Score?: number; +} + +export namespace SNOMEDCTConcept { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SNOMEDCTConcept): any => ({ + ...obj, + }); +} + +export enum SNOMEDCTTraitName { + DIAGNOSIS = "DIAGNOSIS", + NEGATION = "NEGATION", + SIGN = "SIGN", + SYMPTOM = "SYMPTOM", +} + +/** + *

    + * Contextual information for an entity. + *

    + */ +export interface SNOMEDCTTrait { + /** + *

    + * The name or contextual description of a detected trait. + *

    + */ + Name?: SNOMEDCTTraitName | string; + + /** + *

    + * The level of confidence that Comprehend Medical has in the accuracy of a detected trait. + *

    + */ + Score?: number; +} + +export namespace SNOMEDCTTrait { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SNOMEDCTTrait): any => ({ + ...obj, + }); +} + +export enum SNOMEDCTAttributeType { + ACUITY = "ACUITY", + DIRECTION = "DIRECTION", + QUALITY = "QUALITY", + SYSTEM_ORGAN_SITE = "SYSTEM_ORGAN_SITE", + TEST_UNIT = "TEST_UNIT", + TEST_VALUE = "TEST_VALUE", +} + +/** + *

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

    + */ +export interface SNOMEDCTAttribute { + /** + *

    + * The category of the detected attribute. Possible categories include MEDICAL_CONDITION, ANATOMY, and TEST_TREATMENT_PROCEDURE. + *

    + */ + Category?: SNOMEDCTEntityCategory | string; + + /** + *

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

    + */ + Type?: SNOMEDCTAttributeType | string; + + /** + *

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

    + */ + Score?: number; + + /** + *

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

    + */ + RelationshipScore?: number; + + /** + *

    + * The type of relationship that exists between the entity and the related attribute. + *

    + */ + RelationshipType?: SNOMEDCTRelationshipType | string; + + /** + *

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

    + */ + Id?: number; + + /** + *

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

    + */ + BeginOffset?: number; + + /** + *

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

    + */ + EndOffset?: number; + + /** + *

    + * The segment of input text extracted as this attribute. + *

    + */ + Text?: string; + + /** + *

    + * Contextual information for an attribute. Examples include signs, symptoms, diagnosis, and negation. + *

    + */ + Traits?: SNOMEDCTTrait[]; + + /** + *

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

    + */ + SNOMEDCTConcepts?: SNOMEDCTConcept[]; +} + +export namespace SNOMEDCTAttribute { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SNOMEDCTAttribute): any => ({ + ...obj, + }); +} + +export enum SNOMEDCTEntityType { + DX_NAME = "DX_NAME", + PROCEDURE_NAME = "PROCEDURE_NAME", + TEST_NAME = "TEST_NAME", + TREATMENT_NAME = "TREATMENT_NAME", +} + +/** + *

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

    + */ +export interface SNOMEDCTEntity { + /** + *

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

    + */ + Id?: number; + + /** + *

    + * The segment of input text extracted as this entity. + *

    + */ + Text?: string; + + /** + *

    + * The category of the detected entity. Possible categories are MEDICAL_CONDITION, ANATOMY, or TEST_TREATMENT_PROCEDURE. + *

    + */ + Category?: SNOMEDCTEntityCategory | string; + + /** + *

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

    + */ + Type?: SNOMEDCTEntityType | string; + + /** + *

    + * The level of confidence that Comprehend Medical has in the accuracy of the detected entity. + *

    + */ + Score?: number; + + /** + *

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

    + */ + BeginOffset?: number; + + /** + *

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

    + */ + EndOffset?: number; + + /** + *

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

    + */ + Attributes?: SNOMEDCTAttribute[]; + + /** + *

    + * Contextual information for the entity. + *

    + */ + Traits?: SNOMEDCTTrait[]; + + /** + *

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

    + */ + SNOMEDCTConcepts?: SNOMEDCTConcept[]; +} + +export namespace SNOMEDCTEntity { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SNOMEDCTEntity): any => ({ + ...obj, + }); +} + +/** + *

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

    + */ +export interface SNOMEDCTDetails { + /** + *

    + * The edition of SNOMED-CT used. The edition used for the InferSNOMEDCT editions is the US edition. + *

    + */ + Edition?: string; + + /** + *

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

    + */ + Language?: string; + + /** + *

    + * The version date of the SNOMED-CT ontology used. + *

    + */ + VersionDate?: string; +} + +export namespace SNOMEDCTDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SNOMEDCTDetails): any => ({ + ...obj, + }); +} + +export interface InferSNOMEDCTResponse { + /** + *

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

    + */ + Entities: SNOMEDCTEntity[] | undefined; + + /** + *

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

    + */ + PaginationToken?: string; + + /** + *

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

    + */ + ModelVersion?: string; + + /** + *

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

    + */ + SNOMEDCTDetails?: SNOMEDCTDetails; + + /** + *

    + * The number of characters in the input request documentation. + *

    + */ + Characters?: Characters; +} + +export namespace InferSNOMEDCTResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InferSNOMEDCTResponse): any => ({ + ...obj, + }); +} + /** *

    Provides information for filtering a list of detection jobs.

    */ @@ -1660,20 +2107,75 @@ export namespace ListRxNormInferenceJobsResponse { }); } +export interface ListSNOMEDCTInferenceJobsRequest { + /** + *

    Provides information for filtering a list of detection jobs.

    + */ + Filter?: ComprehendMedicalAsyncJobFilter; + + /** + *

    + * Identifies the next page of InferSNOMEDCT results to return. + *

    + */ + NextToken?: string; + + /** + *

    + * The maximum number of results to return in each page. The default is 100. + *

    + */ + MaxResults?: number; +} + +export namespace ListSNOMEDCTInferenceJobsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListSNOMEDCTInferenceJobsRequest): any => ({ + ...obj, + }); +} + +export interface ListSNOMEDCTInferenceJobsResponse { + /** + *

    + * A list containing the properties of each job that is returned. + *

    + */ + ComprehendMedicalAsyncJobPropertiesList?: ComprehendMedicalAsyncJobProperties[]; + + /** + *

    + * Identifies the next page of results to return. + *

    + */ + NextToken?: string; +} + +export namespace ListSNOMEDCTInferenceJobsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListSNOMEDCTInferenceJobsResponse): any => ({ + ...obj, + }); +} + export interface StartEntitiesDetectionV2JobRequest { /** - *

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

    + *

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

    */ InputDataConfig: InputDataConfig | undefined; /** - *

    Specifies where to send the output files.

    + *

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

    */ OutputDataConfig: OutputDataConfig | undefined; /** *

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

    + * grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

    */ DataAccessRoleArn: string | undefined; @@ -1683,8 +2185,8 @@ export interface StartEntitiesDetectionV2JobRequest { JobName?: string; /** - *

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

    + *

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

    */ ClientRequestToken?: string; @@ -1695,7 +2197,7 @@ export interface StartEntitiesDetectionV2JobRequest { KMSKey?: string; /** - *

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

    + *

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

    */ LanguageCode: LanguageCode | string | undefined; } @@ -1739,7 +2241,7 @@ export interface StartICD10CMInferenceJobRequest { /** *

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

    + * grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

    */ DataAccessRoleArn: string | undefined; @@ -1749,7 +2251,7 @@ export interface StartICD10CMInferenceJobRequest { JobName?: string; /** - *

    A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical + *

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

    */ ClientRequestToken?: string; @@ -1805,7 +2307,7 @@ export interface StartPHIDetectionJobRequest { /** *

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

    + * grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

    */ DataAccessRoleArn: string | undefined; @@ -1815,7 +2317,7 @@ export interface StartPHIDetectionJobRequest { JobName?: string; /** - *

    A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical + *

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

    */ ClientRequestToken?: string; @@ -1871,7 +2373,7 @@ export interface StartRxNormInferenceJobRequest { /** *

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

    + * grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

    */ DataAccessRoleArn: string | undefined; @@ -1881,7 +2383,7 @@ export interface StartRxNormInferenceJobRequest { JobName?: string; /** - *

    A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical + *

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

    */ ClientRequestToken?: string; @@ -1923,6 +2425,81 @@ export namespace StartRxNormInferenceJobResponse { }); } +export interface StartSNOMEDCTInferenceJobRequest { + /** + *

    The input properties for an entities detection job. This includes the name of the S3 + * bucket and the path to the files to be analyzed.

    + */ + InputDataConfig: InputDataConfig | undefined; + + /** + *

    The output properties for a detection job.

    + */ + OutputDataConfig: OutputDataConfig | undefined; + + /** + *

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

    + */ + DataAccessRoleArn: string | undefined; + + /** + *

    + * The user generated name the asynchronous InferSNOMEDCT job. + *

    + */ + JobName?: string; + + /** + *

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

    + */ + ClientRequestToken?: string; + + /** + *

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

    + */ + KMSKey?: string; + + /** + *

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

    + */ + LanguageCode: LanguageCode | string | undefined; +} + +export namespace StartSNOMEDCTInferenceJobRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StartSNOMEDCTInferenceJobRequest): any => ({ + ...obj, + }); +} + +export interface StartSNOMEDCTInferenceJobResponse { + /** + *

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

    + */ + JobId?: string; +} + +export namespace StartSNOMEDCTInferenceJobResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StartSNOMEDCTInferenceJobResponse): any => ({ + ...obj, + }); +} + export interface StopEntitiesDetectionV2JobRequest { /** *

    The identifier of the medical entities job to stop.

    @@ -2052,3 +2629,39 @@ export namespace StopRxNormInferenceJobResponse { ...obj, }); } + +export interface StopSNOMEDCTInferenceJobRequest { + /** + *

    + * The job id of the asynchronous InferSNOMEDCT job to be stopped. + *

    + */ + JobId: string | undefined; +} + +export namespace StopSNOMEDCTInferenceJobRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StopSNOMEDCTInferenceJobRequest): any => ({ + ...obj, + }); +} + +export interface StopSNOMEDCTInferenceJobResponse { + /** + *

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

    + */ + JobId?: string; +} + +export namespace StopSNOMEDCTInferenceJobResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StopSNOMEDCTInferenceJobResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-comprehendmedical/src/protocols/Aws_json1_1.ts b/clients/client-comprehendmedical/src/protocols/Aws_json1_1.ts index 15090a3b81ec..90c0ed373716 100644 --- a/clients/client-comprehendmedical/src/protocols/Aws_json1_1.ts +++ b/clients/client-comprehendmedical/src/protocols/Aws_json1_1.ts @@ -33,11 +33,16 @@ import { DescribeRxNormInferenceJobCommandInput, DescribeRxNormInferenceJobCommandOutput, } from "../commands/DescribeRxNormInferenceJobCommand"; +import { + DescribeSNOMEDCTInferenceJobCommandInput, + DescribeSNOMEDCTInferenceJobCommandOutput, +} from "../commands/DescribeSNOMEDCTInferenceJobCommand"; import { DetectEntitiesCommandInput, DetectEntitiesCommandOutput } from "../commands/DetectEntitiesCommand"; import { DetectEntitiesV2CommandInput, DetectEntitiesV2CommandOutput } from "../commands/DetectEntitiesV2Command"; import { DetectPHICommandInput, DetectPHICommandOutput } from "../commands/DetectPHICommand"; import { InferICD10CMCommandInput, InferICD10CMCommandOutput } from "../commands/InferICD10CMCommand"; import { InferRxNormCommandInput, InferRxNormCommandOutput } from "../commands/InferRxNormCommand"; +import { InferSNOMEDCTCommandInput, InferSNOMEDCTCommandOutput } from "../commands/InferSNOMEDCTCommand"; import { ListEntitiesDetectionV2JobsCommandInput, ListEntitiesDetectionV2JobsCommandOutput, @@ -54,6 +59,10 @@ import { ListRxNormInferenceJobsCommandInput, ListRxNormInferenceJobsCommandOutput, } from "../commands/ListRxNormInferenceJobsCommand"; +import { + ListSNOMEDCTInferenceJobsCommandInput, + ListSNOMEDCTInferenceJobsCommandOutput, +} from "../commands/ListSNOMEDCTInferenceJobsCommand"; import { StartEntitiesDetectionV2JobCommandInput, StartEntitiesDetectionV2JobCommandOutput, @@ -70,6 +79,10 @@ import { StartRxNormInferenceJobCommandInput, StartRxNormInferenceJobCommandOutput, } from "../commands/StartRxNormInferenceJobCommand"; +import { + StartSNOMEDCTInferenceJobCommandInput, + StartSNOMEDCTInferenceJobCommandOutput, +} from "../commands/StartSNOMEDCTInferenceJobCommand"; import { StopEntitiesDetectionV2JobCommandInput, StopEntitiesDetectionV2JobCommandOutput, @@ -86,8 +99,13 @@ import { StopRxNormInferenceJobCommandInput, StopRxNormInferenceJobCommandOutput, } from "../commands/StopRxNormInferenceJobCommand"; +import { + StopSNOMEDCTInferenceJobCommandInput, + StopSNOMEDCTInferenceJobCommandOutput, +} from "../commands/StopSNOMEDCTInferenceJobCommand"; import { Attribute, + Characters, ComprehendMedicalAsyncJobFilter, ComprehendMedicalAsyncJobProperties, DescribeEntitiesDetectionV2JobRequest, @@ -98,6 +116,8 @@ import { DescribePHIDetectionJobResponse, DescribeRxNormInferenceJobRequest, DescribeRxNormInferenceJobResponse, + DescribeSNOMEDCTInferenceJobRequest, + DescribeSNOMEDCTInferenceJobResponse, DetectEntitiesRequest, DetectEntitiesResponse, DetectEntitiesV2Request, @@ -113,6 +133,8 @@ import { InferICD10CMResponse, InferRxNormRequest, InferRxNormResponse, + InferSNOMEDCTRequest, + InferSNOMEDCTResponse, InputDataConfig, InternalServerException, InvalidEncodingException, @@ -125,6 +147,8 @@ import { ListPHIDetectionJobsResponse, ListRxNormInferenceJobsRequest, ListRxNormInferenceJobsResponse, + ListSNOMEDCTInferenceJobsRequest, + ListSNOMEDCTInferenceJobsResponse, OutputDataConfig, ResourceNotFoundException, RxNormAttribute, @@ -132,6 +156,11 @@ import { RxNormEntity, RxNormTrait, ServiceUnavailableException, + SNOMEDCTAttribute, + SNOMEDCTConcept, + SNOMEDCTDetails, + SNOMEDCTEntity, + SNOMEDCTTrait, StartEntitiesDetectionV2JobRequest, StartEntitiesDetectionV2JobResponse, StartICD10CMInferenceJobRequest, @@ -140,6 +169,8 @@ import { StartPHIDetectionJobResponse, StartRxNormInferenceJobRequest, StartRxNormInferenceJobResponse, + StartSNOMEDCTInferenceJobRequest, + StartSNOMEDCTInferenceJobResponse, StopEntitiesDetectionV2JobRequest, StopEntitiesDetectionV2JobResponse, StopICD10CMInferenceJobRequest, @@ -148,6 +179,8 @@ import { StopPHIDetectionJobResponse, StopRxNormInferenceJobRequest, StopRxNormInferenceJobResponse, + StopSNOMEDCTInferenceJobRequest, + StopSNOMEDCTInferenceJobResponse, TextSizeLimitExceededException, TooManyRequestsException, Trait, @@ -207,6 +240,19 @@ export const serializeAws_json1_1DescribeRxNormInferenceJobCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeSNOMEDCTInferenceJobCommand = async ( + input: DescribeSNOMEDCTInferenceJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "ComprehendMedical_20181030.DescribeSNOMEDCTInferenceJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeSNOMEDCTInferenceJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DetectEntitiesCommand = async ( input: DetectEntitiesCommandInput, context: __SerdeContext @@ -272,6 +318,19 @@ export const serializeAws_json1_1InferRxNormCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1InferSNOMEDCTCommand = async ( + input: InferSNOMEDCTCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "ComprehendMedical_20181030.InferSNOMEDCT", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1InferSNOMEDCTRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListEntitiesDetectionV2JobsCommand = async ( input: ListEntitiesDetectionV2JobsCommandInput, context: __SerdeContext @@ -324,6 +383,19 @@ export const serializeAws_json1_1ListRxNormInferenceJobsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListSNOMEDCTInferenceJobsCommand = async ( + input: ListSNOMEDCTInferenceJobsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "ComprehendMedical_20181030.ListSNOMEDCTInferenceJobs", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListSNOMEDCTInferenceJobsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1StartEntitiesDetectionV2JobCommand = async ( input: StartEntitiesDetectionV2JobCommandInput, context: __SerdeContext @@ -376,6 +448,19 @@ export const serializeAws_json1_1StartRxNormInferenceJobCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1StartSNOMEDCTInferenceJobCommand = async ( + input: StartSNOMEDCTInferenceJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "ComprehendMedical_20181030.StartSNOMEDCTInferenceJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1StartSNOMEDCTInferenceJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1StopEntitiesDetectionV2JobCommand = async ( input: StopEntitiesDetectionV2JobCommandInput, context: __SerdeContext @@ -428,6 +513,19 @@ export const serializeAws_json1_1StopRxNormInferenceJobCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1StopSNOMEDCTInferenceJobCommand = async ( + input: StopSNOMEDCTInferenceJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "ComprehendMedical_20181030.StopSNOMEDCTInferenceJob", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1StopSNOMEDCTInferenceJobRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const deserializeAws_json1_1DescribeEntitiesDetectionV2JobCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -740,6 +838,84 @@ const deserializeAws_json1_1DescribeRxNormInferenceJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DescribeSNOMEDCTInferenceJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeSNOMEDCTInferenceJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeSNOMEDCTInferenceJobResponse(data, context); + const response: DescribeSNOMEDCTInferenceJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeSNOMEDCTInferenceJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.comprehendmedical#InternalServerException": + response = { + ...(await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.comprehendmedical#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.comprehendmedical#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TooManyRequestsException": + case "com.amazonaws.comprehendmedical#TooManyRequestsException": + response = { + ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DetectEntitiesCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1210,6 +1386,100 @@ const deserializeAws_json1_1InferRxNormCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1InferSNOMEDCTCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1InferSNOMEDCTCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1InferSNOMEDCTResponse(data, context); + const response: InferSNOMEDCTCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1InferSNOMEDCTCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.comprehendmedical#InternalServerException": + response = { + ...(await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidEncodingException": + case "com.amazonaws.comprehendmedical#InvalidEncodingException": + response = { + ...(await deserializeAws_json1_1InvalidEncodingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.comprehendmedical#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceUnavailableException": + case "com.amazonaws.comprehendmedical#ServiceUnavailableException": + response = { + ...(await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TextSizeLimitExceededException": + case "com.amazonaws.comprehendmedical#TextSizeLimitExceededException": + response = { + ...(await deserializeAws_json1_1TextSizeLimitExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TooManyRequestsException": + case "com.amazonaws.comprehendmedical#TooManyRequestsException": + response = { + ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1ListEntitiesDetectionV2JobsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1522,27 +1792,27 @@ const deserializeAws_json1_1ListRxNormInferenceJobsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1StartEntitiesDetectionV2JobCommand = async ( +export const deserializeAws_json1_1ListSNOMEDCTInferenceJobsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1StartEntitiesDetectionV2JobCommandError(output, context); + return deserializeAws_json1_1ListSNOMEDCTInferenceJobsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1StartEntitiesDetectionV2JobResponse(data, context); - const response: StartEntitiesDetectionV2JobCommandOutput = { + contents = deserializeAws_json1_1ListSNOMEDCTInferenceJobsResponse(data, context); + const response: ListSNOMEDCTInferenceJobsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1StartEntitiesDetectionV2JobCommandError = async ( +const deserializeAws_json1_1ListSNOMEDCTInferenceJobsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1567,18 +1837,18 @@ const deserializeAws_json1_1StartEntitiesDetectionV2JobCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ResourceNotFoundException": - case "com.amazonaws.comprehendmedical#ResourceNotFoundException": + case "TooManyRequestsException": + case "com.amazonaws.comprehendmedical#TooManyRequestsException": response = { - ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; break; - case "TooManyRequestsException": - case "com.amazonaws.comprehendmedical#TooManyRequestsException": + case "ValidationException": + case "com.amazonaws.comprehendmedical#ValidationException": response = { - ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_json1_1ValidationExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -1600,27 +1870,27 @@ const deserializeAws_json1_1StartEntitiesDetectionV2JobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1StartICD10CMInferenceJobCommand = async ( +export const deserializeAws_json1_1StartEntitiesDetectionV2JobCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1StartICD10CMInferenceJobCommandError(output, context); + return deserializeAws_json1_1StartEntitiesDetectionV2JobCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1StartICD10CMInferenceJobResponse(data, context); - const response: StartICD10CMInferenceJobCommandOutput = { + contents = deserializeAws_json1_1StartEntitiesDetectionV2JobResponse(data, context); + const response: StartEntitiesDetectionV2JobCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1StartICD10CMInferenceJobCommandError = async ( +const deserializeAws_json1_1StartEntitiesDetectionV2JobCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1678,27 +1948,27 @@ const deserializeAws_json1_1StartICD10CMInferenceJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1StartPHIDetectionJobCommand = async ( +export const deserializeAws_json1_1StartICD10CMInferenceJobCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1StartPHIDetectionJobCommandError(output, context); + return deserializeAws_json1_1StartICD10CMInferenceJobCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1StartPHIDetectionJobResponse(data, context); - const response: StartPHIDetectionJobCommandOutput = { + contents = deserializeAws_json1_1StartICD10CMInferenceJobResponse(data, context); + const response: StartICD10CMInferenceJobCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1StartPHIDetectionJobCommandError = async ( +const deserializeAws_json1_1StartICD10CMInferenceJobCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1756,7 +2026,85 @@ const deserializeAws_json1_1StartPHIDetectionJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_json1_1StartRxNormInferenceJobCommand = async ( +export const deserializeAws_json1_1StartPHIDetectionJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1StartPHIDetectionJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1StartPHIDetectionJobResponse(data, context); + const response: StartPHIDetectionJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StartPHIDetectionJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.comprehendmedical#InternalServerException": + response = { + ...(await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.comprehendmedical#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.comprehendmedical#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TooManyRequestsException": + case "com.amazonaws.comprehendmedical#TooManyRequestsException": + response = { + ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_json1_1StartRxNormInferenceJobCommand = async ( output: __HttpResponse, context: __SerdeContext ): Promise => { @@ -1834,6 +2182,84 @@ const deserializeAws_json1_1StartRxNormInferenceJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1StartSNOMEDCTInferenceJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1StartSNOMEDCTInferenceJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1StartSNOMEDCTInferenceJobResponse(data, context); + const response: StartSNOMEDCTInferenceJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StartSNOMEDCTInferenceJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.comprehendmedical#InternalServerException": + response = { + ...(await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.comprehendmedical#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.comprehendmedical#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TooManyRequestsException": + case "com.amazonaws.comprehendmedical#TooManyRequestsException": + response = { + ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1StopEntitiesDetectionV2JobCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2114,6 +2540,84 @@ const deserializeAws_json1_1StopRxNormInferenceJobCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1StopSNOMEDCTInferenceJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1StopSNOMEDCTInferenceJobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1StopSNOMEDCTInferenceJobResponse(data, context); + const response: StopSNOMEDCTInferenceJobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StopSNOMEDCTInferenceJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.comprehendmedical#InternalServerException": + response = { + ...(await deserializeAws_json1_1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.comprehendmedical#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.comprehendmedical#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TooManyRequestsException": + case "com.amazonaws.comprehendmedical#TooManyRequestsException": + response = { + ...(await deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + const deserializeAws_json1_1InternalServerExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -2284,6 +2788,15 @@ const serializeAws_json1_1DescribeRxNormInferenceJobRequest = ( }; }; +const serializeAws_json1_1DescribeSNOMEDCTInferenceJobRequest = ( + input: DescribeSNOMEDCTInferenceJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobId !== undefined && input.JobId !== null && { JobId: input.JobId }), + }; +}; + const serializeAws_json1_1DetectEntitiesRequest = (input: DetectEntitiesRequest, context: __SerdeContext): any => { return { ...(input.Text !== undefined && input.Text !== null && { Text: input.Text }), @@ -2314,6 +2827,12 @@ const serializeAws_json1_1InferRxNormRequest = (input: InferRxNormRequest, conte }; }; +const serializeAws_json1_1InferSNOMEDCTRequest = (input: InferSNOMEDCTRequest, context: __SerdeContext): any => { + return { + ...(input.Text !== undefined && input.Text !== null && { Text: input.Text }), + }; +}; + const serializeAws_json1_1InputDataConfig = (input: InputDataConfig, context: __SerdeContext): any => { return { ...(input.S3Bucket !== undefined && input.S3Bucket !== null && { S3Bucket: input.S3Bucket }), @@ -2369,6 +2888,18 @@ const serializeAws_json1_1ListRxNormInferenceJobsRequest = ( }; }; +const serializeAws_json1_1ListSNOMEDCTInferenceJobsRequest = ( + input: ListSNOMEDCTInferenceJobsRequest, + context: __SerdeContext +): any => { + return { + ...(input.Filter !== undefined && + input.Filter !== null && { Filter: serializeAws_json1_1ComprehendMedicalAsyncJobFilter(input.Filter, context) }), + ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1OutputDataConfig = (input: OutputDataConfig, context: __SerdeContext): any => { return { ...(input.S3Bucket !== undefined && input.S3Bucket !== null && { S3Bucket: input.S3Bucket }), @@ -2464,6 +2995,28 @@ const serializeAws_json1_1StartRxNormInferenceJobRequest = ( }; }; +const serializeAws_json1_1StartSNOMEDCTInferenceJobRequest = ( + input: StartSNOMEDCTInferenceJobRequest, + context: __SerdeContext +): any => { + return { + ClientRequestToken: input.ClientRequestToken ?? generateIdempotencyToken(), + ...(input.DataAccessRoleArn !== undefined && + input.DataAccessRoleArn !== null && { DataAccessRoleArn: input.DataAccessRoleArn }), + ...(input.InputDataConfig !== undefined && + input.InputDataConfig !== null && { + InputDataConfig: serializeAws_json1_1InputDataConfig(input.InputDataConfig, context), + }), + ...(input.JobName !== undefined && input.JobName !== null && { JobName: input.JobName }), + ...(input.KMSKey !== undefined && input.KMSKey !== null && { KMSKey: input.KMSKey }), + ...(input.LanguageCode !== undefined && input.LanguageCode !== null && { LanguageCode: input.LanguageCode }), + ...(input.OutputDataConfig !== undefined && + input.OutputDataConfig !== null && { + OutputDataConfig: serializeAws_json1_1OutputDataConfig(input.OutputDataConfig, context), + }), + }; +}; + const serializeAws_json1_1StopEntitiesDetectionV2JobRequest = ( input: StopEntitiesDetectionV2JobRequest, context: __SerdeContext @@ -2500,6 +3053,15 @@ const serializeAws_json1_1StopRxNormInferenceJobRequest = ( }; }; +const serializeAws_json1_1StopSNOMEDCTInferenceJobRequest = ( + input: StopSNOMEDCTInferenceJobRequest, + context: __SerdeContext +): any => { + return { + ...(input.JobId !== undefined && input.JobId !== null && { JobId: input.JobId }), + }; +}; + const deserializeAws_json1_1Attribute = (output: any, context: __SerdeContext): Attribute => { return { BeginOffset: __expectInt32(output.BeginOffset), @@ -2529,6 +3091,12 @@ const deserializeAws_json1_1AttributeList = (output: any, context: __SerdeContex }); }; +const deserializeAws_json1_1Characters = (output: any, context: __SerdeContext): Characters => { + return { + OriginalTextCharacters: __expectInt32(output.OriginalTextCharacters), + } as any; +}; + const deserializeAws_json1_1ComprehendMedicalAsyncJobProperties = ( output: any, context: __SerdeContext @@ -2628,6 +3196,18 @@ const deserializeAws_json1_1DescribeRxNormInferenceJobResponse = ( } as any; }; +const deserializeAws_json1_1DescribeSNOMEDCTInferenceJobResponse = ( + output: any, + context: __SerdeContext +): DescribeSNOMEDCTInferenceJobResponse => { + return { + ComprehendMedicalAsyncJobProperties: + output.ComprehendMedicalAsyncJobProperties !== undefined && output.ComprehendMedicalAsyncJobProperties !== null + ? deserializeAws_json1_1ComprehendMedicalAsyncJobProperties(output.ComprehendMedicalAsyncJobProperties, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DetectEntitiesResponse = (output: any, context: __SerdeContext): DetectEntitiesResponse => { return { Entities: @@ -2826,6 +3406,25 @@ const deserializeAws_json1_1InferRxNormResponse = (output: any, context: __Serde } as any; }; +const deserializeAws_json1_1InferSNOMEDCTResponse = (output: any, context: __SerdeContext): InferSNOMEDCTResponse => { + return { + Characters: + output.Characters !== undefined && output.Characters !== null + ? deserializeAws_json1_1Characters(output.Characters, context) + : undefined, + Entities: + output.Entities !== undefined && output.Entities !== null + ? deserializeAws_json1_1SNOMEDCTEntityList(output.Entities, context) + : undefined, + ModelVersion: __expectString(output.ModelVersion), + PaginationToken: __expectString(output.PaginationToken), + SNOMEDCTDetails: + output.SNOMEDCTDetails !== undefined && output.SNOMEDCTDetails !== null + ? deserializeAws_json1_1SNOMEDCTDetails(output.SNOMEDCTDetails, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1InputDataConfig = (output: any, context: __SerdeContext): InputDataConfig => { return { S3Bucket: __expectString(output.S3Bucket), @@ -2928,6 +3527,23 @@ const deserializeAws_json1_1ListRxNormInferenceJobsResponse = ( } as any; }; +const deserializeAws_json1_1ListSNOMEDCTInferenceJobsResponse = ( + output: any, + context: __SerdeContext +): ListSNOMEDCTInferenceJobsResponse => { + return { + ComprehendMedicalAsyncJobPropertiesList: + output.ComprehendMedicalAsyncJobPropertiesList !== undefined && + output.ComprehendMedicalAsyncJobPropertiesList !== null + ? deserializeAws_json1_1ComprehendMedicalAsyncJobPropertiesList( + output.ComprehendMedicalAsyncJobPropertiesList, + context + ) + : undefined, + NextToken: __expectString(output.NextToken), + } as any; +}; + const deserializeAws_json1_1OutputDataConfig = (output: any, context: __SerdeContext): OutputDataConfig => { return { S3Bucket: __expectString(output.S3Bucket), @@ -3052,6 +3668,119 @@ const deserializeAws_json1_1ServiceUnavailableException = ( } as any; }; +const deserializeAws_json1_1SNOMEDCTAttribute = (output: any, context: __SerdeContext): SNOMEDCTAttribute => { + return { + BeginOffset: __expectInt32(output.BeginOffset), + Category: __expectString(output.Category), + EndOffset: __expectInt32(output.EndOffset), + Id: __expectInt32(output.Id), + RelationshipScore: __limitedParseFloat32(output.RelationshipScore), + RelationshipType: __expectString(output.RelationshipType), + SNOMEDCTConcepts: + output.SNOMEDCTConcepts !== undefined && output.SNOMEDCTConcepts !== null + ? deserializeAws_json1_1SNOMEDCTConceptList(output.SNOMEDCTConcepts, context) + : undefined, + Score: __limitedParseFloat32(output.Score), + Text: __expectString(output.Text), + Traits: + output.Traits !== undefined && output.Traits !== null + ? deserializeAws_json1_1SNOMEDCTTraitList(output.Traits, context) + : undefined, + Type: __expectString(output.Type), + } as any; +}; + +const deserializeAws_json1_1SNOMEDCTAttributeList = (output: any, context: __SerdeContext): SNOMEDCTAttribute[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1SNOMEDCTAttribute(entry, context); + }); +}; + +const deserializeAws_json1_1SNOMEDCTConcept = (output: any, context: __SerdeContext): SNOMEDCTConcept => { + return { + Code: __expectString(output.Code), + Description: __expectString(output.Description), + Score: __limitedParseFloat32(output.Score), + } as any; +}; + +const deserializeAws_json1_1SNOMEDCTConceptList = (output: any, context: __SerdeContext): SNOMEDCTConcept[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1SNOMEDCTConcept(entry, context); + }); +}; + +const deserializeAws_json1_1SNOMEDCTDetails = (output: any, context: __SerdeContext): SNOMEDCTDetails => { + return { + Edition: __expectString(output.Edition), + Language: __expectString(output.Language), + VersionDate: __expectString(output.VersionDate), + } as any; +}; + +const deserializeAws_json1_1SNOMEDCTEntity = (output: any, context: __SerdeContext): SNOMEDCTEntity => { + return { + Attributes: + output.Attributes !== undefined && output.Attributes !== null + ? deserializeAws_json1_1SNOMEDCTAttributeList(output.Attributes, context) + : undefined, + BeginOffset: __expectInt32(output.BeginOffset), + Category: __expectString(output.Category), + EndOffset: __expectInt32(output.EndOffset), + Id: __expectInt32(output.Id), + SNOMEDCTConcepts: + output.SNOMEDCTConcepts !== undefined && output.SNOMEDCTConcepts !== null + ? deserializeAws_json1_1SNOMEDCTConceptList(output.SNOMEDCTConcepts, context) + : undefined, + Score: __limitedParseFloat32(output.Score), + Text: __expectString(output.Text), + Traits: + output.Traits !== undefined && output.Traits !== null + ? deserializeAws_json1_1SNOMEDCTTraitList(output.Traits, context) + : undefined, + Type: __expectString(output.Type), + } as any; +}; + +const deserializeAws_json1_1SNOMEDCTEntityList = (output: any, context: __SerdeContext): SNOMEDCTEntity[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1SNOMEDCTEntity(entry, context); + }); +}; + +const deserializeAws_json1_1SNOMEDCTTrait = (output: any, context: __SerdeContext): SNOMEDCTTrait => { + return { + Name: __expectString(output.Name), + Score: __limitedParseFloat32(output.Score), + } as any; +}; + +const deserializeAws_json1_1SNOMEDCTTraitList = (output: any, context: __SerdeContext): SNOMEDCTTrait[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1SNOMEDCTTrait(entry, context); + }); +}; + const deserializeAws_json1_1StartEntitiesDetectionV2JobResponse = ( output: any, context: __SerdeContext @@ -3088,6 +3817,15 @@ const deserializeAws_json1_1StartRxNormInferenceJobResponse = ( } as any; }; +const deserializeAws_json1_1StartSNOMEDCTInferenceJobResponse = ( + output: any, + context: __SerdeContext +): StartSNOMEDCTInferenceJobResponse => { + return { + JobId: __expectString(output.JobId), + } as any; +}; + const deserializeAws_json1_1StopEntitiesDetectionV2JobResponse = ( output: any, context: __SerdeContext @@ -3124,6 +3862,15 @@ const deserializeAws_json1_1StopRxNormInferenceJobResponse = ( } as any; }; +const deserializeAws_json1_1StopSNOMEDCTInferenceJobResponse = ( + output: any, + context: __SerdeContext +): StopSNOMEDCTInferenceJobResponse => { + return { + JobId: __expectString(output.JobId), + } as any; +}; + const deserializeAws_json1_1TextSizeLimitExceededException = ( output: any, context: __SerdeContext diff --git a/clients/client-compute-optimizer/src/endpoints.ts b/clients/client-compute-optimizer/src/endpoints.ts index f7b0f2eed78c..76f45600d757 100644 --- a/clients/client-compute-optimizer/src/endpoints.ts +++ b/clients/client-compute-optimizer/src/endpoints.ts @@ -177,6 +177,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-config-service/src/endpoints.ts b/clients/client-config-service/src/endpoints.ts index fc94f3a09acc..a2f3de9633ef 100644 --- a/clients/client-config-service/src/endpoints.ts +++ b/clients/client-config-service/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-connect-contact-lens/src/endpoints.ts b/clients/client-connect-contact-lens/src/endpoints.ts index 77b59788b8c7..55e3cbdb7f12 100644 --- a/clients/client-connect-contact-lens/src/endpoints.ts +++ b/clients/client-connect-contact-lens/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-connect/src/endpoints.ts b/clients/client-connect/src/endpoints.ts index 45b700b808b9..ace45f3a62eb 100644 --- a/clients/client-connect/src/endpoints.ts +++ b/clients/client-connect/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-connectparticipant/src/endpoints.ts b/clients/client-connectparticipant/src/endpoints.ts index 66994c7e368a..0f11b6db314d 100644 --- a/clients/client-connectparticipant/src/endpoints.ts +++ b/clients/client-connectparticipant/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cost-and-usage-report-service/src/endpoints.ts b/clients/client-cost-and-usage-report-service/src/endpoints.ts index 0fe8c22df63a..af0502d971ae 100644 --- a/clients/client-cost-and-usage-report-service/src/endpoints.ts +++ b/clients/client-cost-and-usage-report-service/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-cost-explorer/src/endpoints.ts b/clients/client-cost-explorer/src/endpoints.ts index 56fc57d3354c..8709f88f5660 100644 --- a/clients/client-cost-explorer/src/endpoints.ts +++ b/clients/client-cost-explorer/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-customer-profiles/src/CustomerProfiles.ts b/clients/client-customer-profiles/src/CustomerProfiles.ts index 79df3b816ad7..c56d1b9fce5d 100644 --- a/clients/client-customer-profiles/src/CustomerProfiles.ts +++ b/clients/client-customer-profiles/src/CustomerProfiles.ts @@ -602,8 +602,7 @@ export class CustomerProfiles extends CustomerProfilesClient { } /** - *

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

    - *

    Before calling this API, use CreateDomain or + *

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

    *

    GetMatches returns potentially matching profiles, based on the results of the latest run @@ -997,8 +996,7 @@ export class CustomerProfiles extends CustomerProfilesClient { } /** - *

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

    - *

    Runs an AWS Lambda job that does the following:

    + *

    Runs an AWS Lambda job that does the following:

    *
      *
    1. *

      All the profileKeys in the ProfileToBeMerged will be moved to the diff --git a/clients/client-customer-profiles/src/commands/GetMatchesCommand.ts b/clients/client-customer-profiles/src/commands/GetMatchesCommand.ts index e20c6b3ce5a3..f3722b932cc5 100644 --- a/clients/client-customer-profiles/src/commands/GetMatchesCommand.ts +++ b/clients/client-customer-profiles/src/commands/GetMatchesCommand.ts @@ -22,8 +22,7 @@ export interface GetMatchesCommandInput extends GetMatchesRequest {} export interface GetMatchesCommandOutput extends GetMatchesResponse, __MetadataBearer {} /** - *

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

      - *

      Before calling this API, use CreateDomain or + *

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

      *

      GetMatches returns potentially matching profiles, based on the results of the latest run diff --git a/clients/client-customer-profiles/src/commands/MergeProfilesCommand.ts b/clients/client-customer-profiles/src/commands/MergeProfilesCommand.ts index 06b363a1d3db..fa2426631409 100644 --- a/clients/client-customer-profiles/src/commands/MergeProfilesCommand.ts +++ b/clients/client-customer-profiles/src/commands/MergeProfilesCommand.ts @@ -22,8 +22,7 @@ export interface MergeProfilesCommandInput extends MergeProfilesRequest {} export interface MergeProfilesCommandOutput extends MergeProfilesResponse, __MetadataBearer {} /** - *

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

      - *

      Runs an AWS Lambda job that does the following:

      + *

      Runs an AWS Lambda job that does the following:

      *
        *
      1. *

        All the profileKeys in the ProfileToBeMerged will be moved to the diff --git a/clients/client-customer-profiles/src/endpoints.ts b/clients/client-customer-profiles/src/endpoints.ts index 976063f6d185..824fbac76209 100644 --- a/clients/client-customer-profiles/src/endpoints.ts +++ b/clients/client-customer-profiles/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-customer-profiles/src/models/models_0.ts b/clients/client-customer-profiles/src/models/models_0.ts index a0a6be1e96b6..2c32260ae3b7 100644 --- a/clients/client-customer-profiles/src/models/models_0.ts +++ b/clients/client-customer-profiles/src/models/models_0.ts @@ -477,8 +477,7 @@ export namespace S3ExportingConfig { * *

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

        + * Amazon Connect Customer Profiles cross-service confused deputy prevention.

        * */ export interface ExportingConfig { @@ -1516,7 +1515,7 @@ export interface GetIntegrationResponse { /** *

        The name of the profile object type.

        */ - ObjectTypeName: string | undefined; + ObjectTypeName?: string; /** *

        The timestamp of when the domain was created.

        @@ -1532,6 +1531,13 @@ export interface GetIntegrationResponse { *

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

        */ Tags?: { [key: string]: string }; + + /** + *

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

        + */ + ObjectTypeNames?: { [key: string]: string }; } export namespace GetIntegrationResponse { @@ -1696,6 +1702,7 @@ export enum StandardIdentifier { CASE = "CASE", LOOKUP_ONLY = "LOOKUP_ONLY", NEW_ONLY = "NEW_ONLY", + ORDER = "ORDER", PROFILE = "PROFILE", SECONDARY = "SECONDARY", UNIQUE = "UNIQUE", @@ -1708,8 +1715,8 @@ export enum StandardIdentifier { export interface ObjectTypeKey { /** *

        The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 - * UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be - * used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be + * UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER means that this key can be + * used to tie an object to a PROFILE, ASSET, CASE, or ORDER respectively. UNIQUE means that it can be * used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to * search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is * only used to match a profile but is not persisted to be used for searching of the profile. @@ -1920,7 +1927,7 @@ export interface ListIntegrationItem { /** *

        The name of the profile object type.

        */ - ObjectTypeName: string | undefined; + ObjectTypeName?: string; /** *

        The timestamp of when the domain was created.

        @@ -1936,6 +1943,13 @@ export interface ListIntegrationItem { *

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

        */ Tags?: { [key: string]: string }; + + /** + *

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

        + */ + ObjectTypeNames?: { [key: string]: string }; } export namespace ListIntegrationItem { @@ -2230,14 +2244,15 @@ export namespace ListIntegrationsResponse { /** *

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

        + * specified index values. This filter is only supported for ObjectTypeName _asset, _case and + * _order.

        */ export interface ObjectFilter { /** *

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

        + * use to search for _case include: _caseId. The predefined keys you can use to search for + * _order include: _orderId.

        */ KeyName: string | undefined; @@ -2284,7 +2299,7 @@ export interface ListProfileObjectsRequest { /** *

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

        + * values. This filter is only supported for ObjectTypeName _asset, _case and _order.

        */ ObjectFilter?: ObjectFilter; } @@ -3169,7 +3184,7 @@ export interface PutIntegrationRequest { /** *

        The name of the profile object type.

        */ - ObjectTypeName: string | undefined; + ObjectTypeName?: string; /** *

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

        @@ -3181,6 +3196,13 @@ export interface PutIntegrationRequest { * source.

        */ FlowDefinition?: FlowDefinition; + + /** + *

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

        + */ + ObjectTypeNames?: { [key: string]: string }; } export namespace PutIntegrationRequest { @@ -3206,7 +3228,7 @@ export interface PutIntegrationResponse { /** *

        The name of the profile object type.

        */ - ObjectTypeName: string | undefined; + ObjectTypeName?: string; /** *

        The timestamp of when the domain was created.

        @@ -3222,6 +3244,13 @@ export interface PutIntegrationResponse { *

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

        */ Tags?: { [key: string]: string }; + + /** + *

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

        + */ + ObjectTypeNames?: { [key: string]: string }; } export namespace PutIntegrationResponse { @@ -3318,7 +3347,7 @@ export interface PutProfileObjectTypeRequest { /** *

        The format of your sourceLastUpdatedTimestamp that was previously set up. - *

        + *

        */ SourceLastUpdatedTimestampFormat?: string; @@ -3442,9 +3471,12 @@ export interface SearchProfilesRequest { DomainName: string | undefined; /** - *

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

        + *

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

        */ KeyName: string | undefined; diff --git a/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts b/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts index bc4a8d357f1a..92bc840dcb2d 100644 --- a/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts +++ b/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts @@ -1064,6 +1064,10 @@ export const serializeAws_restJson1PutIntegrationCommand = async ( }), ...(input.ObjectTypeName !== undefined && input.ObjectTypeName !== null && { ObjectTypeName: input.ObjectTypeName }), + ...(input.ObjectTypeNames !== undefined && + input.ObjectTypeNames !== null && { + ObjectTypeNames: serializeAws_restJson1ObjectTypeNames(input.ObjectTypeNames, context), + }), ...(input.Tags !== undefined && input.Tags !== null && { Tags: serializeAws_restJson1TagMap(input.Tags, context) }), ...(input.Uri !== undefined && input.Uri !== null && { Uri: input.Uri }), }); @@ -2564,6 +2568,7 @@ export const deserializeAws_restJson1GetIntegrationCommand = async ( DomainName: undefined, LastUpdatedAt: undefined, ObjectTypeName: undefined, + ObjectTypeNames: undefined, Tags: undefined, Uri: undefined, }; @@ -2580,6 +2585,9 @@ export const deserializeAws_restJson1GetIntegrationCommand = async ( if (data.ObjectTypeName !== undefined && data.ObjectTypeName !== null) { contents.ObjectTypeName = __expectString(data.ObjectTypeName); } + if (data.ObjectTypeNames !== undefined && data.ObjectTypeNames !== null) { + contents.ObjectTypeNames = deserializeAws_restJson1ObjectTypeNames(data.ObjectTypeNames, context); + } if (data.Tags !== undefined && data.Tags !== null) { contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); } @@ -3802,6 +3810,7 @@ export const deserializeAws_restJson1PutIntegrationCommand = async ( DomainName: undefined, LastUpdatedAt: undefined, ObjectTypeName: undefined, + ObjectTypeNames: undefined, Tags: undefined, Uri: undefined, }; @@ -3818,6 +3827,9 @@ export const deserializeAws_restJson1PutIntegrationCommand = async ( if (data.ObjectTypeName !== undefined && data.ObjectTypeName !== null) { contents.ObjectTypeName = __expectString(data.ObjectTypeName); } + if (data.ObjectTypeNames !== undefined && data.ObjectTypeNames !== null) { + contents.ObjectTypeNames = deserializeAws_restJson1ObjectTypeNames(data.ObjectTypeNames, context); + } if (data.Tags !== undefined && data.Tags !== null) { contents.Tags = deserializeAws_restJson1TagMap(data.Tags, context); } @@ -4903,6 +4915,18 @@ const serializeAws_restJson1ObjectTypeKeyList = (input: ObjectTypeKey[], context }); }; +const serializeAws_restJson1ObjectTypeNames = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + const serializeAws_restJson1ProfileIdToBeMergedList = (input: string[], context: __SerdeContext): any => { return input .filter((e: any) => e != null) @@ -5385,6 +5409,10 @@ const deserializeAws_restJson1ListIntegrationItem = (output: any, context: __Ser ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastUpdatedAt))) : undefined, ObjectTypeName: __expectString(output.ObjectTypeName), + ObjectTypeNames: + output.ObjectTypeNames !== undefined && output.ObjectTypeNames !== null + ? deserializeAws_restJson1ObjectTypeNames(output.ObjectTypeNames, context) + : undefined, Tags: output.Tags !== undefined && output.Tags !== null ? deserializeAws_restJson1TagMap(output.Tags, context) @@ -5531,6 +5559,18 @@ const deserializeAws_restJson1ObjectTypeKeyList = (output: any, context: __Serde }); }; +const deserializeAws_restJson1ObjectTypeNames = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + const deserializeAws_restJson1Profile = (output: any, context: __SerdeContext): Profile => { return { AccountNumber: __expectString(output.AccountNumber), diff --git a/clients/client-data-pipeline/src/endpoints.ts b/clients/client-data-pipeline/src/endpoints.ts index 803dc2da143d..32e655126730 100644 --- a/clients/client-data-pipeline/src/endpoints.ts +++ b/clients/client-data-pipeline/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-database-migration-service/src/endpoints.ts b/clients/client-database-migration-service/src/endpoints.ts index dc31a841709e..faeaa0322bbf 100644 --- a/clients/client-database-migration-service/src/endpoints.ts +++ b/clients/client-database-migration-service/src/endpoints.ts @@ -111,6 +111,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "dms", "dms-fips", diff --git a/clients/client-databrew/src/endpoints.ts b/clients/client-databrew/src/endpoints.ts index e9c6e8d638aa..b9347107c280 100644 --- a/clients/client-databrew/src/endpoints.ts +++ b/clients/client-databrew/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-dataexchange/src/endpoints.ts b/clients/client-dataexchange/src/endpoints.ts index 22312b0d9910..5dc0ba4759e0 100644 --- a/clients/client-dataexchange/src/endpoints.ts +++ b/clients/client-dataexchange/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-datasync/src/DataSync.ts b/clients/client-datasync/src/DataSync.ts index cec93a5266a0..3f9a571f81cf 100644 --- a/clients/client-datasync/src/DataSync.ts +++ b/clients/client-datasync/src/DataSync.ts @@ -11,6 +11,11 @@ import { CreateLocationEfsCommandInput, CreateLocationEfsCommandOutput, } from "./commands/CreateLocationEfsCommand"; +import { + CreateLocationFsxLustreCommand, + CreateLocationFsxLustreCommandInput, + CreateLocationFsxLustreCommandOutput, +} from "./commands/CreateLocationFsxLustreCommand"; import { CreateLocationFsxWindowsCommand, CreateLocationFsxWindowsCommandInput, @@ -59,6 +64,11 @@ import { DescribeLocationEfsCommandInput, DescribeLocationEfsCommandOutput, } from "./commands/DescribeLocationEfsCommand"; +import { + DescribeLocationFsxLustreCommand, + DescribeLocationFsxLustreCommandInput, + DescribeLocationFsxLustreCommandOutput, +} from "./commands/DescribeLocationFsxLustreCommand"; import { DescribeLocationFsxWindowsCommand, DescribeLocationFsxWindowsCommandInput, @@ -277,6 +287,38 @@ export class DataSync extends DataSyncClient { } } + /** + *

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

        + */ + public createLocationFsxLustre( + args: CreateLocationFsxLustreCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createLocationFsxLustre( + args: CreateLocationFsxLustreCommandInput, + cb: (err: any, data?: CreateLocationFsxLustreCommandOutput) => void + ): void; + public createLocationFsxLustre( + args: CreateLocationFsxLustreCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateLocationFsxLustreCommandOutput) => void + ): void; + public createLocationFsxLustre( + args: CreateLocationFsxLustreCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateLocationFsxLustreCommandOutput) => void), + cb?: (err: any, data?: CreateLocationFsxLustreCommandOutput) => void + ): Promise | void { + const command = new CreateLocationFsxLustreCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Creates an endpoint for an Amazon FSx for Windows File Server file system.

        */ @@ -675,6 +717,39 @@ export class DataSync extends DataSyncClient { } } + /** + *

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

        + */ + public describeLocationFsxLustre( + args: DescribeLocationFsxLustreCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeLocationFsxLustre( + args: DescribeLocationFsxLustreCommandInput, + cb: (err: any, data?: DescribeLocationFsxLustreCommandOutput) => void + ): void; + public describeLocationFsxLustre( + args: DescribeLocationFsxLustreCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeLocationFsxLustreCommandOutput) => void + ): void; + public describeLocationFsxLustre( + args: DescribeLocationFsxLustreCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeLocationFsxLustreCommandOutput) => void), + cb?: (err: any, data?: DescribeLocationFsxLustreCommandOutput) => void + ): Promise | void { + const command = new DescribeLocationFsxLustreCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

        Returns metadata, such as the path information about an Amazon FSx for Windows File Server * location.

        diff --git a/clients/client-datasync/src/DataSyncClient.ts b/clients/client-datasync/src/DataSyncClient.ts index 4d2f79efe89e..fb6af7f03ef3 100644 --- a/clients/client-datasync/src/DataSyncClient.ts +++ b/clients/client-datasync/src/DataSyncClient.ts @@ -55,6 +55,10 @@ import { } from "./commands/CancelTaskExecutionCommand"; import { CreateAgentCommandInput, CreateAgentCommandOutput } from "./commands/CreateAgentCommand"; import { CreateLocationEfsCommandInput, CreateLocationEfsCommandOutput } from "./commands/CreateLocationEfsCommand"; +import { + CreateLocationFsxLustreCommandInput, + CreateLocationFsxLustreCommandOutput, +} from "./commands/CreateLocationFsxLustreCommand"; import { CreateLocationFsxWindowsCommandInput, CreateLocationFsxWindowsCommandOutput, @@ -76,6 +80,10 @@ import { DescribeLocationEfsCommandInput, DescribeLocationEfsCommandOutput, } from "./commands/DescribeLocationEfsCommand"; +import { + DescribeLocationFsxLustreCommandInput, + DescribeLocationFsxLustreCommandOutput, +} from "./commands/DescribeLocationFsxLustreCommand"; import { DescribeLocationFsxWindowsCommandInput, DescribeLocationFsxWindowsCommandOutput, @@ -132,6 +140,7 @@ export type ServiceInputTypes = | CancelTaskExecutionCommandInput | CreateAgentCommandInput | CreateLocationEfsCommandInput + | CreateLocationFsxLustreCommandInput | CreateLocationFsxWindowsCommandInput | CreateLocationHdfsCommandInput | CreateLocationNfsCommandInput @@ -144,6 +153,7 @@ export type ServiceInputTypes = | DeleteTaskCommandInput | DescribeAgentCommandInput | DescribeLocationEfsCommandInput + | DescribeLocationFsxLustreCommandInput | DescribeLocationFsxWindowsCommandInput | DescribeLocationHdfsCommandInput | DescribeLocationNfsCommandInput @@ -172,6 +182,7 @@ export type ServiceOutputTypes = | CancelTaskExecutionCommandOutput | CreateAgentCommandOutput | CreateLocationEfsCommandOutput + | CreateLocationFsxLustreCommandOutput | CreateLocationFsxWindowsCommandOutput | CreateLocationHdfsCommandOutput | CreateLocationNfsCommandOutput @@ -184,6 +195,7 @@ export type ServiceOutputTypes = | DeleteTaskCommandOutput | DescribeAgentCommandOutput | DescribeLocationEfsCommandOutput + | DescribeLocationFsxLustreCommandOutput | DescribeLocationFsxWindowsCommandOutput | DescribeLocationHdfsCommandOutput | DescribeLocationNfsCommandOutput diff --git a/clients/client-datasync/src/commands/CreateLocationFsxLustreCommand.ts b/clients/client-datasync/src/commands/CreateLocationFsxLustreCommand.ts new file mode 100644 index 000000000000..d1702a07daec --- /dev/null +++ b/clients/client-datasync/src/commands/CreateLocationFsxLustreCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DataSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataSyncClient"; +import { CreateLocationFsxLustreRequest, CreateLocationFsxLustreResponse } from "../models/models_0"; +import { + deserializeAws_json1_1CreateLocationFsxLustreCommand, + serializeAws_json1_1CreateLocationFsxLustreCommand, +} from "../protocols/Aws_json1_1"; + +export interface CreateLocationFsxLustreCommandInput extends CreateLocationFsxLustreRequest {} +export interface CreateLocationFsxLustreCommandOutput extends CreateLocationFsxLustreResponse, __MetadataBearer {} + +/** + *

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

        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataSyncClient, CreateLocationFsxLustreCommand } from "@aws-sdk/client-datasync"; // ES Modules import + * // const { DataSyncClient, CreateLocationFsxLustreCommand } = require("@aws-sdk/client-datasync"); // CommonJS import + * const client = new DataSyncClient(config); + * const command = new CreateLocationFsxLustreCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateLocationFsxLustreCommandInput} for command's `input` shape. + * @see {@link CreateLocationFsxLustreCommandOutput} for command's `response` shape. + * @see {@link DataSyncClientResolvedConfig | config} for DataSyncClient's `config` shape. + * + */ +export class CreateLocationFsxLustreCommand extends $Command< + CreateLocationFsxLustreCommandInput, + CreateLocationFsxLustreCommandOutput, + DataSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateLocationFsxLustreCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: DataSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "DataSyncClient"; + const commandName = "CreateLocationFsxLustreCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateLocationFsxLustreRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateLocationFsxLustreResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateLocationFsxLustreCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateLocationFsxLustreCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateLocationFsxLustreCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-datasync/src/commands/DescribeLocationFsxLustreCommand.ts b/clients/client-datasync/src/commands/DescribeLocationFsxLustreCommand.ts new file mode 100644 index 000000000000..f3e202f739a2 --- /dev/null +++ b/clients/client-datasync/src/commands/DescribeLocationFsxLustreCommand.ts @@ -0,0 +1,99 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DataSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataSyncClient"; +import { DescribeLocationFsxLustreRequest, DescribeLocationFsxLustreResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DescribeLocationFsxLustreCommand, + serializeAws_json1_1DescribeLocationFsxLustreCommand, +} from "../protocols/Aws_json1_1"; + +export interface DescribeLocationFsxLustreCommandInput extends DescribeLocationFsxLustreRequest {} +export interface DescribeLocationFsxLustreCommandOutput extends DescribeLocationFsxLustreResponse, __MetadataBearer {} + +/** + *

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

        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataSyncClient, DescribeLocationFsxLustreCommand } from "@aws-sdk/client-datasync"; // ES Modules import + * // const { DataSyncClient, DescribeLocationFsxLustreCommand } = require("@aws-sdk/client-datasync"); // CommonJS import + * const client = new DataSyncClient(config); + * const command = new DescribeLocationFsxLustreCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeLocationFsxLustreCommandInput} for command's `input` shape. + * @see {@link DescribeLocationFsxLustreCommandOutput} for command's `response` shape. + * @see {@link DataSyncClientResolvedConfig | config} for DataSyncClient's `config` shape. + * + */ +export class DescribeLocationFsxLustreCommand extends $Command< + DescribeLocationFsxLustreCommandInput, + DescribeLocationFsxLustreCommandOutput, + DataSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeLocationFsxLustreCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: DataSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "DataSyncClient"; + const commandName = "DescribeLocationFsxLustreCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeLocationFsxLustreRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeLocationFsxLustreResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeLocationFsxLustreCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeLocationFsxLustreCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeLocationFsxLustreCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-datasync/src/commands/index.ts b/clients/client-datasync/src/commands/index.ts index 175c53b1bfb1..b52ed412cb9b 100644 --- a/clients/client-datasync/src/commands/index.ts +++ b/clients/client-datasync/src/commands/index.ts @@ -1,6 +1,7 @@ export * from "./CancelTaskExecutionCommand"; export * from "./CreateAgentCommand"; export * from "./CreateLocationEfsCommand"; +export * from "./CreateLocationFsxLustreCommand"; export * from "./CreateLocationFsxWindowsCommand"; export * from "./CreateLocationHdfsCommand"; export * from "./CreateLocationNfsCommand"; @@ -13,6 +14,7 @@ export * from "./DeleteLocationCommand"; export * from "./DeleteTaskCommand"; export * from "./DescribeAgentCommand"; export * from "./DescribeLocationEfsCommand"; +export * from "./DescribeLocationFsxLustreCommand"; export * from "./DescribeLocationFsxWindowsCommand"; export * from "./DescribeLocationHdfsCommand"; export * from "./DescribeLocationNfsCommand"; diff --git a/clients/client-datasync/src/endpoints.ts b/clients/client-datasync/src/endpoints.ts index 67ab7b51181b..549393830823 100644 --- a/clients/client-datasync/src/endpoints.ts +++ b/clients/client-datasync/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-datasync/src/models/models_0.ts b/clients/client-datasync/src/models/models_0.ts index adb41f32bb12..32dade096441 100644 --- a/clients/client-datasync/src/models/models_0.ts +++ b/clients/client-datasync/src/models/models_0.ts @@ -343,9 +343,57 @@ export namespace CreateLocationEfsResponse { }); } +export interface CreateLocationFsxLustreRequest { + /** + *

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

        + */ + FsxFilesystemArn: string | undefined; + + /** + *

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

        + */ + SecurityGroupArns: string[] | undefined; + + /** + *

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

        + */ + Subdirectory?: string; + + /** + *

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

        + */ + Tags?: TagListEntry[]; +} + +export namespace CreateLocationFsxLustreRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateLocationFsxLustreRequest): any => ({ + ...obj, + }); +} + +export interface CreateLocationFsxLustreResponse { + /** + *

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

        + */ + LocationArn?: string; +} + +export namespace CreateLocationFsxLustreResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateLocationFsxLustreResponse): any => ({ + ...obj, + }); +} + export interface CreateLocationFsxWindowsRequest { /** - *

        A subdirectory in the location’s path. This subdirectory in the Amazon FSx for Windows + *

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

        */ @@ -357,7 +405,7 @@ export interface CreateLocationFsxWindowsRequest { FsxFilesystemArn: string | undefined; /** - *

        The Amazon Resource Names (ARNs) of the security groups that are to use to configure the + *

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

        */ SecurityGroupArns: string[] | undefined; @@ -1851,6 +1899,53 @@ export namespace DescribeLocationEfsResponse { }); } +export interface DescribeLocationFsxLustreRequest { + /** + *

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

        + */ + LocationArn: string | undefined; +} + +export namespace DescribeLocationFsxLustreRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeLocationFsxLustreRequest): any => ({ + ...obj, + }); +} + +export interface DescribeLocationFsxLustreResponse { + /** + *

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

        + */ + LocationArn?: string; + + /** + *

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

        + */ + LocationUri?: string; + + /** + *

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

        + */ + SecurityGroupArns?: string[]; + + /** + *

        The time that the FSx for Lustre location was created.

        + */ + CreationTime?: Date; +} + +export namespace DescribeLocationFsxLustreResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeLocationFsxLustreResponse): any => ({ + ...obj, + }); +} + export interface DescribeLocationFsxWindowsRequest { /** *

        The Amazon Resource Name (ARN) of the FSx for Windows File Server location to @@ -2792,7 +2887,7 @@ export interface LocationListEntry { LocationArn?: string; /** - *

        Represents a list of URLs of a location. LocationUri returns an array that + *

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

        *

        Format: TYPE://GLOBAL_ID/SUBDIR.

        diff --git a/clients/client-datasync/src/protocols/Aws_json1_1.ts b/clients/client-datasync/src/protocols/Aws_json1_1.ts index 584cedda33f7..ec15e59d3843 100644 --- a/clients/client-datasync/src/protocols/Aws_json1_1.ts +++ b/clients/client-datasync/src/protocols/Aws_json1_1.ts @@ -22,6 +22,10 @@ import { } from "../commands/CancelTaskExecutionCommand"; import { CreateAgentCommandInput, CreateAgentCommandOutput } from "../commands/CreateAgentCommand"; import { CreateLocationEfsCommandInput, CreateLocationEfsCommandOutput } from "../commands/CreateLocationEfsCommand"; +import { + CreateLocationFsxLustreCommandInput, + CreateLocationFsxLustreCommandOutput, +} from "../commands/CreateLocationFsxLustreCommand"; import { CreateLocationFsxWindowsCommandInput, CreateLocationFsxWindowsCommandOutput, @@ -43,6 +47,10 @@ import { DescribeLocationEfsCommandInput, DescribeLocationEfsCommandOutput, } from "../commands/DescribeLocationEfsCommand"; +import { + DescribeLocationFsxLustreCommandInput, + DescribeLocationFsxLustreCommandOutput, +} from "../commands/DescribeLocationFsxLustreCommand"; import { DescribeLocationFsxWindowsCommandInput, DescribeLocationFsxWindowsCommandOutput, @@ -101,6 +109,8 @@ import { CreateAgentResponse, CreateLocationEfsRequest, CreateLocationEfsResponse, + CreateLocationFsxLustreRequest, + CreateLocationFsxLustreResponse, CreateLocationFsxWindowsRequest, CreateLocationFsxWindowsResponse, CreateLocationHdfsRequest, @@ -125,6 +135,8 @@ import { DescribeAgentResponse, DescribeLocationEfsRequest, DescribeLocationEfsResponse, + DescribeLocationFsxLustreRequest, + DescribeLocationFsxLustreResponse, DescribeLocationFsxWindowsRequest, DescribeLocationFsxWindowsResponse, DescribeLocationHdfsRequest, @@ -232,6 +244,19 @@ export const serializeAws_json1_1CreateLocationEfsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateLocationFsxLustreCommand = async ( + input: CreateLocationFsxLustreCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "FmrsService.CreateLocationFsxLustre", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateLocationFsxLustreRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateLocationFsxWindowsCommand = async ( input: CreateLocationFsxWindowsCommandInput, context: __SerdeContext @@ -388,6 +413,19 @@ export const serializeAws_json1_1DescribeLocationEfsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeLocationFsxLustreCommand = async ( + input: DescribeLocationFsxLustreCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "FmrsService.DescribeLocationFsxLustre", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeLocationFsxLustreRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeLocationFsxWindowsCommand = async ( input: DescribeLocationFsxWindowsCommandInput, context: __SerdeContext @@ -873,6 +911,68 @@ const deserializeAws_json1_1CreateLocationEfsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1CreateLocationFsxLustreCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1CreateLocationFsxLustreCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateLocationFsxLustreResponse(data, context); + const response: CreateLocationFsxLustreCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1CreateLocationFsxLustreCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalException": + case "com.amazonaws.datasync#InternalException": + response = { + ...(await deserializeAws_json1_1InternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.datasync#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1CreateLocationFsxWindowsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1617,6 +1717,68 @@ const deserializeAws_json1_1DescribeLocationEfsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DescribeLocationFsxLustreCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeLocationFsxLustreCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeLocationFsxLustreResponse(data, context); + const response: DescribeLocationFsxLustreCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeLocationFsxLustreCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalException": + case "com.amazonaws.datasync#InternalException": + response = { + ...(await deserializeAws_json1_1InternalExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.datasync#InvalidRequestException": + response = { + ...(await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DescribeLocationFsxWindowsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -3125,6 +3287,23 @@ const serializeAws_json1_1CreateLocationEfsRequest = ( }; }; +const serializeAws_json1_1CreateLocationFsxLustreRequest = ( + input: CreateLocationFsxLustreRequest, + context: __SerdeContext +): any => { + return { + ...(input.FsxFilesystemArn !== undefined && + input.FsxFilesystemArn !== null && { FsxFilesystemArn: input.FsxFilesystemArn }), + ...(input.SecurityGroupArns !== undefined && + input.SecurityGroupArns !== null && { + SecurityGroupArns: serializeAws_json1_1Ec2SecurityGroupArnList(input.SecurityGroupArns, context), + }), + ...(input.Subdirectory !== undefined && input.Subdirectory !== null && { Subdirectory: input.Subdirectory }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_json1_1InputTagList(input.Tags, context) }), + }; +}; + const serializeAws_json1_1CreateLocationFsxWindowsRequest = ( input: CreateLocationFsxWindowsRequest, context: __SerdeContext @@ -3310,6 +3489,15 @@ const serializeAws_json1_1DescribeLocationEfsRequest = ( }; }; +const serializeAws_json1_1DescribeLocationFsxLustreRequest = ( + input: DescribeLocationFsxLustreRequest, + context: __SerdeContext +): any => { + return { + ...(input.LocationArn !== undefined && input.LocationArn !== null && { LocationArn: input.LocationArn }), + }; +}; + const serializeAws_json1_1DescribeLocationFsxWindowsRequest = ( input: DescribeLocationFsxWindowsRequest, context: __SerdeContext @@ -3856,6 +4044,15 @@ const deserializeAws_json1_1CreateLocationEfsResponse = ( } as any; }; +const deserializeAws_json1_1CreateLocationFsxLustreResponse = ( + output: any, + context: __SerdeContext +): CreateLocationFsxLustreResponse => { + return { + LocationArn: __expectString(output.LocationArn), + } as any; +}; + const deserializeAws_json1_1CreateLocationFsxWindowsResponse = ( output: any, context: __SerdeContext @@ -3967,6 +4164,24 @@ const deserializeAws_json1_1DescribeLocationEfsResponse = ( } as any; }; +const deserializeAws_json1_1DescribeLocationFsxLustreResponse = ( + output: any, + context: __SerdeContext +): DescribeLocationFsxLustreResponse => { + return { + CreationTime: + output.CreationTime !== undefined && output.CreationTime !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreationTime))) + : undefined, + LocationArn: __expectString(output.LocationArn), + LocationUri: __expectString(output.LocationUri), + SecurityGroupArns: + output.SecurityGroupArns !== undefined && output.SecurityGroupArns !== null + ? deserializeAws_json1_1Ec2SecurityGroupArnList(output.SecurityGroupArns, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeLocationFsxWindowsResponse = ( output: any, context: __SerdeContext diff --git a/clients/client-dax/src/endpoints.ts b/clients/client-dax/src/endpoints.ts index 91e7df5247b7..af172ae07d95 100644 --- a/clients/client-dax/src/endpoints.ts +++ b/clients/client-dax/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-detective/src/endpoints.ts b/clients/client-detective/src/endpoints.ts index c6f6b90bbe21..4f3ec0512d50 100644 --- a/clients/client-detective/src/endpoints.ts +++ b/clients/client-detective/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-device-farm/src/endpoints.ts b/clients/client-device-farm/src/endpoints.ts index 276109fa1401..4182805e4eb2 100644 --- a/clients/client-device-farm/src/endpoints.ts +++ b/clients/client-device-farm/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-devops-guru/src/endpoints.ts b/clients/client-devops-guru/src/endpoints.ts index be807d56b235..277a643acc2c 100644 --- a/clients/client-devops-guru/src/endpoints.ts +++ b/clients/client-devops-guru/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-devops-guru/src/models/models_0.ts b/clients/client-devops-guru/src/models/models_0.ts index 14013e70be87..ec789b110b02 100644 --- a/clients/client-devops-guru/src/models/models_0.ts +++ b/clients/client-devops-guru/src/models/models_0.ts @@ -1971,6 +1971,7 @@ export enum OrganizationResourceCollectionType { AWS_ACCOUNT = "AWS_ACCOUNT", AWS_CLOUD_FORMATION = "AWS_CLOUD_FORMATION", AWS_SERVICE = "AWS_SERVICE", + AWS_TAGS = "AWS_TAGS", } export interface DescribeOrganizationResourceCollectionHealthRequest { @@ -2150,6 +2151,57 @@ export namespace ServiceHealth { }); } +/** + *

        Information about the health of Amazon Web Services resources in your account that are specified by + * an Amazon Web Services tag key.

        + */ +export interface TagHealth { + /** + *

        An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that + * DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make + * up your DevOps Guru application and analysis boundary.

        + * + *

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

        + *
        + */ + AppBoundaryKey?: string; + + /** + *

        The value in an Amazon Web Services tag.

        + *

        The tag's value is an optional field used to associate a string with + * the tag key (for example, 111122223333, Production, or a team + * name). The key and value are the tag's key pair. + * Omitting the tag value is the same as using an empty + * string. Like tag keys, tag values are + * case-sensitive. You can specify a maximum of 256 characters for a tag value.

        + */ + TagValue?: string; + + /** + *

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

        + */ + Insight?: InsightHealth; +} + +export namespace TagHealth { + /** + * @internal + */ + export const filterSensitiveLog = (obj: TagHealth): any => ({ + ...obj, + }); +} + export interface DescribeOrganizationResourceCollectionHealthResponse { /** *

        The returned CloudFormationHealthOverview object that contains an @@ -2174,6 +2226,43 @@ export interface DescribeOrganizationResourceCollectionHealthResponse { * the next page of results for this operation. If there are no more pages, this value is null.

        */ NextToken?: string; + + /** + *

        Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support + * tagging, so you can assign the same tag to resources from different services to indicate + * that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB + * table resource that you assign to an Lambda function. For more information about + * using tags, see the Tagging + * best practices whitepaper.

        + *

        Each Amazon Web Services tag has two parts.

        + *
          + *
        • + *

          A tag key (for example, CostCenter, + * Environment, Project, or Secret). Tag + * keys are case-sensitive.

          + *
        • + *
        • + *

          An optional field known as a tag value (for example, + * 111122223333, Production, or a team + * name). Omitting the tag value is the same as using an empty + * string. Like tag keys, tag values are + * case-sensitive.

          + *
        • + *
        + *

        Together these are known as key-value pairs.

        + * + *

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

        + *
        + */ + Tags?: TagHealth[]; } export namespace DescribeOrganizationResourceCollectionHealthResponse { @@ -2216,57 +2305,6 @@ export namespace DescribeResourceCollectionHealthRequest { }); } -/** - *

        Information about the health of Amazon Web Services resources in your account that are specified by - * an Amazon Web Services tag key.

        - */ -export interface TagHealth { - /** - *

        An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that - * DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make - * up your DevOps Guru application and analysis boundary.

        - * - *

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

        - *
        - */ - AppBoundaryKey?: string; - - /** - *

        The value in an Amazon Web Services tag.

        - *

        The tag's value is an optional field used to associate a string with - * the tag key (for example, 111122223333, Production, or a team - * name). The key and value are the tag's key pair. - * Omitting the tag value is the same as using an empty - * string. Like tag keys, tag values are - * case-sensitive. You can specify a maximum of 256 characters for a tag value.

        - */ - TagValue?: string; - - /** - *

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

        - */ - Insight?: InsightHealth; -} - -export namespace TagHealth { - /** - * @internal - */ - export const filterSensitiveLog = (obj: TagHealth): any => ({ - ...obj, - }); -} - export interface DescribeResourceCollectionHealthResponse { /** *

        The returned CloudFormationHealthOverview object that contains an diff --git a/clients/client-devops-guru/src/protocols/Aws_restJson1.ts b/clients/client-devops-guru/src/protocols/Aws_restJson1.ts index 9361dd62e3a3..c54919a2785f 100644 --- a/clients/client-devops-guru/src/protocols/Aws_restJson1.ts +++ b/clients/client-devops-guru/src/protocols/Aws_restJson1.ts @@ -1699,6 +1699,7 @@ export const deserializeAws_restJson1DescribeOrganizationResourceCollectionHealt CloudFormation: undefined, NextToken: undefined, Service: undefined, + Tags: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); if (data.Account !== undefined && data.Account !== null) { @@ -1713,6 +1714,9 @@ export const deserializeAws_restJson1DescribeOrganizationResourceCollectionHealt if (data.Service !== undefined && data.Service !== null) { contents.Service = deserializeAws_restJson1ServiceHealths(data.Service, context); } + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1TagHealths(data.Tags, context); + } return Promise.resolve(contents); }; diff --git a/clients/client-direct-connect/src/endpoints.ts b/clients/client-direct-connect/src/endpoints.ts index 6c234d59a6c3..6e272ac35243 100644 --- a/clients/client-direct-connect/src/endpoints.ts +++ b/clients/client-direct-connect/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-directory-service/src/endpoints.ts b/clients/client-directory-service/src/endpoints.ts index 007f365f738d..c7764e251110 100644 --- a/clients/client-directory-service/src/endpoints.ts +++ b/clients/client-directory-service/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-dlm/src/endpoints.ts b/clients/client-dlm/src/endpoints.ts index 610b29327e2a..64e10c3549e9 100644 --- a/clients/client-dlm/src/endpoints.ts +++ b/clients/client-dlm/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-docdb/src/endpoints.ts b/clients/client-docdb/src/endpoints.ts index 473f6379e56b..57efad1a73d4 100644 --- a/clients/client-docdb/src/endpoints.ts +++ b/clients/client-docdb/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-drs/src/endpoints.ts b/clients/client-drs/src/endpoints.ts index 861635d0e31d..dc7efa2fb983 100644 --- a/clients/client-drs/src/endpoints.ts +++ b/clients/client-drs/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-dynamodb-streams/src/endpoints.ts b/clients/client-dynamodb-streams/src/endpoints.ts index 21e97583ed0e..5231bba2ac2c 100644 --- a/clients/client-dynamodb-streams/src/endpoints.ts +++ b/clients/client-dynamodb-streams/src/endpoints.ts @@ -48,6 +48,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-dynamodb/src/endpoints.ts b/clients/client-dynamodb/src/endpoints.ts index e715782c94f5..9c79d80e38e3 100644 --- a/clients/client-dynamodb/src/endpoints.ts +++ b/clients/client-dynamodb/src/endpoints.ts @@ -108,6 +108,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-ebs/src/endpoints.ts b/clients/client-ebs/src/endpoints.ts index 2ec1e3949fd9..dca0cff76db3 100644 --- a/clients/client-ebs/src/endpoints.ts +++ b/clients/client-ebs/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ec2-instance-connect/src/endpoints.ts b/clients/client-ec2-instance-connect/src/endpoints.ts index 93fc4503a6c1..c4aa2f9d32bc 100644 --- a/clients/client-ec2-instance-connect/src/endpoints.ts +++ b/clients/client-ec2-instance-connect/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ec2/src/endpoints.ts b/clients/client-ec2/src/endpoints.ts index 2c94689d50fa..7d42eb1fc8d1 100644 --- a/clients/client-ec2/src/endpoints.ts +++ b/clients/client-ec2/src/endpoints.ts @@ -141,6 +141,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ec2/src/waiters/index.ts b/clients/client-ec2/src/waiters/index.ts index da866b0f2c9b..478d7001e8a8 100644 --- a/clients/client-ec2/src/waiters/index.ts +++ b/clients/client-ec2/src/waiters/index.ts @@ -12,6 +12,7 @@ export * from "./waitForInstanceRunning"; export * from "./waitForInstanceStatusOk"; export * from "./waitForInstanceStopped"; export * from "./waitForInstanceTerminated"; +export * from "./waitForInternetGatewayExists"; export * from "./waitForKeyPairExists"; export * from "./waitForNatGatewayAvailable"; export * from "./waitForNetworkInterfaceAvailable"; diff --git a/clients/client-ec2/src/waiters/waitForInternetGatewayExists.ts b/clients/client-ec2/src/waiters/waitForInternetGatewayExists.ts new file mode 100644 index 000000000000..8dfce4431d1f --- /dev/null +++ b/clients/client-ec2/src/waiters/waitForInternetGatewayExists.ts @@ -0,0 +1,57 @@ +import { checkExceptions, createWaiter, WaiterConfiguration, WaiterResult, WaiterState } from "@aws-sdk/util-waiter"; + +import { + DescribeInternetGatewaysCommand, + DescribeInternetGatewaysCommandInput, +} from "../commands/DescribeInternetGatewaysCommand"; +import { EC2Client } from "../EC2Client"; + +const checkState = async (client: EC2Client, input: DescribeInternetGatewaysCommandInput): Promise => { + let reason; + try { + const result: any = await client.send(new DescribeInternetGatewaysCommand(input)); + reason = result; + try { + const returnComparator = () => { + const flat_1: any[] = [].concat(...result.InternetGateways); + const projection_3 = flat_1.map((element_2: any) => { + return element_2.InternetGatewayId; + }); + return projection_3.length > 0.0; + }; + if (returnComparator() == true) { + return { state: WaiterState.SUCCESS, reason }; + } + } catch (e) {} + } catch (exception) { + reason = exception; + if (exception.name && exception.name == "InvalidInternetGateway.NotFound") { + return { state: WaiterState.RETRY, reason }; + } + } + return { state: WaiterState.RETRY, reason }; +}; +/** + * + * @deprecated Use waitUntilInternetGatewayExists instead. waitForInternetGatewayExists does not throw error in non-success cases. + */ +export const waitForInternetGatewayExists = async ( + params: WaiterConfiguration, + input: DescribeInternetGatewaysCommandInput +): Promise => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + return createWaiter({ ...serviceDefaults, ...params }, input, checkState); +}; +/** + * + * @param params - Waiter configuration options. + * @param input - The input to DescribeInternetGatewaysCommand for polling. + */ +export const waitUntilInternetGatewayExists = async ( + params: WaiterConfiguration, + input: DescribeInternetGatewaysCommandInput +): Promise => { + const serviceDefaults = { minDelay: 5, maxDelay: 120 }; + const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState); + return checkExceptions(result); +}; diff --git a/clients/client-ecr-public/src/endpoints.ts b/clients/client-ecr-public/src/endpoints.ts index db2f79aff97e..4a801cd0153a 100644 --- a/clients/client-ecr-public/src/endpoints.ts +++ b/clients/client-ecr-public/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ecr/src/endpoints.ts b/clients/client-ecr/src/endpoints.ts index d146efb47a6c..c570c39cf7bf 100644 --- a/clients/client-ecr/src/endpoints.ts +++ b/clients/client-ecr/src/endpoints.ts @@ -74,6 +74,15 @@ const regionHash: RegionHash = { ], signingRegion: "ap-southeast-2", }, + "ap-southeast-3": { + variants: [ + { + hostname: "api.ecr.ap-southeast-3.amazonaws.com", + tags: [], + }, + ], + signingRegion: "ap-southeast-3", + }, "ca-central-1": { variants: [ { @@ -291,6 +300,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "dkr-us-east-1", "dkr-us-east-2", diff --git a/clients/client-ecs/src/endpoints.ts b/clients/client-ecs/src/endpoints.ts index d13253fb9061..917802a2adfe 100644 --- a/clients/client-ecs/src/endpoints.ts +++ b/clients/client-ecs/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-efs/src/endpoints.ts b/clients/client-efs/src/endpoints.ts index 4c8069baa2b6..cce994fba651 100644 --- a/clients/client-efs/src/endpoints.ts +++ b/clients/client-efs/src/endpoints.ts @@ -327,6 +327,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-eks/src/endpoints.ts b/clients/client-eks/src/endpoints.ts index c8fee3f3beee..144a040b5308 100644 --- a/clients/client-eks/src/endpoints.ts +++ b/clients/client-eks/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elastic-beanstalk/src/endpoints.ts b/clients/client-elastic-beanstalk/src/endpoints.ts index 8509fd869001..0502fe0182ba 100644 --- a/clients/client-elastic-beanstalk/src/endpoints.ts +++ b/clients/client-elastic-beanstalk/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elastic-inference/src/endpoints.ts b/clients/client-elastic-inference/src/endpoints.ts index caf4e49ca454..11d201fa4da7 100644 --- a/clients/client-elastic-inference/src/endpoints.ts +++ b/clients/client-elastic-inference/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elastic-load-balancing-v2/src/endpoints.ts b/clients/client-elastic-load-balancing-v2/src/endpoints.ts index 0c97a81af404..e6222b704d14 100644 --- a/clients/client-elastic-load-balancing-v2/src/endpoints.ts +++ b/clients/client-elastic-load-balancing-v2/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elastic-load-balancing/src/endpoints.ts b/clients/client-elastic-load-balancing/src/endpoints.ts index 0c97a81af404..e6222b704d14 100644 --- a/clients/client-elastic-load-balancing/src/endpoints.ts +++ b/clients/client-elastic-load-balancing/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elastic-transcoder/src/endpoints.ts b/clients/client-elastic-transcoder/src/endpoints.ts index fcbe5d1e580d..58c36fef50fe 100644 --- a/clients/client-elastic-transcoder/src/endpoints.ts +++ b/clients/client-elastic-transcoder/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elasticache/src/endpoints.ts b/clients/client-elasticache/src/endpoints.ts index f01448c89319..0641f21f2f26 100644 --- a/clients/client-elasticache/src/endpoints.ts +++ b/clients/client-elasticache/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-elasticsearch-service/src/endpoints.ts b/clients/client-elasticsearch-service/src/endpoints.ts index c1f5bfbc7c09..25ccc5c7e2ae 100644 --- a/clients/client-elasticsearch-service/src/endpoints.ts +++ b/clients/client-elasticsearch-service/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-emr-containers/src/endpoints.ts b/clients/client-emr-containers/src/endpoints.ts index f048d3d3156f..4552ee0f969c 100644 --- a/clients/client-emr-containers/src/endpoints.ts +++ b/clients/client-emr-containers/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-emr/src/endpoints.ts b/clients/client-emr/src/endpoints.ts index 94314e4c2863..f3866f4fdd4f 100644 --- a/clients/client-emr/src/endpoints.ts +++ b/clients/client-emr/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-eventbridge/src/endpoints.ts b/clients/client-eventbridge/src/endpoints.ts index 6e6b75d81970..f85979f649db 100644 --- a/clients/client-eventbridge/src/endpoints.ts +++ b/clients/client-eventbridge/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-evidently/src/endpoints.ts b/clients/client-evidently/src/endpoints.ts index 6ef6d055ae50..f53433e96c31 100644 --- a/clients/client-evidently/src/endpoints.ts +++ b/clients/client-evidently/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-finspace-data/src/endpoints.ts b/clients/client-finspace-data/src/endpoints.ts index ce36509298d8..c7d43169986e 100644 --- a/clients/client-finspace-data/src/endpoints.ts +++ b/clients/client-finspace-data/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-finspace-data/src/models/models_0.ts b/clients/client-finspace-data/src/models/models_0.ts index c876b2d6a900..a80a6529cb06 100644 --- a/clients/client-finspace-data/src/models/models_0.ts +++ b/clients/client-finspace-data/src/models/models_0.ts @@ -473,7 +473,7 @@ export interface CreateDatasetRequest { /** *

        Description of a Dataset.

        */ - datasetDescription: string | undefined; + datasetDescription?: string; /** *

        Contact information for a Dataset owner.

        @@ -488,7 +488,7 @@ export interface CreateDatasetRequest { /** *

        The unique resource identifier for a Dataset.

        */ - alias: string | undefined; + alias?: string; /** *

        Definition for a schema on a tabular Dataset.

        @@ -524,6 +524,11 @@ export namespace CreateDatasetResponse { }); } +export enum ExportFileFormat { + DELIMITED_TEXT = "DELIMITED_TEXT", + PARQUET = "PARQUET", +} + /** *

        Structure for the Dataview destination type parameters.

        */ @@ -538,6 +543,13 @@ export interface DataViewDestinationTypeParams { * */ destinationType: string | undefined; + + /** + * Data View Export File Format + */ + s3DestinationExportFileFormat?: ExportFileFormat | string; + + s3DestinationExportFileFormatOptions?: { [key: string]: string }; } export namespace DataViewDestinationTypeParams { @@ -839,6 +851,11 @@ export interface GetChangesetResponse { */ activeUntilTimestamp?: number; + /** + * Milliseconds since UTC epoch + */ + activeFromTimestamp?: number; + /** *

        The unique identifier of the Changeset that is being updated.

        */ @@ -1441,6 +1458,11 @@ export interface ChangesetSummary { */ activeUntilTimestamp?: number; + /** + * Milliseconds since UTC epoch + */ + activeFromTimestamp?: number; + /** *

        The unique identifier of the Changeset that is updated.

        */ @@ -1870,7 +1892,7 @@ export interface UpdateDatasetRequest { /** *

        The unique resource identifier for a Dataset.

        */ - alias: string | undefined; + alias?: string; /** *

        Definition for a schema on a tabular Dataset.

        diff --git a/clients/client-finspace-data/src/protocols/Aws_restJson1.ts b/clients/client-finspace-data/src/protocols/Aws_restJson1.ts index 11e746125403..d9294dcd34c4 100644 --- a/clients/client-finspace-data/src/protocols/Aws_restJson1.ts +++ b/clients/client-finspace-data/src/protocols/Aws_restJson1.ts @@ -973,6 +973,7 @@ export const deserializeAws_restJson1GetChangesetCommand = async ( } const contents: GetChangesetCommandOutput = { $metadata: deserializeMetadata(output), + activeFromTimestamp: undefined, activeUntilTimestamp: undefined, changeType: undefined, changesetArn: undefined, @@ -987,6 +988,9 @@ export const deserializeAws_restJson1GetChangesetCommand = async ( updatesChangesetId: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.activeFromTimestamp !== undefined && data.activeFromTimestamp !== null) { + contents.activeFromTimestamp = __expectLong(data.activeFromTimestamp); + } if (data.activeUntilTimestamp !== undefined && data.activeUntilTimestamp !== null) { contents.activeUntilTimestamp = __expectLong(data.activeUntilTimestamp); } @@ -2174,6 +2178,17 @@ const serializeAws_restJson1DataViewDestinationTypeParams = ( return { ...(input.destinationType !== undefined && input.destinationType !== null && { destinationType: input.destinationType }), + ...(input.s3DestinationExportFileFormat !== undefined && + input.s3DestinationExportFileFormat !== null && { + s3DestinationExportFileFormat: input.s3DestinationExportFileFormat, + }), + ...(input.s3DestinationExportFileFormatOptions !== undefined && + input.s3DestinationExportFileFormatOptions !== null && { + s3DestinationExportFileFormatOptions: serializeAws_restJson1S3DestinationFormatOptions( + input.s3DestinationExportFileFormatOptions, + context + ), + }), }; }; @@ -2228,6 +2243,21 @@ const serializeAws_restJson1ResourcePermissionsList = (input: ResourcePermission }); }; +const serializeAws_restJson1S3DestinationFormatOptions = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + const serializeAws_restJson1SchemaDefinition = (input: SchemaDefinition, context: __SerdeContext): any => { return { ...(input.columns !== undefined && @@ -2291,6 +2321,7 @@ const deserializeAws_restJson1ChangesetList = (output: any, context: __SerdeCont const deserializeAws_restJson1ChangesetSummary = (output: any, context: __SerdeContext): ChangesetSummary => { return { + activeFromTimestamp: __expectLong(output.activeFromTimestamp), activeUntilTimestamp: __expectLong(output.activeUntilTimestamp), changeType: __expectString(output.changeType), changesetArn: __expectString(output.changesetArn), @@ -2399,6 +2430,11 @@ const deserializeAws_restJson1DataViewDestinationTypeParams = ( ): DataViewDestinationTypeParams => { return { destinationType: __expectString(output.destinationType), + s3DestinationExportFileFormat: __expectString(output.s3DestinationExportFileFormat), + s3DestinationExportFileFormatOptions: + output.s3DestinationExportFileFormatOptions !== undefined && output.s3DestinationExportFileFormatOptions !== null + ? deserializeAws_restJson1S3DestinationFormatOptions(output.s3DestinationExportFileFormatOptions, context) + : undefined, } as any; }; @@ -2472,6 +2508,21 @@ const deserializeAws_restJson1PartitionColumnList = (output: any, context: __Ser }); }; +const deserializeAws_restJson1S3DestinationFormatOptions = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + const deserializeAws_restJson1SchemaDefinition = (output: any, context: __SerdeContext): SchemaDefinition => { return { columns: diff --git a/clients/client-finspace/src/endpoints.ts b/clients/client-finspace/src/endpoints.ts index 0745a29ea6d1..783c26180773 100644 --- a/clients/client-finspace/src/endpoints.ts +++ b/clients/client-finspace/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-firehose/src/endpoints.ts b/clients/client-firehose/src/endpoints.ts index 4a1d13a9d68e..120888f9fde5 100644 --- a/clients/client-firehose/src/endpoints.ts +++ b/clients/client-firehose/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-fis/src/endpoints.ts b/clients/client-fis/src/endpoints.ts index e3f84979efe5..54ffe9aec05b 100644 --- a/clients/client-fis/src/endpoints.ts +++ b/clients/client-fis/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-fms/src/endpoints.ts b/clients/client-fms/src/endpoints.ts index 30a5811de493..507caed511dc 100644 --- a/clients/client-fms/src/endpoints.ts +++ b/clients/client-fms/src/endpoints.ts @@ -267,6 +267,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-forecast/src/Forecast.ts b/clients/client-forecast/src/Forecast.ts index 06aba57749be..2773a5177f0c 100644 --- a/clients/client-forecast/src/Forecast.ts +++ b/clients/client-forecast/src/Forecast.ts @@ -231,7 +231,7 @@ export class Forecast extends ForecastClient { *

        Creates an Amazon Forecast predictor.

        *

        Amazon Forecast creates predictors with AutoPredictor, which involves applying the * optimal combination of algorithms to each time series in your datasets. You can use - * CreateAutoPredictor to create new predictors or upgrade/retrain existing + * CreateAutoPredictor to create new predictors or upgrade/retrain existing * predictors.

        *

        * Creating new predictors @@ -543,7 +543,7 @@ export class Forecast extends ForecastClient { * CreateExplainability with a Forecast ARN *

        * - *

        You can specify a maximum of 50 time series and 1500 time points.

        + *

        You can specify a maximum of 50 time series and 500 time points.

        *
        *

        The following parameters are required when providing a Predictor ARN:

        *
          @@ -761,7 +761,7 @@ export class Forecast extends ForecastClient { * *

          This operation creates a legacy predictor that does not include all the predictor * functionalities provided by Amazon Forecast. To create a predictor that is compatible with all - * aspects of Forecast, use CreateAutoPredictor.

          + * aspects of Forecast, use CreateAutoPredictor.

          *
          *

          Creates an Amazon Forecast predictor.

          *

          In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast @@ -852,8 +852,8 @@ export class Forecast extends ForecastClient { } /** - *

          Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported - * to your specified S3 bucket.

          + *

          Exports backtest forecasts and accuracy metrics generated by the CreateAutoPredictor or CreatePredictor operations. Two + * folders containing CSV files are exported to your specified S3 bucket.

          *

          The export file names will match the following conventions:

          *

          * __.csv @@ -864,8 +864,8 @@ export class Forecast extends ForecastClient { * bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 * bucket. For more information, see aws-forecast-iam-roles.

          * - *

          The Status of the export job must be ACTIVE before - * you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

          + *

          The Status of the export job must be ACTIVE before you + * can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

          *
          */ public createPredictorBacktestExportJob( @@ -1041,7 +1041,7 @@ export class Forecast extends ForecastClient { } /** - *

          Deletes an Explainability export job.

          + *

          Deletes an Explainability export.

          */ public deleteExplainabilityExport( args: DeleteExplainabilityExportCommandInput, @@ -1143,9 +1143,8 @@ export class Forecast extends ForecastClient { } /** - *

          Deletes a predictor created using the CreatePredictor operation. You can - * delete only predictor that have a status of ACTIVE or CREATE_FAILED. - * To get the status, use the DescribePredictor operation.

          + *

          Deletes a predictor created using the DescribePredictor or CreatePredictor operations. You can delete only predictor that have a status of + * ACTIVE or CREATE_FAILED. To get the status, use the DescribePredictor operation.

          */ public deletePredictor( args: DeletePredictorCommandInput, @@ -1660,8 +1659,7 @@ export class Forecast extends ForecastClient { /** * *

          This operation is only valid for legacy predictors created with CreatePredictor. If you - * are not using a legacy predictor, use DescribeAutoPredictor.

          - *

          To upgrade a legacy predictor to AutoPredictor, see Upgrading to AutoPredictor.

          + * are not using a legacy predictor, use DescribeAutoPredictor.

          *
          *

          Describes a predictor created using the CreatePredictor * operation.

          @@ -1731,7 +1729,7 @@ export class Forecast extends ForecastClient { /** *

          Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

          *

          In addition to listing the properties provided by the user in the - * CreatePredictorBacktestExportJob request, this operation lists the + * CreatePredictorBacktestExportJob request, this operation lists the * following properties:

          *
            *
          • @@ -2077,10 +2075,10 @@ export class Forecast extends ForecastClient { } /** - *

            Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a summary - * for each backtest export job. You can filter the list using an array of Filter objects.

            - *

            To retrieve the complete set of properties for a particular backtest export job, use the - * ARN with the DescribePredictorBacktestExportJob operation.

            + *

            Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a + * summary for each backtest export job. You can filter the list using an array of Filter objects.

            + *

            To retrieve the complete set of properties for a particular backtest export job, use + * the ARN with the DescribePredictorBacktestExportJob operation.

            */ public listPredictorBacktestExportJobs( args: ListPredictorBacktestExportJobsCommandInput, @@ -2112,11 +2110,11 @@ export class Forecast extends ForecastClient { } /** - *

            Returns a list of predictors created using the CreatePredictor - * operation. For each predictor, this operation returns a summary of its properties, including - * its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the - * ARN with the DescribePredictor operation. You can filter the list using an - * array of Filter objects.

            + *

            Returns a list of predictors created using the CreateAutoPredictor or + * CreatePredictor operations. For each predictor, this operation returns a + * summary of its properties, including its Amazon Resource Name (ARN).

            + *

            You can retrieve the complete set of properties by using the ARN with the DescribeAutoPredictor and DescribePredictor operations. You + * can filter the list using an array of Filter objects.

            */ public listPredictors( args: ListPredictorsCommandInput, @@ -2181,9 +2179,9 @@ export class Forecast extends ForecastClient { /** *

            Stops a resource.

            - *

            The resource undergoes the following states: - * CREATE_STOPPING and CREATE_STOPPED. You cannot resume - * a resource once it has been stopped.

            + *

            The resource undergoes the following states: CREATE_STOPPING and + * CREATE_STOPPED. You cannot resume a resource once it has been + * stopped.

            *

            This operation can be applied to the following resources (and their corresponding child * resources):

            *
              @@ -2202,6 +2200,12 @@ export class Forecast extends ForecastClient { *
            • *

              Predictor Backtest Export Job

              *
            • + *
            • + *

              Explainability Job

              + *
            • + *
            • + *

              Explainability Export Job

              + *
            • *
            */ public stopResource( @@ -2231,7 +2235,10 @@ export class Forecast extends ForecastClient { } /** - *

            Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

            + *

            Associates the specified tags to a resource with the specified resourceArn. + * If existing tags on a resource are not specified in the request parameters, they are not + * changed. When a resource is deleted, the tags associated with that resource are also + * deleted.

            */ public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; diff --git a/clients/client-forecast/src/commands/CreateAutoPredictorCommand.ts b/clients/client-forecast/src/commands/CreateAutoPredictorCommand.ts index b8722bb04ab5..cf64ba85f52d 100644 --- a/clients/client-forecast/src/commands/CreateAutoPredictorCommand.ts +++ b/clients/client-forecast/src/commands/CreateAutoPredictorCommand.ts @@ -25,7 +25,7 @@ export interface CreateAutoPredictorCommandOutput extends CreateAutoPredictorRes *

            Creates an Amazon Forecast predictor.

            *

            Amazon Forecast creates predictors with AutoPredictor, which involves applying the * optimal combination of algorithms to each time series in your datasets. You can use - * CreateAutoPredictor to create new predictors or upgrade/retrain existing + * CreateAutoPredictor to create new predictors or upgrade/retrain existing * predictors.

            *

            * Creating new predictors diff --git a/clients/client-forecast/src/commands/CreateExplainabilityCommand.ts b/clients/client-forecast/src/commands/CreateExplainabilityCommand.ts index be8784c49042..26275becb93e 100644 --- a/clients/client-forecast/src/commands/CreateExplainabilityCommand.ts +++ b/clients/client-forecast/src/commands/CreateExplainabilityCommand.ts @@ -92,7 +92,7 @@ export interface CreateExplainabilityCommandOutput extends CreateExplainabilityR * CreateExplainability with a Forecast ARN *

            * - *

            You can specify a maximum of 50 time series and 1500 time points.

            + *

            You can specify a maximum of 50 time series and 500 time points.

            *
            *

            The following parameters are required when providing a Predictor ARN:

            *
              diff --git a/clients/client-forecast/src/commands/CreatePredictorBacktestExportJobCommand.ts b/clients/client-forecast/src/commands/CreatePredictorBacktestExportJobCommand.ts index 4e3e600924d1..48cbb2a0463c 100644 --- a/clients/client-forecast/src/commands/CreatePredictorBacktestExportJobCommand.ts +++ b/clients/client-forecast/src/commands/CreatePredictorBacktestExportJobCommand.ts @@ -24,8 +24,8 @@ export interface CreatePredictorBacktestExportJobCommandOutput __MetadataBearer {} /** - *

              Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported - * to your specified S3 bucket.

              + *

              Exports backtest forecasts and accuracy metrics generated by the CreateAutoPredictor or CreatePredictor operations. Two + * folders containing CSV files are exported to your specified S3 bucket.

              *

              The export file names will match the following conventions:

              *

              * __.csv @@ -36,8 +36,8 @@ export interface CreatePredictorBacktestExportJobCommandOutput * bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 * bucket. For more information, see aws-forecast-iam-roles.

              * - *

              The Status of the export job must be ACTIVE before - * you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

              + *

              The Status of the export job must be ACTIVE before you + * can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

              *
              * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-forecast/src/commands/CreatePredictorCommand.ts b/clients/client-forecast/src/commands/CreatePredictorCommand.ts index ff0bc7d0c3f5..3efa497590c6 100644 --- a/clients/client-forecast/src/commands/CreatePredictorCommand.ts +++ b/clients/client-forecast/src/commands/CreatePredictorCommand.ts @@ -25,7 +25,7 @@ export interface CreatePredictorCommandOutput extends CreatePredictorResponse, _ * *

              This operation creates a legacy predictor that does not include all the predictor * functionalities provided by Amazon Forecast. To create a predictor that is compatible with all - * aspects of Forecast, use CreateAutoPredictor.

              + * aspects of Forecast, use CreateAutoPredictor.

              *
              *

              Creates an Amazon Forecast predictor.

              *

              In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast diff --git a/clients/client-forecast/src/commands/DeleteExplainabilityExportCommand.ts b/clients/client-forecast/src/commands/DeleteExplainabilityExportCommand.ts index 793654ef0192..d32016bdf6ea 100644 --- a/clients/client-forecast/src/commands/DeleteExplainabilityExportCommand.ts +++ b/clients/client-forecast/src/commands/DeleteExplainabilityExportCommand.ts @@ -22,7 +22,7 @@ export interface DeleteExplainabilityExportCommandInput extends DeleteExplainabi export interface DeleteExplainabilityExportCommandOutput extends __MetadataBearer {} /** - *

              Deletes an Explainability export job.

              + *

              Deletes an Explainability export.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-forecast/src/commands/DeletePredictorCommand.ts b/clients/client-forecast/src/commands/DeletePredictorCommand.ts index 4d485cf9b3e3..4df123746437 100644 --- a/clients/client-forecast/src/commands/DeletePredictorCommand.ts +++ b/clients/client-forecast/src/commands/DeletePredictorCommand.ts @@ -22,9 +22,8 @@ export interface DeletePredictorCommandInput extends DeletePredictorRequest {} export interface DeletePredictorCommandOutput extends __MetadataBearer {} /** - *

              Deletes a predictor created using the CreatePredictor operation. You can - * delete only predictor that have a status of ACTIVE or CREATE_FAILED. - * To get the status, use the DescribePredictor operation.

              + *

              Deletes a predictor created using the DescribePredictor or CreatePredictor operations. You can delete only predictor that have a status of + * ACTIVE or CREATE_FAILED. To get the status, use the DescribePredictor operation.

              * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-forecast/src/commands/DescribePredictorBacktestExportJobCommand.ts b/clients/client-forecast/src/commands/DescribePredictorBacktestExportJobCommand.ts index 703d87d43c28..f4c2d621fde0 100644 --- a/clients/client-forecast/src/commands/DescribePredictorBacktestExportJobCommand.ts +++ b/clients/client-forecast/src/commands/DescribePredictorBacktestExportJobCommand.ts @@ -29,7 +29,7 @@ export interface DescribePredictorBacktestExportJobCommandOutput /** *

              Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

              *

              In addition to listing the properties provided by the user in the - * CreatePredictorBacktestExportJob request, this operation lists the + * CreatePredictorBacktestExportJob request, this operation lists the * following properties:

              *
                *
              • diff --git a/clients/client-forecast/src/commands/DescribePredictorCommand.ts b/clients/client-forecast/src/commands/DescribePredictorCommand.ts index e30b94698acd..8225421cd032 100644 --- a/clients/client-forecast/src/commands/DescribePredictorCommand.ts +++ b/clients/client-forecast/src/commands/DescribePredictorCommand.ts @@ -24,8 +24,7 @@ export interface DescribePredictorCommandOutput extends DescribePredictorRespons /** * *

                This operation is only valid for legacy predictors created with CreatePredictor. If you - * are not using a legacy predictor, use DescribeAutoPredictor.

                - *

                To upgrade a legacy predictor to AutoPredictor, see Upgrading to AutoPredictor.

                + * are not using a legacy predictor, use DescribeAutoPredictor.

                *
                *

                Describes a predictor created using the CreatePredictor * operation.

                diff --git a/clients/client-forecast/src/commands/ListPredictorBacktestExportJobsCommand.ts b/clients/client-forecast/src/commands/ListPredictorBacktestExportJobsCommand.ts index d6e57903ca1a..8af8b54487f6 100644 --- a/clients/client-forecast/src/commands/ListPredictorBacktestExportJobsCommand.ts +++ b/clients/client-forecast/src/commands/ListPredictorBacktestExportJobsCommand.ts @@ -24,10 +24,10 @@ export interface ListPredictorBacktestExportJobsCommandOutput __MetadataBearer {} /** - *

                Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a summary - * for each backtest export job. You can filter the list using an array of Filter objects.

                - *

                To retrieve the complete set of properties for a particular backtest export job, use the - * ARN with the DescribePredictorBacktestExportJob operation.

                + *

                Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a + * summary for each backtest export job. You can filter the list using an array of Filter objects.

                + *

                To retrieve the complete set of properties for a particular backtest export job, use + * the ARN with the DescribePredictorBacktestExportJob operation.

                * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-forecast/src/commands/ListPredictorsCommand.ts b/clients/client-forecast/src/commands/ListPredictorsCommand.ts index 086c6e3dbe76..01cf762b6b97 100644 --- a/clients/client-forecast/src/commands/ListPredictorsCommand.ts +++ b/clients/client-forecast/src/commands/ListPredictorsCommand.ts @@ -22,11 +22,11 @@ export interface ListPredictorsCommandInput extends ListPredictorsRequest {} export interface ListPredictorsCommandOutput extends ListPredictorsResponse, __MetadataBearer {} /** - *

                Returns a list of predictors created using the CreatePredictor - * operation. For each predictor, this operation returns a summary of its properties, including - * its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the - * ARN with the DescribePredictor operation. You can filter the list using an - * array of Filter objects.

                + *

                Returns a list of predictors created using the CreateAutoPredictor or + * CreatePredictor operations. For each predictor, this operation returns a + * summary of its properties, including its Amazon Resource Name (ARN).

                + *

                You can retrieve the complete set of properties by using the ARN with the DescribeAutoPredictor and DescribePredictor operations. You + * can filter the list using an array of Filter objects.

                * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-forecast/src/commands/StopResourceCommand.ts b/clients/client-forecast/src/commands/StopResourceCommand.ts index bb140580e532..34926f61874e 100644 --- a/clients/client-forecast/src/commands/StopResourceCommand.ts +++ b/clients/client-forecast/src/commands/StopResourceCommand.ts @@ -23,9 +23,9 @@ export interface StopResourceCommandOutput extends __MetadataBearer {} /** *

                Stops a resource.

                - *

                The resource undergoes the following states: - * CREATE_STOPPING and CREATE_STOPPED. You cannot resume - * a resource once it has been stopped.

                + *

                The resource undergoes the following states: CREATE_STOPPING and + * CREATE_STOPPED. You cannot resume a resource once it has been + * stopped.

                *

                This operation can be applied to the following resources (and their corresponding child * resources):

                *
                  @@ -44,6 +44,12 @@ export interface StopResourceCommandOutput extends __MetadataBearer {} *
                • *

                  Predictor Backtest Export Job

                  *
                • + *
                • + *

                  Explainability Job

                  + *
                • + *
                • + *

                  Explainability Export Job

                  + *
                • *
                * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-forecast/src/commands/TagResourceCommand.ts b/clients/client-forecast/src/commands/TagResourceCommand.ts index ee216871babf..915b824da330 100644 --- a/clients/client-forecast/src/commands/TagResourceCommand.ts +++ b/clients/client-forecast/src/commands/TagResourceCommand.ts @@ -22,7 +22,10 @@ export interface TagResourceCommandInput extends TagResourceRequest {} export interface TagResourceCommandOutput extends TagResourceResponse, __MetadataBearer {} /** - *

                Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

                + *

                Associates the specified tags to a resource with the specified resourceArn. + * If existing tags on a resource are not specified in the request parameters, they are not + * changed. When a resource is deleted, the tags associated with that resource are also + * deleted.

                * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-forecast/src/endpoints.ts b/clients/client-forecast/src/endpoints.ts index d161f7c98b10..8632fd769ae8 100644 --- a/clients/client-forecast/src/endpoints.ts +++ b/clients/client-forecast/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-forecast/src/models/models_0.ts b/clients/client-forecast/src/models/models_0.ts index 117aadcd70b3..72335039eb36 100644 --- a/clients/client-forecast/src/models/models_0.ts +++ b/clients/client-forecast/src/models/models_0.ts @@ -36,7 +36,7 @@ export interface AdditionalDataset { *

                * Holidays *

                - *

                To enable Holidays, specify a country with one of the following two-letter country + *

                To enable Holidays, set CountryCode to one of the following two-letter country * codes:

                *
                  *
                • @@ -420,14 +420,16 @@ export enum OptimizationMetric { } /** - *

                  The optional metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to a resource to help you categorize and organize + * them. Each tag consists of a key and an optional value, both of which you define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -436,24 +438,34 @@ export enum OptimizationMetric { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ export interface Tag { /** - *

                  One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values.

                  + *

                  One part of a key-value pair that makes up a tag. A key is a general label + * that acts like a category for more specific tag values.

                  */ Key: string | undefined; /** - *

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

                  + *

                  The optional part of a key-value pair that makes up a tag. A value acts as a + * descriptor within a tag category (key).

                  */ Value: string | undefined; } @@ -536,7 +548,11 @@ export interface CreateAutoPredictorRequest { */ OptimizationMetric?: OptimizationMetric | string; + /** + *

                  Create an Explainability resource for the predictor.

                  + */ ExplainPredictor?: boolean; + /** *

                  Optional metadata to help you categorize and organize your predictors. Each tag * consists of a key and an optional value, both of which you define. Tag keys and values @@ -743,7 +759,7 @@ export namespace SchemaAttribute { } /** - *

                  Defines the fields of a dataset. You specify this object in the CreateDataset request.

                  + *

                  Defines the fields of a dataset.

                  */ export interface Schema { /** @@ -807,14 +823,16 @@ export interface CreateDatasetRequest { EncryptionConfig?: EncryptionConfig; /** - *

                  The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to the dataset to help you categorize and organize + * them. Each tag consists of a key and an optional value, both of which you define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -823,13 +841,21 @@ export interface CreateDatasetRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -887,14 +913,17 @@ export interface CreateDatasetGroupRequest { DatasetArns?: string[]; /** - *

                  The optional metadata that you apply to the dataset group to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to the dataset group to help you categorize and + * organize them. Each tag consists of a key and an optional value, both of which you + * define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -903,13 +932,21 @@ export interface CreateDatasetGroupRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -978,13 +1015,12 @@ export namespace S3Config { } /** - *

                  The source of your training data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to - * access the data and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the - * CreateDatasetImportJob request.

                  + *

                  The source of your data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to + * access the data and, optionally, an AWS Key Management Service (KMS) key.

                  */ export interface DataSource { /** - *

                  The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the + *

                  The path to the data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the * credentials to access the data.

                  */ S3Config: S3Config | undefined; @@ -1075,14 +1111,17 @@ export interface CreateDatasetImportJobRequest { GeolocationFormat?: string; /** - *

                  The optional metadata that you apply to the dataset import job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to the dataset import job to help you categorize and + * organize them. Each tag consists of a key and an optional value, both of which you + * define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -1091,13 +1130,21 @@ export interface CreateDatasetImportJobRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -1198,14 +1245,13 @@ export interface CreateExplainabilityRequest { ExplainabilityConfig: ExplainabilityConfig | undefined; /** - *

                  The source of your training data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to - * access the data and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the - * CreateDatasetImportJob request.

                  + *

                  The source of your data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to + * access the data and, optionally, an AWS Key Management Service (KMS) key.

                  */ DataSource?: DataSource; /** - *

                  Defines the fields of a dataset. You specify this object in the CreateDataset request.

                  + *

                  Defines the fields of a dataset.

                  */ Schema?: Schema; @@ -1217,12 +1263,14 @@ export interface CreateExplainabilityRequest { /** *

                  If TimePointGranularity is set to SPECIFIC, define the first * point for the Explainability.

                  + *

                  Use the following timestamp format: yyyy-MM-ddTHH:mm:ss (example: 2015-01-01T20:00:00)

                  */ StartDateTime?: string; /** *

                  If TimePointGranularity is set to SPECIFIC, define the last * time point for the Explainability.

                  + *

                  Use the following timestamp format: yyyy-MM-ddTHH:mm:ss (example: 2015-01-01T20:00:00)

                  */ EndDateTime?: string; @@ -1411,14 +1459,16 @@ export interface CreateForecastRequest { ForecastTypes?: string[]; /** - *

                  The optional metadata that you apply to the forecast to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to the forecast to help you categorize and organize + * them. Each tag consists of a key and an optional value, both of which you define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -1427,13 +1477,21 @@ export interface CreateForecastRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -1487,14 +1545,17 @@ export interface CreateForecastExportJobRequest { Destination: DataDestination | undefined; /** - *

                  The optional metadata that you apply to the forecast export job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to the forecast export job to help you categorize and + * organize them. Each tag consists of a key and an optional value, both of which you + * define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -1503,13 +1564,21 @@ export interface CreateForecastExportJobRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -1586,10 +1655,10 @@ export enum FeaturizationMethodName { } /** - *

                  Provides information about the method that featurizes (transforms) a dataset field. - * The method is part of the FeaturizationPipeline of the - * Featurization object.

                  - *

                  The following is an example of how you specify a FeaturizationMethod object.

                  + *

                  Provides information about the method that featurizes (transforms) a dataset field. The + * method is part of the FeaturizationPipeline of the Featurization object.

                  + *

                  The following is an example of how you specify a FeaturizationMethod + * object.

                  *

                  * { *

                  @@ -1597,7 +1666,8 @@ export enum FeaturizationMethodName { * "FeaturizationMethodName": "filling", *

                  *

                  - * "FeaturizationMethodParameters": {"aggregation": "sum", "middlefill": "zero", "backfill": "zero"} + * "FeaturizationMethodParameters": {"aggregation": "sum", "middlefill": "zero", + * "backfill": "zero"} *

                  *

                  * } @@ -1610,14 +1680,17 @@ export interface FeaturizationMethod { FeaturizationMethodName: FeaturizationMethodName | string | undefined; /** - *

                  The method parameters (key-value pairs), which are a map of override parameters. Specify these parameters to override the default values. - * Related Time Series attributes do not accept aggregation parameters.

                  - *

                  The following list shows the parameters and their valid values for the "filling" featurization method for a Target Time Series dataset. Bold signifies the default - * value.

                  + *

                  The method parameters (key-value pairs), which are a map of override parameters. Specify + * these parameters to override the default values. Related Time Series attributes do not accept + * aggregation parameters.

                  + *

                  The following list shows the parameters and their valid values for the "filling" + * featurization method for a Target Time Series dataset. Bold + * signifies the default value.

                  *
                    *
                  • *

                    - * aggregation: sum, avg, first, min, max + * aggregation: sum, avg, + * first, min, max *

                    *
                  • *
                  • @@ -1627,12 +1700,16 @@ export interface FeaturizationMethod { *
                  • *
                  • *

                    - * middlefill: zero, nan (not a number), value, median, mean, min, max + * middlefill: zero, nan (not + * a number), value, median, mean, min, + * max *

                    *
                  • *
                  • *

                    - * backfill: zero, nan, value, median, mean, min, max + * backfill: zero, nan, + * value, median, mean, min, + * max *

                    *
                  • *
                  @@ -1641,17 +1718,20 @@ export interface FeaturizationMethod { *
                    *
                  • *

                    - * middlefill: zero, value, median, mean, min, max + * middlefill: zero, value, median, + * mean, min, max *

                    *
                  • *
                  • *

                    - * backfill: zero, value, median, mean, min, max + * backfill: zero, value, median, + * mean, min, max *

                    *
                  • *
                  • *

                    - * futurefill: zero, value, median, mean, min, max + * futurefill: zero, value, median, + * mean, min, max *

                    *
                  • *
                  @@ -1673,8 +1753,12 @@ export namespace FeaturizationMethod { } /** - *

                  Provides featurization (transformation) information for a dataset field. This object - * is part of the FeaturizationConfig object.

                  + * + *

                  This object belongs to the CreatePredictor operation. If you created + * your predictor with CreateAutoPredictor, see AttributeConfig.

                  + *
                  + *

                  Provides featurization (transformation) information for a dataset field. This object is + * part of the FeaturizationConfig object.

                  *

                  For example:

                  *

                  * { @@ -1690,7 +1774,8 @@ export namespace FeaturizationMethod { * "FeaturizationMethodName": "filling", *

                  *

                  - * "FeaturizationMethodParameters": {"aggregation": "avg", "backfill": "nan"} + * "FeaturizationMethodParameters": {"aggregation": "avg", "backfill": + * "nan"} *

                  *

                  * } ] @@ -1701,11 +1786,11 @@ export namespace FeaturizationMethod { */ export interface Featurization { /** - *

                  The name of the schema attribute that specifies the data field to be featurized. Amazon Forecast supports the target field of - * the TARGET_TIME_SERIES and the RELATED_TIME_SERIES datasets. For example, for the RETAIL domain, the target is - * demand, and for the CUSTOM domain, the target is - * target_value. - * For more information, see howitworks-missing-values.

                  + *

                  The name of the schema attribute that specifies the data field to be featurized. Amazon + * Forecast supports the target field of the TARGET_TIME_SERIES and the + * RELATED_TIME_SERIES datasets. For example, for the RETAIL domain, + * the target is demand, and for the CUSTOM domain, the target is + * target_value. For more information, see howitworks-missing-values.

                  */ AttributeName: string | undefined; @@ -1726,25 +1811,29 @@ export namespace Featurization { } /** - *

                  In a CreatePredictor operation, the specified algorithm - * trains a model using the specified dataset group. You can optionally tell the operation - * to modify data fields prior to training a model. These modifications are referred to as - * featurization.

                  - *

                  You define featurization using the FeaturizationConfig object. - * You specify an array of transformations, one for each field that you want to - * featurize. You then include the FeaturizationConfig object in your - * CreatePredictor request. Amazon Forecast applies the featurization to the - * TARGET_TIME_SERIES and RELATED_TIME_SERIES datasets before model training.

                  - *

                  You can create multiple featurization configurations. For example, you - * might call the CreatePredictor operation twice by specifying different - * featurization configurations.

                  + * + *

                  This object belongs to the CreatePredictor operation. If you created + * your predictor with CreateAutoPredictor, see AttributeConfig.

                  + *
                  + *

                  In a CreatePredictor operation, the specified algorithm trains a model + * using the specified dataset group. You can optionally tell the operation to modify data fields + * prior to training a model. These modifications are referred to as + * featurization.

                  + *

                  You define featurization using the FeaturizationConfig object. You specify an + * array of transformations, one for each field that you want to featurize. You then include the + * FeaturizationConfig object in your CreatePredictor request. + * Amazon Forecast applies the featurization to the TARGET_TIME_SERIES and + * RELATED_TIME_SERIES datasets before model training.

                  + *

                  You can create multiple featurization configurations. For example, you might call the + * CreatePredictor operation twice by specifying different featurization + * configurations.

                  */ export interface FeaturizationConfig { /** *

                  The frequency of predictions in a forecast.

                  *

                  Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), - * 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). - * For example, "Y" indicates every year and "5min" indicates every five minutes.

                  + * 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, + * "Y" indicates every year and "5min" indicates every five minutes.

                  *

                  The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset * frequency.

                  *

                  When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the @@ -1753,14 +1842,16 @@ export interface FeaturizationConfig { ForecastFrequency: string | undefined; /** - *

                  An array of dimension (field) names that specify how to group the generated forecast.

                  - *

                  For example, suppose that you are generating a forecast for item sales across all of - * your stores, and your dataset contains a store_id field. If you want the sales - * forecast for each item by store, you would specify store_id as the dimension.

                  + *

                  An array of dimension (field) names that specify how to group the generated + * forecast.

                  + *

                  For example, suppose that you are generating a forecast for item sales across all of your + * stores, and your dataset contains a store_id field. If you want the sales + * forecast for each item by store, you would specify store_id as the + * dimension.

                  *

                  All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't - * need to be specified in the CreatePredictor request. - * All forecast dimensions specified in the RELATED_TIME_SERIES dataset must - * be specified in the CreatePredictor request.

                  + * need to be specified in the CreatePredictor request. All forecast dimensions + * specified in the RELATED_TIME_SERIES dataset must be specified in the + * CreatePredictor request.

                  */ ForecastDimensions?: string[]; @@ -1996,7 +2087,11 @@ export namespace HyperParameterTuningJobConfig { } /** - *

                  Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in + * + *

                  This object belongs to the CreatePredictor operation. If you created + * your predictor with CreateAutoPredictor, see AdditionalDataset.

                  + * + *

                  Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in * featurizations.

                  *

                  * Weather Index @@ -2246,7 +2341,11 @@ export namespace SupplementaryFeature { } /** - *

                  The data used to train a predictor. The data includes a dataset group and any + * + *

                  This object belongs to the CreatePredictor operation. If you created + * your predictor with CreateAutoPredictor, see DataConfig.

                  + * + *

                  The data used to train a predictor. The data includes a dataset group and any * supplementary features. You specify this object in the CreatePredictor * request.

                  */ @@ -2425,14 +2524,16 @@ export interface CreatePredictorRequest { EncryptionConfig?: EncryptionConfig; /** - *

                  The optional metadata that you apply to the predictor to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

                  + *

                  The optional metadata that you apply to the predictor to help you categorize and organize + * them. Each tag consists of a key and an optional value, both of which you define.

                  *

                  The following basic restrictions apply to tags:

                  *
                    *
                  • *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -2441,13 +2542,21 @@ export interface CreatePredictorRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -2503,9 +2612,9 @@ export interface CreatePredictorBacktestExportJobRequest { Destination: DataDestination | undefined; /** - *

                  Optional metadata to help you categorize and organize your backtests. Each tag consists - * of a key and an optional value, both of which you define. Tag keys and values are case - * sensitive.

                  + *

                  Optional metadata to help you categorize and organize your backtests. Each tag + * consists of a key and an optional value, both of which you define. Tag keys and values + * are case sensitive.

                  *

                  The following restrictions apply to tags:

                  *
                    *
                  • @@ -2522,17 +2631,17 @@ export interface CreatePredictorBacktestExportJobRequest { *

                    Maximum value length: 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - * - = . _ : / @. If your tagging schema is used across other services and resources, - * the character restrictions of those services also apply.

                    + *

                    Accepted characters: all letters and numbers, spaces representable in UTF-8, + * and + - = . _ : / @. If your tagging schema is used across other services and + * resources, the character restrictions of those services also apply.

                    *
                  • *
                  • *

                    Key prefixes cannot include any upper or lowercase combination of - * aws: or AWS:. Values can have this prefix. If a tag - * value has aws as its prefix but the key does not, Forecast considers it - * to be a user tag and will count against the limit of 50 tags. Tags with only the key - * prefix of aws do not count against your tags per resource limit. You - * cannot edit or delete tag keys with this prefix.

                    + * aws: or AWS:. Values can have this prefix. If a + * tag value has aws as its prefix but the key does not, Forecast + * considers it to be a user tag and will count against the limit of 50 tags. Tags + * with only the key prefix of aws do not count against your tags per + * resource limit. You cannot edit or delete tag keys with this prefix.

                    *
                  • *
                  */ @@ -2743,8 +2852,42 @@ export namespace DescribeAutoPredictorRequest { }); } +/** + *

                  Provides information about the Explainability resource.

                  + */ export interface ExplainabilityInfo { + /** + *

                  The Amazon Resource Name (ARN) of the Explainability.

                  + */ ExplainabilityArn?: string; + + /** + *

                  The status of the Explainability. States include:

                  + *
                    + *
                  • + *

                    + * ACTIVE + *

                    + *
                  • + *
                  • + *

                    + * CREATE_PENDING, CREATE_IN_PROGRESS, + * CREATE_FAILED + *

                    + *
                  • + *
                  • + *

                    + * CREATE_STOPPING, CREATE_STOPPED + *

                    + *
                  • + *
                  • + *

                    + * DELETE_PENDING, DELETE_IN_PROGRESS, + * DELETE_FAILED + *

                    + *
                  • + *
                  + */ Status?: string; } @@ -2818,6 +2961,11 @@ export interface DescribeAutoPredictorResponse { */ ForecastFrequency?: string; + /** + *

                  An array of dimension (field) names that specify the attributes used to group your time series.

                  + */ + ForecastDimensions?: string[]; + /** *

                  An array of the ARNs of the dataset import jobs used to import training data for the * predictor.

                  @@ -2921,6 +3069,9 @@ export interface DescribeAutoPredictorResponse { */ OptimizationMetric?: OptimizationMetric | string; + /** + *

                  Provides the status and ARN of the Predictor Explainability.

                  + */ ExplainabilityInfo?: ExplainabilityInfo; } @@ -3443,14 +3594,13 @@ export interface DescribeExplainabilityResponse { EnableVisualization?: boolean; /** - *

                  The source of your training data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to - * access the data and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the - * CreateDatasetImportJob request.

                  + *

                  The source of your data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to + * access the data and, optionally, an AWS Key Management Service (KMS) key.

                  */ DataSource?: DataSource; /** - *

                  Defines the fields of a dataset. You specify this object in the CreateDataset request.

                  + *

                  Defines the fields of a dataset.

                  */ Schema?: Schema; @@ -4283,7 +4433,7 @@ export interface DescribePredictorBacktestExportJobResponse { *
                • *

                  * CREATE_PENDING, CREATE_IN_PROGRESS, - * CREATE_FAILED + * CREATE_FAILED *

                  *
                • *
                • @@ -4294,7 +4444,7 @@ export interface DescribePredictorBacktestExportJobResponse { *
                • *

                  * DELETE_PENDING, DELETE_IN_PROGRESS, - * DELETE_FAILED + * DELETE_FAILED *

                  *
                • *
                @@ -4307,7 +4457,8 @@ export interface DescribePredictorBacktestExportJobResponse { CreationTime?: Date; /** - *

                The last time the resource was modified. The timestamp depends on the status of the job:

                + *

                The last time the resource was modified. The timestamp depends on the status of the + * job:

                *
                  *
                • *

                  @@ -5033,7 +5184,7 @@ export interface ListExplainabilitiesRequest { *

                • *

                  * Key - The name of the parameter to filter on. Valid values are - * PredictorArn and Status.

                  + * ResourceArn and Status.

                  *
                • *
                • *

                  @@ -5213,7 +5364,7 @@ export interface ListExplainabilityExportsRequest { *

                • *

                  * Key - The name of the parameter to filter on. Valid values are - * PredictorArn and Status.

                  + * ResourceArn and Status.

                  *
                • *
                • *

                  @@ -5616,7 +5767,11 @@ export interface ForecastSummary { */ PredictorArn?: string; + /** + *

                  Whether the Forecast was created from an AutoPredictor.

                  + */ CreatedUsingAutoPredictor?: boolean; + /** *

                  The Amazon Resource Name (ARN) of the dataset group that provided the data used to train * the predictor.

                  @@ -5728,9 +5883,9 @@ export namespace ListForecastsResponse { export interface ListPredictorBacktestExportJobsRequest { /** - *

                  If the result of the previous request was truncated, the response includes a NextToken. - * To retrieve the next set of results, use the token in the next request. Tokens expire after - * 24 hours.

                  + *

                  If the result of the previous request was truncated, the response includes a + * NextToken. To retrieve the next set of results, use the token in the next request. + * Tokens expire after 24 hours.

                  */ NextToken?: string; @@ -5741,29 +5896,29 @@ export interface ListPredictorBacktestExportJobsRequest { /** *

                  An array of filters. For each filter, provide a condition and a match statement. The - * condition is either IS or IS_NOT, which specifies whether to - * include or exclude the predictor backtest export jobs that match the statement from the - * list. The match statement consists of a key and a value.

                  - *

                  - * Filter properties - *

                  - *
                    + * condition is either IS or IS_NOT, which specifies whether to + * include or exclude the predictor backtest export jobs that match the statement from the + * list. The match statement consists of a key and a value.

                    + *

                    + * Filter properties + *

                    + *
                      *
                    • - *

                      + *

                      * Condition - The condition to apply. Valid values are * IS and IS_NOT. To include the predictor backtest - * export jobs that match the statement, specify IS. To exclude matching - * predictor backtest export jobs, specify IS_NOT.

                      - *
                    • + * export jobs that match the statement, specify IS. To exclude + * matching predictor backtest export jobs, specify IS_NOT.

                      + * *
                    • - *

                      + *

                      * Key - The name of the parameter to filter on. Valid values are * PredictorArn and Status.

                      - *
                    • + * *
                    • - *

                      + *

                      * Value - The value to match.

                      - *
                    • + * *
                    */ Filters?: Filter[]; @@ -5779,9 +5934,9 @@ export namespace ListPredictorBacktestExportJobsRequest { } /** - *

                    Provides a summary of the predictor backtest export job properties used in the ListPredictorBacktestExportJobs operation. To get a complete set of properties, call - * the DescribePredictorBacktestExportJob operation, and provide the listed - * PredictorBacktestExportJobArn.

                    + *

                    Provides a summary of the predictor backtest export job properties used in the ListPredictorBacktestExportJobs operation. To get a complete set of + * properties, call the DescribePredictorBacktestExportJob operation, and + * provide the listed PredictorBacktestExportJobArn.

                    */ export interface PredictorBacktestExportJobSummary { /** @@ -5811,7 +5966,7 @@ export interface PredictorBacktestExportJobSummary { *
                  • *

                    * CREATE_PENDING, CREATE_IN_PROGRESS, - * CREATE_FAILED + * CREATE_FAILED *

                    *
                  • *
                  • @@ -5822,7 +5977,7 @@ export interface PredictorBacktestExportJobSummary { *
                  • *

                    * DELETE_PENDING, DELETE_IN_PROGRESS, - * DELETE_FAILED + * DELETE_FAILED *

                    *
                  • *
                  @@ -5840,7 +5995,8 @@ export interface PredictorBacktestExportJobSummary { CreationTime?: Date; /** - *

                  The last time the resource was modified. The timestamp depends on the status of the job:

                  + *

                  The last time the resource was modified. The timestamp depends on the status of the + * job:

                  *
                    *
                  • *

                    @@ -5885,8 +6041,8 @@ export interface ListPredictorBacktestExportJobsResponse { PredictorBacktestExportJobs?: PredictorBacktestExportJobSummary[]; /** - *

                    Returns this token if the response is truncated. To retrieve the next - * set of results, use the token in the next request.

                    + *

                    Returns this token if the response is truncated. To retrieve the next set of results, + * use the token in the next request.

                    */ NextToken?: string; } @@ -6094,7 +6250,8 @@ export namespace ListPredictorsResponse { export interface ListTagsForResourceRequest { /** - *

                    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.

                    + *

                    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. + *

                    */ ResourceArn: string | undefined; } @@ -6129,8 +6286,9 @@ export interface StopResourceRequest { /** *

                    The Amazon Resource Name (ARN) that identifies the resource to stop. The supported ARNs * are DatasetImportJobArn, PredictorArn, - * PredictorBacktestExportJobArn, ForecastArn, and - * ForecastExportJobArn.

                    + * PredictorBacktestExportJobArn, ForecastArn, + * ForecastExportJobArn, ExplainabilityArn, and + * ExplainabilityExportArn.

                    */ ResourceArn: string | undefined; } @@ -6146,7 +6304,8 @@ export namespace StopResourceRequest { export interface TagResourceRequest { /** - *

                    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.

                    + *

                    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. + *

                    */ ResourceArn: string | undefined; @@ -6158,7 +6317,8 @@ export interface TagResourceRequest { *

                    Maximum number of tags per resource - 50.

                    *
                  • *
                  • - *

                    For each resource, each tag key must be unique, and each tag key can have only one value.

                    + *

                    For each resource, each tag key must be unique, and each tag key can have only one + * value.

                    *
                  • *
                  • *

                    Maximum key length - 128 Unicode characters in UTF-8.

                    @@ -6167,13 +6327,21 @@ export interface TagResourceRequest { *

                    Maximum value length - 256 Unicode characters in UTF-8.

                    *
                  • *
                  • - *

                    If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                    + *

                    If your tagging schema is used across multiple services and resources, remember that + * other services may have restrictions on allowed characters. Generally allowed characters + * are: letters, numbers, and spaces representable in UTF-8, and the following characters: + + * - = . _ : / @.

                    *
                  • *
                  • *

                    Tag keys and values are case sensitive.

                    *
                  • *
                  • - *

                    Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                    + *

                    Do not use aws:, AWS:, or any upper or lowercase combination + * of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag + * keys with this prefix. Values can have this prefix. If a tag value has aws as + * its prefix but the key does not, then Forecast considers it to be a user tag and will + * count against the limit of 50 tags. Tags with only the key prefix of aws do + * not count against your tags per resource limit.

                    *
                  • *
                  */ @@ -6203,7 +6371,8 @@ export namespace TagResourceResponse { export interface UntagResourceRequest { /** - *

                  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast exports.

                  + *

                  The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. + *

                  */ ResourceArn: string | undefined; diff --git a/clients/client-forecast/src/protocols/Aws_json1_1.ts b/clients/client-forecast/src/protocols/Aws_json1_1.ts index 64a507c56397..9abd24f481e1 100644 --- a/clients/client-forecast/src/protocols/Aws_json1_1.ts +++ b/clients/client-forecast/src/protocols/Aws_json1_1.ts @@ -5373,6 +5373,10 @@ const deserializeAws_json1_1DescribeAutoPredictorResponse = ( output.ExplainabilityInfo !== undefined && output.ExplainabilityInfo !== null ? deserializeAws_json1_1ExplainabilityInfo(output.ExplainabilityInfo, context) : undefined, + ForecastDimensions: + output.ForecastDimensions !== undefined && output.ForecastDimensions !== null + ? deserializeAws_json1_1ForecastDimensions(output.ForecastDimensions, context) + : undefined, ForecastFrequency: __expectString(output.ForecastFrequency), ForecastHorizon: __expectInt32(output.ForecastHorizon), ForecastTypes: diff --git a/clients/client-forecastquery/src/endpoints.ts b/clients/client-forecastquery/src/endpoints.ts index 3de6502fc355..c1ae7fa53fd7 100644 --- a/clients/client-forecastquery/src/endpoints.ts +++ b/clients/client-forecastquery/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-frauddetector/src/endpoints.ts b/clients/client-frauddetector/src/endpoints.ts index fcd60ba767bd..54861f425e0d 100644 --- a/clients/client-frauddetector/src/endpoints.ts +++ b/clients/client-frauddetector/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-fsx/src/endpoints.ts b/clients/client-fsx/src/endpoints.ts index 8e1ba9216a83..2d11a299b21e 100644 --- a/clients/client-fsx/src/endpoints.ts +++ b/clients/client-fsx/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-gamelift/src/endpoints.ts b/clients/client-gamelift/src/endpoints.ts index 7598e18749bc..e6e34daad649 100644 --- a/clients/client-gamelift/src/endpoints.ts +++ b/clients/client-gamelift/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-glacier/src/endpoints.ts b/clients/client-glacier/src/endpoints.ts index 4bbb17c9accc..512e96799703 100644 --- a/clients/client-glacier/src/endpoints.ts +++ b/clients/client-glacier/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-global-accelerator/src/endpoints.ts b/clients/client-global-accelerator/src/endpoints.ts index fb7882dc0790..edbe0c577818 100644 --- a/clients/client-global-accelerator/src/endpoints.ts +++ b/clients/client-global-accelerator/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-glue/src/endpoints.ts b/clients/client-glue/src/endpoints.ts index a000713898a6..3d072149cab3 100644 --- a/clients/client-glue/src/endpoints.ts +++ b/clients/client-glue/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-grafana/src/endpoints.ts b/clients/client-grafana/src/endpoints.ts index b76c9bdf3a0d..ecd8625f2e5c 100644 --- a/clients/client-grafana/src/endpoints.ts +++ b/clients/client-grafana/src/endpoints.ts @@ -105,6 +105,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-greengrass/src/endpoints.ts b/clients/client-greengrass/src/endpoints.ts index 02011ff9d850..81088a4f9044 100644 --- a/clients/client-greengrass/src/endpoints.ts +++ b/clients/client-greengrass/src/endpoints.ts @@ -55,6 +55,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-greengrassv2/src/endpoints.ts b/clients/client-greengrassv2/src/endpoints.ts index 02011ff9d850..81088a4f9044 100644 --- a/clients/client-greengrassv2/src/endpoints.ts +++ b/clients/client-greengrassv2/src/endpoints.ts @@ -55,6 +55,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-groundstation/src/endpoints.ts b/clients/client-groundstation/src/endpoints.ts index 25eff145a267..5bb94b85a0a7 100644 --- a/clients/client-groundstation/src/endpoints.ts +++ b/clients/client-groundstation/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-guardduty/src/endpoints.ts b/clients/client-guardduty/src/endpoints.ts index 600f7a26ce54..68b2e77cca55 100644 --- a/clients/client-guardduty/src/endpoints.ts +++ b/clients/client-guardduty/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-health/README.md b/clients/client-health/README.md index 3d2460870895..08747abda0b2 100644 --- a/clients/client-health/README.md +++ b/clients/client-health/README.md @@ -11,14 +11,13 @@ AWS SDK for JavaScript Health Client for Node.js, Browser and React Native.

                  The Health API provides programmatic access to the Health information that appears in the Personal Health Dashboard. You -can use the API operations to get information about events that might affect your Amazon Web Services -services and resources.

                  +can use the API operations to get information about events that might affect your Amazon Web Services services and resources.

                  • -

                    You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the -Health API. If you call the Health API from an Amazon Web Services account that -doesn't have a Business or Enterprise Support plan, you receive a +

                    You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health +API. If you call the Health API from an Amazon Web Services account that +doesn't have a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a SubscriptionRequiredException error.

                  • diff --git a/clients/client-health/src/Health.ts b/clients/client-health/src/Health.ts index e29d3aa95ede..e49c240b4505 100644 --- a/clients/client-health/src/Health.ts +++ b/clients/client-health/src/Health.ts @@ -72,14 +72,13 @@ import { HealthClient } from "./HealthClient"; * *

                    The Health API provides programmatic access to the Health information that * appears in the Personal Health Dashboard. You - * can use the API operations to get information about events that might affect your Amazon Web Services - * services and resources.

                    + * can use the API operations to get information about events that might affect your Amazon Web Services services and resources.

                    * *
                      *
                    • - *

                      You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the - * Health API. If you call the Health API from an Amazon Web Services account that - * doesn't have a Business or Enterprise Support plan, you receive a + *

                      You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health + * API. If you call the Health API from an Amazon Web Services account that + * doesn't have a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a * SubscriptionRequiredException error.

                      *
                    • *
                    • @@ -218,8 +217,8 @@ export class Health extends HealthClient { * depending on the Amazon Web Services service.

                      *

                      At least one event Amazon Resource Name (ARN) and account ID are required.

                      *

                      Before you can call this operation, you must first enable Health to work with - * Organizations. To do this, call the EnableHealthServiceAccessForOrganization - * operation from your organization's management account.

                      + * Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's + * management account.

                      * *
                        *
                      • @@ -376,8 +375,8 @@ export class Health extends HealthClient { /** *

                        Returns detailed information about one or more specified events for one or more - * Amazon Web Services accounts in your organization. This information includes standard event data (such as the - * Amazon Web Services Region and service), an event description, and (depending on the event) possible + * Amazon Web Services accounts in your organization. This information includes standard event data (such as + * the Amazon Web Services Region and service), an event description, and (depending on the event) possible * metadata. This operation doesn't return affected entities, such as the resources related to * the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

                        * @@ -397,7 +396,7 @@ export class Health extends HealthClient { *
                      • *
                      • *

                        To return event details for an event that is specific to an account in your - * organization, you must specify the awsAccountId parameter in the + * organization, you must specify the awsAccountId parameter in the * request. If you don't specify an account ID, Health returns an error message * because the event is specific to an account in your organization.

                        *
                      • @@ -560,7 +559,7 @@ export class Health extends HealthClient { * operation to find information about the Health event, such as the category, Amazon Web Services * service, and event code. The metadata for each event appears in the EventType object.

                        *

                        If you don't specify a filter criteria, the API operation returns all event types, in no - * particular order.

                        + * particular order.

                        * *

                        This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

                        *
                        @@ -635,16 +634,17 @@ export class Health extends HealthClient { *

                        Disables Health from working with Organizations. To call this operation, you must sign * in as an Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not * recommended) in the organization's management account. For more information, see Aggregating - * Health events in the - * Health User Guide.

                        - *

                        This operation doesn't remove the service-linked role from the management account in your organization. You must use the IAM console, API, or Command Line Interface (CLI) to - * remove the service-linked role. For more information, see Deleting a Service-Linked Role in the + * Health events in the Health User Guide.

                        + *

                        This operation doesn't remove the service-linked role from the management account in your + * organization. You must use the IAM console, API, or Command Line Interface (CLI) to remove the + * service-linked role. For more information, see Deleting a Service-Linked Role in the * IAM User Guide.

                        * *

                        You can also disable the organizational feature by using the Organizations DisableAWSServiceAccess API operation. After you call this operation, * Health stops aggregating events for all other Amazon Web Services accounts in your organization. * If you call the Health API operations for organizational view, Health returns - * an error. Health continues to aggregate health events for your Amazon Web Services account.

                        + * an error. Health continues to aggregate health events for your + * Amazon Web Services account.

                        *
                        */ public disableHealthServiceAccessForOrganization( @@ -687,9 +687,9 @@ export class Health extends HealthClient { *

                        To call this operation, you must meet the following requirements:

                        *
                          *
                        • - *

                          You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the Health + *

                          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health * API. If you call the Health API from an Amazon Web Services account that doesn't have a - * Business or Enterprise Support plan, you receive a + * Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a * SubscriptionRequiredException error.

                          *
                        • *
                        • diff --git a/clients/client-health/src/HealthClient.ts b/clients/client-health/src/HealthClient.ts index f90c6fb94f43..6c6ef35f170d 100644 --- a/clients/client-health/src/HealthClient.ts +++ b/clients/client-health/src/HealthClient.ts @@ -280,14 +280,13 @@ export interface HealthClientResolvedConfig extends HealthClientResolvedConfigTy * *

                          The Health API provides programmatic access to the Health information that * appears in the Personal Health Dashboard. You - * can use the API operations to get information about events that might affect your Amazon Web Services - * services and resources.

                          + * can use the API operations to get information about events that might affect your Amazon Web Services services and resources.

                          * *
                            *
                          • - *

                            You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the - * Health API. If you call the Health API from an Amazon Web Services account that - * doesn't have a Business or Enterprise Support plan, you receive a + *

                            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health + * API. If you call the Health API from an Amazon Web Services account that + * doesn't have a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a * SubscriptionRequiredException error.

                            *
                          • *
                          • diff --git a/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts b/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts index df38e2964fe3..15906160da63 100644 --- a/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts +++ b/clients/client-health/src/commands/DescribeAffectedEntitiesForOrganizationCommand.ts @@ -34,8 +34,8 @@ export interface DescribeAffectedEntitiesForOrganizationCommandOutput * depending on the Amazon Web Services service.

                            *

                            At least one event Amazon Resource Name (ARN) and account ID are required.

                            *

                            Before you can call this operation, you must first enable Health to work with - * Organizations. To do this, call the EnableHealthServiceAccessForOrganization - * operation from your organization's management account.

                            + * Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's + * management account.

                            * *
                              *
                            • diff --git a/clients/client-health/src/commands/DescribeEventDetailsForOrganizationCommand.ts b/clients/client-health/src/commands/DescribeEventDetailsForOrganizationCommand.ts index a74994f9a357..baa27e596d3b 100644 --- a/clients/client-health/src/commands/DescribeEventDetailsForOrganizationCommand.ts +++ b/clients/client-health/src/commands/DescribeEventDetailsForOrganizationCommand.ts @@ -28,8 +28,8 @@ export interface DescribeEventDetailsForOrganizationCommandOutput /** *

                              Returns detailed information about one or more specified events for one or more - * Amazon Web Services accounts in your organization. This information includes standard event data (such as the - * Amazon Web Services Region and service), an event description, and (depending on the event) possible + * Amazon Web Services accounts in your organization. This information includes standard event data (such as + * the Amazon Web Services Region and service), an event description, and (depending on the event) possible * metadata. This operation doesn't return affected entities, such as the resources related to * the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

                              * @@ -49,7 +49,7 @@ export interface DescribeEventDetailsForOrganizationCommandOutput *
                            • *
                            • *

                              To return event details for an event that is specific to an account in your - * organization, you must specify the awsAccountId parameter in the + * organization, you must specify the awsAccountId parameter in the * request. If you don't specify an account ID, Health returns an error message * because the event is specific to an account in your organization.

                              *
                            • diff --git a/clients/client-health/src/commands/DescribeEventTypesCommand.ts b/clients/client-health/src/commands/DescribeEventTypesCommand.ts index 79d593d5d10d..30516377950d 100644 --- a/clients/client-health/src/commands/DescribeEventTypesCommand.ts +++ b/clients/client-health/src/commands/DescribeEventTypesCommand.ts @@ -26,7 +26,7 @@ export interface DescribeEventTypesCommandOutput extends DescribeEventTypesRespo * operation to find information about the Health event, such as the category, Amazon Web Services * service, and event code. The metadata for each event appears in the EventType object.

                              *

                              If you don't specify a filter criteria, the API operation returns all event types, in no - * particular order.

                              + * particular order.

                              * *

                              This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

                              *
                              diff --git a/clients/client-health/src/commands/DisableHealthServiceAccessForOrganizationCommand.ts b/clients/client-health/src/commands/DisableHealthServiceAccessForOrganizationCommand.ts index f8e03c44819b..80b097356cd3 100644 --- a/clients/client-health/src/commands/DisableHealthServiceAccessForOrganizationCommand.ts +++ b/clients/client-health/src/commands/DisableHealthServiceAccessForOrganizationCommand.ts @@ -24,16 +24,17 @@ export interface DisableHealthServiceAccessForOrganizationCommandOutput extends *

                              Disables Health from working with Organizations. To call this operation, you must sign * in as an Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not * recommended) in the organization's management account. For more information, see Aggregating - * Health events in the - * Health User Guide.

                              - *

                              This operation doesn't remove the service-linked role from the management account in your organization. You must use the IAM console, API, or Command Line Interface (CLI) to - * remove the service-linked role. For more information, see Deleting a Service-Linked Role in the + * Health events in the Health User Guide.

                              + *

                              This operation doesn't remove the service-linked role from the management account in your + * organization. You must use the IAM console, API, or Command Line Interface (CLI) to remove the + * service-linked role. For more information, see Deleting a Service-Linked Role in the * IAM User Guide.

                              * *

                              You can also disable the organizational feature by using the Organizations DisableAWSServiceAccess API operation. After you call this operation, * Health stops aggregating events for all other Amazon Web Services accounts in your organization. * If you call the Health API operations for organizational view, Health returns - * an error. Health continues to aggregate health events for your Amazon Web Services account.

                              + * an error. Health continues to aggregate health events for your + * Amazon Web Services account.

                              *
                              * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-health/src/commands/EnableHealthServiceAccessForOrganizationCommand.ts b/clients/client-health/src/commands/EnableHealthServiceAccessForOrganizationCommand.ts index 645ab2bce93e..656914e21d35 100644 --- a/clients/client-health/src/commands/EnableHealthServiceAccessForOrganizationCommand.ts +++ b/clients/client-health/src/commands/EnableHealthServiceAccessForOrganizationCommand.ts @@ -29,9 +29,9 @@ export interface EnableHealthServiceAccessForOrganizationCommandOutput extends _ *

                              To call this operation, you must meet the following requirements:

                              *
                                *
                              • - *

                                You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the Health + *

                                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health * API. If you call the Health API from an Amazon Web Services account that doesn't have a - * Business or Enterprise Support plan, you receive a + * Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a * SubscriptionRequiredException error.

                                *
                              • *
                              • diff --git a/clients/client-health/src/endpoints.ts b/clients/client-health/src/endpoints.ts index 95f090f5238f..cf28d20533ba 100644 --- a/clients/client-health/src/endpoints.ts +++ b/clients/client-health/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-health/src/models/models_0.ts b/clients/client-health/src/models/models_0.ts index 21f0ecef20a0..bf8cd8cb457a 100644 --- a/clients/client-health/src/models/models_0.ts +++ b/clients/client-health/src/models/models_0.ts @@ -211,8 +211,7 @@ export namespace DateTimeRange { } /** - *

                                The values to use to filter results from the DescribeAffectedEntities - * operation.

                                + *

                                The values to use to filter results from the DescribeAffectedEntities operation.

                                */ export interface EntityFilter { /** @@ -800,9 +799,10 @@ export namespace EventDetailsErrorItem { *
                              • *
                              • *

                                - * Account-specific events are specific to either your Amazon Web Services account or an account in your organization. For example, if there's an issue with - * Amazon Elastic Compute Cloud in a Region that you use, Health provides information about the event - * and the affected resources in the account.

                                + * Account-specific events are specific to either your + * Amazon Web Services account or an account in your organization. For example, if there's an issue + * with Amazon Elastic Compute Cloud in a Region that you use, Health provides information about the + * event and the affected resources in the account.

                                *
                              • *
                              *

                              You can determine if an event is public or account-specific by using the @@ -1035,7 +1035,8 @@ export interface OrganizationEventDetailsErrorItem { *

                              We couldn't find an account specific event for the specified Amazon Web Services account. To find an event that is public, you must enter a null value for the Amazon Web Services account ID in the request.

                              * *
                            • - *

                              Your Amazon Web Services account doesn't include the Amazon Web Services Support plan required to use the Health API. You must have either a Business or Enterprise Support plan.

                              + *

                              Your Amazon Web Services account doesn't include the Amazon Web Services Support plan required to use the + * Health API. You must have either a Business, Enterprise On-Ramp, or Enterprise Support plan.

                              *
                            • *
                            */ @@ -1074,9 +1075,10 @@ export interface OrganizationEventDetails { *
                          • *
                          • *

                            - * Account-specific events are specific to either your Amazon Web Services account or an account in your organization. For example, if there's an issue with - * Amazon Elastic Compute Cloud in a Region that you use, Health provides information about the event - * and the affected resources in the account.

                            + * Account-specific events are specific to either your + * Amazon Web Services account or an account in your organization. For example, if there's an issue + * with Amazon Elastic Compute Cloud in a Region that you use, Health provides information about the + * event and the affected resources in the account.

                            *
                          • *
                          *

                          You can determine if an event is public or account-specific by using the @@ -1566,8 +1568,7 @@ export namespace DescribeEventTypesResponse { export interface DescribeHealthServiceStatusForOrganizationResponse { /** *

                          Information about the status of enabling or disabling the Health organizational - * view feature in - * your organization.

                          + * view feature in your organization.

                          *

                          Valid values are ENABLED | DISABLED | PENDING.

                          */ healthServiceAccessStatusForOrganization?: string; diff --git a/clients/client-healthlake/src/endpoints.ts b/clients/client-healthlake/src/endpoints.ts index c003928e5c60..2e1c62016160 100644 --- a/clients/client-healthlake/src/endpoints.ts +++ b/clients/client-healthlake/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-honeycode/src/endpoints.ts b/clients/client-honeycode/src/endpoints.ts index b0051d23c037..1b79b4750c38 100644 --- a/clients/client-honeycode/src/endpoints.ts +++ b/clients/client-honeycode/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iam/src/endpoints.ts b/clients/client-iam/src/endpoints.ts index 707191726d49..9fde5096398c 100644 --- a/clients/client-iam/src/endpoints.ts +++ b/clients/client-iam/src/endpoints.ts @@ -68,6 +68,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "aws-global-fips", "ca-central-1", diff --git a/clients/client-identitystore/src/endpoints.ts b/clients/client-identitystore/src/endpoints.ts index 6c9ecfa54535..3c75e4cbc16e 100644 --- a/clients/client-identitystore/src/endpoints.ts +++ b/clients/client-identitystore/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-imagebuilder/src/Imagebuilder.ts b/clients/client-imagebuilder/src/Imagebuilder.ts index 4e8350d55f2f..2621675ccfbb 100644 --- a/clients/client-imagebuilder/src/Imagebuilder.ts +++ b/clients/client-imagebuilder/src/Imagebuilder.ts @@ -123,6 +123,11 @@ import { ImportComponentCommandInput, ImportComponentCommandOutput, } from "./commands/ImportComponentCommand"; +import { + ImportVmImageCommand, + ImportVmImageCommandInput, + ImportVmImageCommandOutput, +} from "./commands/ImportVmImageCommand"; import { ListComponentBuildVersionsCommand, ListComponentBuildVersionsCommandInput, @@ -1105,6 +1110,46 @@ export class Imagebuilder extends ImagebuilderClient { } } + /** + *

                          When you export your virtual machine (VM) from its virtualization environment, + * that process creates a set of one or more disk container files that act as + * snapshots of your VM’s environment, settings, and data. The Amazon EC2 API + * ImportImage + * action uses those files to import your VM and create an AMI. To import using the + * CLI command, see import-image + *

                          + *

                          You can reference the task ID from the VM import to pull in the AMI that + * the import created as the base image for your Image Builder recipe.

                          + */ + public importVmImage( + args: ImportVmImageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public importVmImage( + args: ImportVmImageCommandInput, + cb: (err: any, data?: ImportVmImageCommandOutput) => void + ): void; + public importVmImage( + args: ImportVmImageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ImportVmImageCommandOutput) => void + ): void; + public importVmImage( + args: ImportVmImageCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ImportVmImageCommandOutput) => void), + cb?: (err: any, data?: ImportVmImageCommandOutput) => void + ): Promise | void { + const command = new ImportVmImageCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Returns the list of component build versions for the specified semantic version.

                          * diff --git a/clients/client-imagebuilder/src/ImagebuilderClient.ts b/clients/client-imagebuilder/src/ImagebuilderClient.ts index e830635a95ae..6ad0605c4913 100644 --- a/clients/client-imagebuilder/src/ImagebuilderClient.ts +++ b/clients/client-imagebuilder/src/ImagebuilderClient.ts @@ -115,6 +115,7 @@ import { GetInfrastructureConfigurationCommandOutput, } from "./commands/GetInfrastructureConfigurationCommand"; import { ImportComponentCommandInput, ImportComponentCommandOutput } from "./commands/ImportComponentCommand"; +import { ImportVmImageCommandInput, ImportVmImageCommandOutput } from "./commands/ImportVmImageCommand"; import { ListComponentBuildVersionsCommandInput, ListComponentBuildVersionsCommandOutput, @@ -206,6 +207,7 @@ export type ServiceInputTypes = | GetImageRecipePolicyCommandInput | GetInfrastructureConfigurationCommandInput | ImportComponentCommandInput + | ImportVmImageCommandInput | ListComponentBuildVersionsCommandInput | ListComponentsCommandInput | ListContainerRecipesCommandInput @@ -257,6 +259,7 @@ export type ServiceOutputTypes = | GetImageRecipePolicyCommandOutput | GetInfrastructureConfigurationCommandOutput | ImportComponentCommandOutput + | ImportVmImageCommandOutput | ListComponentBuildVersionsCommandOutput | ListComponentsCommandOutput | ListContainerRecipesCommandOutput diff --git a/clients/client-imagebuilder/src/commands/ImportVmImageCommand.ts b/clients/client-imagebuilder/src/commands/ImportVmImageCommand.ts new file mode 100644 index 000000000000..7a5b48e479b9 --- /dev/null +++ b/clients/client-imagebuilder/src/commands/ImportVmImageCommand.ts @@ -0,0 +1,103 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ImagebuilderClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ImagebuilderClient"; +import { ImportVmImageRequest, ImportVmImageResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ImportVmImageCommand, + serializeAws_restJson1ImportVmImageCommand, +} from "../protocols/Aws_restJson1"; + +export interface ImportVmImageCommandInput extends ImportVmImageRequest {} +export interface ImportVmImageCommandOutput extends ImportVmImageResponse, __MetadataBearer {} + +/** + *

                          When you export your virtual machine (VM) from its virtualization environment, + * that process creates a set of one or more disk container files that act as + * snapshots of your VM’s environment, settings, and data. The Amazon EC2 API + * ImportImage + * action uses those files to import your VM and create an AMI. To import using the + * CLI command, see import-image + *

                          + *

                          You can reference the task ID from the VM import to pull in the AMI that + * the import created as the base image for your Image Builder recipe.

                          + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ImagebuilderClient, ImportVmImageCommand } from "@aws-sdk/client-imagebuilder"; // ES Modules import + * // const { ImagebuilderClient, ImportVmImageCommand } = require("@aws-sdk/client-imagebuilder"); // CommonJS import + * const client = new ImagebuilderClient(config); + * const command = new ImportVmImageCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ImportVmImageCommandInput} for command's `input` shape. + * @see {@link ImportVmImageCommandOutput} for command's `response` shape. + * @see {@link ImagebuilderClientResolvedConfig | config} for ImagebuilderClient's `config` shape. + * + */ +export class ImportVmImageCommand extends $Command< + ImportVmImageCommandInput, + ImportVmImageCommandOutput, + ImagebuilderClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ImportVmImageCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ImagebuilderClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ImagebuilderClient"; + const commandName = "ImportVmImageCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ImportVmImageRequest.filterSensitiveLog, + outputFilterSensitiveLog: ImportVmImageResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ImportVmImageCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ImportVmImageCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ImportVmImageCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-imagebuilder/src/commands/index.ts b/clients/client-imagebuilder/src/commands/index.ts index 3dbb72ee3f8f..50a764ab4c6e 100644 --- a/clients/client-imagebuilder/src/commands/index.ts +++ b/clients/client-imagebuilder/src/commands/index.ts @@ -25,6 +25,7 @@ export * from "./GetImageRecipeCommand"; export * from "./GetImageRecipePolicyCommand"; export * from "./GetInfrastructureConfigurationCommand"; export * from "./ImportComponentCommand"; +export * from "./ImportVmImageCommand"; export * from "./ListComponentBuildVersionsCommand"; export * from "./ListComponentsCommand"; export * from "./ListContainerRecipesCommand"; diff --git a/clients/client-imagebuilder/src/endpoints.ts b/clients/client-imagebuilder/src/endpoints.ts index 13812b37bebe..2d8a287da4d3 100644 --- a/clients/client-imagebuilder/src/endpoints.ts +++ b/clients/client-imagebuilder/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-imagebuilder/src/models/models_0.ts b/clients/client-imagebuilder/src/models/models_0.ts index 2e57ce3fa921..a12289062643 100644 --- a/clients/client-imagebuilder/src/models/models_0.ts +++ b/clients/client-imagebuilder/src/models/models_0.ts @@ -223,6 +223,12 @@ export namespace AmiDistributionConfiguration { }); } +export enum BuildType { + IMPORT = "IMPORT", + SCHEDULED = "SCHEDULED", + USER_INITIATED = "USER_INITIATED", +} + /** *

                          You have exceeded the permitted request rate for the specific operation.

                          */ @@ -248,7 +254,9 @@ export interface CancelImageCreationRequest { imageBuildVersionArn: string | undefined; /** - *

                          The idempotency token used to make this request idempotent.

                          + *

                          Unique, case-sensitive identifier you provide to ensure + * idempotency of the request. For more information, see Ensuring idempotency + * in the Amazon EC2 API Reference.

                          */ clientToken?: string; } @@ -269,7 +277,7 @@ export interface CancelImageCreationResponse { requestId?: string; /** - *

                          The idempotency token used to make this request idempotent.

                          + *

                          The idempotency token that was used for this request.

                          */ clientToken?: string; @@ -1552,6 +1560,66 @@ export namespace LaunchTemplateConfiguration { }); } +export enum DiskImageFormat { + RAW = "RAW", + VHD = "VHD", + VMDK = "VMDK", +} + +/** + *

                          Properties that configure export from your build instance + * to a compatible file format for your VM.

                          + */ +export interface S3ExportConfiguration { + /** + *

                          The name of the role that grants VM Import/Export permission to + * export images to your S3 bucket.

                          + */ + roleName: string | undefined; + + /** + *

                          Export the updated image to one of the following supported disk + * image formats:

                          + *
                            + *
                          • + *

                            + * Virtual Hard Disk (VHD) – + * Compatible with Citrix Xen and Microsoft Hyper-V virtualization products.

                            + *
                          • + *
                          • + *

                            + * Stream-optimized ESX Virtual Machine Disk + * (VMDK) – Compatible with VMware ESX and + * VMware vSphere versions 4, 5, and 6.

                            + *
                          • + *
                          • + *

                            + * Raw – Raw format.

                            + *
                          • + *
                          + */ + diskImageFormat: DiskImageFormat | string | undefined; + + /** + *

                          The S3 bucket in which to store the output disk images for your VM.

                          + */ + s3Bucket: string | undefined; + + /** + *

                          The Amazon S3 path for the bucket where the output disk images for your VM are stored.

                          + */ + s3Prefix?: string; +} + +export namespace S3ExportConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: S3ExportConfiguration): any => ({ + ...obj, + }); +} + /** *

                          Defines the settings for a specific Region.

                          */ @@ -1583,6 +1651,12 @@ export interface Distribution { * for specified accounts.

                          */ launchTemplateConfigurations?: LaunchTemplateConfiguration[]; + + /** + *

                          Configure export settings to deliver disk images created from your image build, + * using a file format that is compatible with your VMs in that Region.

                          + */ + s3ExportConfiguration?: S3ExportConfiguration; } export namespace Distribution { @@ -1658,11 +1732,14 @@ export namespace CreateDistributionConfigurationResponse { } /** - *

                          Image tests configuration.

                          + *

                          Configure image tests for your pipeline build. Tests run after building + * the image, to verify that the AMI or container image is valid before + * distributing it.

                          */ export interface ImageTestsConfiguration { /** - *

                          Defines if tests should be executed when building this image.

                          + *

                          Determines if tests should run after building the image. Image Builder defaults + * to enable tests to run following the image build, before image distribution.

                          */ imageTestsEnabled?: boolean; @@ -2077,12 +2154,12 @@ export namespace InstanceMetadataOptions { */ export interface S3Logs { /** - *

                          The Amazon S3 bucket in which to store the logs.

                          + *

                          The S3 bucket in which to store the logs.

                          */ s3BucketName?: string; /** - *

                          The Amazon S3 path in which to store the logs.

                          + *

                          The Amazon S3 path to the bucket where the logs are stored.

                          */ s3KeyPrefix?: string; } @@ -2167,7 +2244,12 @@ export interface CreateInfrastructureConfigurationRequest { terminateInstanceOnFailure?: boolean; /** - *

                          The SNS topic on which to send image build events.

                          + *

                          The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

                          + * + *

                          EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys + * from other accounts. The key that is used to encrypt the SNS topic must reside in the + * account that the Image Builder service runs under.

                          + *
                          */ snsTopicArn?: string; @@ -3007,7 +3089,12 @@ export interface InfrastructureConfiguration { terminateInstanceOnFailure?: boolean; /** - *

                          The SNS topic Amazon Resource Name (ARN) of the infrastructure configuration.

                          + *

                          The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

                          + * + *

                          EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys + * from other accounts. The key that is used to encrypt the SNS topic must reside in the + * account that the Image Builder service runs under.

                          + *
                          */ snsTopicArn?: string; @@ -3201,6 +3288,29 @@ export interface Image { *

                          The tags of the image.

                          */ tags?: { [key: string]: string }; + + /** + *

                          Indicates the type of build that created this image. The build can be initiated + * in the following ways:

                          + *
                            + *
                          • + *

                            + * USER_INITIATED – A manual + * pipeline build request.

                            + *
                          • + *
                          • + *

                            + * SCHEDULED – A pipeline build + * initiated by a cron expression in the Image Builder pipeline, or from EventBridge.

                            + *
                          • + *
                          • + *

                            + * IMPORT – A VM import created + * the image to use as the base image for the recipe.

                            + *
                          • + *
                          + */ + buildType?: BuildType | string; } export namespace Image { @@ -3641,6 +3751,102 @@ export namespace ImportComponentResponse { }); } +export interface ImportVmImageRequest { + /** + *

                          The name of the base image that is created by the import process.

                          + */ + name: string | undefined; + + /** + *

                          The semantic version to attach to the base image that was created during the + * import process. This version follows the semantic version syntax.

                          + * + *

                          The semantic version has four nodes: ../. + * You can assign values for the first three, and can filter on all of them.

                          + *

                          + * Assignment: For the first three nodes you can assign any positive integer value, including + * zero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the + * build number to the fourth node.

                          + *

                          + * Patterns: You can use any numeric pattern that adheres to the assignment requirements for + * the nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or + * a date, such as 2021.01.01.

                          + *
                          + */ + semanticVersion: string | undefined; + + /** + *

                          The description for the base image that is created by the import process.

                          + */ + description?: string; + + /** + *

                          The operating system platform for the imported VM.

                          + */ + platform: Platform | string | undefined; + + /** + *

                          The operating system version for the imported VM.

                          + */ + osVersion?: string; + + /** + *

                          The importTaskId (API) or ImportTaskId (CLI) from the + * Amazon EC2 VM import process. Image Builder retrieves information from the import process to pull + * in the AMI that is created from the VM source as the base image for your recipe.

                          + */ + vmImportTaskId: string | undefined; + + /** + *

                          Tags that are attached to the import resources.

                          + */ + tags?: { [key: string]: string }; + + /** + *

                          Unique, case-sensitive identifier you provide to ensure + * idempotency of the request. For more information, see Ensuring idempotency + * in the Amazon EC2 API Reference.

                          + */ + clientToken?: string; +} + +export namespace ImportVmImageRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ImportVmImageRequest): any => ({ + ...obj, + }); +} + +export interface ImportVmImageResponse { + /** + *

                          The request ID that uniquely identifies this request.

                          + */ + requestId?: string; + + /** + *

                          The Amazon Resource Name (ARN) of the AMI that was created during the VM + * import process. This AMI is used as the base image for the recipe that + * imported the VM.

                          + */ + imageArn?: string; + + /** + *

                          The idempotency token that was used for this request.

                          + */ + clientToken?: string; +} + +export namespace ImportVmImageResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ImportVmImageResponse): any => ({ + ...obj, + }); +} + /** *

                          You have provided an invalid pagination token in your request.

                          */ @@ -4076,6 +4282,29 @@ export interface ImageSummary { *

                          The tags of the image.

                          */ tags?: { [key: string]: string }; + + /** + *

                          Indicates the type of build that created this image. The build can be initiated + * in the following ways:

                          + *
                            + *
                          • + *

                            + * USER_INITIATED – A manual + * pipeline build request.

                            + *
                          • + *
                          • + *

                            + * SCHEDULED – A pipeline build + * initiated by a cron expression in the Image Builder pipeline, or from EventBridge.

                            + *
                          • + *
                          • + *

                            + * IMPORT – A VM import created + * the image to use as the base image for the recipe.

                            + *
                          • + *
                          + */ + buildType?: BuildType | string; } export namespace ImageSummary { @@ -4628,6 +4857,29 @@ export interface ImageVersion { *

                          The date on which this specific version of the Image Builder image was created.

                          */ dateCreated?: string; + + /** + *

                          Indicates the type of build that created this image. The build can be initiated + * in the following ways:

                          + *
                            + *
                          • + *

                            + * USER_INITIATED – A manual + * pipeline build request.

                            + *
                          • + *
                          • + *

                            + * SCHEDULED – A pipeline build + * initiated by a cron expression in the Image Builder pipeline, or from EventBridge.

                            + *
                          • + *
                          • + *

                            + * IMPORT – A VM import created + * the image to use as the base image for the recipe.

                            + *
                          • + *
                          + */ + buildType?: BuildType | string; } export namespace ImageVersion { @@ -5346,7 +5598,12 @@ export interface UpdateInfrastructureConfigurationRequest { terminateInstanceOnFailure?: boolean; /** - *

                          The SNS topic on which to send image build events.

                          + *

                          The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

                          + * + *

                          EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys + * from other accounts. The key that is used to encrypt the SNS topic must reside in the + * account that the Image Builder service runs under.

                          + *
                          */ snsTopicArn?: string; diff --git a/clients/client-imagebuilder/src/protocols/Aws_restJson1.ts b/clients/client-imagebuilder/src/protocols/Aws_restJson1.ts index 98e35dc27ca9..5a33f2a0e245 100644 --- a/clients/client-imagebuilder/src/protocols/Aws_restJson1.ts +++ b/clients/client-imagebuilder/src/protocols/Aws_restJson1.ts @@ -82,6 +82,7 @@ import { GetInfrastructureConfigurationCommandOutput, } from "../commands/GetInfrastructureConfigurationCommand"; import { ImportComponentCommandInput, ImportComponentCommandOutput } from "../commands/ImportComponentCommand"; +import { ImportVmImageCommandInput, ImportVmImageCommandOutput } from "../commands/ImportVmImageCommand"; import { ListComponentBuildVersionsCommandInput, ListComponentBuildVersionsCommandOutput, @@ -195,6 +196,7 @@ import { ResourceDependencyException, ResourceInUseException, ResourceNotFoundException, + S3ExportConfiguration, S3Logs, Schedule, ServiceException, @@ -1014,6 +1016,39 @@ export const serializeAws_restJson1ImportComponentCommand = async ( }); }; +export const serializeAws_restJson1ImportVmImageCommand = async ( + input: ImportVmImageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/ImportVmImage"; + let body: any; + body = JSON.stringify({ + clientToken: input.clientToken ?? generateIdempotencyToken(), + ...(input.description !== undefined && input.description !== null && { description: input.description }), + ...(input.name !== undefined && input.name !== null && { name: input.name }), + ...(input.osVersion !== undefined && input.osVersion !== null && { osVersion: input.osVersion }), + ...(input.platform !== undefined && input.platform !== null && { platform: input.platform }), + ...(input.semanticVersion !== undefined && + input.semanticVersion !== null && { semanticVersion: input.semanticVersion }), + ...(input.tags !== undefined && input.tags !== null && { tags: serializeAws_restJson1TagMap(input.tags, context) }), + ...(input.vmImportTaskId !== undefined && + input.vmImportTaskId !== null && { vmImportTaskId: input.vmImportTaskId }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1ListComponentBuildVersionsCommand = async ( input: ListComponentBuildVersionsCommandInput, context: __SerdeContext @@ -4757,6 +4792,85 @@ const deserializeAws_restJson1ImportComponentCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1ImportVmImageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ImportVmImageCommandError(output, context); + } + const contents: ImportVmImageCommandOutput = { + $metadata: deserializeMetadata(output), + clientToken: undefined, + imageArn: undefined, + requestId: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.clientToken !== undefined && data.clientToken !== null) { + contents.clientToken = __expectString(data.clientToken); + } + if (data.imageArn !== undefined && data.imageArn !== null) { + contents.imageArn = __expectString(data.imageArn); + } + if (data.requestId !== undefined && data.requestId !== null) { + contents.requestId = __expectString(data.requestId); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ImportVmImageCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "ClientException": + case "com.amazonaws.imagebuilder#ClientException": + response = { + ...(await deserializeAws_restJson1ClientExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceException": + case "com.amazonaws.imagebuilder#ServiceException": + response = { + ...(await deserializeAws_restJson1ServiceExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceUnavailableException": + case "com.amazonaws.imagebuilder#ServiceUnavailableException": + response = { + ...(await deserializeAws_restJson1ServiceUnavailableExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1ListComponentBuildVersionsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7603,6 +7717,10 @@ const serializeAws_restJson1Distribution = (input: Distribution, context: __Serd ), }), ...(input.region !== undefined && input.region !== null && { region: input.region }), + ...(input.s3ExportConfiguration !== undefined && + input.s3ExportConfiguration !== null && { + s3ExportConfiguration: serializeAws_restJson1S3ExportConfiguration(input.s3ExportConfiguration, context), + }), }; }; @@ -7845,6 +7963,16 @@ const serializeAws_restJson1ResourceTagMap = (input: { [key: string]: string }, }, {}); }; +const serializeAws_restJson1S3ExportConfiguration = (input: S3ExportConfiguration, context: __SerdeContext): any => { + return { + ...(input.diskImageFormat !== undefined && + input.diskImageFormat !== null && { diskImageFormat: input.diskImageFormat }), + ...(input.roleName !== undefined && input.roleName !== null && { roleName: input.roleName }), + ...(input.s3Bucket !== undefined && input.s3Bucket !== null && { s3Bucket: input.s3Bucket }), + ...(input.s3Prefix !== undefined && input.s3Prefix !== null && { s3Prefix: input.s3Prefix }), + }; +}; + const serializeAws_restJson1S3Logs = (input: S3Logs, context: __SerdeContext): any => { return { ...(input.s3BucketName !== undefined && input.s3BucketName !== null && { s3BucketName: input.s3BucketName }), @@ -8305,6 +8433,10 @@ const deserializeAws_restJson1Distribution = (output: any, context: __SerdeConte ? deserializeAws_restJson1LicenseConfigurationArnList(output.licenseConfigurationArns, context) : undefined, region: __expectString(output.region), + s3ExportConfiguration: + output.s3ExportConfiguration !== undefined && output.s3ExportConfiguration !== null + ? deserializeAws_restJson1S3ExportConfiguration(output.s3ExportConfiguration, context) + : undefined, } as any; }; @@ -8395,6 +8527,7 @@ const deserializeAws_restJson1EbsInstanceBlockDeviceSpecification = ( const deserializeAws_restJson1Image = (output: any, context: __SerdeContext): Image => { return { arn: __expectString(output.arn), + buildType: __expectString(output.buildType), containerRecipe: output.containerRecipe !== undefined && output.containerRecipe !== null ? deserializeAws_restJson1ContainerRecipe(output.containerRecipe, context) @@ -8566,6 +8699,7 @@ const deserializeAws_restJson1ImageState = (output: any, context: __SerdeContext const deserializeAws_restJson1ImageSummary = (output: any, context: __SerdeContext): ImageSummary => { return { arn: __expectString(output.arn), + buildType: __expectString(output.buildType), dateCreated: __expectString(output.dateCreated), name: __expectString(output.name), osVersion: __expectString(output.osVersion), @@ -8612,6 +8746,7 @@ const deserializeAws_restJson1ImageTestsConfiguration = ( const deserializeAws_restJson1ImageVersion = (output: any, context: __SerdeContext): ImageVersion => { return { arn: __expectString(output.arn), + buildType: __expectString(output.buildType), dateCreated: __expectString(output.dateCreated), name: __expectString(output.name), osVersion: __expectString(output.osVersion), @@ -8913,6 +9048,15 @@ const deserializeAws_restJson1ResourceTagMap = (output: any, context: __SerdeCon }, {}); }; +const deserializeAws_restJson1S3ExportConfiguration = (output: any, context: __SerdeContext): S3ExportConfiguration => { + return { + diskImageFormat: __expectString(output.diskImageFormat), + roleName: __expectString(output.roleName), + s3Bucket: __expectString(output.s3Bucket), + s3Prefix: __expectString(output.s3Prefix), + } as any; +}; + const deserializeAws_restJson1S3Logs = (output: any, context: __SerdeContext): S3Logs => { return { s3BucketName: __expectString(output.s3BucketName), diff --git a/clients/client-inspector/src/endpoints.ts b/clients/client-inspector/src/endpoints.ts index fc877061cba2..bd13c5cb7214 100644 --- a/clients/client-inspector/src/endpoints.ts +++ b/clients/client-inspector/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-inspector2/src/endpoints.ts b/clients/client-inspector2/src/endpoints.ts index 3badf56c0456..a24022413f27 100644 --- a/clients/client-inspector2/src/endpoints.ts +++ b/clients/client-inspector2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-1click-devices-service/src/endpoints.ts b/clients/client-iot-1click-devices-service/src/endpoints.ts index c43f8e15936f..f2eaf6ce347a 100644 --- a/clients/client-iot-1click-devices-service/src/endpoints.ts +++ b/clients/client-iot-1click-devices-service/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-1click-projects/src/endpoints.ts b/clients/client-iot-1click-projects/src/endpoints.ts index b241b907d32c..83d3ac3ace0e 100644 --- a/clients/client-iot-1click-projects/src/endpoints.ts +++ b/clients/client-iot-1click-projects/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-data-plane/src/endpoints.ts b/clients/client-iot-data-plane/src/endpoints.ts index 3bec1ba39033..0c8ca3b1a77a 100644 --- a/clients/client-iot-data-plane/src/endpoints.ts +++ b/clients/client-iot-data-plane/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-events-data/src/endpoints.ts b/clients/client-iot-events-data/src/endpoints.ts index 91b82e2743a4..b30d36559aba 100644 --- a/clients/client-iot-events-data/src/endpoints.ts +++ b/clients/client-iot-events-data/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-events/src/endpoints.ts b/clients/client-iot-events/src/endpoints.ts index c4b0d88f25d7..20cf816245e4 100644 --- a/clients/client-iot-events/src/endpoints.ts +++ b/clients/client-iot-events/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-jobs-data-plane/src/endpoints.ts b/clients/client-iot-jobs-data-plane/src/endpoints.ts index 0aaaf8ff02ff..197d82ef7d2a 100644 --- a/clients/client-iot-jobs-data-plane/src/endpoints.ts +++ b/clients/client-iot-jobs-data-plane/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot-wireless/src/endpoints.ts b/clients/client-iot-wireless/src/endpoints.ts index 095cdf3929fd..1c8bdba7ab97 100644 --- a/clients/client-iot-wireless/src/endpoints.ts +++ b/clients/client-iot-wireless/src/endpoints.ts @@ -60,6 +60,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot/src/endpoints.ts b/clients/client-iot/src/endpoints.ts index 45f91e433e8b..e9be11eee6f7 100644 --- a/clients/client-iot/src/endpoints.ts +++ b/clients/client-iot/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iot/src/models/models_0.ts b/clients/client-iot/src/models/models_0.ts index 4e60b6953172..fb3f2ceb06f5 100644 --- a/clients/client-iot/src/models/models_0.ts +++ b/clients/client-iot/src/models/models_0.ts @@ -3181,6 +3181,13 @@ export interface AuthorizerDescription { *

                          Specifies whether IoT validates the token signature in an authorization request.

                          */ signingDisabled?: boolean; + + /** + *

                          When true, the result from the authorizer’s Lambda function is + * cached for the time specified in refreshAfterInSeconds. The cached + * result is used while the device reuses the same HTTP connection.

                          + */ + enableCachingForHttp?: boolean; } export namespace AuthorizerDescription { @@ -3820,6 +3827,15 @@ export interface CreateAuthorizerRequest { *

                          Specifies whether IoT validates the token signature in an authorization request.

                          */ signingDisabled?: boolean; + + /** + *

                          When true, the result from the authorizer’s Lambda function is + * cached for clients that use persistent HTTP connections. The results are cached for the time + * specified by the Lambda function in refreshAfterInSeconds. This value + * does not affect authorization of clients that use MQTT connections.

                          + *

                          The default value is false.

                          + */ + enableCachingForHttp?: boolean; } export namespace CreateAuthorizerRequest { diff --git a/clients/client-iot/src/models/models_2.ts b/clients/client-iot/src/models/models_2.ts index dece250b5615..4da8315ebfa7 100644 --- a/clients/client-iot/src/models/models_2.ts +++ b/clients/client-iot/src/models/models_2.ts @@ -2473,6 +2473,13 @@ export interface UpdateAuthorizerRequest { *

                          The status of the update authorizer request.

                          */ status?: AuthorizerStatus | string; + + /** + *

                          When true, the result from the authorizer’s Lambda function is + * cached for the time specified in refreshAfterInSeconds. The cached + * result is used while the device reuses the same HTTP connection.

                          + */ + enableCachingForHttp?: boolean; } export namespace UpdateAuthorizerRequest { diff --git a/clients/client-iot/src/protocols/Aws_restJson1.ts b/clients/client-iot/src/protocols/Aws_restJson1.ts index f517c681362e..408b5edbd98d 100644 --- a/clients/client-iot/src/protocols/Aws_restJson1.ts +++ b/clients/client-iot/src/protocols/Aws_restJson1.ts @@ -1488,6 +1488,8 @@ export const serializeAws_restJson1CreateAuthorizerCommand = async ( body = JSON.stringify({ ...(input.authorizerFunctionArn !== undefined && input.authorizerFunctionArn !== null && { authorizerFunctionArn: input.authorizerFunctionArn }), + ...(input.enableCachingForHttp !== undefined && + input.enableCachingForHttp !== null && { enableCachingForHttp: input.enableCachingForHttp }), ...(input.signingDisabled !== undefined && input.signingDisabled !== null && { signingDisabled: input.signingDisabled }), ...(input.status !== undefined && input.status !== null && { status: input.status }), @@ -7656,6 +7658,8 @@ export const serializeAws_restJson1UpdateAuthorizerCommand = async ( body = JSON.stringify({ ...(input.authorizerFunctionArn !== undefined && input.authorizerFunctionArn !== null && { authorizerFunctionArn: input.authorizerFunctionArn }), + ...(input.enableCachingForHttp !== undefined && + input.enableCachingForHttp !== null && { enableCachingForHttp: input.enableCachingForHttp }), ...(input.status !== undefined && input.status !== null && { status: input.status }), ...(input.tokenKeyName !== undefined && input.tokenKeyName !== null && { tokenKeyName: input.tokenKeyName }), ...(input.tokenSigningPublicKeys !== undefined && @@ -33408,6 +33412,7 @@ const deserializeAws_restJson1AuthorizerDescription = (output: any, context: __S output.creationDate !== undefined && output.creationDate !== null ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.creationDate))) : undefined, + enableCachingForHttp: __expectBoolean(output.enableCachingForHttp), lastModifiedDate: output.lastModifiedDate !== undefined && output.lastModifiedDate !== null ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.lastModifiedDate))) diff --git a/clients/client-iotanalytics/src/endpoints.ts b/clients/client-iotanalytics/src/endpoints.ts index 9681a7b6f6a0..3638eadc2156 100644 --- a/clients/client-iotanalytics/src/endpoints.ts +++ b/clients/client-iotanalytics/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iotdeviceadvisor/src/endpoints.ts b/clients/client-iotdeviceadvisor/src/endpoints.ts index c963d4f3a228..58d797686368 100644 --- a/clients/client-iotdeviceadvisor/src/endpoints.ts +++ b/clients/client-iotdeviceadvisor/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iotfleethub/src/endpoints.ts b/clients/client-iotfleethub/src/endpoints.ts index a0d060bc2582..60f3d9ef05ad 100644 --- a/clients/client-iotfleethub/src/endpoints.ts +++ b/clients/client-iotfleethub/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iotsecuretunneling/src/endpoints.ts b/clients/client-iotsecuretunneling/src/endpoints.ts index 6582e48769ef..3303ebfb00ac 100644 --- a/clients/client-iotsecuretunneling/src/endpoints.ts +++ b/clients/client-iotsecuretunneling/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iotsitewise/src/endpoints.ts b/clients/client-iotsitewise/src/endpoints.ts index 83805c43a02e..1ed62797fac8 100644 --- a/clients/client-iotsitewise/src/endpoints.ts +++ b/clients/client-iotsitewise/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iotthingsgraph/src/endpoints.ts b/clients/client-iotthingsgraph/src/endpoints.ts index 8d1544b47662..f01f4a53c31e 100644 --- a/clients/client-iotthingsgraph/src/endpoints.ts +++ b/clients/client-iotthingsgraph/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-iottwinmaker/src/endpoints.ts b/clients/client-iottwinmaker/src/endpoints.ts index 2db3610708f5..7f3a275be84c 100644 --- a/clients/client-iottwinmaker/src/endpoints.ts +++ b/clients/client-iottwinmaker/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ivs/src/endpoints.ts b/clients/client-ivs/src/endpoints.ts index 2c0a0fb30a92..bd90ae0edbfe 100644 --- a/clients/client-ivs/src/endpoints.ts +++ b/clients/client-ivs/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kafka/src/endpoints.ts b/clients/client-kafka/src/endpoints.ts index 1ea1a1b11172..4a84ce49ef78 100644 --- a/clients/client-kafka/src/endpoints.ts +++ b/clients/client-kafka/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kafkaconnect/src/endpoints.ts b/clients/client-kafkaconnect/src/endpoints.ts index e9b163f8fd40..12b20d06e265 100644 --- a/clients/client-kafkaconnect/src/endpoints.ts +++ b/clients/client-kafkaconnect/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kendra/src/endpoints.ts b/clients/client-kendra/src/endpoints.ts index 167912b7427f..8ef511233160 100644 --- a/clients/client-kendra/src/endpoints.ts +++ b/clients/client-kendra/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis-analytics-v2/src/endpoints.ts b/clients/client-kinesis-analytics-v2/src/endpoints.ts index 194eb4afc0e9..3a87ae4c2c4f 100644 --- a/clients/client-kinesis-analytics-v2/src/endpoints.ts +++ b/clients/client-kinesis-analytics-v2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis-analytics/src/endpoints.ts b/clients/client-kinesis-analytics/src/endpoints.ts index 194eb4afc0e9..3a87ae4c2c4f 100644 --- a/clients/client-kinesis-analytics/src/endpoints.ts +++ b/clients/client-kinesis-analytics/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis-video-archived-media/src/endpoints.ts b/clients/client-kinesis-video-archived-media/src/endpoints.ts index aa111986270e..b2382ca93620 100644 --- a/clients/client-kinesis-video-archived-media/src/endpoints.ts +++ b/clients/client-kinesis-video-archived-media/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis-video-media/src/endpoints.ts b/clients/client-kinesis-video-media/src/endpoints.ts index aa111986270e..b2382ca93620 100644 --- a/clients/client-kinesis-video-media/src/endpoints.ts +++ b/clients/client-kinesis-video-media/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis-video-signaling/src/endpoints.ts b/clients/client-kinesis-video-signaling/src/endpoints.ts index aa111986270e..b2382ca93620 100644 --- a/clients/client-kinesis-video-signaling/src/endpoints.ts +++ b/clients/client-kinesis-video-signaling/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis-video/src/endpoints.ts b/clients/client-kinesis-video/src/endpoints.ts index aa111986270e..b2382ca93620 100644 --- a/clients/client-kinesis-video/src/endpoints.ts +++ b/clients/client-kinesis-video/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kinesis/src/endpoints.ts b/clients/client-kinesis/src/endpoints.ts index 548ded452911..35f31a0591f7 100644 --- a/clients/client-kinesis/src/endpoints.ts +++ b/clients/client-kinesis/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-kms/src/endpoints.ts b/clients/client-kms/src/endpoints.ts index 2a52d3097d17..8421b1fa06dd 100644 --- a/clients/client-kms/src/endpoints.ts +++ b/clients/client-kms/src/endpoints.ts @@ -98,6 +98,18 @@ const regionHash: RegionHash = { }, ], }, + "ap-southeast-3": { + variants: [ + { + hostname: "kms.ap-southeast-3.amazonaws.com", + tags: [], + }, + { + hostname: "kms-fips.ap-southeast-3.amazonaws.com", + tags: ["fips"], + }, + ], + }, "ca-central-1": { variants: [ { @@ -335,6 +347,7 @@ const partitionHash: PartitionHash = { "ap-southeast-1-fips", "ap-southeast-2", "ap-southeast-2-fips", + "ap-southeast-3", "ap-southeast-3-fips", "ca-central-1", "ca-central-1-fips", diff --git a/clients/client-lakeformation/src/endpoints.ts b/clients/client-lakeformation/src/endpoints.ts index 00ab2c333b3c..8b8d73fe33f9 100644 --- a/clients/client-lakeformation/src/endpoints.ts +++ b/clients/client-lakeformation/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lambda/src/endpoints.ts b/clients/client-lambda/src/endpoints.ts index 42dd22cf2481..dc854900420a 100644 --- a/clients/client-lambda/src/endpoints.ts +++ b/clients/client-lambda/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lex-model-building-service/src/endpoints.ts b/clients/client-lex-model-building-service/src/endpoints.ts index 5c624395e139..e205ae2e6d73 100644 --- a/clients/client-lex-model-building-service/src/endpoints.ts +++ b/clients/client-lex-model-building-service/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lex-models-v2/src/endpoints.ts b/clients/client-lex-models-v2/src/endpoints.ts index eff719b01fa2..1186375bb048 100644 --- a/clients/client-lex-models-v2/src/endpoints.ts +++ b/clients/client-lex-models-v2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lex-models-v2/src/models/models_0.ts b/clients/client-lex-models-v2/src/models/models_0.ts index e20b05187d46..083679d810a9 100644 --- a/clients/client-lex-models-v2/src/models/models_0.ts +++ b/clients/client-lex-models-v2/src/models/models_0.ts @@ -724,9 +724,13 @@ export interface VoiceSettings { voiceId: string | undefined; /** - *

                          Indicates the type of Amazon Polly - * voice that Amazon Lex should use for voice interaction with the user. - * For more information, see Voices in Amazon Polly.

                          + *

                          Indicates the type of Amazon Polly voice that Amazon Lex should use for voice interaction with the user. For more + * information, see the + * engine parameter of the + * SynthesizeSpeech operation in the + * Amazon Polly developer guide.

                          + *

                          If you do not specify a value, the default is + * standard.

                          */ engine?: VoiceEngine | string; } @@ -3675,6 +3679,78 @@ export namespace CreateSlotResponse { }); } +/** + *

                          Describes the Amazon S3 bucket name and location for the grammar + * that is the source for the slot type.

                          + */ +export interface GrammarSlotTypeSource { + /** + *

                          The name of the S3 bucket that contains the grammar source.

                          + */ + s3BucketName: string | undefined; + + /** + *

                          The path to the grammar in the S3 bucket.

                          + */ + s3ObjectKey: string | undefined; + + /** + *

                          The Amazon KMS key required to decrypt the contents of the grammar, + * if any.

                          + */ + kmsKeyArn?: string; +} + +export namespace GrammarSlotTypeSource { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GrammarSlotTypeSource): any => ({ + ...obj, + }); +} + +/** + *

                          Settings requried for a slot type based on a grammar that you + * provide.

                          + */ +export interface GrammarSlotTypeSetting { + /** + *

                          The source of the grammar used to create the slot type.

                          + */ + source?: GrammarSlotTypeSource; +} + +export namespace GrammarSlotTypeSetting { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GrammarSlotTypeSetting): any => ({ + ...obj, + }); +} + +/** + *

                          Provides information about the external source of the slot type's + * definition.

                          + */ +export interface ExternalSourceSetting { + /** + *

                          Settings required for a slot type based on a grammar that you + * provide.

                          + */ + grammarSlotTypeSetting?: GrammarSlotTypeSetting; +} + +export namespace ExternalSourceSetting { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ExternalSourceSetting): any => ({ + ...obj, + }); +} + /** *

                          Defines one of the values for a slot type.

                          */ @@ -3851,7 +3927,7 @@ export interface CreateSlotTypeRequest { *

                          If you don't specify the valueSelectionSetting * parameter, the default is OriginalValue.

                          */ - valueSelectionSetting: SlotValueSelectionSetting | undefined; + valueSelectionSetting?: SlotValueSelectionSetting; /** *

                          The built-in slot type used as a parent of this slot type. When you @@ -3879,6 +3955,12 @@ export interface CreateSlotTypeRequest { * locale. For more information, see Supported languages.

                          */ localeId: string | undefined; + + /** + *

                          Sets the type of external information used to create the slot + * type.

                          + */ + externalSourceSetting?: ExternalSourceSetting; } export namespace CreateSlotTypeRequest { @@ -3945,6 +4027,12 @@ export interface CreateSlotTypeResponse { * created.

                          */ creationDateTime?: Date; + + /** + *

                          The type of external information used to create the slot + * type.

                          + */ + externalSourceSetting?: ExternalSourceSetting; } export namespace CreateSlotTypeResponse { @@ -4875,6 +4963,12 @@ export interface DescribeBotLocaleResponse { * have taken place for the locale.

                          */ botLocaleHistoryEvents?: BotLocaleHistoryEvent[]; + + /** + *

                          Recommended actions to take to resolve an error in the + * failureReasons field.

                          + */ + recommendedActions?: string[]; } export namespace DescribeBotLocaleResponse { @@ -5880,6 +5974,12 @@ export interface DescribeSlotTypeResponse { * updated.

                          */ lastUpdatedDateTime?: Date; + + /** + *

                          Provides information about the external source of the slot type's + * definition.

                          + */ + externalSourceSetting?: ExternalSourceSetting; } export namespace DescribeSlotTypeResponse { @@ -7721,6 +7821,7 @@ export namespace ListSlotsResponse { } export enum SlotTypeFilterName { + ExternalSourceType = "ExternalSourceType", SlotTypeName = "SlotTypeName", } @@ -7853,6 +7954,12 @@ export namespace ListSlotTypesRequest { }); } +export enum SlotTypeCategory { + Custom = "Custom", + Extended = "Extended", + ExternalGrammar = "ExternalGrammar", +} + /** *

                          Provides summary information about a slot type.

                          */ @@ -7883,6 +7990,30 @@ export interface SlotTypeSummary { * updated.

                          */ lastUpdatedDateTime?: Date; + + /** + *

                          Indicates the type of the slot type.

                          + *
                            + *
                          • + *

                            + * Custom - A slot type that you created using + * custom values. For more information, see Creating custom slot + * types.

                            + *
                          • + *
                          • + *

                            + * Extended - A slot type created by extending the + * AMAZON.AlphaNumeric built-in slot type. For more information, see + * AMAZON.AlphaNumeric.

                            + *
                          • + *
                          • + *

                            + * ExternalGrammar - A slot type using a custom + * GRXML grammar to define values. For more information, see Using a custom grammar slot type.

                            + *
                          • + *
                          + */ + slotTypeCategory?: SlotTypeCategory | string; } export namespace SlotTypeSummary { @@ -8697,6 +8828,12 @@ export interface UpdateBotLocaleResponse { * updated.

                          */ lastUpdatedDateTime?: Date; + + /** + *

                          Recommended actions to take to resolve an error in the + * failureReasons field.

                          + */ + recommendedActions?: string[]; } export namespace UpdateBotLocaleResponse { @@ -9348,7 +9485,7 @@ export interface UpdateSlotTypeRequest { *

                          The strategy that Amazon Lex should use when deciding on a value from the * list of slot type values.

                          */ - valueSelectionSetting: SlotValueSelectionSetting | undefined; + valueSelectionSetting?: SlotValueSelectionSetting; /** *

                          The new built-in slot type that should be used as the parent of this @@ -9373,6 +9510,12 @@ export interface UpdateSlotTypeRequest { * information, see Supported languages.

                          */ localeId: string | undefined; + + /** + *

                          Provides information about the external source of the slot type's + * definition.

                          + */ + externalSourceSetting?: ExternalSourceSetting; } export namespace UpdateSlotTypeRequest { @@ -9444,6 +9587,12 @@ export interface UpdateSlotTypeResponse { * updated.

                          */ lastUpdatedDateTime?: Date; + + /** + *

                          Provides information about the external source of the slot type's + * definition.

                          + */ + externalSourceSetting?: ExternalSourceSetting; } export namespace UpdateSlotTypeResponse { diff --git a/clients/client-lex-models-v2/src/protocols/Aws_restJson1.ts b/clients/client-lex-models-v2/src/protocols/Aws_restJson1.ts index 33d0bbe9ee0e..1181c7eb4bd2 100644 --- a/clients/client-lex-models-v2/src/protocols/Aws_restJson1.ts +++ b/clients/client-lex-models-v2/src/protocols/Aws_restJson1.ts @@ -175,10 +175,13 @@ import { ExportResourceSpecification, ExportSortBy, ExportSummary, + ExternalSourceSetting, FulfillmentCodeHookSettings, FulfillmentStartResponseSpecification, FulfillmentUpdateResponseSpecification, FulfillmentUpdatesSpecification, + GrammarSlotTypeSetting, + GrammarSlotTypeSource, ImageResponseCard, ImportFilter, ImportResourceSpecification, @@ -790,6 +793,10 @@ export const serializeAws_restJson1CreateSlotTypeCommand = async ( let body: any; body = JSON.stringify({ ...(input.description !== undefined && input.description !== null && { description: input.description }), + ...(input.externalSourceSetting !== undefined && + input.externalSourceSetting !== null && { + externalSourceSetting: serializeAws_restJson1ExternalSourceSetting(input.externalSourceSetting, context), + }), ...(input.parentSlotTypeSignature !== undefined && input.parentSlotTypeSignature !== null && { parentSlotTypeSignature: input.parentSlotTypeSignature }), ...(input.slotTypeName !== undefined && input.slotTypeName !== null && { slotTypeName: input.slotTypeName }), @@ -3245,6 +3252,10 @@ export const serializeAws_restJson1UpdateSlotTypeCommand = async ( let body: any; body = JSON.stringify({ ...(input.description !== undefined && input.description !== null && { description: input.description }), + ...(input.externalSourceSetting !== undefined && + input.externalSourceSetting !== null && { + externalSourceSetting: serializeAws_restJson1ExternalSourceSetting(input.externalSourceSetting, context), + }), ...(input.parentSlotTypeSignature !== undefined && input.parentSlotTypeSignature !== null && { parentSlotTypeSignature: input.parentSlotTypeSignature }), ...(input.slotTypeName !== undefined && input.slotTypeName !== null && { slotTypeName: input.slotTypeName }), @@ -4537,6 +4548,7 @@ export const deserializeAws_restJson1CreateSlotTypeCommand = async ( botVersion: undefined, creationDateTime: undefined, description: undefined, + externalSourceSetting: undefined, localeId: undefined, parentSlotTypeSignature: undefined, slotTypeId: undefined, @@ -4557,6 +4569,9 @@ export const deserializeAws_restJson1CreateSlotTypeCommand = async ( if (data.description !== undefined && data.description !== null) { contents.description = __expectString(data.description); } + if (data.externalSourceSetting !== undefined && data.externalSourceSetting !== null) { + contents.externalSourceSetting = deserializeAws_restJson1ExternalSourceSetting(data.externalSourceSetting, context); + } if (data.localeId !== undefined && data.localeId !== null) { contents.localeId = __expectString(data.localeId); } @@ -6133,6 +6148,7 @@ export const deserializeAws_restJson1DescribeBotLocaleCommand = async ( localeId: undefined, localeName: undefined, nluIntentConfidenceThreshold: undefined, + recommendedActions: undefined, slotTypesCount: undefined, voiceSettings: undefined, }; @@ -6181,6 +6197,9 @@ export const deserializeAws_restJson1DescribeBotLocaleCommand = async ( if (data.nluIntentConfidenceThreshold !== undefined && data.nluIntentConfidenceThreshold !== null) { contents.nluIntentConfidenceThreshold = __limitedParseDouble(data.nluIntentConfidenceThreshold); } + if (data.recommendedActions !== undefined && data.recommendedActions !== null) { + contents.recommendedActions = deserializeAws_restJson1RecommendedActions(data.recommendedActions, context); + } if (data.slotTypesCount !== undefined && data.slotTypesCount !== null) { contents.slotTypesCount = __expectInt32(data.slotTypesCount); } @@ -7122,6 +7141,7 @@ export const deserializeAws_restJson1DescribeSlotTypeCommand = async ( botVersion: undefined, creationDateTime: undefined, description: undefined, + externalSourceSetting: undefined, lastUpdatedDateTime: undefined, localeId: undefined, parentSlotTypeSignature: undefined, @@ -7143,6 +7163,9 @@ export const deserializeAws_restJson1DescribeSlotTypeCommand = async ( if (data.description !== undefined && data.description !== null) { contents.description = __expectString(data.description); } + if (data.externalSourceSetting !== undefined && data.externalSourceSetting !== null) { + contents.externalSourceSetting = deserializeAws_restJson1ExternalSourceSetting(data.externalSourceSetting, context); + } if (data.lastUpdatedDateTime !== undefined && data.lastUpdatedDateTime !== null) { contents.lastUpdatedDateTime = __expectNonNull(__parseEpochTimestamp(__expectNumber(data.lastUpdatedDateTime))); } @@ -9435,6 +9458,7 @@ export const deserializeAws_restJson1UpdateBotLocaleCommand = async ( localeId: undefined, localeName: undefined, nluIntentConfidenceThreshold: undefined, + recommendedActions: undefined, voiceSettings: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); @@ -9468,6 +9492,9 @@ export const deserializeAws_restJson1UpdateBotLocaleCommand = async ( if (data.nluIntentConfidenceThreshold !== undefined && data.nluIntentConfidenceThreshold !== null) { contents.nluIntentConfidenceThreshold = __limitedParseDouble(data.nluIntentConfidenceThreshold); } + if (data.recommendedActions !== undefined && data.recommendedActions !== null) { + contents.recommendedActions = deserializeAws_restJson1RecommendedActions(data.recommendedActions, context); + } if (data.voiceSettings !== undefined && data.voiceSettings !== null) { contents.voiceSettings = deserializeAws_restJson1VoiceSettings(data.voiceSettings, context); } @@ -10234,6 +10261,7 @@ export const deserializeAws_restJson1UpdateSlotTypeCommand = async ( botVersion: undefined, creationDateTime: undefined, description: undefined, + externalSourceSetting: undefined, lastUpdatedDateTime: undefined, localeId: undefined, parentSlotTypeSignature: undefined, @@ -10255,6 +10283,9 @@ export const deserializeAws_restJson1UpdateSlotTypeCommand = async ( if (data.description !== undefined && data.description !== null) { contents.description = __expectString(data.description); } + if (data.externalSourceSetting !== undefined && data.externalSourceSetting !== null) { + contents.externalSourceSetting = deserializeAws_restJson1ExternalSourceSetting(data.externalSourceSetting, context); + } if (data.lastUpdatedDateTime !== undefined && data.lastUpdatedDateTime !== null) { contents.lastUpdatedDateTime = __expectNonNull(__parseEpochTimestamp(__expectNumber(data.lastUpdatedDateTime))); } @@ -10916,6 +10947,15 @@ const serializeAws_restJson1ExportSortBy = (input: ExportSortBy, context: __Serd }; }; +const serializeAws_restJson1ExternalSourceSetting = (input: ExternalSourceSetting, context: __SerdeContext): any => { + return { + ...(input.grammarSlotTypeSetting !== undefined && + input.grammarSlotTypeSetting !== null && { + grammarSlotTypeSetting: serializeAws_restJson1GrammarSlotTypeSetting(input.grammarSlotTypeSetting, context), + }), + }; +}; + const serializeAws_restJson1FilterValues = (input: string[], context: __SerdeContext): any => { return input .filter((e: any) => e != null) @@ -11001,6 +11041,21 @@ const serializeAws_restJson1FulfillmentUpdatesSpecification = ( }; }; +const serializeAws_restJson1GrammarSlotTypeSetting = (input: GrammarSlotTypeSetting, context: __SerdeContext): any => { + return { + ...(input.source !== undefined && + input.source !== null && { source: serializeAws_restJson1GrammarSlotTypeSource(input.source, context) }), + }; +}; + +const serializeAws_restJson1GrammarSlotTypeSource = (input: GrammarSlotTypeSource, context: __SerdeContext): any => { + return { + ...(input.kmsKeyArn !== undefined && input.kmsKeyArn !== null && { kmsKeyArn: input.kmsKeyArn }), + ...(input.s3BucketName !== undefined && input.s3BucketName !== null && { s3BucketName: input.s3BucketName }), + ...(input.s3ObjectKey !== undefined && input.s3ObjectKey !== null && { s3ObjectKey: input.s3ObjectKey }), + }; +}; + const serializeAws_restJson1ImageResponseCard = (input: ImageResponseCard, context: __SerdeContext): any => { return { ...(input.buttons !== undefined && @@ -12339,6 +12394,15 @@ const deserializeAws_restJson1ExportSummaryList = (output: any, context: __Serde }); }; +const deserializeAws_restJson1ExternalSourceSetting = (output: any, context: __SerdeContext): ExternalSourceSetting => { + return { + grammarSlotTypeSetting: + output.grammarSlotTypeSetting !== undefined && output.grammarSlotTypeSetting !== null + ? deserializeAws_restJson1GrammarSlotTypeSetting(output.grammarSlotTypeSetting, context) + : undefined, + } as any; +}; + const deserializeAws_restJson1FailureReasons = (output: any, context: __SerdeContext): string[] => { return (output || []) .filter((e: any) => e != null) @@ -12413,6 +12477,26 @@ const deserializeAws_restJson1FulfillmentUpdatesSpecification = ( } as any; }; +const deserializeAws_restJson1GrammarSlotTypeSetting = ( + output: any, + context: __SerdeContext +): GrammarSlotTypeSetting => { + return { + source: + output.source !== undefined && output.source !== null + ? deserializeAws_restJson1GrammarSlotTypeSource(output.source, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1GrammarSlotTypeSource = (output: any, context: __SerdeContext): GrammarSlotTypeSource => { + return { + kmsKeyArn: __expectString(output.kmsKeyArn), + s3BucketName: __expectString(output.s3BucketName), + s3ObjectKey: __expectString(output.s3ObjectKey), + } as any; +}; + const deserializeAws_restJson1ImageResponseCard = (output: any, context: __SerdeContext): ImageResponseCard => { return { buttons: @@ -12720,6 +12804,17 @@ const deserializeAws_restJson1PromptSpecification = (output: any, context: __Ser } as any; }; +const deserializeAws_restJson1RecommendedActions = (output: any, context: __SerdeContext): string[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + const deserializeAws_restJson1RecommendedIntentSummary = ( output: any, context: __SerdeContext @@ -12917,6 +13012,7 @@ const deserializeAws_restJson1SlotTypeSummary = (output: any, context: __SerdeCo ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.lastUpdatedDateTime))) : undefined, parentSlotTypeSignature: __expectString(output.parentSlotTypeSignature), + slotTypeCategory: __expectString(output.slotTypeCategory), slotTypeId: __expectString(output.slotTypeId), slotTypeName: __expectString(output.slotTypeName), } as any; diff --git a/clients/client-lex-runtime-service/src/endpoints.ts b/clients/client-lex-runtime-service/src/endpoints.ts index 2ee4895266ac..ed15e35f381a 100644 --- a/clients/client-lex-runtime-service/src/endpoints.ts +++ b/clients/client-lex-runtime-service/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lex-runtime-v2/src/endpoints.ts b/clients/client-lex-runtime-v2/src/endpoints.ts index f04a3716d3f0..2d6698791141 100644 --- a/clients/client-lex-runtime-v2/src/endpoints.ts +++ b/clients/client-lex-runtime-v2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-license-manager/src/endpoints.ts b/clients/client-license-manager/src/endpoints.ts index 1b87148e3f9b..30adcda1a375 100644 --- a/clients/client-license-manager/src/endpoints.ts +++ b/clients/client-license-manager/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lightsail/src/endpoints.ts b/clients/client-lightsail/src/endpoints.ts index 6164d259f49d..c77adaf9f933 100644 --- a/clients/client-lightsail/src/endpoints.ts +++ b/clients/client-lightsail/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-location/src/Location.ts b/clients/client-location/src/Location.ts index 261eb1f66cff..0bac9ab98db2 100644 --- a/clients/client-location/src/Location.ts +++ b/clients/client-location/src/Location.ts @@ -182,6 +182,11 @@ import { SearchPlaceIndexForPositionCommandInput, SearchPlaceIndexForPositionCommandOutput, } from "./commands/SearchPlaceIndexForPositionCommand"; +import { + SearchPlaceIndexForSuggestionsCommand, + SearchPlaceIndexForSuggestionsCommandInput, + SearchPlaceIndexForSuggestionsCommandOutput, +} from "./commands/SearchPlaceIndexForSuggestionsCommand"; import { SearchPlaceIndexForTextCommand, SearchPlaceIndexForTextCommandInput, @@ -347,6 +352,10 @@ export class Location extends LocationClient { *

                          The last geofence that a device was observed within is tracked for 30 days after * the most recent device position update.

                          *
                          + * + *

                          Geofence evaluation uses the given device position. It does not account for the + * optional Accuracy of a DevicePositionUpdate.

                          + *
                          */ public batchEvaluateGeofences( args: BatchEvaluateGeofencesCommandInput, @@ -450,9 +459,17 @@ export class Location extends LocationClient { *

                          Position updates are handled based on the PositionFiltering property of the tracker. * When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, * and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than - * every 30 seconds, only one update per 30 seconds is stored for each unique device ID. - * When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence - * collections only if the device has moved more than 30 m (98.4 ft).

                          + * every 30 seconds, only one update per 30 seconds is stored for each unique device ID.

                          + *

                          When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence + * collections only if the device has moved more than 30 m (98.4 ft).

                          + *

                          When PositionFiltering is set to AccuracyBased filtering, + * location data is stored and evaluated against linked geofence collections only if the + * device has moved more than the measured accuracy. For example, if two consecutive + * updates from a device have a horizontal accuracy of 5 m and 10 m, the second update + * is neither stored or evaluated if the device has moved less than 15 m. If + * PositionFiltering is set to AccuracyBased filtering, Amazon Location + * uses the default value { "Horizontal": 0} when accuracy is not provided on + * a DevicePositionUpdate.

                          *
                          */ public batchUpdateDevicePosition( @@ -607,7 +624,8 @@ export class Location extends LocationClient { /** *

                          Creates a place index resource in your AWS account. Use a place index resource to * geocode addresses and other text queries by using the SearchPlaceIndexForText operation, - * and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation.

                          + * and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and + * enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

                          */ public createPlaceIndex( args: CreatePlaceIndexCommandInput, @@ -1634,6 +1652,47 @@ export class Location extends LocationClient { } } + /** + *

                          Generates suggestions for addresses and points of interest based on partial or + * misspelled free-form text. This operation is also known as autocomplete, autosuggest, + * or fuzzy matching.

                          + *

                          Optional parameters let you narrow your search results by bounding box or + * country, or bias your search toward a specific position on the globe.

                          + * + *

                          You can search for suggested place names near a specified position by using BiasPosition, or + * filter results within a bounding box by using FilterBBox. These parameters are mutually exclusive; + * using both BiasPosition and FilterBBox in the same command returns an error.

                          + *
                          + */ + public searchPlaceIndexForSuggestions( + args: SearchPlaceIndexForSuggestionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public searchPlaceIndexForSuggestions( + args: SearchPlaceIndexForSuggestionsCommandInput, + cb: (err: any, data?: SearchPlaceIndexForSuggestionsCommandOutput) => void + ): void; + public searchPlaceIndexForSuggestions( + args: SearchPlaceIndexForSuggestionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: SearchPlaceIndexForSuggestionsCommandOutput) => void + ): void; + public searchPlaceIndexForSuggestions( + args: SearchPlaceIndexForSuggestionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: SearchPlaceIndexForSuggestionsCommandOutput) => void), + cb?: (err: any, data?: SearchPlaceIndexForSuggestionsCommandOutput) => void + ): Promise | void { + const command = new SearchPlaceIndexForSuggestionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                          Geocodes free-form text, such as an address, name, city, or region to allow you to * search for Places or points of interest.

                          diff --git a/clients/client-location/src/LocationClient.ts b/clients/client-location/src/LocationClient.ts index 68aa88cb8a47..935309101f1d 100644 --- a/clients/client-location/src/LocationClient.ts +++ b/clients/client-location/src/LocationClient.ts @@ -154,6 +154,10 @@ import { SearchPlaceIndexForPositionCommandInput, SearchPlaceIndexForPositionCommandOutput, } from "./commands/SearchPlaceIndexForPositionCommand"; +import { + SearchPlaceIndexForSuggestionsCommandInput, + SearchPlaceIndexForSuggestionsCommandOutput, +} from "./commands/SearchPlaceIndexForSuggestionsCommand"; import { SearchPlaceIndexForTextCommandInput, SearchPlaceIndexForTextCommandOutput, @@ -216,6 +220,7 @@ export type ServiceInputTypes = | ListTrackersCommandInput | PutGeofenceCommandInput | SearchPlaceIndexForPositionCommandInput + | SearchPlaceIndexForSuggestionsCommandInput | SearchPlaceIndexForTextCommandInput | TagResourceCommandInput | UntagResourceCommandInput @@ -268,6 +273,7 @@ export type ServiceOutputTypes = | ListTrackersCommandOutput | PutGeofenceCommandOutput | SearchPlaceIndexForPositionCommandOutput + | SearchPlaceIndexForSuggestionsCommandOutput | SearchPlaceIndexForTextCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput diff --git a/clients/client-location/src/commands/BatchEvaluateGeofencesCommand.ts b/clients/client-location/src/commands/BatchEvaluateGeofencesCommand.ts index 35594efa3369..22d4a1ae5092 100644 --- a/clients/client-location/src/commands/BatchEvaluateGeofencesCommand.ts +++ b/clients/client-location/src/commands/BatchEvaluateGeofencesCommand.ts @@ -43,6 +43,10 @@ export interface BatchEvaluateGeofencesCommandOutput extends BatchEvaluateGeofen *

                          The last geofence that a device was observed within is tracked for 30 days after * the most recent device position update.

                          * + * + *

                          Geofence evaluation uses the given device position. It does not account for the + * optional Accuracy of a DevicePositionUpdate.

                          + *
                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-location/src/commands/BatchUpdateDevicePositionCommand.ts b/clients/client-location/src/commands/BatchUpdateDevicePositionCommand.ts index 010168afe906..d1bda5c02c7a 100644 --- a/clients/client-location/src/commands/BatchUpdateDevicePositionCommand.ts +++ b/clients/client-location/src/commands/BatchUpdateDevicePositionCommand.ts @@ -29,9 +29,17 @@ export interface BatchUpdateDevicePositionCommandOutput extends BatchUpdateDevic *

                          Position updates are handled based on the PositionFiltering property of the tracker. * When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, * and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than - * every 30 seconds, only one update per 30 seconds is stored for each unique device ID. - * When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence - * collections only if the device has moved more than 30 m (98.4 ft).

                          + * every 30 seconds, only one update per 30 seconds is stored for each unique device ID.

                          + *

                          When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence + * collections only if the device has moved more than 30 m (98.4 ft).

                          + *

                          When PositionFiltering is set to AccuracyBased filtering, + * location data is stored and evaluated against linked geofence collections only if the + * device has moved more than the measured accuracy. For example, if two consecutive + * updates from a device have a horizontal accuracy of 5 m and 10 m, the second update + * is neither stored or evaluated if the device has moved less than 15 m. If + * PositionFiltering is set to AccuracyBased filtering, Amazon Location + * uses the default value { "Horizontal": 0} when accuracy is not provided on + * a DevicePositionUpdate.

                          * * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-location/src/commands/CreatePlaceIndexCommand.ts b/clients/client-location/src/commands/CreatePlaceIndexCommand.ts index acf9e318df3e..d78e3a6239c4 100644 --- a/clients/client-location/src/commands/CreatePlaceIndexCommand.ts +++ b/clients/client-location/src/commands/CreatePlaceIndexCommand.ts @@ -24,7 +24,8 @@ export interface CreatePlaceIndexCommandOutput extends CreatePlaceIndexResponse, /** *

                          Creates a place index resource in your AWS account. Use a place index resource to * geocode addresses and other text queries by using the SearchPlaceIndexForText operation, - * and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation.

                          + * and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and + * enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-location/src/commands/SearchPlaceIndexForSuggestionsCommand.ts b/clients/client-location/src/commands/SearchPlaceIndexForSuggestionsCommand.ts new file mode 100644 index 000000000000..efdde8ba6bcb --- /dev/null +++ b/clients/client-location/src/commands/SearchPlaceIndexForSuggestionsCommand.ts @@ -0,0 +1,112 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { LocationClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LocationClient"; +import { SearchPlaceIndexForSuggestionsRequest, SearchPlaceIndexForSuggestionsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommand, + serializeAws_restJson1SearchPlaceIndexForSuggestionsCommand, +} from "../protocols/Aws_restJson1"; + +export interface SearchPlaceIndexForSuggestionsCommandInput extends SearchPlaceIndexForSuggestionsRequest {} +export interface SearchPlaceIndexForSuggestionsCommandOutput + extends SearchPlaceIndexForSuggestionsResponse, + __MetadataBearer {} + +/** + *

                          Generates suggestions for addresses and points of interest based on partial or + * misspelled free-form text. This operation is also known as autocomplete, autosuggest, + * or fuzzy matching.

                          + *

                          Optional parameters let you narrow your search results by bounding box or + * country, or bias your search toward a specific position on the globe.

                          + * + *

                          You can search for suggested place names near a specified position by using BiasPosition, or + * filter results within a bounding box by using FilterBBox. These parameters are mutually exclusive; + * using both BiasPosition and FilterBBox in the same command returns an error.

                          + *
                          + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LocationClient, SearchPlaceIndexForSuggestionsCommand } from "@aws-sdk/client-location"; // ES Modules import + * // const { LocationClient, SearchPlaceIndexForSuggestionsCommand } = require("@aws-sdk/client-location"); // CommonJS import + * const client = new LocationClient(config); + * const command = new SearchPlaceIndexForSuggestionsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link SearchPlaceIndexForSuggestionsCommandInput} for command's `input` shape. + * @see {@link SearchPlaceIndexForSuggestionsCommandOutput} for command's `response` shape. + * @see {@link LocationClientResolvedConfig | config} for LocationClient's `config` shape. + * + */ +export class SearchPlaceIndexForSuggestionsCommand extends $Command< + SearchPlaceIndexForSuggestionsCommandInput, + SearchPlaceIndexForSuggestionsCommandOutput, + LocationClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: SearchPlaceIndexForSuggestionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LocationClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LocationClient"; + const commandName = "SearchPlaceIndexForSuggestionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: SearchPlaceIndexForSuggestionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: SearchPlaceIndexForSuggestionsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: SearchPlaceIndexForSuggestionsCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1SearchPlaceIndexForSuggestionsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-location/src/commands/index.ts b/clients/client-location/src/commands/index.ts index 47c1dab30fba..504192aaf1ac 100644 --- a/clients/client-location/src/commands/index.ts +++ b/clients/client-location/src/commands/index.ts @@ -40,6 +40,7 @@ export * from "./ListTrackerConsumersCommand"; export * from "./ListTrackersCommand"; export * from "./PutGeofenceCommand"; export * from "./SearchPlaceIndexForPositionCommand"; +export * from "./SearchPlaceIndexForSuggestionsCommand"; export * from "./SearchPlaceIndexForTextCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; diff --git a/clients/client-location/src/endpoints.ts b/clients/client-location/src/endpoints.ts index 2b6d402743f9..aeb4effa9e15 100644 --- a/clients/client-location/src/endpoints.ts +++ b/clients/client-location/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-location/src/models/models_0.ts b/clients/client-location/src/models/models_0.ts index 046f23bdfbd2..561b122c1137 100644 --- a/clients/client-location/src/models/models_0.ts +++ b/clients/client-location/src/models/models_0.ts @@ -377,6 +377,26 @@ export namespace BatchDeleteGeofenceResponse { }); } +/** + *

                          Defines the level of certainty of the position.

                          + */ +export interface PositionalAccuracy { + /** + *

                          Estimated maximum distance, in meters, between the measured position and the true + * position of a device, along the Earth's surface.

                          + */ + Horizontal: number | undefined; +} + +export namespace PositionalAccuracy { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PositionalAccuracy): any => ({ + ...obj, + }); +} + /** *

                          Contains the position update details for a device.

                          */ @@ -398,6 +418,20 @@ export interface DevicePositionUpdate { * [X or longitude, Y or latitude].

                          */ Position: number[] | undefined; + + /** + *

                          The accuracy of the device position.

                          + */ + Accuracy?: PositionalAccuracy; + + /** + *

                          Associates one of more properties with the position update. A property is a key-value + * pair stored with the position update and added to any geofence event the update may + * trigger.

                          + *

                          Format: "key" : "value" + *

                          + */ + PositionProperties?: { [key: string]: string }; } export namespace DevicePositionUpdate { @@ -407,6 +441,7 @@ export namespace DevicePositionUpdate { export const filterSensitiveLog = (obj: DevicePositionUpdate): any => ({ ...obj, ...(obj.Position && { Position: SENSITIVE_STRING }), + ...(obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }), }); } @@ -538,6 +573,16 @@ export interface DevicePosition { *

                          The last known device position.

                          */ Position: number[] | undefined; + + /** + *

                          The accuracy of the device position.

                          + */ + Accuracy?: PositionalAccuracy; + + /** + *

                          The properties associated with the position.

                          + */ + PositionProperties?: { [key: string]: string }; } export namespace DevicePosition { @@ -547,6 +592,7 @@ export namespace DevicePosition { export const filterSensitiveLog = (obj: DevicePosition): any => ({ ...obj, ...(obj.Position && { Position: SENSITIVE_STRING }), + ...(obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }), }); } @@ -1497,11 +1543,12 @@ export interface CreateGeofenceCollectionRequest { CollectionName: string | undefined; /** - *

                          Specifies the pricing plan for the geofence collection.

                          + *

                          Optionally specifies the pricing plan for the geofence collection. Defaults to + * RequestBasedUsage.

                          *

                          For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing * page.

                          */ - PricingPlan: PricingPlan | string | undefined; + PricingPlan?: PricingPlan | string; /** *

                          Specifies the data provider for the geofence collection.

                          @@ -1709,10 +1756,11 @@ export interface CreateMapRequest { Configuration: MapConfiguration | undefined; /** - *

                          Specifies the pricing plan for your map resource.

                          + *

                          Optionally specifies the pricing plan for the map resource. Defaults to + * RequestBasedUsage.

                          *

                          For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

                          */ - PricingPlan: PricingPlan | string | undefined; + PricingPlan?: PricingPlan | string; /** *

                          An optional description for the map resource.

                          @@ -1895,10 +1943,11 @@ export interface CreatePlaceIndexRequest { DataSource: string | undefined; /** - *

                          Specifies the pricing plan for your place index resource.

                          + *

                          Optionally specifies the pricing plan for the place index resource. Defaults to + * RequestBasedUsage.

                          *

                          For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

                          */ - PricingPlan: PricingPlan | string | undefined; + PricingPlan?: PricingPlan | string; /** *

                          The optional description for the place index resource.

                          @@ -2029,10 +2078,11 @@ export interface CreateRouteCalculatorRequest { DataSource: string | undefined; /** - *

                          Specifies the pricing plan for your route calculator resource.

                          + *

                          Optionally specifies the pricing plan for the route calculator resource. Defaults to + * RequestBasedUsage.

                          *

                          For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

                          */ - PricingPlan: PricingPlan | string | undefined; + PricingPlan?: PricingPlan | string; /** *

                          The optional description for the route calculator resource.

                          @@ -2152,10 +2202,11 @@ export interface CreateTrackerRequest { TrackerName: string | undefined; /** - *

                          Specifies the pricing plan for the tracker resource.

                          + *

                          Optionally specifies the pricing plan for the tracker resource. Defaults to + * RequestBasedUsage.

                          *

                          For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

                          */ - PricingPlan: PricingPlan | string | undefined; + PricingPlan?: PricingPlan | string; /** *

                          A key identifier for an AWS KMS customer managed key. Enter a key ID, key ARN, alias name, or alias ARN.

                          @@ -2235,6 +2286,17 @@ export interface CreateTrackerRequest { * Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map. *

                          *
                        • + *
                        • + *

                          + * AccuracyBased - If the device has moved less than the measured accuracy, + * location updates are ignored. For example, if two consecutive updates from a device + * have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device + * has moved less than 15 m. Ignored location updates are neither evaluated against + * linked geofence collections, nor stored. This can reduce the effects of GPS noise + * when displaying device trajectories on a map, and can help control your costs by reducing the + * number of geofence evaluations. + *

                          + *
                        • *
                        *

                        This field is optional. If not specified, the default value is TimeBased.

                        */ @@ -3549,6 +3611,16 @@ export interface GetDevicePositionResponse { *

                        The last known device position.

                        */ Position: number[] | undefined; + + /** + *

                        The accuracy of the device position.

                        + */ + Accuracy?: PositionalAccuracy; + + /** + *

                        The properties associated with the position.

                        + */ + PositionProperties?: { [key: string]: string }; } export namespace GetDevicePositionResponse { @@ -3558,6 +3630,7 @@ export namespace GetDevicePositionResponse { export const filterSensitiveLog = (obj: GetDevicePositionResponse): any => ({ ...obj, ...(obj.Position && { Position: SENSITIVE_STRING }), + ...(obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }), }); } @@ -3939,6 +4012,16 @@ export interface ListDevicePositionsResponseEntry { *

                        The last known device position. Empty if no positions currently stored.

                        */ Position: number[] | undefined; + + /** + *

                        The accuracy of the device position.

                        + */ + Accuracy?: PositionalAccuracy; + + /** + *

                        The properties associated with the position.

                        + */ + PositionProperties?: { [key: string]: string }; } export namespace ListDevicePositionsResponseEntry { @@ -3948,6 +4031,7 @@ export namespace ListDevicePositionsResponseEntry { export const filterSensitiveLog = (obj: ListDevicePositionsResponseEntry): any => ({ ...obj, ...(obj.Position && { Position: SENSITIVE_STRING }), + ...(obj.PositionProperties && { PositionProperties: SENSITIVE_STRING }), }); } @@ -4808,6 +4892,206 @@ export namespace SearchPlaceIndexForPositionResponse { }); } +export interface SearchPlaceIndexForSuggestionsRequest { + /** + *

                        The name of the place index resource you want to use for the search.

                        + */ + IndexName: string | undefined; + + /** + *

                        The free-form partial text to use to generate place suggestions. For example, + * eiffel tow.

                        + */ + Text: string | undefined; + + /** + *

                        An optional parameter that indicates a preference for place suggestions that are closer to a specified position.

                        + *

                        + * If provided, this parameter must contain a pair of numbers. The first number represents the X coordinate, or longitude; + * the second number represents the Y coordinate, or latitude.

                        + *

                        For example, [-123.1174, 49.2847] represents the position with + * longitude -123.1174 and + * latitude 49.2847.

                        + * + *

                        + * BiasPosition and FilterBBox are mutually exclusive. Specifying both options results in an error. + *

                        + *
                        + */ + BiasPosition?: number[]; + + /** + *

                        An optional parameter that limits the search results by returning only suggestions within a specified bounding box.

                        + *

                        + * If provided, this parameter must contain a total of four consecutive numbers in two pairs. + * The first pair of numbers represents the X and Y coordinates (longitude and latitude, respectively) + * of the southwest corner of the bounding box; the second pair of numbers represents the X and Y coordinates (longitude and latitude, respectively) + * of the northeast corner of the bounding box.

                        + *

                        For example, [-12.7935, -37.4835, -12.0684, -36.9542] represents + * a bounding box where the southwest corner has longitude -12.7935 and latitude -37.4835, + * and the northeast corner has longitude -12.0684 and latitude -36.9542.

                        + * + *

                        + * FilterBBox and BiasPosition are mutually exclusive. Specifying both options results in an error. + *

                        + *
                        + */ + FilterBBox?: number[]; + + /** + *

                        An optional parameter that limits the search results by returning only suggestions within the provided list of countries.

                        + *
                          + *
                        • + *

                          Use the ISO 3166 3-digit + * country code. For example, Australia uses three upper-case characters: + * AUS.

                          + *
                        • + *
                        + */ + FilterCountries?: string[]; + + /** + *

                        An optional parameter. The maximum number of results returned per request.

                        + *

                        The default: 5 + *

                        + */ + MaxResults?: number; + + /** + *

                        The preferred language used to return results. The value must be a valid BCP 47 language tag, for example, + * en for English.

                        + *

                        This setting affects the languages used in the results. It does not change which + * results are returned. If the language is not specified, or not supported for a + * particular result, the partner automatically chooses a language for the result.

                        + *

                        Used only when the partner selected is Here.

                        + */ + Language?: string; +} + +export namespace SearchPlaceIndexForSuggestionsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SearchPlaceIndexForSuggestionsRequest): any => ({ + ...obj, + ...(obj.Text && { Text: SENSITIVE_STRING }), + ...(obj.BiasPosition && { BiasPosition: SENSITIVE_STRING }), + ...(obj.FilterBBox && { FilterBBox: SENSITIVE_STRING }), + }); +} + +/** + *

                        Contains a place suggestion resulting from a place suggestion query that is run on a place index resource.

                        + */ +export interface SearchForSuggestionsResult { + /** + *

                        The text of the place suggestion, typically formatted as an address string.

                        + */ + Text: string | undefined; +} + +export namespace SearchForSuggestionsResult { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SearchForSuggestionsResult): any => ({ + ...obj, + }); +} + +/** + *

                        A summary of the request sent by using SearchPlaceIndexForSuggestions.

                        + */ +export interface SearchPlaceIndexForSuggestionsSummary { + /** + *

                        The free-form partial text input specified in the request.

                        + */ + Text: string | undefined; + + /** + *

                        Contains the coordinates for the optional bias position specified in the request.

                        + *

                        This parameter contains a pair of numbers. The first number represents the X + * coordinate, or longitude; the second number represents the Y coordinate, or latitude.

                        + *

                        For example, [-123.1174, 49.2847] represents the position with + * longitude -123.1174 and latitude 49.2847.

                        + */ + BiasPosition?: number[]; + + /** + *

                        Contains the coordinates for the optional bounding box specified in the request.

                        + */ + FilterBBox?: number[]; + + /** + *

                        Contains the optional country filter specified in the request.

                        + */ + FilterCountries?: string[]; + + /** + *

                        Contains the optional result count limit specified in the request.

                        + */ + MaxResults?: number; + + /** + *

                        The geospatial data provider attached to the place index resource specified in the request. + * Values can be one of the following:

                        + *
                          + *
                        • + *

                          Esri

                          + *
                        • + *
                        • + *

                          Here

                          + *
                        • + *
                        + *

                        For more information about data providers, see Amazon Location Service data providers.

                        + */ + DataSource: string | undefined; + + /** + *

                        The preferred language used to return results. Matches the language in the request. + * The value is a valid BCP 47 language tag, for example, + * en for English.

                        + */ + Language?: string; +} + +export namespace SearchPlaceIndexForSuggestionsSummary { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SearchPlaceIndexForSuggestionsSummary): any => ({ + ...obj, + ...(obj.Text && { Text: SENSITIVE_STRING }), + ...(obj.BiasPosition && { BiasPosition: SENSITIVE_STRING }), + ...(obj.FilterBBox && { FilterBBox: SENSITIVE_STRING }), + }); +} + +export interface SearchPlaceIndexForSuggestionsResponse { + /** + *

                        Contains a summary of the request. Echoes the input values for BiasPosition, + * FilterBBox, FilterCountries, Language, MaxResults, + * and Text. Also includes the DataSource of the place index. + *

                        + */ + Summary: SearchPlaceIndexForSuggestionsSummary | undefined; + + /** + *

                        A list of place suggestions that best match the search text.

                        + */ + Results: SearchForSuggestionsResult[] | undefined; +} + +export namespace SearchPlaceIndexForSuggestionsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SearchPlaceIndexForSuggestionsResponse): any => ({ + ...obj, + ...(obj.Summary && { Summary: SearchPlaceIndexForSuggestionsSummary.filterSensitiveLog(obj.Summary) }), + }); +} + export interface SearchPlaceIndexForTextRequest { /** *

                        The name of the place index resource you want to use for the search.

                        @@ -4947,6 +5231,10 @@ export interface SearchPlaceIndexForTextSummary { /** *

                        Contains the coordinates for the optional bias position specified in the request.

                        + *

                        This parameter contains a pair of numbers. The first number represents the X + * coordinate, or longitude; the second number represents the Y coordinate, or latitude.

                        + *

                        For example, [-123.1174, 49.2847] represents the position with + * longitude -123.1174 and latitude 49.2847.

                        */ BiasPosition?: number[]; @@ -5217,8 +5505,19 @@ export interface UpdateTrackerRequest { *

                        * DistanceBased - If the device has moved less than 30 m (98.4 ft), location updates are * ignored. Location updates within this distance are neither evaluated against linked geofence collections, nor stored. - * This helps control costs by reducing the number of geofence evaluations and device positions to retrieve. - * Distance-based filtering can also reduce the jitter effect when displaying device trajectory on a map. + * This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through. + * Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map. + *

                        + * + *
                      • + *

                        + * AccuracyBased - If the device has moved less than the measured accuracy, + * location updates are ignored. For example, if two consecutive updates from a device + * have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device + * has moved less than 15 m. Ignored location updates are neither evaluated against + * linked geofence collections, nor stored. This helps educe the effects of GPS noise + * when displaying device trajectories on a map, and can help control costs by reducing the + * number of geofence evaluations. *

                        *
                      • *
                      diff --git a/clients/client-location/src/protocols/Aws_restJson1.ts b/clients/client-location/src/protocols/Aws_restJson1.ts index 68b063fe92db..e315eff28688 100644 --- a/clients/client-location/src/protocols/Aws_restJson1.ts +++ b/clients/client-location/src/protocols/Aws_restJson1.ts @@ -127,6 +127,10 @@ import { SearchPlaceIndexForPositionCommandInput, SearchPlaceIndexForPositionCommandOutput, } from "../commands/SearchPlaceIndexForPositionCommand"; +import { + SearchPlaceIndexForSuggestionsCommandInput, + SearchPlaceIndexForSuggestionsCommandOutput, +} from "../commands/SearchPlaceIndexForSuggestionsCommand"; import { SearchPlaceIndexForTextCommandInput, SearchPlaceIndexForTextCommandOutput, @@ -176,10 +180,13 @@ import { MapConfiguration, Place, PlaceGeometry, + PositionalAccuracy, ResourceNotFoundException, SearchForPositionResult, + SearchForSuggestionsResult, SearchForTextResult, SearchPlaceIndexForPositionSummary, + SearchPlaceIndexForSuggestionsSummary, SearchPlaceIndexForTextSummary, ServiceQuotaExceededException, Step, @@ -1935,6 +1942,58 @@ export const serializeAws_restJson1SearchPlaceIndexForPositionCommand = async ( }); }; +export const serializeAws_restJson1SearchPlaceIndexForSuggestionsCommand = async ( + input: SearchPlaceIndexForSuggestionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/places/v0/indexes/{IndexName}/search/suggestions"; + if (input.IndexName !== undefined) { + const labelValue: string = input.IndexName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: IndexName."); + } + resolvedPath = resolvedPath.replace("{IndexName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: IndexName."); + } + let body: any; + body = JSON.stringify({ + ...(input.BiasPosition !== undefined && + input.BiasPosition !== null && { BiasPosition: serializeAws_restJson1Position(input.BiasPosition, context) }), + ...(input.FilterBBox !== undefined && + input.FilterBBox !== null && { FilterBBox: serializeAws_restJson1BoundingBox(input.FilterBBox, context) }), + ...(input.FilterCountries !== undefined && + input.FilterCountries !== null && { + FilterCountries: serializeAws_restJson1CountryCodeList(input.FilterCountries, context), + }), + ...(input.Language !== undefined && input.Language !== null && { Language: input.Language }), + ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }), + ...(input.Text !== undefined && input.Text !== null && { Text: input.Text }), + }); + let { hostname: resolvedHostname } = await context.endpoint(); + if (context.disableHostPrefix !== true) { + resolvedHostname = "places." + resolvedHostname; + if (!__isValidHostname(resolvedHostname)) { + throw new Error("ValidationError: prefixed hostname must be hostname compatible."); + } + } + return new __HttpRequest({ + protocol, + hostname: resolvedHostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1SearchPlaceIndexForTextCommand = async ( input: SearchPlaceIndexForTextCommandInput, context: __SerdeContext @@ -4586,18 +4645,26 @@ export const deserializeAws_restJson1GetDevicePositionCommand = async ( } const contents: GetDevicePositionCommandOutput = { $metadata: deserializeMetadata(output), + Accuracy: undefined, DeviceId: undefined, Position: undefined, + PositionProperties: undefined, ReceivedTime: undefined, SampleTime: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Accuracy !== undefined && data.Accuracy !== null) { + contents.Accuracy = deserializeAws_restJson1PositionalAccuracy(data.Accuracy, context); + } if (data.DeviceId !== undefined && data.DeviceId !== null) { contents.DeviceId = __expectString(data.DeviceId); } if (data.Position !== undefined && data.Position !== null) { contents.Position = deserializeAws_restJson1Position(data.Position, context); } + if (data.PositionProperties !== undefined && data.PositionProperties !== null) { + contents.PositionProperties = deserializeAws_restJson1PropertyMap(data.PositionProperties, context); + } if (data.ReceivedTime !== undefined && data.ReceivedTime !== null) { contents.ReceivedTime = __expectNonNull(__parseRfc3339DateTime(data.ReceivedTime)); } @@ -6187,6 +6254,97 @@ const deserializeAws_restJson1SearchPlaceIndexForPositionCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommandError(output, context); + } + const contents: SearchPlaceIndexForSuggestionsCommandOutput = { + $metadata: deserializeMetadata(output), + Results: undefined, + Summary: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Results !== undefined && data.Results !== null) { + contents.Results = deserializeAws_restJson1SearchForSuggestionsResultList(data.Results, context); + } + if (data.Summary !== undefined && data.Summary !== null) { + contents.Summary = deserializeAws_restJson1SearchPlaceIndexForSuggestionsSummary(data.Summary, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1SearchPlaceIndexForSuggestionsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.location#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.location#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.location#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.location#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.location#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1SearchPlaceIndexForTextCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7141,9 +7299,15 @@ const serializeAws_restJson1DeviceIdsList = (input: string[], context: __SerdeCo const serializeAws_restJson1DevicePositionUpdate = (input: DevicePositionUpdate, context: __SerdeContext): any => { return { + ...(input.Accuracy !== undefined && + input.Accuracy !== null && { Accuracy: serializeAws_restJson1PositionalAccuracy(input.Accuracy, context) }), ...(input.DeviceId !== undefined && input.DeviceId !== null && { DeviceId: input.DeviceId }), ...(input.Position !== undefined && input.Position !== null && { Position: serializeAws_restJson1Position(input.Position, context) }), + ...(input.PositionProperties !== undefined && + input.PositionProperties !== null && { + PositionProperties: serializeAws_restJson1PropertyMap(input.PositionProperties, context), + }), ...(input.SampleTime !== undefined && input.SampleTime !== null && { SampleTime: input.SampleTime.toISOString().split(".")[0] + "Z" }), }; @@ -7220,6 +7384,25 @@ const serializeAws_restJson1Position = (input: number[], context: __SerdeContext }); }; +const serializeAws_restJson1PositionalAccuracy = (input: PositionalAccuracy, context: __SerdeContext): any => { + return { + ...(input.Horizontal !== undefined && + input.Horizontal !== null && { Horizontal: __serializeFloat(input.Horizontal) }), + }; +}; + +const serializeAws_restJson1PropertyMap = (input: { [key: string]: string }, context: __SerdeContext): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + const serializeAws_restJson1TagMap = (input: { [key: string]: string }, context: __SerdeContext): any => { return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { if (value === null) { @@ -7521,11 +7704,19 @@ const deserializeAws_restJson1DataSourceConfiguration = ( const deserializeAws_restJson1DevicePosition = (output: any, context: __SerdeContext): DevicePosition => { return { + Accuracy: + output.Accuracy !== undefined && output.Accuracy !== null + ? deserializeAws_restJson1PositionalAccuracy(output.Accuracy, context) + : undefined, DeviceId: __expectString(output.DeviceId), Position: output.Position !== undefined && output.Position !== null ? deserializeAws_restJson1Position(output.Position, context) : undefined, + PositionProperties: + output.PositionProperties !== undefined && output.PositionProperties !== null + ? deserializeAws_restJson1PropertyMap(output.PositionProperties, context) + : undefined, ReceivedTime: output.ReceivedTime !== undefined && output.ReceivedTime !== null ? __expectNonNull(__parseRfc3339DateTime(output.ReceivedTime)) @@ -7638,11 +7829,19 @@ const deserializeAws_restJson1ListDevicePositionsResponseEntry = ( context: __SerdeContext ): ListDevicePositionsResponseEntry => { return { + Accuracy: + output.Accuracy !== undefined && output.Accuracy !== null + ? deserializeAws_restJson1PositionalAccuracy(output.Accuracy, context) + : undefined, DeviceId: __expectString(output.DeviceId), Position: output.Position !== undefined && output.Position !== null ? deserializeAws_restJson1Position(output.Position, context) : undefined, + PositionProperties: + output.PositionProperties !== undefined && output.PositionProperties !== null + ? deserializeAws_restJson1PropertyMap(output.PositionProperties, context) + : undefined, SampleTime: output.SampleTime !== undefined && output.SampleTime !== null ? __expectNonNull(__parseRfc3339DateTime(output.SampleTime)) @@ -7916,6 +8115,24 @@ const deserializeAws_restJson1Position = (output: any, context: __SerdeContext): }); }; +const deserializeAws_restJson1PositionalAccuracy = (output: any, context: __SerdeContext): PositionalAccuracy => { + return { + Horizontal: __limitedParseDouble(output.Horizontal), + } as any; +}; + +const deserializeAws_restJson1PropertyMap = (output: any, context: __SerdeContext): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + const deserializeAws_restJson1SearchForPositionResult = ( output: any, context: __SerdeContext @@ -7943,6 +8160,29 @@ const deserializeAws_restJson1SearchForPositionResultList = ( }); }; +const deserializeAws_restJson1SearchForSuggestionsResult = ( + output: any, + context: __SerdeContext +): SearchForSuggestionsResult => { + return { + Text: __expectString(output.Text), + } as any; +}; + +const deserializeAws_restJson1SearchForSuggestionsResultList = ( + output: any, + context: __SerdeContext +): SearchForSuggestionsResult[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1SearchForSuggestionsResult(entry, context); + }); +}; + const deserializeAws_restJson1SearchForTextResult = (output: any, context: __SerdeContext): SearchForTextResult => { return { Distance: __limitedParseDouble(output.Distance), @@ -7983,6 +8223,30 @@ const deserializeAws_restJson1SearchPlaceIndexForPositionSummary = ( } as any; }; +const deserializeAws_restJson1SearchPlaceIndexForSuggestionsSummary = ( + output: any, + context: __SerdeContext +): SearchPlaceIndexForSuggestionsSummary => { + return { + BiasPosition: + output.BiasPosition !== undefined && output.BiasPosition !== null + ? deserializeAws_restJson1Position(output.BiasPosition, context) + : undefined, + DataSource: __expectString(output.DataSource), + FilterBBox: + output.FilterBBox !== undefined && output.FilterBBox !== null + ? deserializeAws_restJson1BoundingBox(output.FilterBBox, context) + : undefined, + FilterCountries: + output.FilterCountries !== undefined && output.FilterCountries !== null + ? deserializeAws_restJson1CountryCodeList(output.FilterCountries, context) + : undefined, + Language: __expectString(output.Language), + MaxResults: __expectInt32(output.MaxResults), + Text: __expectString(output.Text), + } as any; +}; + const deserializeAws_restJson1SearchPlaceIndexForTextSummary = ( output: any, context: __SerdeContext diff --git a/clients/client-lookoutequipment/src/endpoints.ts b/clients/client-lookoutequipment/src/endpoints.ts index 30c21a221156..ec17c1e2a065 100644 --- a/clients/client-lookoutequipment/src/endpoints.ts +++ b/clients/client-lookoutequipment/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lookoutmetrics/src/LookoutMetrics.ts b/clients/client-lookoutmetrics/src/LookoutMetrics.ts index 32a8b1552d17..57788eefd726 100644 --- a/clients/client-lookoutmetrics/src/LookoutMetrics.ts +++ b/clients/client-lookoutmetrics/src/LookoutMetrics.ts @@ -64,6 +64,11 @@ import { ListAnomalyDetectorsCommandInput, ListAnomalyDetectorsCommandOutput, } from "./commands/ListAnomalyDetectorsCommand"; +import { + ListAnomalyGroupRelatedMetricsCommand, + ListAnomalyGroupRelatedMetricsCommandInput, + ListAnomalyGroupRelatedMetricsCommandOutput, +} from "./commands/ListAnomalyGroupRelatedMetricsCommand"; import { ListAnomalyGroupSummariesCommand, ListAnomalyGroupSummariesCommandInput, @@ -608,6 +613,39 @@ export class LookoutMetrics extends LookoutMetricsClient { } } + /** + *

                      Returns a list of measures that are potential causes or effects of an + * anomaly group.

                      + */ + public listAnomalyGroupRelatedMetrics( + args: ListAnomalyGroupRelatedMetricsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAnomalyGroupRelatedMetrics( + args: ListAnomalyGroupRelatedMetricsCommandInput, + cb: (err: any, data?: ListAnomalyGroupRelatedMetricsCommandOutput) => void + ): void; + public listAnomalyGroupRelatedMetrics( + args: ListAnomalyGroupRelatedMetricsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAnomalyGroupRelatedMetricsCommandOutput) => void + ): void; + public listAnomalyGroupRelatedMetrics( + args: ListAnomalyGroupRelatedMetricsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAnomalyGroupRelatedMetricsCommandOutput) => void), + cb?: (err: any, data?: ListAnomalyGroupRelatedMetricsCommandOutput) => void + ): Promise | void { + const command = new ListAnomalyGroupRelatedMetricsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Returns a list of anomaly groups.

                      */ diff --git a/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts b/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts index 40ec646eef72..144c04173b6e 100644 --- a/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts +++ b/clients/client-lookoutmetrics/src/LookoutMetricsClient.ts @@ -86,6 +86,10 @@ import { ListAnomalyDetectorsCommandInput, ListAnomalyDetectorsCommandOutput, } from "./commands/ListAnomalyDetectorsCommand"; +import { + ListAnomalyGroupRelatedMetricsCommandInput, + ListAnomalyGroupRelatedMetricsCommandOutput, +} from "./commands/ListAnomalyGroupRelatedMetricsCommand"; import { ListAnomalyGroupSummariesCommandInput, ListAnomalyGroupSummariesCommandOutput, @@ -126,6 +130,7 @@ export type ServiceInputTypes = | GetSampleDataCommandInput | ListAlertsCommandInput | ListAnomalyDetectorsCommandInput + | ListAnomalyGroupRelatedMetricsCommandInput | ListAnomalyGroupSummariesCommandInput | ListAnomalyGroupTimeSeriesCommandInput | ListMetricSetsCommandInput @@ -153,6 +158,7 @@ export type ServiceOutputTypes = | GetSampleDataCommandOutput | ListAlertsCommandOutput | ListAnomalyDetectorsCommandOutput + | ListAnomalyGroupRelatedMetricsCommandOutput | ListAnomalyGroupSummariesCommandOutput | ListAnomalyGroupTimeSeriesCommandOutput | ListMetricSetsCommandOutput diff --git a/clients/client-lookoutmetrics/src/commands/ListAnomalyGroupRelatedMetricsCommand.ts b/clients/client-lookoutmetrics/src/commands/ListAnomalyGroupRelatedMetricsCommand.ts new file mode 100644 index 000000000000..c156b8e04589 --- /dev/null +++ b/clients/client-lookoutmetrics/src/commands/ListAnomalyGroupRelatedMetricsCommand.ts @@ -0,0 +1,104 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { LookoutMetricsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LookoutMetricsClient"; +import { ListAnomalyGroupRelatedMetricsRequest, ListAnomalyGroupRelatedMetricsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListAnomalyGroupRelatedMetricsCommand, + serializeAws_restJson1ListAnomalyGroupRelatedMetricsCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListAnomalyGroupRelatedMetricsCommandInput extends ListAnomalyGroupRelatedMetricsRequest {} +export interface ListAnomalyGroupRelatedMetricsCommandOutput + extends ListAnomalyGroupRelatedMetricsResponse, + __MetadataBearer {} + +/** + *

                      Returns a list of measures that are potential causes or effects of an + * anomaly group.

                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LookoutMetricsClient, ListAnomalyGroupRelatedMetricsCommand } from "@aws-sdk/client-lookoutmetrics"; // ES Modules import + * // const { LookoutMetricsClient, ListAnomalyGroupRelatedMetricsCommand } = require("@aws-sdk/client-lookoutmetrics"); // CommonJS import + * const client = new LookoutMetricsClient(config); + * const command = new ListAnomalyGroupRelatedMetricsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListAnomalyGroupRelatedMetricsCommandInput} for command's `input` shape. + * @see {@link ListAnomalyGroupRelatedMetricsCommandOutput} for command's `response` shape. + * @see {@link LookoutMetricsClientResolvedConfig | config} for LookoutMetricsClient's `config` shape. + * + */ +export class ListAnomalyGroupRelatedMetricsCommand extends $Command< + ListAnomalyGroupRelatedMetricsCommandInput, + ListAnomalyGroupRelatedMetricsCommandOutput, + LookoutMetricsClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAnomalyGroupRelatedMetricsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LookoutMetricsClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LookoutMetricsClient"; + const commandName = "ListAnomalyGroupRelatedMetricsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAnomalyGroupRelatedMetricsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListAnomalyGroupRelatedMetricsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListAnomalyGroupRelatedMetricsCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1ListAnomalyGroupRelatedMetricsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1ListAnomalyGroupRelatedMetricsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-lookoutmetrics/src/commands/index.ts b/clients/client-lookoutmetrics/src/commands/index.ts index c11dd88f712a..89c29c67fecf 100644 --- a/clients/client-lookoutmetrics/src/commands/index.ts +++ b/clients/client-lookoutmetrics/src/commands/index.ts @@ -14,6 +14,7 @@ export * from "./GetFeedbackCommand"; export * from "./GetSampleDataCommand"; export * from "./ListAlertsCommand"; export * from "./ListAnomalyDetectorsCommand"; +export * from "./ListAnomalyGroupRelatedMetricsCommand"; export * from "./ListAnomalyGroupSummariesCommand"; export * from "./ListAnomalyGroupTimeSeriesCommand"; export * from "./ListMetricSetsCommand"; diff --git a/clients/client-lookoutmetrics/src/endpoints.ts b/clients/client-lookoutmetrics/src/endpoints.ts index 35c0d8044401..49d4cfec2599 100644 --- a/clients/client-lookoutmetrics/src/endpoints.ts +++ b/clients/client-lookoutmetrics/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lookoutmetrics/src/models/models_0.ts b/clients/client-lookoutmetrics/src/models/models_0.ts index cb58340a4f9c..78dd37b0cbea 100644 --- a/clients/client-lookoutmetrics/src/models/models_0.ts +++ b/clients/client-lookoutmetrics/src/models/models_0.ts @@ -2001,6 +2001,50 @@ export namespace GetSampleDataResponse { }); } +export enum RelationshipType { + CAUSE_OF_INPUT_ANOMALY_GROUP = "CAUSE_OF_INPUT_ANOMALY_GROUP", + EFFECT_OF_INPUT_ANOMALY_GROUP = "EFFECT_OF_INPUT_ANOMALY_GROUP", +} + +/** + *

                      Aggregated details about the measures contributing to the anomaly group, and the measures + * potentially impacted by the anomaly group.

                      + *

                      + */ +export interface InterMetricImpactDetails { + /** + *

                      The name of the measure.

                      + */ + MetricName?: string; + + /** + *

                      The ID of the anomaly group.

                      + */ + AnomalyGroupId?: string; + + /** + *

                      Whether a measure is a potential cause of the anomaly group + * (CAUSE_OF_INPUT_ANOMALY_GROUP), or whether the measure is impacted by the + * anomaly group (EFFECT_OF_INPUT_ANOMALY_GROUP).

                      + */ + RelationshipType?: RelationshipType | string; + + /** + *

                      For potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP), the percentage + * contribution the measure has in causing the anomalies.

                      + */ + ContributionPercentage?: number; +} + +export namespace InterMetricImpactDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: InterMetricImpactDetails): any => ({ + ...obj, + }); +} + export interface ListAlertsRequest { /** *

                      The ARN of the alert's detector.

                      @@ -2094,6 +2138,66 @@ export namespace ListAnomalyDetectorsResponse { }); } +export interface ListAnomalyGroupRelatedMetricsRequest { + /** + *

                      The Amazon Resource Name (ARN) of the anomaly detector.

                      + */ + AnomalyDetectorArn: string | undefined; + + /** + *

                      The ID of the anomaly group.

                      + */ + AnomalyGroupId: string | undefined; + + /** + *

                      Filter for potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP) or + * downstream effects (EFFECT_OF_INPUT_ANOMALY_GROUP) of the anomaly group.

                      + */ + RelationshipTypeFilter?: RelationshipType | string; + + /** + *

                      The maximum number of results to return.

                      + */ + MaxResults?: number; + + /** + *

                      Specify the pagination token that's returned by a previous request to retrieve the next + * page of results.

                      + */ + NextToken?: string; +} + +export namespace ListAnomalyGroupRelatedMetricsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListAnomalyGroupRelatedMetricsRequest): any => ({ + ...obj, + }); +} + +export interface ListAnomalyGroupRelatedMetricsResponse { + /** + *

                      Aggregated details about the measures contributing to the anomaly group, and the measures + * potentially impacted by the anomaly group.

                      + */ + InterMetricImpactList?: InterMetricImpactDetails[]; + + /** + *

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

                      + */ + NextToken?: string; +} + +export namespace ListAnomalyGroupRelatedMetricsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListAnomalyGroupRelatedMetricsResponse): any => ({ + ...obj, + }); +} + export interface ListAnomalyGroupSummariesRequest { /** *

                      The Amazon Resource Name (ARN) of the anomaly detector.

                      diff --git a/clients/client-lookoutmetrics/src/pagination/ListAnomalyGroupRelatedMetricsPaginator.ts b/clients/client-lookoutmetrics/src/pagination/ListAnomalyGroupRelatedMetricsPaginator.ts new file mode 100644 index 000000000000..f8a9cc3ef616 --- /dev/null +++ b/clients/client-lookoutmetrics/src/pagination/ListAnomalyGroupRelatedMetricsPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + ListAnomalyGroupRelatedMetricsCommand, + ListAnomalyGroupRelatedMetricsCommandInput, + ListAnomalyGroupRelatedMetricsCommandOutput, +} from "../commands/ListAnomalyGroupRelatedMetricsCommand"; +import { LookoutMetrics } from "../LookoutMetrics"; +import { LookoutMetricsClient } from "../LookoutMetricsClient"; +import { LookoutMetricsPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: LookoutMetricsClient, + input: ListAnomalyGroupRelatedMetricsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAnomalyGroupRelatedMetricsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: LookoutMetrics, + input: ListAnomalyGroupRelatedMetricsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAnomalyGroupRelatedMetrics(input, ...args); +}; +export async function* paginateListAnomalyGroupRelatedMetrics( + config: LookoutMetricsPaginationConfiguration, + input: ListAnomalyGroupRelatedMetricsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAnomalyGroupRelatedMetricsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof LookoutMetrics) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof LookoutMetricsClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected LookoutMetrics | LookoutMetricsClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-lookoutmetrics/src/pagination/index.ts b/clients/client-lookoutmetrics/src/pagination/index.ts index f2270e9f5dea..5a46a2c895ba 100644 --- a/clients/client-lookoutmetrics/src/pagination/index.ts +++ b/clients/client-lookoutmetrics/src/pagination/index.ts @@ -3,6 +3,7 @@ export * from "./GetFeedbackPaginator"; export * from "./Interfaces"; export * from "./ListAlertsPaginator"; export * from "./ListAnomalyDetectorsPaginator"; +export * from "./ListAnomalyGroupRelatedMetricsPaginator"; export * from "./ListAnomalyGroupSummariesPaginator"; export * from "./ListAnomalyGroupTimeSeriesPaginator"; export * from "./ListMetricSetsPaginator"; diff --git a/clients/client-lookoutmetrics/src/protocols/Aws_restJson1.ts b/clients/client-lookoutmetrics/src/protocols/Aws_restJson1.ts index 9157e1e66bf5..5defe950ec43 100644 --- a/clients/client-lookoutmetrics/src/protocols/Aws_restJson1.ts +++ b/clients/client-lookoutmetrics/src/protocols/Aws_restJson1.ts @@ -55,6 +55,10 @@ import { ListAnomalyDetectorsCommandInput, ListAnomalyDetectorsCommandOutput, } from "../commands/ListAnomalyDetectorsCommand"; +import { + ListAnomalyGroupRelatedMetricsCommandInput, + ListAnomalyGroupRelatedMetricsCommandOutput, +} from "../commands/ListAnomalyGroupRelatedMetricsCommand"; import { ListAnomalyGroupSummariesCommandInput, ListAnomalyGroupSummariesCommandOutput, @@ -99,6 +103,7 @@ import { DimensionValueContribution, ExecutionStatus, FileFormatDescriptor, + InterMetricImpactDetails, InternalServerException, ItemizedMetricStats, JsonFormatDescriptor, @@ -578,6 +583,38 @@ export const serializeAws_restJson1ListAnomalyDetectorsCommand = async ( }); }; +export const serializeAws_restJson1ListAnomalyGroupRelatedMetricsCommand = async ( + input: ListAnomalyGroupRelatedMetricsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/ListAnomalyGroupRelatedMetrics"; + let body: any; + body = JSON.stringify({ + ...(input.AnomalyDetectorArn !== undefined && + input.AnomalyDetectorArn !== null && { AnomalyDetectorArn: input.AnomalyDetectorArn }), + ...(input.AnomalyGroupId !== undefined && + input.AnomalyGroupId !== null && { AnomalyGroupId: input.AnomalyGroupId }), + ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }), + ...(input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }), + ...(input.RelationshipTypeFilter !== undefined && + input.RelationshipTypeFilter !== null && { RelationshipTypeFilter: input.RelationshipTypeFilter }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1ListAnomalyGroupSummariesCommand = async ( input: ListAnomalyGroupSummariesCommandInput, context: __SerdeContext @@ -2405,6 +2442,97 @@ const deserializeAws_restJson1ListAnomalyDetectorsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1ListAnomalyGroupRelatedMetricsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListAnomalyGroupRelatedMetricsCommandError(output, context); + } + const contents: ListAnomalyGroupRelatedMetricsCommandOutput = { + $metadata: deserializeMetadata(output), + InterMetricImpactList: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.InterMetricImpactList !== undefined && data.InterMetricImpactList !== null) { + contents.InterMetricImpactList = deserializeAws_restJson1InterMetricImpactList(data.InterMetricImpactList, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListAnomalyGroupRelatedMetricsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.lookoutmetrics#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.lookoutmetrics#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.lookoutmetrics#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TooManyRequestsException": + case "com.amazonaws.lookoutmetrics#TooManyRequestsException": + response = { + ...(await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.lookoutmetrics#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1ListAnomalyGroupSummariesCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -3987,6 +4115,32 @@ const deserializeAws_restJson1HistoricalDataPathList = (output: any, context: __ }); }; +const deserializeAws_restJson1InterMetricImpactDetails = ( + output: any, + context: __SerdeContext +): InterMetricImpactDetails => { + return { + AnomalyGroupId: __expectString(output.AnomalyGroupId), + ContributionPercentage: __limitedParseDouble(output.ContributionPercentage), + MetricName: __expectString(output.MetricName), + RelationshipType: __expectString(output.RelationshipType), + } as any; +}; + +const deserializeAws_restJson1InterMetricImpactList = ( + output: any, + context: __SerdeContext +): InterMetricImpactDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1InterMetricImpactDetails(entry, context); + }); +}; + const deserializeAws_restJson1ItemizedMetricStats = (output: any, context: __SerdeContext): ItemizedMetricStats => { return { MetricName: __expectString(output.MetricName), diff --git a/clients/client-lookoutvision/src/LookoutVision.ts b/clients/client-lookoutvision/src/LookoutVision.ts index 449dc0e10be0..c6b6a274dd9f 100644 --- a/clients/client-lookoutvision/src/LookoutVision.ts +++ b/clients/client-lookoutvision/src/LookoutVision.ts @@ -32,6 +32,11 @@ import { DescribeModelCommandInput, DescribeModelCommandOutput, } from "./commands/DescribeModelCommand"; +import { + DescribeModelPackagingJobCommand, + DescribeModelPackagingJobCommandInput, + DescribeModelPackagingJobCommandOutput, +} from "./commands/DescribeModelPackagingJobCommand"; import { DescribeProjectCommand, DescribeProjectCommandInput, @@ -47,6 +52,11 @@ import { ListDatasetEntriesCommandInput, ListDatasetEntriesCommandOutput, } from "./commands/ListDatasetEntriesCommand"; +import { + ListModelPackagingJobsCommand, + ListModelPackagingJobsCommandInput, + ListModelPackagingJobsCommandOutput, +} from "./commands/ListModelPackagingJobsCommand"; import { ListModelsCommand, ListModelsCommandInput, ListModelsCommandOutput } from "./commands/ListModelsCommand"; import { ListProjectsCommand, @@ -59,6 +69,11 @@ import { ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; import { StartModelCommand, StartModelCommandInput, StartModelCommandOutput } from "./commands/StartModelCommand"; +import { + StartModelPackagingJobCommand, + StartModelPackagingJobCommandInput, + StartModelPackagingJobCommandOutput, +} from "./commands/StartModelPackagingJobCommand"; import { StopModelCommand, StopModelCommandInput, StopModelCommandOutput } from "./commands/StopModelCommand"; import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { @@ -248,8 +263,9 @@ export class LookoutVision extends LookoutVisionClient { *

                      Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model, * use the StopModel operation.

                      *

                      It might take a few seconds to delete a model. To determine if a model has been deleted, call - * ListProjects and check if the version of the model (ModelVersion) is in the + * ListModels and check if the version of the model (ModelVersion) is in the * Models array.

                      + *

                      *

                      This operation requires permissions to perform the * lookoutvision:DeleteModel operation.

                      */ @@ -383,6 +399,44 @@ export class LookoutVision extends LookoutVisionClient { } } + /** + *

                      Describes an Amazon Lookout for Vision model packaging job. + *

                      + *

                      This operation requires permissions to perform the + * lookoutvision:DescribeModelPackagingJob operation.

                      + * + *

                      For more information, see + * Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

                      + */ + public describeModelPackagingJob( + args: DescribeModelPackagingJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeModelPackagingJob( + args: DescribeModelPackagingJobCommandInput, + cb: (err: any, data?: DescribeModelPackagingJobCommandOutput) => void + ): void; + public describeModelPackagingJob( + args: DescribeModelPackagingJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeModelPackagingJobCommandOutput) => void + ): void; + public describeModelPackagingJob( + args: DescribeModelPackagingJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeModelPackagingJobCommandOutput) => void), + cb?: (err: any, data?: DescribeModelPackagingJobCommandOutput) => void + ): Promise | void { + const command = new DescribeModelPackagingJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Describes an Amazon Lookout for Vision project.

                      *

                      This operation requires permissions to perform the @@ -493,8 +547,51 @@ export class LookoutVision extends LookoutVisionClient { } } + /** + *

                      + * Lists the model packaging jobs created for an Amazon Lookout for Vision project. + *

                      + *

                      This operation requires permissions to perform the + * lookoutvision:ListModelPackagingJobs operation. + *

                      + * + *

                      For more information, see + * Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

                      + */ + public listModelPackagingJobs( + args: ListModelPackagingJobsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listModelPackagingJobs( + args: ListModelPackagingJobsCommandInput, + cb: (err: any, data?: ListModelPackagingJobsCommandOutput) => void + ): void; + public listModelPackagingJobs( + args: ListModelPackagingJobsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListModelPackagingJobsCommandOutput) => void + ): void; + public listModelPackagingJobs( + args: ListModelPackagingJobsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListModelPackagingJobsCommandOutput) => void), + cb?: (err: any, data?: ListModelPackagingJobsCommandOutput) => void + ): Promise | void { + const command = new ListModelPackagingJobsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Lists the versions of a model in an Amazon Lookout for Vision project.

                      + *

                      The ListModels operation is eventually consistent. + * Recent calls to CreateModel might + * take a while to appear in the response from ListProjects.

                      *

                      This operation requires permissions to perform the * lookoutvision:ListModels operation.

                      */ @@ -523,6 +620,9 @@ export class LookoutVision extends LookoutVisionClient { /** *

                      Lists the Amazon Lookout for Vision projects in your AWS account.

                      + *

                      The ListProjects operation is eventually consistent. + * Recent calls to CreateProject and DeleteProject might + * take a while to appear in the response from ListProjects.

                      *

                      This operation requires permissions to perform the * lookoutvision:ListProjects operation.

                      */ @@ -622,6 +722,83 @@ export class LookoutVision extends LookoutVisionClient { } } + /** + *

                      Starts an Amazon Lookout for Vision model packaging job. A model packaging job creates an AWS IoT Greengrass component for + * a Lookout for Vision model. You can use the component to deploy your model to an edge device managed by Greengrass. + *

                      + * + *

                      Use the DescribeModelPackagingJob API to determine the current status of the job. + * + * The model packaging job is complete if the value of Status is SUCCEEDED.

                      + *

                      To deploy the component + * to the target device, use the component name and component version + * with the AWS IoT Greengrass CreateDeployment API.

                      + * + *

                      This operation requires the following permissions:

                      + *
                        + *
                      • + *

                        + * lookoutvision:StartModelPackagingJobs + *

                        + *
                      • + *
                      • + *

                        + * s3:PutObject + *

                        + *
                      • + *
                      • + *

                        + * s3:GetBucketLocation + *

                        + *
                      • + *
                      • + *

                        + * greengrass:CreateComponentVersion + *

                        + *
                      • + *
                      • + *

                        + * greengrass:DescribeComponent + *

                        + *
                      • + *
                      • + *

                        (Optional) greengrass:TagResource. Only required if you want to tag the component.

                        + *
                      • + *
                      + * + * + *

                      For more information, see + * Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

                      + */ + public startModelPackagingJob( + args: StartModelPackagingJobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public startModelPackagingJob( + args: StartModelPackagingJobCommandInput, + cb: (err: any, data?: StartModelPackagingJobCommandOutput) => void + ): void; + public startModelPackagingJob( + args: StartModelPackagingJobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartModelPackagingJobCommandOutput) => void + ): void; + public startModelPackagingJob( + args: StartModelPackagingJobCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StartModelPackagingJobCommandOutput) => void), + cb?: (err: any, data?: StartModelPackagingJobCommandOutput) => void + ): Promise | void { + const command = new StartModelPackagingJobCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Stops the hosting of a running model. The operation might take a while to complete. To * check the current status, call DescribeModel.

                      @@ -717,10 +894,21 @@ export class LookoutVision extends LookoutVisionClient { } /** - *

                      Adds one or more JSON Line entries to a dataset. A JSON Line includes information about an image - * used for training or testing an Amazon Lookout for Vision model. The following is an example JSON Line.

                      + *

                      Adds or updates one or more JSON Line entries in a dataset. A JSON Line includes information about an image + * used for training or testing an Amazon Lookout for Vision model.

                      + *

                      To update an existing JSON Line, use the source-ref field to identify the JSON Line. The JSON line + * that you supply replaces the existing JSON line. Any existing annotations that are not in the new JSON line are removed from the dataset. + *

                      * * + *

                      For more information, see + * Defining JSON lines for anomaly classification in the Amazon Lookout for Vision Developer Guide.

                      + * + * + *

                      The images you reference in the source-ref field of a JSON line, must be + * in the same S3 bucket as the existing images in the dataset.

                      + *
                      + * *

                      Updating a dataset might take a while to complete. To check the current status, call DescribeDataset and * check the Status field in the response.

                      *

                      This operation requires permissions to perform the diff --git a/clients/client-lookoutvision/src/LookoutVisionClient.ts b/clients/client-lookoutvision/src/LookoutVisionClient.ts index d5a800da8319..f66a0cc96710 100644 --- a/clients/client-lookoutvision/src/LookoutVisionClient.ts +++ b/clients/client-lookoutvision/src/LookoutVisionClient.ts @@ -57,9 +57,17 @@ import { DeleteModelCommandInput, DeleteModelCommandOutput } from "./commands/De import { DeleteProjectCommandInput, DeleteProjectCommandOutput } from "./commands/DeleteProjectCommand"; import { DescribeDatasetCommandInput, DescribeDatasetCommandOutput } from "./commands/DescribeDatasetCommand"; import { DescribeModelCommandInput, DescribeModelCommandOutput } from "./commands/DescribeModelCommand"; +import { + DescribeModelPackagingJobCommandInput, + DescribeModelPackagingJobCommandOutput, +} from "./commands/DescribeModelPackagingJobCommand"; import { DescribeProjectCommandInput, DescribeProjectCommandOutput } from "./commands/DescribeProjectCommand"; import { DetectAnomaliesCommandInput, DetectAnomaliesCommandOutput } from "./commands/DetectAnomaliesCommand"; import { ListDatasetEntriesCommandInput, ListDatasetEntriesCommandOutput } from "./commands/ListDatasetEntriesCommand"; +import { + ListModelPackagingJobsCommandInput, + ListModelPackagingJobsCommandOutput, +} from "./commands/ListModelPackagingJobsCommand"; import { ListModelsCommandInput, ListModelsCommandOutput } from "./commands/ListModelsCommand"; import { ListProjectsCommandInput, ListProjectsCommandOutput } from "./commands/ListProjectsCommand"; import { @@ -67,6 +75,10 @@ import { ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; import { StartModelCommandInput, StartModelCommandOutput } from "./commands/StartModelCommand"; +import { + StartModelPackagingJobCommandInput, + StartModelPackagingJobCommandOutput, +} from "./commands/StartModelPackagingJobCommand"; import { StopModelCommandInput, StopModelCommandOutput } from "./commands/StopModelCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; @@ -85,13 +97,16 @@ export type ServiceInputTypes = | DeleteProjectCommandInput | DescribeDatasetCommandInput | DescribeModelCommandInput + | DescribeModelPackagingJobCommandInput | DescribeProjectCommandInput | DetectAnomaliesCommandInput | ListDatasetEntriesCommandInput + | ListModelPackagingJobsCommandInput | ListModelsCommandInput | ListProjectsCommandInput | ListTagsForResourceCommandInput | StartModelCommandInput + | StartModelPackagingJobCommandInput | StopModelCommandInput | TagResourceCommandInput | UntagResourceCommandInput @@ -106,13 +121,16 @@ export type ServiceOutputTypes = | DeleteProjectCommandOutput | DescribeDatasetCommandOutput | DescribeModelCommandOutput + | DescribeModelPackagingJobCommandOutput | DescribeProjectCommandOutput | DetectAnomaliesCommandOutput | ListDatasetEntriesCommandOutput + | ListModelPackagingJobsCommandOutput | ListModelsCommandOutput | ListProjectsCommandOutput | ListTagsForResourceCommandOutput | StartModelCommandOutput + | StartModelPackagingJobCommandOutput | StopModelCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput diff --git a/clients/client-lookoutvision/src/commands/DeleteModelCommand.ts b/clients/client-lookoutvision/src/commands/DeleteModelCommand.ts index 729f535cb800..1195977363c4 100644 --- a/clients/client-lookoutvision/src/commands/DeleteModelCommand.ts +++ b/clients/client-lookoutvision/src/commands/DeleteModelCommand.ts @@ -25,8 +25,9 @@ export interface DeleteModelCommandOutput extends DeleteModelResponse, __Metadat *

                      Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model, * use the StopModel operation.

                      *

                      It might take a few seconds to delete a model. To determine if a model has been deleted, call - * ListProjects and check if the version of the model (ModelVersion) is in the + * ListModels and check if the version of the model (ModelVersion) is in the * Models array.

                      + *

                      *

                      This operation requires permissions to perform the * lookoutvision:DeleteModel operation.

                      * @example diff --git a/clients/client-lookoutvision/src/commands/DescribeModelPackagingJobCommand.ts b/clients/client-lookoutvision/src/commands/DescribeModelPackagingJobCommand.ts new file mode 100644 index 000000000000..40f1d752c011 --- /dev/null +++ b/clients/client-lookoutvision/src/commands/DescribeModelPackagingJobCommand.ts @@ -0,0 +1,104 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { LookoutVisionClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LookoutVisionClient"; +import { DescribeModelPackagingJobRequest, DescribeModelPackagingJobResponse } from "../models/models_0"; +import { + deserializeAws_restJson1DescribeModelPackagingJobCommand, + serializeAws_restJson1DescribeModelPackagingJobCommand, +} from "../protocols/Aws_restJson1"; + +export interface DescribeModelPackagingJobCommandInput extends DescribeModelPackagingJobRequest {} +export interface DescribeModelPackagingJobCommandOutput extends DescribeModelPackagingJobResponse, __MetadataBearer {} + +/** + *

                      Describes an Amazon Lookout for Vision model packaging job. + *

                      + *

                      This operation requires permissions to perform the + * lookoutvision:DescribeModelPackagingJob operation.

                      + * + *

                      For more information, see + * Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LookoutVisionClient, DescribeModelPackagingJobCommand } from "@aws-sdk/client-lookoutvision"; // ES Modules import + * // const { LookoutVisionClient, DescribeModelPackagingJobCommand } = require("@aws-sdk/client-lookoutvision"); // CommonJS import + * const client = new LookoutVisionClient(config); + * const command = new DescribeModelPackagingJobCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeModelPackagingJobCommandInput} for command's `input` shape. + * @see {@link DescribeModelPackagingJobCommandOutput} for command's `response` shape. + * @see {@link LookoutVisionClientResolvedConfig | config} for LookoutVisionClient's `config` shape. + * + */ +export class DescribeModelPackagingJobCommand extends $Command< + DescribeModelPackagingJobCommandInput, + DescribeModelPackagingJobCommandOutput, + LookoutVisionClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeModelPackagingJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LookoutVisionClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LookoutVisionClient"; + const commandName = "DescribeModelPackagingJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeModelPackagingJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeModelPackagingJobResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeModelPackagingJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DescribeModelPackagingJobCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1DescribeModelPackagingJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-lookoutvision/src/commands/ListModelPackagingJobsCommand.ts b/clients/client-lookoutvision/src/commands/ListModelPackagingJobsCommand.ts new file mode 100644 index 000000000000..71b5e69e338f --- /dev/null +++ b/clients/client-lookoutvision/src/commands/ListModelPackagingJobsCommand.ts @@ -0,0 +1,103 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { LookoutVisionClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LookoutVisionClient"; +import { ListModelPackagingJobsRequest, ListModelPackagingJobsResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListModelPackagingJobsCommand, + serializeAws_restJson1ListModelPackagingJobsCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListModelPackagingJobsCommandInput extends ListModelPackagingJobsRequest {} +export interface ListModelPackagingJobsCommandOutput extends ListModelPackagingJobsResponse, __MetadataBearer {} + +/** + *

                      + * Lists the model packaging jobs created for an Amazon Lookout for Vision project. + *

                      + *

                      This operation requires permissions to perform the + * lookoutvision:ListModelPackagingJobs operation. + *

                      + * + *

                      For more information, see + * Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LookoutVisionClient, ListModelPackagingJobsCommand } from "@aws-sdk/client-lookoutvision"; // ES Modules import + * // const { LookoutVisionClient, ListModelPackagingJobsCommand } = require("@aws-sdk/client-lookoutvision"); // CommonJS import + * const client = new LookoutVisionClient(config); + * const command = new ListModelPackagingJobsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListModelPackagingJobsCommandInput} for command's `input` shape. + * @see {@link ListModelPackagingJobsCommandOutput} for command's `response` shape. + * @see {@link LookoutVisionClientResolvedConfig | config} for LookoutVisionClient's `config` shape. + * + */ +export class ListModelPackagingJobsCommand extends $Command< + ListModelPackagingJobsCommandInput, + ListModelPackagingJobsCommandOutput, + LookoutVisionClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListModelPackagingJobsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LookoutVisionClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LookoutVisionClient"; + const commandName = "ListModelPackagingJobsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListModelPackagingJobsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListModelPackagingJobsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListModelPackagingJobsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListModelPackagingJobsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListModelPackagingJobsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-lookoutvision/src/commands/ListModelsCommand.ts b/clients/client-lookoutvision/src/commands/ListModelsCommand.ts index 93264f5ba225..295c7785485e 100644 --- a/clients/client-lookoutvision/src/commands/ListModelsCommand.ts +++ b/clients/client-lookoutvision/src/commands/ListModelsCommand.ts @@ -23,6 +23,9 @@ export interface ListModelsCommandOutput extends ListModelsResponse, __MetadataB /** *

                      Lists the versions of a model in an Amazon Lookout for Vision project.

                      + *

                      The ListModels operation is eventually consistent. + * Recent calls to CreateModel might + * take a while to appear in the response from ListProjects.

                      *

                      This operation requires permissions to perform the * lookoutvision:ListModels operation.

                      * @example diff --git a/clients/client-lookoutvision/src/commands/ListProjectsCommand.ts b/clients/client-lookoutvision/src/commands/ListProjectsCommand.ts index a411014d6dd3..44e5f7413d84 100644 --- a/clients/client-lookoutvision/src/commands/ListProjectsCommand.ts +++ b/clients/client-lookoutvision/src/commands/ListProjectsCommand.ts @@ -23,6 +23,9 @@ export interface ListProjectsCommandOutput extends ListProjectsResponse, __Metad /** *

                      Lists the Amazon Lookout for Vision projects in your AWS account.

                      + *

                      The ListProjects operation is eventually consistent. + * Recent calls to CreateProject and DeleteProject might + * take a while to appear in the response from ListProjects.

                      *

                      This operation requires permissions to perform the * lookoutvision:ListProjects operation.

                      * @example diff --git a/clients/client-lookoutvision/src/commands/StartModelPackagingJobCommand.ts b/clients/client-lookoutvision/src/commands/StartModelPackagingJobCommand.ts new file mode 100644 index 000000000000..0d3764b52e22 --- /dev/null +++ b/clients/client-lookoutvision/src/commands/StartModelPackagingJobCommand.ts @@ -0,0 +1,140 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { LookoutVisionClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LookoutVisionClient"; +import { StartModelPackagingJobRequest, StartModelPackagingJobResponse } from "../models/models_0"; +import { + deserializeAws_restJson1StartModelPackagingJobCommand, + serializeAws_restJson1StartModelPackagingJobCommand, +} from "../protocols/Aws_restJson1"; + +export interface StartModelPackagingJobCommandInput extends StartModelPackagingJobRequest {} +export interface StartModelPackagingJobCommandOutput extends StartModelPackagingJobResponse, __MetadataBearer {} + +/** + *

                      Starts an Amazon Lookout for Vision model packaging job. A model packaging job creates an AWS IoT Greengrass component for + * a Lookout for Vision model. You can use the component to deploy your model to an edge device managed by Greengrass. + *

                      + * + *

                      Use the DescribeModelPackagingJob API to determine the current status of the job. + * + * The model packaging job is complete if the value of Status is SUCCEEDED.

                      + *

                      To deploy the component + * to the target device, use the component name and component version + * with the AWS IoT Greengrass CreateDeployment API.

                      + * + *

                      This operation requires the following permissions:

                      + *
                        + *
                      • + *

                        + * lookoutvision:StartModelPackagingJobs + *

                        + *
                      • + *
                      • + *

                        + * s3:PutObject + *

                        + *
                      • + *
                      • + *

                        + * s3:GetBucketLocation + *

                        + *
                      • + *
                      • + *

                        + * greengrass:CreateComponentVersion + *

                        + *
                      • + *
                      • + *

                        + * greengrass:DescribeComponent + *

                        + *
                      • + *
                      • + *

                        (Optional) greengrass:TagResource. Only required if you want to tag the component.

                        + *
                      • + *
                      + * + * + *

                      For more information, see + * Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LookoutVisionClient, StartModelPackagingJobCommand } from "@aws-sdk/client-lookoutvision"; // ES Modules import + * // const { LookoutVisionClient, StartModelPackagingJobCommand } = require("@aws-sdk/client-lookoutvision"); // CommonJS import + * const client = new LookoutVisionClient(config); + * const command = new StartModelPackagingJobCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link StartModelPackagingJobCommandInput} for command's `input` shape. + * @see {@link StartModelPackagingJobCommandOutput} for command's `response` shape. + * @see {@link LookoutVisionClientResolvedConfig | config} for LookoutVisionClient's `config` shape. + * + */ +export class StartModelPackagingJobCommand extends $Command< + StartModelPackagingJobCommandInput, + StartModelPackagingJobCommandOutput, + LookoutVisionClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartModelPackagingJobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: LookoutVisionClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "LookoutVisionClient"; + const commandName = "StartModelPackagingJobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StartModelPackagingJobRequest.filterSensitiveLog, + outputFilterSensitiveLog: StartModelPackagingJobResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StartModelPackagingJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1StartModelPackagingJobCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1StartModelPackagingJobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-lookoutvision/src/commands/UpdateDatasetEntriesCommand.ts b/clients/client-lookoutvision/src/commands/UpdateDatasetEntriesCommand.ts index b3f64abb41f1..0990995d1997 100644 --- a/clients/client-lookoutvision/src/commands/UpdateDatasetEntriesCommand.ts +++ b/clients/client-lookoutvision/src/commands/UpdateDatasetEntriesCommand.ts @@ -22,10 +22,21 @@ export interface UpdateDatasetEntriesCommandInput extends UpdateDatasetEntriesRe export interface UpdateDatasetEntriesCommandOutput extends UpdateDatasetEntriesResponse, __MetadataBearer {} /** - *

                      Adds one or more JSON Line entries to a dataset. A JSON Line includes information about an image - * used for training or testing an Amazon Lookout for Vision model. The following is an example JSON Line.

                      + *

                      Adds or updates one or more JSON Line entries in a dataset. A JSON Line includes information about an image + * used for training or testing an Amazon Lookout for Vision model.

                      + *

                      To update an existing JSON Line, use the source-ref field to identify the JSON Line. The JSON line + * that you supply replaces the existing JSON line. Any existing annotations that are not in the new JSON line are removed from the dataset. + *

                      * * + *

                      For more information, see + * Defining JSON lines for anomaly classification in the Amazon Lookout for Vision Developer Guide.

                      + * + * + *

                      The images you reference in the source-ref field of a JSON line, must be + * in the same S3 bucket as the existing images in the dataset.

                      + *
                      + * *

                      Updating a dataset might take a while to complete. To check the current status, call DescribeDataset and * check the Status field in the response.

                      *

                      This operation requires permissions to perform the diff --git a/clients/client-lookoutvision/src/commands/index.ts b/clients/client-lookoutvision/src/commands/index.ts index 5e1e80a8f38c..9770dc3f67e6 100644 --- a/clients/client-lookoutvision/src/commands/index.ts +++ b/clients/client-lookoutvision/src/commands/index.ts @@ -6,13 +6,16 @@ export * from "./DeleteModelCommand"; export * from "./DeleteProjectCommand"; export * from "./DescribeDatasetCommand"; export * from "./DescribeModelCommand"; +export * from "./DescribeModelPackagingJobCommand"; export * from "./DescribeProjectCommand"; export * from "./DetectAnomaliesCommand"; export * from "./ListDatasetEntriesCommand"; +export * from "./ListModelPackagingJobsCommand"; export * from "./ListModelsCommand"; export * from "./ListProjectsCommand"; export * from "./ListTagsForResourceCommand"; export * from "./StartModelCommand"; +export * from "./StartModelPackagingJobCommand"; export * from "./StopModelCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; diff --git a/clients/client-lookoutvision/src/endpoints.ts b/clients/client-lookoutvision/src/endpoints.ts index 1c7f3b777955..b3a6050158a8 100644 --- a/clients/client-lookoutvision/src/endpoints.ts +++ b/clients/client-lookoutvision/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-lookoutvision/src/models/models_0.ts b/clients/client-lookoutvision/src/models/models_0.ts index 75231c402fc2..0604483caafd 100644 --- a/clients/client-lookoutvision/src/models/models_0.ts +++ b/clients/client-lookoutvision/src/models/models_0.ts @@ -22,6 +22,7 @@ export namespace AccessDeniedException { export enum ResourceType { DATASET = "DATASET", MODEL = "MODEL", + MODEL_PACKAGE_JOB = "MODEL_PACKAGE_JOB", PROJECT = "PROJECT", TRIAL = "TRIAL", } @@ -147,11 +148,14 @@ export interface CreateDatasetRequest { /** *

                      ClientToken is an idempotency token that ensures a call to CreateDataset - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from CreateDataset. + * completes only once. You choose the value to pass. For example, An issue might prevent you + * from getting a response from CreateDataset. * In this case, safely retry your call - * to CreateDataset by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to CreateDataset by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple dataset creation requests. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to CreateDataset. An idempotency * token is active for 8 hours. *

                      @@ -182,7 +186,8 @@ export enum DatasetStatus { } /** - *

                      Sumary information for an Amazon Lookout for Vision dataset.

                      + *

                      Summary information for an Amazon Lookout for Vision dataset. For more information, + * see DescribeDataset and ProjectDescription.

                      */ export interface DatasetMetadata { /** @@ -370,16 +375,18 @@ export namespace ValidationException { } /** - *

                      Information about the location training output.

                      + *

                      Information about the location of training output or the output of a model packaging job.

                      */ export interface S3Location { /** - *

                      The S3 bucket that contains the training output.

                      + *

                      The S3 bucket that contains the training or model packaging job output. If you are training a model, + * the bucket must in your AWS account. If you use an S3 bucket for a model packaging job, + * the S3 bucket must be in the same AWS Region and AWS account in which you use AWS IoT Greengrass.

                      */ Bucket: string | undefined; /** - *

                      The path of the folder, within the S3 bucket, that contains the training output.

                      + *

                      The path of the folder, within the S3 bucket, that contains the output.

                      */ Prefix?: string; } @@ -449,11 +456,14 @@ export interface CreateModelRequest { /** *

                      ClientToken is an idempotency token that ensures a call to CreateModel - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from CreateModel. + * completes only once. You choose the value to pass. For example, An issue + * might prevent you from getting a response from CreateModel. * In this case, safely retry your call - * to CreateModel by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to CreateModel by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from starting multiple training jobs. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to CreateModel. An idempotency * token is active for 8 hours.

                      */ @@ -465,7 +475,7 @@ export interface CreateModelRequest { OutputConfig: OutputConfig | undefined; /** - *

                      The identifier for your AWS Key Management Service (AWS KMS) customer master key (CMK). + *

                      The identifier for your AWS KMS key. * The key is used to encrypt training and test images copied into the service for model training. Your * source images are unaffected. * If this parameter is not specified, the copied images are encrypted by a key that AWS owns and manages.

                      @@ -601,10 +611,14 @@ export interface CreateProjectRequest { /** *

                      ClientToken is an idempotency token that ensures a call to CreateProject - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from CreateProject. + * completes only once. You choose the value to pass. For example, An issue might prevent you from + * getting a response from CreateProject. * In this case, safely retry your call - * to CreateProject by using the same ClientToken parameter value. An error occurs + * to CreateProject by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple project creation requests. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs * if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to CreateProject. An idempotency * token is active for 8 hours.

                      @@ -736,7 +750,7 @@ export interface DatasetDescription { StatusMessage?: string; /** - *

                      + *

                      Statistics about the images in a dataset.

                      */ ImageStats?: DatasetImageStats; } @@ -765,11 +779,13 @@ export interface DeleteDatasetRequest { /** *

                      ClientToken is an idempotency token that ensures a call to DeleteDataset - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from DeleteDataset. + * completes only once. You choose the value to pass. For example, An issue might prevent you from getting a response from DeleteDataset. * In this case, safely retry your call - * to DeleteDataset by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to DeleteDataset by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple deletetion requests. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to DeleteDataset. An idempotency * token is active for 8 hours.

                      */ @@ -809,11 +825,15 @@ export interface DeleteModelRequest { /** *

                      ClientToken is an idempotency token that ensures a call to DeleteModel - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from DeleteModel. + * completes only once. You choose the value to pass. For example, an issue might prevent + * you from getting a response from DeleteModel. * In this case, safely retry your call - * to DeleteModel by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to DeleteModel by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple model deletion requests. You'll need to + * provide your own value for other use cases.

                      + * + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to DeleteModel. An idempotency * token is active for 8 hours.

                      */ @@ -853,11 +873,14 @@ export interface DeleteProjectRequest { /** *

                      ClientToken is an idempotency token that ensures a call to DeleteProject - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from DeleteProject. + * completes only once. You choose the value to pass. For example, An issue + * might prevent you from getting a response from DeleteProject. * In this case, safely retry your call - * to DeleteProject by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to DeleteProject by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple project deletion requests. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to DeleteProject. An idempotency * token is active for 8 hours.

                      */ @@ -1066,6 +1089,368 @@ export namespace DescribeModelResponse { }); } +export interface DescribeModelPackagingJobRequest { + /** + *

                      The name of the project that contains the model packaging job that you want to describe. + *

                      + */ + ProjectName: string | undefined; + + /** + *

                      The job name for the model packaging job. + * + *

                      + */ + JobName: string | undefined; +} + +export namespace DescribeModelPackagingJobRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeModelPackagingJobRequest): any => ({ + ...obj, + }); +} + +export enum TargetDevice { + JETSON_XAVIER = "jetson_xavier", +} + +export enum TargetPlatformAccelerator { + NVIDIA = "NVIDIA", +} + +export enum TargetPlatformArch { + ARM64 = "ARM64", + X86_64 = "X86_64", +} + +export enum TargetPlatformOs { + LINUX = "LINUX", +} + +/** + *

                      The platform on which a model runs on an AWS IoT Greengrass core device.

                      + */ +export interface TargetPlatform { + /** + *

                      The target operating system for the model. Linux is the only operating system + * that is currently supported. + *

                      + */ + Os: TargetPlatformOs | string | undefined; + + /** + *

                      The target architecture for the model. The currently supported architectures are + * X86_64 (64-bit version of the x86 instruction set) and ARM_64 (ARMv8 64-bit CPU). + *

                      + */ + Arch: TargetPlatformArch | string | undefined; + + /** + *

                      The target accelerator for the model. NVIDIA (Nvidia graphics processing unit) + * is the only accelerator that is currently supported. You must also specify the gpu-code, trt-ver, + * and cuda-ver compiler options. + * + *

                      + */ + Accelerator: TargetPlatformAccelerator | string | undefined; +} + +export namespace TargetPlatform { + /** + * @internal + */ + export const filterSensitiveLog = (obj: TargetPlatform): any => ({ + ...obj, + }); +} + +/** + *

                      Configuration information for the AWS IoT Greengrass component created in a model packaging job. + * For more information, see StartModelPackagingJob. + *

                      + * + *

                      You can't specify a component with the same ComponentName and Componentversion as + * an existing component with the same component name and component version.

                      + *
                      + */ +export interface GreengrassConfiguration { + /** + *

                      Additional compiler options for the Greengrass component. Currently, + * only NVIDIA Graphics Processing Units (GPU) are supported.

                      + * + * + *

                      For more information, see + * Compiler options in the Amazon Lookout for Vision Developer Guide.

                      + */ + CompilerOptions: string | undefined; + + /** + *

                      The target device for the model. Currently the only supported value is jetson_xavier. + * If you specify TargetDevice, you can't specify + * TargetPlatform. + * + *

                      + */ + TargetDevice?: TargetDevice | string; + + /** + *

                      The target platform for the model. If you specify TargetPlatform, you can't specify + * TargetDevice. + *

                      + */ + TargetPlatform?: TargetPlatform; + + /** + *

                      + * An S3 location in which Lookout for Vision stores the component artifacts. + *

                      + */ + S3OutputLocation: S3Location | undefined; + + /** + *

                      + * A name for the AWS IoT Greengrass component. + *

                      + */ + ComponentName: string | undefined; + + /** + *

                      A Version for the AWS IoT Greengrass component. If you don't provide a + * value, a default value of + * Model Version.0.0 is used. + *

                      + */ + ComponentVersion?: string; + + /** + *

                      + * A description for the AWS IoT Greengrass component. + *

                      + */ + ComponentDescription?: string; + + /** + *

                      + * A set of tags (key-value pairs) that you want to attach to the AWS IoT Greengrass component. + *

                      + */ + Tags?: Tag[]; +} + +export namespace GreengrassConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GreengrassConfiguration): any => ({ + ...obj, + }); +} + +/** + *

                      + * Configuration information for a Amazon Lookout for Vision model packaging job. For more information, + * see StartModelPackagingJob. + *

                      + */ +export interface ModelPackagingConfiguration { + /** + *

                      + * Configuration information for the AWS IoT Greengrass component in a model packaging job. + *

                      + */ + Greengrass: GreengrassConfiguration | undefined; +} + +export namespace ModelPackagingConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ModelPackagingConfiguration): any => ({ + ...obj, + }); +} + +/** + *

                      Information about the AWS IoT Greengrass component created by a model packaging job. + * + *

                      + */ +export interface GreengrassOutputDetails { + /** + *

                      + * The Amazon Resource Name (ARN) of the component. + *

                      + */ + ComponentVersionArn?: string; + + /** + *

                      + * The name of the component. + *

                      + */ + ComponentName?: string; + + /** + *

                      + * The version of the component. + *

                      + */ + ComponentVersion?: string; +} + +export namespace GreengrassOutputDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GreengrassOutputDetails): any => ({ + ...obj, + }); +} + +/** + *

                      + * Information about the output from a model packaging job. + *

                      + */ +export interface ModelPackagingOutputDetails { + /** + *

                      + * Information about the AWS IoT Greengrass component in a model packaging job. + *

                      + */ + Greengrass?: GreengrassOutputDetails; +} + +export namespace ModelPackagingOutputDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ModelPackagingOutputDetails): any => ({ + ...obj, + }); +} + +export enum ModelPackagingJobStatus { + CREATED = "CREATED", + FAILED = "FAILED", + RUNNING = "RUNNING", + SUCCEEDED = "SUCCEEDED", +} + +/** + *

                      + * Information about a model packaging job. For more information, see + * DescribeModelPackagingJob. + *

                      + */ +export interface ModelPackagingDescription { + /** + *

                      + * The name of the model packaging job. + *

                      + */ + JobName?: string; + + /** + *

                      The name of the project that's associated with a model that's in the model package. + * + *

                      + */ + ProjectName?: string; + + /** + *

                      The version of the model used in the model packaging job. + * + *

                      + */ + ModelVersion?: string; + + /** + *

                      + * The configuration information used in the model packaging job. + *

                      + */ + ModelPackagingConfiguration?: ModelPackagingConfiguration; + + /** + *

                      The description for the model packaging job. + * + *

                      + */ + ModelPackagingJobDescription?: string; + + /** + *

                      The AWS service used to package the job. Currently Lookout for Vision can package + * jobs with AWS IoT Greengrass. + *

                      + */ + ModelPackagingMethod?: string; + + /** + *

                      Information about the output of the model packaging job. For more information, + * see DescribeModelPackagingJob. + *

                      + */ + ModelPackagingOutputDetails?: ModelPackagingOutputDetails; + + /** + *

                      + * The status of the model packaging job. + *

                      + */ + Status?: ModelPackagingJobStatus | string; + + /** + *

                      + * The status message for the model packaging job. + *

                      + */ + StatusMessage?: string; + + /** + *

                      + * The Unix timestamp for the time and date that the model packaging job was created. + *

                      + */ + CreationTimestamp?: Date; + + /** + *

                      + * The Unix timestamp for the time and date that the model packaging job was last updated. + *

                      + */ + LastUpdatedTimestamp?: Date; +} + +export namespace ModelPackagingDescription { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ModelPackagingDescription): any => ({ + ...obj, + }); +} + +export interface DescribeModelPackagingJobResponse { + /** + *

                      The description of the model packaging job. + *

                      + */ + ModelPackagingDescription?: ModelPackagingDescription; +} + +export namespace DescribeModelPackagingJobResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeModelPackagingJobResponse): any => ({ + ...obj, + }); +} + export interface DescribeProjectRequest { /** *

                      The name of the project that you want to describe.

                      @@ -1316,6 +1701,138 @@ export namespace ListDatasetEntriesResponse { }); } +export interface ListModelPackagingJobsRequest { + /** + *

                      + * The name of the project for which you want to list the model packaging jobs. + *

                      + */ + ProjectName: string | undefined; + + /** + *

                      If the previous response was incomplete (because there is more + * results to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination + * token to retrieve the next set of results.

                      + */ + NextToken?: string; + + /** + *

                      The maximum number of results to return per paginated call. The largest value you can specify is 100. + * If you specify a value greater than 100, a ValidationException + * error occurs. The default value is 100.

                      + */ + MaxResults?: number; +} + +export namespace ListModelPackagingJobsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListModelPackagingJobsRequest): any => ({ + ...obj, + }); +} + +/** + *

                      + * Metadata for a model packaging job. For more information, see ListModelPackagingJobs. + *

                      + */ +export interface ModelPackagingJobMetadata { + /** + *

                      + * The name of the model packaging job. + *

                      + */ + JobName?: string; + + /** + *

                      + * The project that contains the model that is in the model package. + *

                      + */ + ProjectName?: string; + + /** + *

                      + * The version of the model that is in the model package. + *

                      + */ + ModelVersion?: string; + + /** + *

                      + * The description for the model packaging job. + *

                      + */ + ModelPackagingJobDescription?: string; + + /** + *

                      + * The AWS service used to package the job. Currently Lookout for Vision can package + * jobs with AWS IoT Greengrass. + *

                      + */ + ModelPackagingMethod?: string; + + /** + *

                      The status of the model packaging job. + *

                      + */ + Status?: ModelPackagingJobStatus | string; + + /** + *

                      The status message for the model packaging job. + *

                      + */ + StatusMessage?: string; + + /** + *

                      The Unix timestamp for the time and date that the model packaging job was created.

                      + */ + CreationTimestamp?: Date; + + /** + *

                      The Unix timestamp for the time and date that the model packaging job was last updated.

                      + */ + LastUpdatedTimestamp?: Date; +} + +export namespace ModelPackagingJobMetadata { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ModelPackagingJobMetadata): any => ({ + ...obj, + }); +} + +export interface ListModelPackagingJobsResponse { + /** + *

                      + * A list of the model packaging jobs created for the specified Amazon Lookout for Vision project. + *

                      + */ + ModelPackagingJobs?: ModelPackagingJobMetadata[]; + + /** + *

                      If the previous response was incomplete (because there is more + * results to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination + * token to retrieve the next set of results. + *

                      + */ + NextToken?: string; +} + +export namespace ListModelPackagingJobsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListModelPackagingJobsResponse): any => ({ + ...obj, + }); +} + export interface ListModelsRequest { /** *

                      The name of the project that contains the model versions that you want to list.

                      @@ -1460,7 +1977,7 @@ export interface StartModelRequest { /** *

                      The minimum number of inference units to use. A single - * inference unit represents 1 hour of processing and can support up to 5 Transaction Pers Second (TPS). + * inference unit represents 1 hour of processing. * Use a higher number to increase the TPS throughput of your model. You are charged for the number * of inference units that you use. *

                      @@ -1469,11 +1986,15 @@ export interface StartModelRequest { /** *

                      ClientToken is an idempotency token that ensures a call to StartModel - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from StartModel. + * completes only once. You choose the value to pass. For example, An issue might prevent + * you from getting a response from StartModel. * In this case, safely retry your call - * to StartModel by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to StartModel by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple start requests. You'll need to + * provide your own value for other use cases.

                      + * + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to StartModel. An idempotency * token is active for 8 hours. *

                      @@ -1514,6 +2035,85 @@ export namespace StartModelResponse { }); } +export interface StartModelPackagingJobRequest { + /** + *

                      + * The name of the project which contains the version of the model that you want to package. + *

                      + */ + ProjectName: string | undefined; + + /** + *

                      + * The version of the model within the project that you want to package. + *

                      + */ + ModelVersion: string | undefined; + + /** + *

                      A name for the model packaging job. If you don't supply a value, the service creates + * a job name for you. + *

                      + */ + JobName?: string; + + /** + *

                      The configuration for the model packaging job. + *

                      + */ + Configuration: ModelPackagingConfiguration | undefined; + + /** + *

                      A description for the model packaging job. + *

                      + */ + Description?: string; + + /** + *

                      ClientToken is an idempotency token that ensures a call to StartModelPackagingJob + * completes only once. You choose the value to pass. For example, An issue might prevent you + * from getting a response from StartModelPackagingJob. + * In this case, safely retry your call + * to StartModelPackagingJob by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple dataset creation requests. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different + * value for ClientToken is considered a new call to StartModelPackagingJob. An idempotency + * token is active for 8 hours. + *

                      + */ + ClientToken?: string; +} + +export namespace StartModelPackagingJobRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StartModelPackagingJobRequest): any => ({ + ...obj, + }); +} + +export interface StartModelPackagingJobResponse { + /** + *

                      The job name for the model packaging job. If you don't supply a job name in the JobName input parameter, + * the service creates a job name for you. + * + *

                      + */ + JobName?: string; +} + +export namespace StartModelPackagingJobResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StartModelPackagingJobResponse): any => ({ + ...obj, + }); +} + export interface StopModelRequest { /** *

                      The name of the project that contains the model that you want to stop.

                      @@ -1527,11 +2127,14 @@ export interface StopModelRequest { /** *

                      ClientToken is an idempotency token that ensures a call to StopModel - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from StopModel. + * completes only once. You choose the value to pass. For example, An issue + * might prevent you from getting a response from StopModel. * In this case, safely retry your call - * to StopModel by using the same ClientToken parameter value. An error occurs - * if the other input parameters are not the same as in the first request. Using a different + * to StopModel by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple stop requests. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to StopModel. An idempotency * token is active for 8 hours. * @@ -1650,10 +2253,14 @@ export interface UpdateDatasetEntriesRequest { /** *

                      ClientToken is an idempotency token that ensures a call to UpdateDatasetEntries - * completes only once. You choose the value to pass. For example, An issue, - * such as an network outage, might prevent you from getting a response from UpdateDatasetEntries. + * completes only once. You choose the value to pass. For example, An issue + * might prevent you from getting a response from UpdateDatasetEntries. * In this case, safely retry your call - * to UpdateDatasetEntries by using the same ClientToken parameter value. An error occurs + * to UpdateDatasetEntries by using the same ClientToken parameter value.

                      + *

                      If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. + * This prevents retries after a network error from making multiple updates with the same dataset entries. You'll need to + * provide your own value for other use cases.

                      + *

                      An error occurs * if the other input parameters are not the same as in the first request. Using a different * value for ClientToken is considered a new call to UpdateDatasetEntries. An idempotency * token is active for 8 hours. diff --git a/clients/client-lookoutvision/src/pagination/ListModelPackagingJobsPaginator.ts b/clients/client-lookoutvision/src/pagination/ListModelPackagingJobsPaginator.ts new file mode 100644 index 000000000000..9b27be1a8743 --- /dev/null +++ b/clients/client-lookoutvision/src/pagination/ListModelPackagingJobsPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + ListModelPackagingJobsCommand, + ListModelPackagingJobsCommandInput, + ListModelPackagingJobsCommandOutput, +} from "../commands/ListModelPackagingJobsCommand"; +import { LookoutVision } from "../LookoutVision"; +import { LookoutVisionClient } from "../LookoutVisionClient"; +import { LookoutVisionPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: LookoutVisionClient, + input: ListModelPackagingJobsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListModelPackagingJobsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: LookoutVision, + input: ListModelPackagingJobsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listModelPackagingJobs(input, ...args); +}; +export async function* paginateListModelPackagingJobs( + config: LookoutVisionPaginationConfiguration, + input: ListModelPackagingJobsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListModelPackagingJobsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof LookoutVision) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof LookoutVisionClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected LookoutVision | LookoutVisionClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-lookoutvision/src/pagination/index.ts b/clients/client-lookoutvision/src/pagination/index.ts index 975909887bfa..aa13a0cda228 100644 --- a/clients/client-lookoutvision/src/pagination/index.ts +++ b/clients/client-lookoutvision/src/pagination/index.ts @@ -1,4 +1,5 @@ export * from "./Interfaces"; export * from "./ListDatasetEntriesPaginator"; +export * from "./ListModelPackagingJobsPaginator"; export * from "./ListModelsPaginator"; export * from "./ListProjectsPaginator"; diff --git a/clients/client-lookoutvision/src/protocols/Aws_restJson1.ts b/clients/client-lookoutvision/src/protocols/Aws_restJson1.ts index bf07aa3fbe1d..6eb17d20ce6e 100644 --- a/clients/client-lookoutvision/src/protocols/Aws_restJson1.ts +++ b/clients/client-lookoutvision/src/protocols/Aws_restJson1.ts @@ -28,9 +28,17 @@ import { DeleteModelCommandInput, DeleteModelCommandOutput } from "../commands/D import { DeleteProjectCommandInput, DeleteProjectCommandOutput } from "../commands/DeleteProjectCommand"; import { DescribeDatasetCommandInput, DescribeDatasetCommandOutput } from "../commands/DescribeDatasetCommand"; import { DescribeModelCommandInput, DescribeModelCommandOutput } from "../commands/DescribeModelCommand"; +import { + DescribeModelPackagingJobCommandInput, + DescribeModelPackagingJobCommandOutput, +} from "../commands/DescribeModelPackagingJobCommand"; import { DescribeProjectCommandInput, DescribeProjectCommandOutput } from "../commands/DescribeProjectCommand"; import { DetectAnomaliesCommandInput, DetectAnomaliesCommandOutput } from "../commands/DetectAnomaliesCommand"; import { ListDatasetEntriesCommandInput, ListDatasetEntriesCommandOutput } from "../commands/ListDatasetEntriesCommand"; +import { + ListModelPackagingJobsCommandInput, + ListModelPackagingJobsCommandOutput, +} from "../commands/ListModelPackagingJobsCommand"; import { ListModelsCommandInput, ListModelsCommandOutput } from "../commands/ListModelsCommand"; import { ListProjectsCommandInput, ListProjectsCommandOutput } from "../commands/ListProjectsCommand"; import { @@ -38,6 +46,10 @@ import { ListTagsForResourceCommandOutput, } from "../commands/ListTagsForResourceCommand"; import { StartModelCommandInput, StartModelCommandOutput } from "../commands/StartModelCommand"; +import { + StartModelPackagingJobCommandInput, + StartModelPackagingJobCommandOutput, +} from "../commands/StartModelPackagingJobCommand"; import { StopModelCommandInput, StopModelCommandOutput } from "../commands/StopModelCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; @@ -54,11 +66,17 @@ import { DatasetMetadata, DatasetSource, DetectAnomalyResult, + GreengrassConfiguration, + GreengrassOutputDetails, ImageSource, InputS3Object, InternalServerException, ModelDescription, ModelMetadata, + ModelPackagingConfiguration, + ModelPackagingDescription, + ModelPackagingJobMetadata, + ModelPackagingOutputDetails, ModelPerformance, OutputConfig, OutputS3Object, @@ -68,6 +86,7 @@ import { S3Location, ServiceQuotaExceededException, Tag, + TargetPlatform, ThrottlingException, ValidationException, } from "../models/models_0"; @@ -368,6 +387,45 @@ export const serializeAws_restJson1DescribeModelCommand = async ( }); }; +export const serializeAws_restJson1DescribeModelPackagingJobCommand = async ( + input: DescribeModelPackagingJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/2020-11-20/projects/{ProjectName}/modelpackagingjobs/{JobName}"; + if (input.ProjectName !== undefined) { + const labelValue: string = input.ProjectName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ProjectName."); + } + resolvedPath = resolvedPath.replace("{ProjectName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ProjectName."); + } + if (input.JobName !== undefined) { + const labelValue: string = input.JobName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: JobName."); + } + resolvedPath = resolvedPath.replace("{JobName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: JobName."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1DescribeProjectCommand = async ( input: DescribeProjectCommandInput, context: __SerdeContext @@ -495,6 +553,41 @@ export const serializeAws_restJson1ListDatasetEntriesCommand = async ( }); }; +export const serializeAws_restJson1ListModelPackagingJobsCommand = async ( + input: ListModelPackagingJobsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/2020-11-20/projects/{ProjectName}/modelpackagingjobs"; + if (input.ProjectName !== undefined) { + const labelValue: string = input.ProjectName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ProjectName."); + } + resolvedPath = resolvedPath.replace("{ProjectName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ProjectName."); + } + const query: any = { + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + export const serializeAws_restJson1ListModelsCommand = async ( input: ListModelsCommandInput, context: __SerdeContext @@ -628,6 +721,48 @@ export const serializeAws_restJson1StartModelCommand = async ( }); }; +export const serializeAws_restJson1StartModelPackagingJobCommand = async ( + input: StartModelPackagingJobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + ...(isSerializableHeaderValue(input.ClientToken) && { "x-amzn-client-token": input.ClientToken! }), + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/2020-11-20/projects/{ProjectName}/modelpackagingjobs"; + if (input.ProjectName !== undefined) { + const labelValue: string = input.ProjectName; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ProjectName."); + } + resolvedPath = resolvedPath.replace("{ProjectName}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ProjectName."); + } + let body: any; + body = JSON.stringify({ + ...(input.Configuration !== undefined && + input.Configuration !== null && { + Configuration: serializeAws_restJson1ModelPackagingConfiguration(input.Configuration, context), + }), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.JobName !== undefined && input.JobName !== null && { JobName: input.JobName }), + ...(input.ModelVersion !== undefined && input.ModelVersion !== null && { ModelVersion: input.ModelVersion }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1StopModelCommand = async ( input: StopModelCommandInput, context: __SerdeContext @@ -1562,6 +1697,96 @@ const deserializeAws_restJson1DescribeModelCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1DescribeModelPackagingJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1DescribeModelPackagingJobCommandError(output, context); + } + const contents: DescribeModelPackagingJobCommandOutput = { + $metadata: deserializeMetadata(output), + ModelPackagingDescription: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.ModelPackagingDescription !== undefined && data.ModelPackagingDescription !== null) { + contents.ModelPackagingDescription = deserializeAws_restJson1ModelPackagingDescription( + data.ModelPackagingDescription, + context + ); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1DescribeModelPackagingJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.lookoutvision#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.lookoutvision#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.lookoutvision#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.lookoutvision#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.lookoutvision#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1DescribeProjectCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1851,6 +2076,97 @@ const deserializeAws_restJson1ListDatasetEntriesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1ListModelPackagingJobsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListModelPackagingJobsCommandError(output, context); + } + const contents: ListModelPackagingJobsCommandOutput = { + $metadata: deserializeMetadata(output), + ModelPackagingJobs: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.ModelPackagingJobs !== undefined && data.ModelPackagingJobs !== null) { + contents.ModelPackagingJobs = deserializeAws_restJson1ModelPackagingJobsList(data.ModelPackagingJobs, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListModelPackagingJobsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.lookoutvision#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.lookoutvision#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.lookoutvision#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.lookoutvision#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.lookoutvision#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1ListModelsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2247,6 +2563,109 @@ const deserializeAws_restJson1StartModelCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1StartModelPackagingJobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1StartModelPackagingJobCommandError(output, context); + } + const contents: StartModelPackagingJobCommandOutput = { + $metadata: deserializeMetadata(output), + JobName: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.JobName !== undefined && data.JobName !== null) { + contents.JobName = __expectString(data.JobName); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1StartModelPackagingJobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.lookoutvision#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.lookoutvision#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.lookoutvision#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.lookoutvision#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.lookoutvision#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.lookoutvision#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.lookoutvision#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1StopModelCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2813,6 +3232,32 @@ const serializeAws_restJson1DatasetSource = (input: DatasetSource, context: __Se }; }; +const serializeAws_restJson1GreengrassConfiguration = ( + input: GreengrassConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.CompilerOptions !== undefined && + input.CompilerOptions !== null && { CompilerOptions: input.CompilerOptions }), + ...(input.ComponentDescription !== undefined && + input.ComponentDescription !== null && { ComponentDescription: input.ComponentDescription }), + ...(input.ComponentName !== undefined && input.ComponentName !== null && { ComponentName: input.ComponentName }), + ...(input.ComponentVersion !== undefined && + input.ComponentVersion !== null && { ComponentVersion: input.ComponentVersion }), + ...(input.S3OutputLocation !== undefined && + input.S3OutputLocation !== null && { + S3OutputLocation: serializeAws_restJson1S3Location(input.S3OutputLocation, context), + }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + ...(input.TargetDevice !== undefined && input.TargetDevice !== null && { TargetDevice: input.TargetDevice }), + ...(input.TargetPlatform !== undefined && + input.TargetPlatform !== null && { + TargetPlatform: serializeAws_restJson1TargetPlatform(input.TargetPlatform, context), + }), + }; +}; + const serializeAws_restJson1InputS3Object = (input: InputS3Object, context: __SerdeContext): any => { return { ...(input.Bucket !== undefined && input.Bucket !== null && { Bucket: input.Bucket }), @@ -2821,6 +3266,18 @@ const serializeAws_restJson1InputS3Object = (input: InputS3Object, context: __Se }; }; +const serializeAws_restJson1ModelPackagingConfiguration = ( + input: ModelPackagingConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.Greengrass !== undefined && + input.Greengrass !== null && { + Greengrass: serializeAws_restJson1GreengrassConfiguration(input.Greengrass, context), + }), + }; +}; + const serializeAws_restJson1OutputConfig = (input: OutputConfig, context: __SerdeContext): any => { return { ...(input.S3Location !== undefined && @@ -2853,6 +3310,14 @@ const serializeAws_restJson1TagList = (input: Tag[], context: __SerdeContext): a }); }; +const serializeAws_restJson1TargetPlatform = (input: TargetPlatform, context: __SerdeContext): any => { + return { + ...(input.Accelerator !== undefined && input.Accelerator !== null && { Accelerator: input.Accelerator }), + ...(input.Arch !== undefined && input.Arch !== null && { Arch: input.Arch }), + ...(input.Os !== undefined && input.Os !== null && { Os: input.Os }), + }; +}; + const deserializeAws_restJson1DatasetDescription = (output: any, context: __SerdeContext): DatasetDescription => { return { CreationTimestamp: @@ -2928,6 +3393,42 @@ const deserializeAws_restJson1DetectAnomalyResult = (output: any, context: __Ser } as any; }; +const deserializeAws_restJson1GreengrassConfiguration = ( + output: any, + context: __SerdeContext +): GreengrassConfiguration => { + return { + CompilerOptions: __expectString(output.CompilerOptions), + ComponentDescription: __expectString(output.ComponentDescription), + ComponentName: __expectString(output.ComponentName), + ComponentVersion: __expectString(output.ComponentVersion), + S3OutputLocation: + output.S3OutputLocation !== undefined && output.S3OutputLocation !== null + ? deserializeAws_restJson1S3Location(output.S3OutputLocation, context) + : undefined, + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + TargetDevice: __expectString(output.TargetDevice), + TargetPlatform: + output.TargetPlatform !== undefined && output.TargetPlatform !== null + ? deserializeAws_restJson1TargetPlatform(output.TargetPlatform, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1GreengrassOutputDetails = ( + output: any, + context: __SerdeContext +): GreengrassOutputDetails => { + return { + ComponentName: __expectString(output.ComponentName), + ComponentVersion: __expectString(output.ComponentVersion), + ComponentVersionArn: __expectString(output.ComponentVersionArn), + } as any; +}; + const deserializeAws_restJson1ImageSource = (output: any, context: __SerdeContext): ImageSource => { return { Type: __expectString(output.Type), @@ -2998,6 +3499,98 @@ const deserializeAws_restJson1ModelMetadataList = (output: any, context: __Serde }); }; +const deserializeAws_restJson1ModelPackagingConfiguration = ( + output: any, + context: __SerdeContext +): ModelPackagingConfiguration => { + return { + Greengrass: + output.Greengrass !== undefined && output.Greengrass !== null + ? deserializeAws_restJson1GreengrassConfiguration(output.Greengrass, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ModelPackagingDescription = ( + output: any, + context: __SerdeContext +): ModelPackagingDescription => { + return { + CreationTimestamp: + output.CreationTimestamp !== undefined && output.CreationTimestamp !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreationTimestamp))) + : undefined, + JobName: __expectString(output.JobName), + LastUpdatedTimestamp: + output.LastUpdatedTimestamp !== undefined && output.LastUpdatedTimestamp !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastUpdatedTimestamp))) + : undefined, + ModelPackagingConfiguration: + output.ModelPackagingConfiguration !== undefined && output.ModelPackagingConfiguration !== null + ? deserializeAws_restJson1ModelPackagingConfiguration(output.ModelPackagingConfiguration, context) + : undefined, + ModelPackagingJobDescription: __expectString(output.ModelPackagingJobDescription), + ModelPackagingMethod: __expectString(output.ModelPackagingMethod), + ModelPackagingOutputDetails: + output.ModelPackagingOutputDetails !== undefined && output.ModelPackagingOutputDetails !== null + ? deserializeAws_restJson1ModelPackagingOutputDetails(output.ModelPackagingOutputDetails, context) + : undefined, + ModelVersion: __expectString(output.ModelVersion), + ProjectName: __expectString(output.ProjectName), + Status: __expectString(output.Status), + StatusMessage: __expectString(output.StatusMessage), + } as any; +}; + +const deserializeAws_restJson1ModelPackagingJobMetadata = ( + output: any, + context: __SerdeContext +): ModelPackagingJobMetadata => { + return { + CreationTimestamp: + output.CreationTimestamp !== undefined && output.CreationTimestamp !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreationTimestamp))) + : undefined, + JobName: __expectString(output.JobName), + LastUpdatedTimestamp: + output.LastUpdatedTimestamp !== undefined && output.LastUpdatedTimestamp !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.LastUpdatedTimestamp))) + : undefined, + ModelPackagingJobDescription: __expectString(output.ModelPackagingJobDescription), + ModelPackagingMethod: __expectString(output.ModelPackagingMethod), + ModelVersion: __expectString(output.ModelVersion), + ProjectName: __expectString(output.ProjectName), + Status: __expectString(output.Status), + StatusMessage: __expectString(output.StatusMessage), + } as any; +}; + +const deserializeAws_restJson1ModelPackagingJobsList = ( + output: any, + context: __SerdeContext +): ModelPackagingJobMetadata[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ModelPackagingJobMetadata(entry, context); + }); +}; + +const deserializeAws_restJson1ModelPackagingOutputDetails = ( + output: any, + context: __SerdeContext +): ModelPackagingOutputDetails => { + return { + Greengrass: + output.Greengrass !== undefined && output.Greengrass !== null + ? deserializeAws_restJson1GreengrassOutputDetails(output.Greengrass, context) + : undefined, + } as any; +}; + const deserializeAws_restJson1ModelPerformance = (output: any, context: __SerdeContext): ModelPerformance => { return { F1Score: __limitedParseFloat32(output.F1Score), @@ -3084,6 +3677,14 @@ const deserializeAws_restJson1TagList = (output: any, context: __SerdeContext): }); }; +const deserializeAws_restJson1TargetPlatform = (output: any, context: __SerdeContext): TargetPlatform => { + return { + Accelerator: __expectString(output.Accelerator), + Arch: __expectString(output.Arch), + Os: __expectString(output.Os), + } as any; +}; + const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ httpStatusCode: output.statusCode, requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"], diff --git a/clients/client-machine-learning/src/endpoints.ts b/clients/client-machine-learning/src/endpoints.ts index 96e48d3dd5f6..128d28f103b0 100644 --- a/clients/client-machine-learning/src/endpoints.ts +++ b/clients/client-machine-learning/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-macie/src/endpoints.ts b/clients/client-macie/src/endpoints.ts index 0301e3ed8d4f..485825bc7e81 100644 --- a/clients/client-macie/src/endpoints.ts +++ b/clients/client-macie/src/endpoints.ts @@ -39,6 +39,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-macie2/src/endpoints.ts b/clients/client-macie2/src/endpoints.ts index 0bb89ef8ab7c..97abef2307d1 100644 --- a/clients/client-macie2/src/endpoints.ts +++ b/clients/client-macie2/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-managedblockchain/src/endpoints.ts b/clients/client-managedblockchain/src/endpoints.ts index b9701d37450e..e057e758a810 100644 --- a/clients/client-managedblockchain/src/endpoints.ts +++ b/clients/client-managedblockchain/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-marketplace-catalog/src/endpoints.ts b/clients/client-marketplace-catalog/src/endpoints.ts index 3faaeb493547..f8120079306a 100644 --- a/clients/client-marketplace-catalog/src/endpoints.ts +++ b/clients/client-marketplace-catalog/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-marketplace-commerce-analytics/src/endpoints.ts b/clients/client-marketplace-commerce-analytics/src/endpoints.ts index da08fd0d1d0d..b8c114cdb57d 100644 --- a/clients/client-marketplace-commerce-analytics/src/endpoints.ts +++ b/clients/client-marketplace-commerce-analytics/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-marketplace-entitlement-service/src/endpoints.ts b/clients/client-marketplace-entitlement-service/src/endpoints.ts index 705bd801b541..77cbb2f48ac9 100644 --- a/clients/client-marketplace-entitlement-service/src/endpoints.ts +++ b/clients/client-marketplace-entitlement-service/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-marketplace-metering/src/endpoints.ts b/clients/client-marketplace-metering/src/endpoints.ts index dc1a298d4f82..4adb3b48c3c0 100644 --- a/clients/client-marketplace-metering/src/endpoints.ts +++ b/clients/client-marketplace-metering/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediaconnect/src/endpoints.ts b/clients/client-mediaconnect/src/endpoints.ts index d2ca10e659d0..ef2e09b02a32 100644 --- a/clients/client-mediaconnect/src/endpoints.ts +++ b/clients/client-mediaconnect/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediaconnect/src/models/models_0.ts b/clients/client-mediaconnect/src/models/models_0.ts index ab621859e59c..3d42718287ab 100644 --- a/clients/client-mediaconnect/src/models/models_0.ts +++ b/clients/client-mediaconnect/src/models/models_0.ts @@ -353,6 +353,7 @@ export namespace MediaStreamOutputConfigurationRequest { export enum Protocol { cdi = "cdi", + fujitsu_qos = "fujitsu-qos", rist = "rist", rtp = "rtp", rtp_fec = "rtp-fec", @@ -406,7 +407,7 @@ export interface AddOutputRequest { Encryption?: Encryption; /** - * The maximum latency in milliseconds for Zixi-based streams. + * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams. */ MaxLatency?: number; @@ -440,6 +441,11 @@ export interface AddOutputRequest { */ RemoteId?: string; + /** + * The port that the flow uses to send outbound requests to initiate connection with the sender. + */ + SenderControlPort?: number; + /** * The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. */ @@ -1105,7 +1111,7 @@ export interface Transport { MaxBitrate?: number; /** - * The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams. + * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams. */ MaxLatency?: number; @@ -1129,6 +1135,16 @@ export interface Transport { */ RemoteId?: string; + /** + * The port that the flow uses to send outbound requests to initiate connection with the sender. + */ + SenderControlPort?: number; + + /** + * The IP address that the flow communicates with to initiate connection with the sender. + */ + SenderIpAddress?: string; + /** * The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. */ @@ -1344,7 +1360,7 @@ export interface SetSourceRequest { MaxBitrate?: number; /** - * The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams. + * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams. */ MaxLatency?: number; @@ -1373,6 +1389,16 @@ export interface SetSourceRequest { */ Protocol?: Protocol | string; + /** + * The port that the flow uses to send outbound requests to initiate connection with the sender. + */ + SenderControlPort?: number; + + /** + * The IP address that the flow communicates with to initiate connection with the sender. + */ + SenderIpAddress?: string; + /** * The stream ID that you want to use for this transport. This parameter applies only to Zixi-based streams. */ @@ -1442,6 +1468,16 @@ export interface Source { */ Name: string | undefined; + /** + * The port that the flow uses to send outbound requests to initiate connection with the sender. + */ + SenderControlPort?: number; + + /** + * The IP address that the flow communicates with to initiate connection with the sender. + */ + SenderIpAddress?: string; + /** * The ARN of the source. */ @@ -1482,7 +1518,7 @@ export enum NetworkInterfaceType { */ export interface VpcInterface { /** - * Immutable and has to be a unique against other VpcInterfaces in this Flow + * Immutable and has to be a unique against other VpcInterfaces in this Flow. */ Name: string | undefined; @@ -1938,7 +1974,7 @@ export enum State { } /** - * The settings for source failover + * The settings for source failover. */ export interface FailoverConfig { /** @@ -2003,7 +2039,7 @@ export interface CreateFlowRequest { Source?: SetSourceRequest; /** - * The settings for source failover + * The settings for source failover. */ SourceFailoverConfig?: FailoverConfig; @@ -2073,7 +2109,7 @@ export interface Flow { Source: Source | undefined; /** - * The settings for source failover + * The settings for source failover. */ SourceFailoverConfig?: FailoverConfig; @@ -2917,7 +2953,7 @@ export namespace UntagResourceRequest { } /** - * The settings for source failover + * The settings for source failover. */ export interface UpdateFailoverConfig { /** @@ -2957,7 +2993,7 @@ export interface UpdateFlowRequest { FlowArn: string | undefined; /** - * The settings for source failover + * The settings for source failover. */ SourceFailoverConfig?: UpdateFailoverConfig; } @@ -3211,7 +3247,7 @@ export interface UpdateFlowOutputRequest { FlowArn: string | undefined; /** - * The maximum latency in milliseconds for Zixi-based streams. + * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams. */ MaxLatency?: number; @@ -3245,6 +3281,16 @@ export interface UpdateFlowOutputRequest { */ RemoteId?: string; + /** + * The port that the flow uses to send outbound requests to initiate connection with the sender. + */ + SenderControlPort?: number; + + /** + * The IP address that the flow communicates with to initiate connection with the sender. + */ + SenderIpAddress?: string; + /** * The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. */ @@ -3326,7 +3372,7 @@ export interface UpdateFlowSourceRequest { MaxBitrate?: number; /** - * The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams. + * The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams. */ MaxLatency?: number; @@ -3350,6 +3396,16 @@ export interface UpdateFlowSourceRequest { */ Protocol?: Protocol | string; + /** + * The port that the flow uses to send outbound requests to initiate connection with the sender. + */ + SenderControlPort?: number; + + /** + * The IP address that the flow communicates with to initiate connection with the sender. + */ + SenderIpAddress?: string; + /** * The ARN of the source that you want to update. */ diff --git a/clients/client-mediaconnect/src/protocols/Aws_restJson1.ts b/clients/client-mediaconnect/src/protocols/Aws_restJson1.ts index 69235b83b4b2..212d885e2bf6 100644 --- a/clients/client-mediaconnect/src/protocols/Aws_restJson1.ts +++ b/clients/client-mediaconnect/src/protocols/Aws_restJson1.ts @@ -1137,6 +1137,10 @@ export const serializeAws_restJson1UpdateFlowOutputCommand = async ( ...(input.Port !== undefined && input.Port !== null && { port: input.Port }), ...(input.Protocol !== undefined && input.Protocol !== null && { protocol: input.Protocol }), ...(input.RemoteId !== undefined && input.RemoteId !== null && { remoteId: input.RemoteId }), + ...(input.SenderControlPort !== undefined && + input.SenderControlPort !== null && { senderControlPort: input.SenderControlPort }), + ...(input.SenderIpAddress !== undefined && + input.SenderIpAddress !== null && { senderIpAddress: input.SenderIpAddress }), ...(input.SmoothingLatency !== undefined && input.SmoothingLatency !== null && { smoothingLatency: input.SmoothingLatency }), ...(input.StreamId !== undefined && input.StreamId !== null && { streamId: input.StreamId }), @@ -1204,6 +1208,10 @@ export const serializeAws_restJson1UpdateFlowSourceCommand = async ( }), ...(input.MinLatency !== undefined && input.MinLatency !== null && { minLatency: input.MinLatency }), ...(input.Protocol !== undefined && input.Protocol !== null && { protocol: input.Protocol }), + ...(input.SenderControlPort !== undefined && + input.SenderControlPort !== null && { senderControlPort: input.SenderControlPort }), + ...(input.SenderIpAddress !== undefined && + input.SenderIpAddress !== null && { senderIpAddress: input.SenderIpAddress }), ...(input.StreamId !== undefined && input.StreamId !== null && { streamId: input.StreamId }), ...(input.VpcInterfaceName !== undefined && input.VpcInterfaceName !== null && { vpcInterfaceName: input.VpcInterfaceName }), @@ -4357,6 +4365,8 @@ const serializeAws_restJson1AddOutputRequest = (input: AddOutputRequest, context ...(input.Port !== undefined && input.Port !== null && { port: input.Port }), ...(input.Protocol !== undefined && input.Protocol !== null && { protocol: input.Protocol }), ...(input.RemoteId !== undefined && input.RemoteId !== null && { remoteId: input.RemoteId }), + ...(input.SenderControlPort !== undefined && + input.SenderControlPort !== null && { senderControlPort: input.SenderControlPort }), ...(input.SmoothingLatency !== undefined && input.SmoothingLatency !== null && { smoothingLatency: input.SmoothingLatency }), ...(input.StreamId !== undefined && input.StreamId !== null && { streamId: input.StreamId }), @@ -4546,6 +4556,10 @@ const serializeAws_restJson1SetSourceRequest = (input: SetSourceRequest, context ...(input.MinLatency !== undefined && input.MinLatency !== null && { minLatency: input.MinLatency }), ...(input.Name !== undefined && input.Name !== null && { name: input.Name }), ...(input.Protocol !== undefined && input.Protocol !== null && { protocol: input.Protocol }), + ...(input.SenderControlPort !== undefined && + input.SenderControlPort !== null && { senderControlPort: input.SenderControlPort }), + ...(input.SenderIpAddress !== undefined && + input.SenderIpAddress !== null && { senderIpAddress: input.SenderIpAddress }), ...(input.StreamId !== undefined && input.StreamId !== null && { streamId: input.StreamId }), ...(input.VpcInterfaceName !== undefined && input.VpcInterfaceName !== null && { vpcInterfaceName: input.VpcInterfaceName }), @@ -5107,6 +5121,8 @@ const deserializeAws_restJson1Source = (output: any, context: __SerdeContext): S ) : undefined, Name: __expectString(output.name), + SenderControlPort: __expectInt32(output.senderControlPort), + SenderIpAddress: __expectString(output.senderIpAddress), SourceArn: __expectString(output.sourceArn), Transport: output.transport !== undefined && output.transport !== null @@ -5135,6 +5151,8 @@ const deserializeAws_restJson1Transport = (output: any, context: __SerdeContext) MinLatency: __expectInt32(output.minLatency), Protocol: __expectString(output.protocol), RemoteId: __expectString(output.remoteId), + SenderControlPort: __expectInt32(output.senderControlPort), + SenderIpAddress: __expectString(output.senderIpAddress), SmoothingLatency: __expectInt32(output.smoothingLatency), StreamId: __expectString(output.streamId), } as any; diff --git a/clients/client-mediaconvert/src/endpoints.ts b/clients/client-mediaconvert/src/endpoints.ts index 73fec5b5f65c..ba3e23d4ae58 100644 --- a/clients/client-mediaconvert/src/endpoints.ts +++ b/clients/client-mediaconvert/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-medialive/src/endpoints.ts b/clients/client-medialive/src/endpoints.ts index acd73c56d5fe..33d92eef62ef 100644 --- a/clients/client-medialive/src/endpoints.ts +++ b/clients/client-medialive/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediapackage-vod/src/endpoints.ts b/clients/client-mediapackage-vod/src/endpoints.ts index 01027275a4fa..14d426eb4f34 100644 --- a/clients/client-mediapackage-vod/src/endpoints.ts +++ b/clients/client-mediapackage-vod/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediapackage/src/endpoints.ts b/clients/client-mediapackage/src/endpoints.ts index 57a5a568dcd8..8b14506547de 100644 --- a/clients/client-mediapackage/src/endpoints.ts +++ b/clients/client-mediapackage/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediastore-data/src/endpoints.ts b/clients/client-mediastore-data/src/endpoints.ts index 46fc621e2e0c..9258109e6545 100644 --- a/clients/client-mediastore-data/src/endpoints.ts +++ b/clients/client-mediastore-data/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediastore/src/endpoints.ts b/clients/client-mediastore/src/endpoints.ts index cdbc4209319c..b7e28b969acd 100644 --- a/clients/client-mediastore/src/endpoints.ts +++ b/clients/client-mediastore/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mediatailor/src/endpoints.ts b/clients/client-mediatailor/src/endpoints.ts index f5751eb01f14..bb4544f8064d 100644 --- a/clients/client-mediatailor/src/endpoints.ts +++ b/clients/client-mediatailor/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-memorydb/src/endpoints.ts b/clients/client-memorydb/src/endpoints.ts index aec83334c6de..799bf8940ef2 100644 --- a/clients/client-memorydb/src/endpoints.ts +++ b/clients/client-memorydb/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mgn/src/endpoints.ts b/clients/client-mgn/src/endpoints.ts index d373ffcf33fa..7c25dcdc44ef 100644 --- a/clients/client-mgn/src/endpoints.ts +++ b/clients/client-mgn/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-migration-hub-refactor-spaces/src/endpoints.ts b/clients/client-migration-hub-refactor-spaces/src/endpoints.ts index 204c2c2787e0..be49bbce8224 100644 --- a/clients/client-migration-hub-refactor-spaces/src/endpoints.ts +++ b/clients/client-migration-hub-refactor-spaces/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-migration-hub/src/endpoints.ts b/clients/client-migration-hub/src/endpoints.ts index e2b5acb4b94b..4f4aa445fabe 100644 --- a/clients/client-migration-hub/src/endpoints.ts +++ b/clients/client-migration-hub/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-migrationhub-config/src/endpoints.ts b/clients/client-migrationhub-config/src/endpoints.ts index 500508f2df38..ef2b4a27e59d 100644 --- a/clients/client-migrationhub-config/src/endpoints.ts +++ b/clients/client-migrationhub-config/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-migrationhubstrategy/src/endpoints.ts b/clients/client-migrationhubstrategy/src/endpoints.ts index 74465c50c550..f9afc322b5a5 100644 --- a/clients/client-migrationhubstrategy/src/endpoints.ts +++ b/clients/client-migrationhubstrategy/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mobile/src/endpoints.ts b/clients/client-mobile/src/endpoints.ts index 418edc8287ea..b1923afd66be 100644 --- a/clients/client-mobile/src/endpoints.ts +++ b/clients/client-mobile/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mq/src/endpoints.ts b/clients/client-mq/src/endpoints.ts index 15a73a83535a..aa12df9bd512 100644 --- a/clients/client-mq/src/endpoints.ts +++ b/clients/client-mq/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mturk/src/endpoints.ts b/clients/client-mturk/src/endpoints.ts index a9994650e087..21950fd19504 100644 --- a/clients/client-mturk/src/endpoints.ts +++ b/clients/client-mturk/src/endpoints.ts @@ -23,6 +23,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-mwaa/src/endpoints.ts b/clients/client-mwaa/src/endpoints.ts index 4f0774ecf911..d09aa03c43e1 100644 --- a/clients/client-mwaa/src/endpoints.ts +++ b/clients/client-mwaa/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-neptune/src/endpoints.ts b/clients/client-neptune/src/endpoints.ts index 473f6379e56b..57efad1a73d4 100644 --- a/clients/client-neptune/src/endpoints.ts +++ b/clients/client-neptune/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-network-firewall/src/NetworkFirewall.ts b/clients/client-network-firewall/src/NetworkFirewall.ts index 7fab7eff1a14..ae3bf9a86e43 100644 --- a/clients/client-network-firewall/src/NetworkFirewall.ts +++ b/clients/client-network-firewall/src/NetworkFirewall.ts @@ -70,6 +70,11 @@ import { DescribeRuleGroupCommandInput, DescribeRuleGroupCommandOutput, } from "./commands/DescribeRuleGroupCommand"; +import { + DescribeRuleGroupMetadataCommand, + DescribeRuleGroupMetadataCommandInput, + DescribeRuleGroupMetadataCommandOutput, +} from "./commands/DescribeRuleGroupMetadataCommand"; import { DisassociateSubnetsCommand, DisassociateSubnetsCommandInput, @@ -703,6 +708,41 @@ export class NetworkFirewall extends NetworkFirewallClient { } } + /** + *

                      High-level information about a rule group, returned by operations like create and describe. + * You can use the information provided in the metadata to retrieve and manage a rule group. + * You can retrieve all objects for a rule group by calling DescribeRuleGroup. + *

                      + */ + public describeRuleGroupMetadata( + args: DescribeRuleGroupMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeRuleGroupMetadata( + args: DescribeRuleGroupMetadataCommandInput, + cb: (err: any, data?: DescribeRuleGroupMetadataCommandOutput) => void + ): void; + public describeRuleGroupMetadata( + args: DescribeRuleGroupMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeRuleGroupMetadataCommandOutput) => void + ): void; + public describeRuleGroupMetadata( + args: DescribeRuleGroupMetadataCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeRuleGroupMetadataCommandOutput) => void), + cb?: (err: any, data?: DescribeRuleGroupMetadataCommandOutput) => void + ): Promise | void { + const command = new DescribeRuleGroupMetadataCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                      Removes the specified subnet associations from the firewall. This removes the * firewall endpoints from the subnets and removes any network filtering protections that the endpoints @@ -1095,7 +1135,9 @@ export class NetworkFirewall extends NetworkFirewallClient { } /** - *

                      + *

                      Modifies the flag, ChangeProtection, which indicates whether it + * is possible to change the firewall. If the flag is set to TRUE, the firewall is protected + * from changes. This setting helps protect against accidentally changing a firewall that's in use.

                      */ public updateFirewallPolicyChangeProtection( args: UpdateFirewallPolicyChangeProtectionCommandInput, diff --git a/clients/client-network-firewall/src/NetworkFirewallClient.ts b/clients/client-network-firewall/src/NetworkFirewallClient.ts index 4142e927d989..f58a8e1b2be8 100644 --- a/clients/client-network-firewall/src/NetworkFirewallClient.ts +++ b/clients/client-network-firewall/src/NetworkFirewallClient.ts @@ -84,6 +84,10 @@ import { DescribeResourcePolicyCommandOutput, } from "./commands/DescribeResourcePolicyCommand"; import { DescribeRuleGroupCommandInput, DescribeRuleGroupCommandOutput } from "./commands/DescribeRuleGroupCommand"; +import { + DescribeRuleGroupMetadataCommandInput, + DescribeRuleGroupMetadataCommandOutput, +} from "./commands/DescribeRuleGroupMetadataCommand"; import { DisassociateSubnetsCommandInput, DisassociateSubnetsCommandOutput, @@ -143,6 +147,7 @@ export type ServiceInputTypes = | DescribeLoggingConfigurationCommandInput | DescribeResourcePolicyCommandInput | DescribeRuleGroupCommandInput + | DescribeRuleGroupMetadataCommandInput | DisassociateSubnetsCommandInput | ListFirewallPoliciesCommandInput | ListFirewallsCommandInput @@ -174,6 +179,7 @@ export type ServiceOutputTypes = | DescribeLoggingConfigurationCommandOutput | DescribeResourcePolicyCommandOutput | DescribeRuleGroupCommandOutput + | DescribeRuleGroupMetadataCommandOutput | DisassociateSubnetsCommandOutput | ListFirewallPoliciesCommandOutput | ListFirewallsCommandOutput diff --git a/clients/client-network-firewall/src/commands/DescribeRuleGroupMetadataCommand.ts b/clients/client-network-firewall/src/commands/DescribeRuleGroupMetadataCommand.ts new file mode 100644 index 000000000000..e8e6fd8ec4b7 --- /dev/null +++ b/clients/client-network-firewall/src/commands/DescribeRuleGroupMetadataCommand.ts @@ -0,0 +1,101 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DescribeRuleGroupMetadataRequest, DescribeRuleGroupMetadataResponse } from "../models/models_0"; +import { NetworkFirewallClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkFirewallClient"; +import { + deserializeAws_json1_0DescribeRuleGroupMetadataCommand, + serializeAws_json1_0DescribeRuleGroupMetadataCommand, +} from "../protocols/Aws_json1_0"; + +export interface DescribeRuleGroupMetadataCommandInput extends DescribeRuleGroupMetadataRequest {} +export interface DescribeRuleGroupMetadataCommandOutput extends DescribeRuleGroupMetadataResponse, __MetadataBearer {} + +/** + *

                      High-level information about a rule group, returned by operations like create and describe. + * You can use the information provided in the metadata to retrieve and manage a rule group. + * You can retrieve all objects for a rule group by calling DescribeRuleGroup. + *

                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkFirewallClient, DescribeRuleGroupMetadataCommand } from "@aws-sdk/client-network-firewall"; // ES Modules import + * // const { NetworkFirewallClient, DescribeRuleGroupMetadataCommand } = require("@aws-sdk/client-network-firewall"); // CommonJS import + * const client = new NetworkFirewallClient(config); + * const command = new DescribeRuleGroupMetadataCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeRuleGroupMetadataCommandInput} for command's `input` shape. + * @see {@link DescribeRuleGroupMetadataCommandOutput} for command's `response` shape. + * @see {@link NetworkFirewallClientResolvedConfig | config} for NetworkFirewallClient's `config` shape. + * + */ +export class DescribeRuleGroupMetadataCommand extends $Command< + DescribeRuleGroupMetadataCommandInput, + DescribeRuleGroupMetadataCommandOutput, + NetworkFirewallClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeRuleGroupMetadataCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkFirewallClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkFirewallClient"; + const commandName = "DescribeRuleGroupMetadataCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeRuleGroupMetadataRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeRuleGroupMetadataResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeRuleGroupMetadataCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_0DescribeRuleGroupMetadataCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_0DescribeRuleGroupMetadataCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-network-firewall/src/commands/UpdateFirewallPolicyChangeProtectionCommand.ts b/clients/client-network-firewall/src/commands/UpdateFirewallPolicyChangeProtectionCommand.ts index cf4f51d2adaa..bbb44adcb879 100644 --- a/clients/client-network-firewall/src/commands/UpdateFirewallPolicyChangeProtectionCommand.ts +++ b/clients/client-network-firewall/src/commands/UpdateFirewallPolicyChangeProtectionCommand.ts @@ -27,7 +27,9 @@ export interface UpdateFirewallPolicyChangeProtectionCommandOutput __MetadataBearer {} /** - *

                      + *

                      Modifies the flag, ChangeProtection, which indicates whether it + * is possible to change the firewall. If the flag is set to TRUE, the firewall is protected + * from changes. This setting helps protect against accidentally changing a firewall that's in use.

                      * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-network-firewall/src/commands/index.ts b/clients/client-network-firewall/src/commands/index.ts index 1bb4f7874308..92da4e176faf 100644 --- a/clients/client-network-firewall/src/commands/index.ts +++ b/clients/client-network-firewall/src/commands/index.ts @@ -12,6 +12,7 @@ export * from "./DescribeFirewallPolicyCommand"; export * from "./DescribeLoggingConfigurationCommand"; export * from "./DescribeResourcePolicyCommand"; export * from "./DescribeRuleGroupCommand"; +export * from "./DescribeRuleGroupMetadataCommand"; export * from "./DisassociateSubnetsCommand"; export * from "./ListFirewallPoliciesCommand"; export * from "./ListFirewallsCommand"; diff --git a/clients/client-network-firewall/src/endpoints.ts b/clients/client-network-firewall/src/endpoints.ts index 6830d2de26e4..1246a4da3836 100644 --- a/clients/client-network-firewall/src/endpoints.ts +++ b/clients/client-network-firewall/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-network-firewall/src/models/models_0.ts b/clients/client-network-firewall/src/models/models_0.ts index 8c93a392e6c7..dec455bd9304 100644 --- a/clients/client-network-firewall/src/models/models_0.ts +++ b/clients/client-network-firewall/src/models/models_0.ts @@ -807,11 +807,11 @@ export enum RuleOrder { */ export interface StatefulEngineOptions { /** - *

                      Indicates how to manage the order of stateful rule evaluation for the policy. By default, Network Firewall - * leaves the rule evaluation order up to the Suricata rule processing engine. If you set - * this to STRICT_ORDER, your rules are evaluated in the exact order that you provide them - * in the policy. With strict ordering, the rule groups are evaluated by order of priority, starting from the lowest number, and - * the rules in each rule group are processed in the order that they're defined.

                      + *

                      Indicates how to manage the order of stateful rule evaluation for the policy. DEFAULT_ACTION_ORDER is + * the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them + * based on certain settings. For more information, see + * Evaluation order for stateful rules in the AWS Network Firewall Developer Guide. + *

                      */ RuleOrder?: RuleOrder | string; } @@ -825,6 +825,30 @@ export namespace StatefulEngineOptions { }); } +export enum OverrideAction { + DROP_TO_ALERT = "DROP_TO_ALERT", +} + +/** + *

                      The setting that allows the policy owner to change the behavior of the rule group within a policy.

                      + */ +export interface StatefulRuleGroupOverride { + /** + *

                      The action that changes the rule group from DROP to ALERT. This only applies to + * managed rule groups.

                      + */ + Action?: OverrideAction | string; +} + +export namespace StatefulRuleGroupOverride { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StatefulRuleGroupOverride): any => ({ + ...obj, + }); +} + /** *

                      Identifier for a single stateful rule group, used in a firewall policy to refer to a * rule group.

                      @@ -847,6 +871,11 @@ export interface StatefulRuleGroupReference { * 200, and so on.

                      */ Priority?: number; + + /** + *

                      The action that allows the policy owner to override the behavior of the rule group within a policy.

                      + */ + Override?: StatefulRuleGroupOverride; } export namespace StatefulRuleGroupReference { @@ -985,7 +1014,26 @@ export interface FirewallPolicy { StatefulRuleGroupReferences?: StatefulRuleGroupReference[]; /** - *

                      The default actions to take on a packet that doesn't match any stateful rules.

                      + *

                      The default actions to take on a packet that doesn't match any stateful rules. The stateful default action is optional, + * and is only valid when using the strict rule order.

                      + *

                      Valid values of the stateful default action:

                      + *
                        + *
                      • + *

                        aws:drop_strict

                        + *
                      • + *
                      • + *

                        aws:drop_established

                        + *
                      • + *
                      • + *

                        aws:alert_strict

                        + *
                      • + *
                      • + *

                        aws:alert_established

                        + *
                      • + *
                      + *

                      For more information, see + * Strict evaluation order in the AWS Network Firewall Developer Guide. + *

                      */ StatefulDefaultActions?: string[]; @@ -1156,8 +1204,7 @@ export enum TargetType { */ export interface RulesSourceList { /** - *

                      The domains that you want to inspect for in your traffic flows. To provide multiple - * domains, separate them with commas. Valid domain specifications are the following:

                      + *

                      The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

                      *
                        *
                      • *

                        Explicit names. For example, abc.example.com matches only the domain abc.example.com.

                        @@ -1753,10 +1800,11 @@ export namespace RuleVariables { */ export interface StatefulRuleOptions { /** - *

                        Indicates how to manage the order of the rule evaluation for the rule group. By default, Network Firewall - * leaves the rule evaluation order up to the Suricata rule processing engine. If you set - * this to STRICT_ORDER, your rules are evaluated in the exact order that they're listed - * in your Suricata rules string.

                        + *

                        Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is + * the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them + * based on certain settings. For more information, see + * Evaluation order for stateful rules in the AWS Network Firewall Developer Guide. + *

                        */ RuleOrder?: RuleOrder | string; } @@ -2549,6 +2597,90 @@ export namespace DescribeRuleGroupResponse { }); } +export interface DescribeRuleGroupMetadataRequest { + /** + *

                        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

                        + *

                        You must specify the ARN or the name, and you can specify both.

                        + */ + RuleGroupName?: string; + + /** + *

                        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

                        + *

                        You must specify the ARN or the name, and you can specify both.

                        + */ + RuleGroupArn?: string; + + /** + *

                        Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains + * stateless rules. If it is stateful, it contains stateful rules.

                        + * + *

                        This setting is required for requests that do not include the RuleGroupARN.

                        + *
                        + */ + Type?: RuleGroupType | string; +} + +export namespace DescribeRuleGroupMetadataRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeRuleGroupMetadataRequest): any => ({ + ...obj, + }); +} + +export interface DescribeRuleGroupMetadataResponse { + /** + *

                        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

                        + *

                        You must specify the ARN or the name, and you can specify both.

                        + */ + RuleGroupArn: string | undefined; + + /** + *

                        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

                        + *

                        You must specify the ARN or the name, and you can specify both.

                        + */ + RuleGroupName: string | undefined; + + /** + *

                        Returns the metadata objects for the specified rule group. + *

                        + */ + Description?: string; + + /** + *

                        Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains + * stateless rules. If it is stateful, it contains stateful rules.

                        + * + *

                        This setting is required for requests that do not include the RuleGroupARN.

                        + *
                        + */ + Type?: RuleGroupType | string; + + /** + *

                        The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. + * When you update a rule group, you are limited to this capacity. When you reference a rule group + * from a firewall policy, Network Firewall reserves this capacity for the rule group.

                        + *

                        You can retrieve the capacity that would be required for a rule group before you create the rule group by calling + * CreateRuleGroup with DryRun set to TRUE.

                        + */ + Capacity?: number; + + /** + *

                        Additional options governing how Network Firewall handles the rule group. You can only use these for stateful rule groups.

                        + */ + StatefulRuleOptions?: StatefulRuleOptions; +} + +export namespace DescribeRuleGroupMetadataResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeRuleGroupMetadataResponse): any => ({ + ...obj, + }); +} + export interface DisassociateSubnetsRequest { /** *

                        An optional token that you can use for optimistic locking. Network Firewall returns a token to your requests that access the firewall. The token marks the state of the firewall resource at the time of the request.

                        @@ -2774,6 +2906,11 @@ export namespace ListFirewallsResponse { }); } +export enum ResourceManagedStatus { + ACCOUNT = "ACCOUNT", + MANAGED = "MANAGED", +} + export interface ListRuleGroupsRequest { /** *

                        When you request a list of objects with a MaxResults setting, if the number of objects that are still available @@ -2788,6 +2925,13 @@ export interface ListRuleGroupsRequest { * NextToken value that you can use in a subsequent call to get the next batch of objects.

                        */ MaxResults?: number; + + /** + *

                        The scope of the request. The default setting of ACCOUNT or a setting of + * NULL returns all of the rule groups in your account. A setting of + * MANAGED returns all available managed rule groups.

                        + */ + Scope?: ResourceManagedStatus | string; } export namespace ListRuleGroupsRequest { @@ -3112,7 +3256,9 @@ export interface UpdateFirewallDeleteProtectionResponse { FirewallName?: string; /** - *

                        + *

                        A flag indicating whether it is possible to delete the firewall. A setting of TRUE indicates + * that the firewall is protected against deletion. Use this setting to protect against + * accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to TRUE.

                        */ DeleteProtection?: boolean; diff --git a/clients/client-network-firewall/src/protocols/Aws_json1_0.ts b/clients/client-network-firewall/src/protocols/Aws_json1_0.ts index 6b5c5bc7ad91..b33eab6c0122 100644 --- a/clients/client-network-firewall/src/protocols/Aws_json1_0.ts +++ b/clients/client-network-firewall/src/protocols/Aws_json1_0.ts @@ -48,6 +48,10 @@ import { DescribeResourcePolicyCommandOutput, } from "../commands/DescribeResourcePolicyCommand"; import { DescribeRuleGroupCommandInput, DescribeRuleGroupCommandOutput } from "../commands/DescribeRuleGroupCommand"; +import { + DescribeRuleGroupMetadataCommandInput, + DescribeRuleGroupMetadataCommandOutput, +} from "../commands/DescribeRuleGroupMetadataCommand"; import { DisassociateSubnetsCommandInput, DisassociateSubnetsCommandOutput, @@ -121,6 +125,8 @@ import { DescribeLoggingConfigurationResponse, DescribeResourcePolicyRequest, DescribeResourcePolicyResponse, + DescribeRuleGroupMetadataRequest, + DescribeRuleGroupMetadataResponse, DescribeRuleGroupRequest, DescribeRuleGroupResponse, Dimension, @@ -171,6 +177,7 @@ import { RuleVariables, StatefulEngineOptions, StatefulRule, + StatefulRuleGroupOverride, StatefulRuleGroupReference, StatefulRuleOptions, StatelessRule, @@ -386,6 +393,19 @@ export const serializeAws_json1_0DescribeRuleGroupCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_0DescribeRuleGroupMetadataCommand = async ( + input: DescribeRuleGroupMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.0", + "x-amz-target": "NetworkFirewall_20201112.DescribeRuleGroupMetadata", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_0DescribeRuleGroupMetadataRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_0DisassociateSubnetsCommand = async ( input: DisassociateSubnetsCommandInput, context: __SerdeContext @@ -1801,6 +1821,84 @@ const deserializeAws_json1_0DescribeRuleGroupCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_0DescribeRuleGroupMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_0DescribeRuleGroupMetadataCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_0DescribeRuleGroupMetadataResponse(data, context); + const response: DescribeRuleGroupMetadataCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_0DescribeRuleGroupMetadataCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.networkfirewall#InternalServerError": + response = { + ...(await deserializeAws_json1_0InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidRequestException": + case "com.amazonaws.networkfirewall#InvalidRequestException": + response = { + ...(await deserializeAws_json1_0InvalidRequestExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkfirewall#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_0ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkfirewall#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_0DisassociateSubnetsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2134,6 +2232,14 @@ const deserializeAws_json1_0ListTagsForResourceCommandError = async ( let errorCode = "UnknownError"; errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.networkfirewall#InternalServerError": + response = { + ...(await deserializeAws_json1_0InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InvalidRequestException": case "com.amazonaws.networkfirewall#InvalidRequestException": response = { @@ -2150,6 +2256,14 @@ const deserializeAws_json1_0ListTagsForResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ThrottlingException": + case "com.amazonaws.networkfirewall#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -2282,6 +2396,14 @@ const deserializeAws_json1_0TagResourceCommandError = async ( let errorCode = "UnknownError"; errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.networkfirewall#InternalServerError": + response = { + ...(await deserializeAws_json1_0InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InvalidRequestException": case "com.amazonaws.networkfirewall#InvalidRequestException": response = { @@ -2298,6 +2420,14 @@ const deserializeAws_json1_0TagResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ThrottlingException": + case "com.amazonaws.networkfirewall#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -2344,6 +2474,14 @@ const deserializeAws_json1_0UntagResourceCommandError = async ( let errorCode = "UnknownError"; errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "InternalServerError": + case "com.amazonaws.networkfirewall#InternalServerError": + response = { + ...(await deserializeAws_json1_0InternalServerErrorResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InvalidRequestException": case "com.amazonaws.networkfirewall#InvalidRequestException": response = { @@ -2360,6 +2498,14 @@ const deserializeAws_json1_0UntagResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ThrottlingException": + case "com.amazonaws.networkfirewall#ThrottlingException": + response = { + ...(await deserializeAws_json1_0ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -3403,6 +3549,17 @@ const serializeAws_json1_0DescribeResourcePolicyRequest = ( }; }; +const serializeAws_json1_0DescribeRuleGroupMetadataRequest = ( + input: DescribeRuleGroupMetadataRequest, + context: __SerdeContext +): any => { + return { + ...(input.RuleGroupArn !== undefined && input.RuleGroupArn !== null && { RuleGroupArn: input.RuleGroupArn }), + ...(input.RuleGroupName !== undefined && input.RuleGroupName !== null && { RuleGroupName: input.RuleGroupName }), + ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + }; +}; + const serializeAws_json1_0DescribeRuleGroupRequest = ( input: DescribeRuleGroupRequest, context: __SerdeContext @@ -3553,6 +3710,7 @@ const serializeAws_json1_0ListRuleGroupsRequest = (input: ListRuleGroupsRequest, return { ...(input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults }), ...(input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }), + ...(input.Scope !== undefined && input.Scope !== null && { Scope: input.Scope }), }; }; @@ -3832,11 +3990,22 @@ const serializeAws_json1_0StatefulRule = (input: StatefulRule, context: __SerdeC }; }; +const serializeAws_json1_0StatefulRuleGroupOverride = ( + input: StatefulRuleGroupOverride, + context: __SerdeContext +): any => { + return { + ...(input.Action !== undefined && input.Action !== null && { Action: input.Action }), + }; +}; + const serializeAws_json1_0StatefulRuleGroupReference = ( input: StatefulRuleGroupReference, context: __SerdeContext ): any => { return { + ...(input.Override !== undefined && + input.Override !== null && { Override: serializeAws_json1_0StatefulRuleGroupOverride(input.Override, context) }), ...(input.Priority !== undefined && input.Priority !== null && { Priority: input.Priority }), ...(input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }), }; @@ -4380,6 +4549,23 @@ const deserializeAws_json1_0DescribeResourcePolicyResponse = ( } as any; }; +const deserializeAws_json1_0DescribeRuleGroupMetadataResponse = ( + output: any, + context: __SerdeContext +): DescribeRuleGroupMetadataResponse => { + return { + Capacity: __expectInt32(output.Capacity), + Description: __expectString(output.Description), + RuleGroupArn: __expectString(output.RuleGroupArn), + RuleGroupName: __expectString(output.RuleGroupName), + StatefulRuleOptions: + output.StatefulRuleOptions !== undefined && output.StatefulRuleOptions !== null + ? deserializeAws_json1_0StatefulRuleOptions(output.StatefulRuleOptions, context) + : undefined, + Type: __expectString(output.Type), + } as any; +}; + const deserializeAws_json1_0DescribeRuleGroupResponse = ( output: any, context: __SerdeContext @@ -5048,11 +5234,24 @@ const deserializeAws_json1_0StatefulRule = (output: any, context: __SerdeContext } as any; }; +const deserializeAws_json1_0StatefulRuleGroupOverride = ( + output: any, + context: __SerdeContext +): StatefulRuleGroupOverride => { + return { + Action: __expectString(output.Action), + } as any; +}; + const deserializeAws_json1_0StatefulRuleGroupReference = ( output: any, context: __SerdeContext ): StatefulRuleGroupReference => { return { + Override: + output.Override !== undefined && output.Override !== null + ? deserializeAws_json1_0StatefulRuleGroupOverride(output.Override, context) + : undefined, Priority: __expectInt32(output.Priority), ResourceArn: __expectString(output.ResourceArn), } as any; diff --git a/clients/client-networkmanager/README.md b/clients/client-networkmanager/README.md index cd1443b9b9ee..7cb54d36f7be 100644 --- a/clients/client-networkmanager/README.md +++ b/clients/client-networkmanager/README.md @@ -25,16 +25,16 @@ using your favorite package manager: The AWS SDK is modulized by clients and commands. To send a request, you only need to import the `NetworkManagerClient` and -the commands you need, for example `AssociateCustomerGatewayCommand`: +the commands you need, for example `AcceptAttachmentCommand`: ```js // ES5 example -const { NetworkManagerClient, AssociateCustomerGatewayCommand } = require("@aws-sdk/client-networkmanager"); +const { NetworkManagerClient, AcceptAttachmentCommand } = require("@aws-sdk/client-networkmanager"); ``` ```ts // ES6+ example -import { NetworkManagerClient, AssociateCustomerGatewayCommand } from "@aws-sdk/client-networkmanager"; +import { NetworkManagerClient, AcceptAttachmentCommand } from "@aws-sdk/client-networkmanager"; ``` ### Usage @@ -53,7 +53,7 @@ const client = new NetworkManagerClient({ region: "REGION" }); const params = { /** input parameters */ }; -const command = new AssociateCustomerGatewayCommand(params); +const command = new AcceptAttachmentCommand(params); ``` #### Async/await @@ -132,7 +132,7 @@ const client = new AWS.NetworkManager({ region: "REGION" }); // async/await. try { - const data = await client.associateCustomerGateway(params); + const data = await client.acceptAttachment(params); // process data. } catch (error) { // error handling. @@ -140,7 +140,7 @@ try { // Promises. client - .associateCustomerGateway(params) + .acceptAttachment(params) .then((data) => { // process data. }) @@ -149,7 +149,7 @@ client }); // callbacks. -client.associateCustomerGateway(params, (err, data) => { +client.acceptAttachment(params, (err, data) => { // proccess err and data. }); ``` diff --git a/clients/client-networkmanager/package.json b/clients/client-networkmanager/package.json index 0065bf1828c0..f02de8a639ac 100644 --- a/clients/client-networkmanager/package.json +++ b/clients/client-networkmanager/package.json @@ -49,11 +49,13 @@ "@aws-sdk/util-user-agent-node": "3.40.0", "@aws-sdk/util-utf8-browser": "3.37.0", "@aws-sdk/util-utf8-node": "3.37.0", - "tslib": "^2.3.0" + "tslib": "^2.3.0", + "uuid": "^8.3.2" }, "devDependencies": { "@aws-sdk/service-client-documentation-generator": "3.38.0", "@types/node": "^12.7.5", + "@types/uuid": "^8.3.0", "downlevel-dts": "0.7.0", "jest": "^26.1.0", "rimraf": "^3.0.0", diff --git a/clients/client-networkmanager/src/NetworkManager.ts b/clients/client-networkmanager/src/NetworkManager.ts index 0c962df22424..e41f77b662ca 100644 --- a/clients/client-networkmanager/src/NetworkManager.ts +++ b/clients/client-networkmanager/src/NetworkManager.ts @@ -1,5 +1,15 @@ import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; +import { + AcceptAttachmentCommand, + AcceptAttachmentCommandInput, + AcceptAttachmentCommandOutput, +} from "./commands/AcceptAttachmentCommand"; +import { + AssociateConnectPeerCommand, + AssociateConnectPeerCommandInput, + AssociateConnectPeerCommandOutput, +} from "./commands/AssociateConnectPeerCommand"; import { AssociateCustomerGatewayCommand, AssociateCustomerGatewayCommandInput, @@ -15,11 +25,26 @@ import { AssociateTransitGatewayConnectPeerCommandInput, AssociateTransitGatewayConnectPeerCommandOutput, } from "./commands/AssociateTransitGatewayConnectPeerCommand"; +import { + CreateConnectAttachmentCommand, + CreateConnectAttachmentCommandInput, + CreateConnectAttachmentCommandOutput, +} from "./commands/CreateConnectAttachmentCommand"; import { CreateConnectionCommand, CreateConnectionCommandInput, CreateConnectionCommandOutput, } from "./commands/CreateConnectionCommand"; +import { + CreateConnectPeerCommand, + CreateConnectPeerCommandInput, + CreateConnectPeerCommandOutput, +} from "./commands/CreateConnectPeerCommand"; +import { + CreateCoreNetworkCommand, + CreateCoreNetworkCommandInput, + CreateCoreNetworkCommandOutput, +} from "./commands/CreateCoreNetworkCommand"; import { CreateDeviceCommand, CreateDeviceCommandInput, @@ -32,11 +57,41 @@ import { } from "./commands/CreateGlobalNetworkCommand"; import { CreateLinkCommand, CreateLinkCommandInput, CreateLinkCommandOutput } from "./commands/CreateLinkCommand"; import { CreateSiteCommand, CreateSiteCommandInput, CreateSiteCommandOutput } from "./commands/CreateSiteCommand"; +import { + CreateSiteToSiteVpnAttachmentCommand, + CreateSiteToSiteVpnAttachmentCommandInput, + CreateSiteToSiteVpnAttachmentCommandOutput, +} from "./commands/CreateSiteToSiteVpnAttachmentCommand"; +import { + CreateVpcAttachmentCommand, + CreateVpcAttachmentCommandInput, + CreateVpcAttachmentCommandOutput, +} from "./commands/CreateVpcAttachmentCommand"; +import { + DeleteAttachmentCommand, + DeleteAttachmentCommandInput, + DeleteAttachmentCommandOutput, +} from "./commands/DeleteAttachmentCommand"; import { DeleteConnectionCommand, DeleteConnectionCommandInput, DeleteConnectionCommandOutput, } from "./commands/DeleteConnectionCommand"; +import { + DeleteConnectPeerCommand, + DeleteConnectPeerCommandInput, + DeleteConnectPeerCommandOutput, +} from "./commands/DeleteConnectPeerCommand"; +import { + DeleteCoreNetworkCommand, + DeleteCoreNetworkCommandInput, + DeleteCoreNetworkCommandOutput, +} from "./commands/DeleteCoreNetworkCommand"; +import { + DeleteCoreNetworkPolicyVersionCommand, + DeleteCoreNetworkPolicyVersionCommandInput, + DeleteCoreNetworkPolicyVersionCommandOutput, +} from "./commands/DeleteCoreNetworkPolicyVersionCommand"; import { DeleteDeviceCommand, DeleteDeviceCommandInput, @@ -48,6 +103,11 @@ import { DeleteGlobalNetworkCommandOutput, } from "./commands/DeleteGlobalNetworkCommand"; import { DeleteLinkCommand, DeleteLinkCommandInput, DeleteLinkCommandOutput } from "./commands/DeleteLinkCommand"; +import { + DeleteResourcePolicyCommand, + DeleteResourcePolicyCommandInput, + DeleteResourcePolicyCommandOutput, +} from "./commands/DeleteResourcePolicyCommand"; import { DeleteSiteCommand, DeleteSiteCommandInput, DeleteSiteCommandOutput } from "./commands/DeleteSiteCommand"; import { DeregisterTransitGatewayCommand, @@ -59,6 +119,11 @@ import { DescribeGlobalNetworksCommandInput, DescribeGlobalNetworksCommandOutput, } from "./commands/DescribeGlobalNetworksCommand"; +import { + DisassociateConnectPeerCommand, + DisassociateConnectPeerCommandInput, + DisassociateConnectPeerCommandOutput, +} from "./commands/DisassociateConnectPeerCommand"; import { DisassociateCustomerGatewayCommand, DisassociateCustomerGatewayCommandInput, @@ -74,11 +139,46 @@ import { DisassociateTransitGatewayConnectPeerCommandInput, DisassociateTransitGatewayConnectPeerCommandOutput, } from "./commands/DisassociateTransitGatewayConnectPeerCommand"; +import { + ExecuteCoreNetworkChangeSetCommand, + ExecuteCoreNetworkChangeSetCommandInput, + ExecuteCoreNetworkChangeSetCommandOutput, +} from "./commands/ExecuteCoreNetworkChangeSetCommand"; +import { + GetConnectAttachmentCommand, + GetConnectAttachmentCommandInput, + GetConnectAttachmentCommandOutput, +} from "./commands/GetConnectAttachmentCommand"; import { GetConnectionsCommand, GetConnectionsCommandInput, GetConnectionsCommandOutput, } from "./commands/GetConnectionsCommand"; +import { + GetConnectPeerAssociationsCommand, + GetConnectPeerAssociationsCommandInput, + GetConnectPeerAssociationsCommandOutput, +} from "./commands/GetConnectPeerAssociationsCommand"; +import { + GetConnectPeerCommand, + GetConnectPeerCommandInput, + GetConnectPeerCommandOutput, +} from "./commands/GetConnectPeerCommand"; +import { + GetCoreNetworkChangeSetCommand, + GetCoreNetworkChangeSetCommandInput, + GetCoreNetworkChangeSetCommandOutput, +} from "./commands/GetCoreNetworkChangeSetCommand"; +import { + GetCoreNetworkCommand, + GetCoreNetworkCommandInput, + GetCoreNetworkCommandOutput, +} from "./commands/GetCoreNetworkCommand"; +import { + GetCoreNetworkPolicyCommand, + GetCoreNetworkPolicyCommandInput, + GetCoreNetworkPolicyCommandOutput, +} from "./commands/GetCoreNetworkPolicyCommand"; import { GetCustomerGatewayAssociationsCommand, GetCustomerGatewayAssociationsCommandInput, @@ -116,12 +216,22 @@ import { GetNetworkTelemetryCommandInput, GetNetworkTelemetryCommandOutput, } from "./commands/GetNetworkTelemetryCommand"; +import { + GetResourcePolicyCommand, + GetResourcePolicyCommandInput, + GetResourcePolicyCommandOutput, +} from "./commands/GetResourcePolicyCommand"; import { GetRouteAnalysisCommand, GetRouteAnalysisCommandInput, GetRouteAnalysisCommandOutput, } from "./commands/GetRouteAnalysisCommand"; import { GetSitesCommand, GetSitesCommandInput, GetSitesCommandOutput } from "./commands/GetSitesCommand"; +import { + GetSiteToSiteVpnAttachmentCommand, + GetSiteToSiteVpnAttachmentCommandInput, + GetSiteToSiteVpnAttachmentCommandOutput, +} from "./commands/GetSiteToSiteVpnAttachmentCommand"; import { GetTransitGatewayConnectPeerAssociationsCommand, GetTransitGatewayConnectPeerAssociationsCommandInput, @@ -132,16 +242,61 @@ import { GetTransitGatewayRegistrationsCommandInput, GetTransitGatewayRegistrationsCommandOutput, } from "./commands/GetTransitGatewayRegistrationsCommand"; +import { + GetVpcAttachmentCommand, + GetVpcAttachmentCommandInput, + GetVpcAttachmentCommandOutput, +} from "./commands/GetVpcAttachmentCommand"; +import { + ListAttachmentsCommand, + ListAttachmentsCommandInput, + ListAttachmentsCommandOutput, +} from "./commands/ListAttachmentsCommand"; +import { + ListConnectPeersCommand, + ListConnectPeersCommandInput, + ListConnectPeersCommandOutput, +} from "./commands/ListConnectPeersCommand"; +import { + ListCoreNetworkPolicyVersionsCommand, + ListCoreNetworkPolicyVersionsCommandInput, + ListCoreNetworkPolicyVersionsCommandOutput, +} from "./commands/ListCoreNetworkPolicyVersionsCommand"; +import { + ListCoreNetworksCommand, + ListCoreNetworksCommandInput, + ListCoreNetworksCommandOutput, +} from "./commands/ListCoreNetworksCommand"; import { ListTagsForResourceCommand, ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; +import { + PutCoreNetworkPolicyCommand, + PutCoreNetworkPolicyCommandInput, + PutCoreNetworkPolicyCommandOutput, +} from "./commands/PutCoreNetworkPolicyCommand"; +import { + PutResourcePolicyCommand, + PutResourcePolicyCommandInput, + PutResourcePolicyCommandOutput, +} from "./commands/PutResourcePolicyCommand"; import { RegisterTransitGatewayCommand, RegisterTransitGatewayCommandInput, RegisterTransitGatewayCommandOutput, } from "./commands/RegisterTransitGatewayCommand"; +import { + RejectAttachmentCommand, + RejectAttachmentCommandInput, + RejectAttachmentCommandOutput, +} from "./commands/RejectAttachmentCommand"; +import { + RestoreCoreNetworkPolicyVersionCommand, + RestoreCoreNetworkPolicyVersionCommandInput, + RestoreCoreNetworkPolicyVersionCommandOutput, +} from "./commands/RestoreCoreNetworkPolicyVersionCommand"; import { StartRouteAnalysisCommand, StartRouteAnalysisCommandInput, @@ -158,6 +313,11 @@ import { UpdateConnectionCommandInput, UpdateConnectionCommandOutput, } from "./commands/UpdateConnectionCommand"; +import { + UpdateCoreNetworkCommand, + UpdateCoreNetworkCommandInput, + UpdateCoreNetworkCommandOutput, +} from "./commands/UpdateCoreNetworkCommand"; import { UpdateDeviceCommand, UpdateDeviceCommandInput, @@ -175,6 +335,11 @@ import { UpdateNetworkResourceMetadataCommandOutput, } from "./commands/UpdateNetworkResourceMetadataCommand"; import { UpdateSiteCommand, UpdateSiteCommandInput, UpdateSiteCommandOutput } from "./commands/UpdateSiteCommand"; +import { + UpdateVpcAttachmentCommand, + UpdateVpcAttachmentCommandInput, + UpdateVpcAttachmentCommandOutput, +} from "./commands/UpdateVpcAttachmentCommand"; import { NetworkManagerClient } from "./NetworkManagerClient"; /** @@ -182,6 +347,75 @@ import { NetworkManagerClient } from "./NetworkManagerClient"; * Amazon Web Services and on-premises networks that are built around transit gateways.

                        */ export class NetworkManager extends NetworkManagerClient { + /** + *

                        Accepts a core network attachment request.

                        + *

                        Once the attachment request is accepted by a core network owner, the attachment is + * created and connected to a core network.

                        + */ + public acceptAttachment( + args: AcceptAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public acceptAttachment( + args: AcceptAttachmentCommandInput, + cb: (err: any, data?: AcceptAttachmentCommandOutput) => void + ): void; + public acceptAttachment( + args: AcceptAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AcceptAttachmentCommandOutput) => void + ): void; + public acceptAttachment( + args: AcceptAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AcceptAttachmentCommandOutput) => void), + cb?: (err: any, data?: AcceptAttachmentCommandOutput) => void + ): Promise | void { + const command = new AcceptAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Associates a core network Connect peer with a device and optionally, with a link.

                        + *

                        If you specify a link, it must be associated with the specified device. You can only + * associate core network Connect peers that have been created on a core network Connect + * attachment on a core network.

                        + */ + public associateConnectPeer( + args: AssociateConnectPeerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public associateConnectPeer( + args: AssociateConnectPeerCommandInput, + cb: (err: any, data?: AssociateConnectPeerCommandOutput) => void + ): void; + public associateConnectPeer( + args: AssociateConnectPeerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AssociateConnectPeerCommandOutput) => void + ): void; + public associateConnectPeer( + args: AssociateConnectPeerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: AssociateConnectPeerCommandOutput) => void), + cb?: (err: any, data?: AssociateConnectPeerCommandOutput) => void + ): Promise | void { + const command = new AssociateConnectPeerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Associates a customer gateway with a device and optionally, with a link. If you * specify a link, it must be associated with the specified device.

                        @@ -290,6 +524,41 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Creates a core network Connect attachment from a specified core network attachment.

                        + *

                        A core network Connect attachment is a GRE-based tunnel attachment that you can use to + * establish a connection between a core network and an appliance. A core network Connect + * attachment uses an existing VPC attachment as the underlying transport mechanism.

                        + */ + public createConnectAttachment( + args: CreateConnectAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createConnectAttachment( + args: CreateConnectAttachmentCommandInput, + cb: (err: any, data?: CreateConnectAttachmentCommandOutput) => void + ): void; + public createConnectAttachment( + args: CreateConnectAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateConnectAttachmentCommandOutput) => void + ): void; + public createConnectAttachment( + args: CreateConnectAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateConnectAttachmentCommandOutput) => void), + cb?: (err: any, data?: CreateConnectAttachmentCommandOutput) => void + ): Promise | void { + const command = new CreateConnectAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Creates a connection between two devices. The devices can be a physical or virtual appliance that connects to a third-party appliance in a VPC, or a physical appliance that connects to another physical appliance in an on-premises network.

                        */ @@ -322,6 +591,71 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Creates a core network connect peer for a specified core network connect attachment between a core network and an appliance. + * The peer address and transit gateway address must be the same IP address family (IPv4 or IPv6).

                        + */ + public createConnectPeer( + args: CreateConnectPeerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createConnectPeer( + args: CreateConnectPeerCommandInput, + cb: (err: any, data?: CreateConnectPeerCommandOutput) => void + ): void; + public createConnectPeer( + args: CreateConnectPeerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateConnectPeerCommandOutput) => void + ): void; + public createConnectPeer( + args: CreateConnectPeerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateConnectPeerCommandOutput) => void), + cb?: (err: any, data?: CreateConnectPeerCommandOutput) => void + ): Promise | void { + const command = new CreateConnectPeerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Creates a core network as part of your global network, and optionally, with a core network policy.

                        + */ + public createCoreNetwork( + args: CreateCoreNetworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createCoreNetwork( + args: CreateCoreNetworkCommandInput, + cb: (err: any, data?: CreateCoreNetworkCommandOutput) => void + ): void; + public createCoreNetwork( + args: CreateCoreNetworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateCoreNetworkCommandOutput) => void + ): void; + public createCoreNetwork( + args: CreateCoreNetworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateCoreNetworkCommandOutput) => void), + cb?: (err: any, data?: CreateCoreNetworkCommandOutput) => void + ): Promise | void { + const command = new CreateCoreNetworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Creates a new device in a global network. If you specify both a site ID and a * location, the location of the site is used for visualization in the Network Manager console.

                        @@ -436,6 +770,102 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Creates a site-to-site VPN attachment on an edge location of a core network.

                        + */ + public createSiteToSiteVpnAttachment( + args: CreateSiteToSiteVpnAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createSiteToSiteVpnAttachment( + args: CreateSiteToSiteVpnAttachmentCommandInput, + cb: (err: any, data?: CreateSiteToSiteVpnAttachmentCommandOutput) => void + ): void; + public createSiteToSiteVpnAttachment( + args: CreateSiteToSiteVpnAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateSiteToSiteVpnAttachmentCommandOutput) => void + ): void; + public createSiteToSiteVpnAttachment( + args: CreateSiteToSiteVpnAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateSiteToSiteVpnAttachmentCommandOutput) => void), + cb?: (err: any, data?: CreateSiteToSiteVpnAttachmentCommandOutput) => void + ): Promise | void { + const command = new CreateSiteToSiteVpnAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Creates a VPC attachment on an edge location of a core network.

                        + */ + public createVpcAttachment( + args: CreateVpcAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createVpcAttachment( + args: CreateVpcAttachmentCommandInput, + cb: (err: any, data?: CreateVpcAttachmentCommandOutput) => void + ): void; + public createVpcAttachment( + args: CreateVpcAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateVpcAttachmentCommandOutput) => void + ): void; + public createVpcAttachment( + args: CreateVpcAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateVpcAttachmentCommandOutput) => void), + cb?: (err: any, data?: CreateVpcAttachmentCommandOutput) => void + ): Promise | void { + const command = new CreateVpcAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Deletes an attachment. Supports all attachment types.

                        + */ + public deleteAttachment( + args: DeleteAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteAttachment( + args: DeleteAttachmentCommandInput, + cb: (err: any, data?: DeleteAttachmentCommandOutput) => void + ): void; + public deleteAttachment( + args: DeleteAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteAttachmentCommandOutput) => void + ): void; + public deleteAttachment( + args: DeleteAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteAttachmentCommandOutput) => void), + cb?: (err: any, data?: DeleteAttachmentCommandOutput) => void + ): Promise | void { + const command = new DeleteAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Deletes the specified connection in your global network.

                        */ @@ -468,6 +898,102 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Deletes a Connect peer.

                        + */ + public deleteConnectPeer( + args: DeleteConnectPeerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteConnectPeer( + args: DeleteConnectPeerCommandInput, + cb: (err: any, data?: DeleteConnectPeerCommandOutput) => void + ): void; + public deleteConnectPeer( + args: DeleteConnectPeerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteConnectPeerCommandOutput) => void + ): void; + public deleteConnectPeer( + args: DeleteConnectPeerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteConnectPeerCommandOutput) => void), + cb?: (err: any, data?: DeleteConnectPeerCommandOutput) => void + ): Promise | void { + const command = new DeleteConnectPeerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Deletes a core network along with all core network policies. This can only be done if there are no attachments on a core network.

                        + */ + public deleteCoreNetwork( + args: DeleteCoreNetworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteCoreNetwork( + args: DeleteCoreNetworkCommandInput, + cb: (err: any, data?: DeleteCoreNetworkCommandOutput) => void + ): void; + public deleteCoreNetwork( + args: DeleteCoreNetworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCoreNetworkCommandOutput) => void + ): void; + public deleteCoreNetwork( + args: DeleteCoreNetworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteCoreNetworkCommandOutput) => void), + cb?: (err: any, data?: DeleteCoreNetworkCommandOutput) => void + ): Promise | void { + const command = new DeleteCoreNetworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Deletes a policy version from a core network. You can't delete the current LIVE policy.

                        + */ + public deleteCoreNetworkPolicyVersion( + args: DeleteCoreNetworkPolicyVersionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteCoreNetworkPolicyVersion( + args: DeleteCoreNetworkPolicyVersionCommandInput, + cb: (err: any, data?: DeleteCoreNetworkPolicyVersionCommandOutput) => void + ): void; + public deleteCoreNetworkPolicyVersion( + args: DeleteCoreNetworkPolicyVersionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCoreNetworkPolicyVersionCommandOutput) => void + ): void; + public deleteCoreNetworkPolicyVersion( + args: DeleteCoreNetworkPolicyVersionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteCoreNetworkPolicyVersionCommandOutput) => void), + cb?: (err: any, data?: DeleteCoreNetworkPolicyVersionCommandOutput) => void + ): Promise | void { + const command = new DeleteCoreNetworkPolicyVersionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Deletes an existing device. You must first disassociate the device from any links and * customer gateways.

                        @@ -558,6 +1084,38 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Deletes a resource policy for the specified resource. This revokes the access of the principals specified in the resource policy.

                        + */ + public deleteResourcePolicy( + args: DeleteResourcePolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteResourcePolicy( + args: DeleteResourcePolicyCommandInput, + cb: (err: any, data?: DeleteResourcePolicyCommandOutput) => void + ): void; + public deleteResourcePolicy( + args: DeleteResourcePolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteResourcePolicyCommandOutput) => void + ): void; + public deleteResourcePolicy( + args: DeleteResourcePolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteResourcePolicyCommandOutput) => void), + cb?: (err: any, data?: DeleteResourcePolicyCommandOutput) => void + ): Promise | void { + const command = new DeleteResourcePolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Deletes an existing site. The site cannot be associated with any device or link.

                        */ @@ -652,6 +1210,38 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Disassociates a core network Connect peer from a device and a link.

                        + */ + public disassociateConnectPeer( + args: DisassociateConnectPeerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public disassociateConnectPeer( + args: DisassociateConnectPeerCommandInput, + cb: (err: any, data?: DisassociateConnectPeerCommandOutput) => void + ): void; + public disassociateConnectPeer( + args: DisassociateConnectPeerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateConnectPeerCommandOutput) => void + ): void; + public disassociateConnectPeer( + args: DisassociateConnectPeerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DisassociateConnectPeerCommandOutput) => void), + cb?: (err: any, data?: DisassociateConnectPeerCommandOutput) => void + ): Promise | void { + const command = new DisassociateConnectPeerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Disassociates a customer gateway from a device and a link.

                        */ @@ -668,12 +1258,239 @@ export class NetworkManager extends NetworkManagerClient { options: __HttpHandlerOptions, cb: (err: any, data?: DisassociateCustomerGatewayCommandOutput) => void ): void; - public disassociateCustomerGateway( - args: DisassociateCustomerGatewayCommandInput, - optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DisassociateCustomerGatewayCommandOutput) => void), - cb?: (err: any, data?: DisassociateCustomerGatewayCommandOutput) => void - ): Promise | void { - const command = new DisassociateCustomerGatewayCommand(args); + public disassociateCustomerGateway( + args: DisassociateCustomerGatewayCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DisassociateCustomerGatewayCommandOutput) => void), + cb?: (err: any, data?: DisassociateCustomerGatewayCommandOutput) => void + ): Promise | void { + const command = new DisassociateCustomerGatewayCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Disassociates an existing device from a link. You must first disassociate any customer + * gateways that are associated with the link.

                        + */ + public disassociateLink( + args: DisassociateLinkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public disassociateLink( + args: DisassociateLinkCommandInput, + cb: (err: any, data?: DisassociateLinkCommandOutput) => void + ): void; + public disassociateLink( + args: DisassociateLinkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateLinkCommandOutput) => void + ): void; + public disassociateLink( + args: DisassociateLinkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DisassociateLinkCommandOutput) => void), + cb?: (err: any, data?: DisassociateLinkCommandOutput) => void + ): Promise | void { + const command = new DisassociateLinkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Disassociates a transit gateway Connect peer from a device and link.

                        + */ + public disassociateTransitGatewayConnectPeer( + args: DisassociateTransitGatewayConnectPeerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public disassociateTransitGatewayConnectPeer( + args: DisassociateTransitGatewayConnectPeerCommandInput, + cb: (err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void + ): void; + public disassociateTransitGatewayConnectPeer( + args: DisassociateTransitGatewayConnectPeerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void + ): void; + public disassociateTransitGatewayConnectPeer( + args: DisassociateTransitGatewayConnectPeerCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void), + cb?: (err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void + ): Promise | void { + const command = new DisassociateTransitGatewayConnectPeerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Executes a change set on your core network. Deploys changes globally based on the policy submitted..

                        + */ + public executeCoreNetworkChangeSet( + args: ExecuteCoreNetworkChangeSetCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public executeCoreNetworkChangeSet( + args: ExecuteCoreNetworkChangeSetCommandInput, + cb: (err: any, data?: ExecuteCoreNetworkChangeSetCommandOutput) => void + ): void; + public executeCoreNetworkChangeSet( + args: ExecuteCoreNetworkChangeSetCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ExecuteCoreNetworkChangeSetCommandOutput) => void + ): void; + public executeCoreNetworkChangeSet( + args: ExecuteCoreNetworkChangeSetCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ExecuteCoreNetworkChangeSetCommandOutput) => void), + cb?: (err: any, data?: ExecuteCoreNetworkChangeSetCommandOutput) => void + ): Promise | void { + const command = new ExecuteCoreNetworkChangeSetCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns information about a core network Connect attachment.

                        + */ + public getConnectAttachment( + args: GetConnectAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getConnectAttachment( + args: GetConnectAttachmentCommandInput, + cb: (err: any, data?: GetConnectAttachmentCommandOutput) => void + ): void; + public getConnectAttachment( + args: GetConnectAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetConnectAttachmentCommandOutput) => void + ): void; + public getConnectAttachment( + args: GetConnectAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConnectAttachmentCommandOutput) => void), + cb?: (err: any, data?: GetConnectAttachmentCommandOutput) => void + ): Promise | void { + const command = new GetConnectAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Gets information about one or more of your connections in a global network.

                        + */ + public getConnections( + args: GetConnectionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getConnections( + args: GetConnectionsCommandInput, + cb: (err: any, data?: GetConnectionsCommandOutput) => void + ): void; + public getConnections( + args: GetConnectionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetConnectionsCommandOutput) => void + ): void; + public getConnections( + args: GetConnectionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConnectionsCommandOutput) => void), + cb?: (err: any, data?: GetConnectionsCommandOutput) => void + ): Promise | void { + const command = new GetConnectionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns information about a core network Connect peer.

                        + */ + public getConnectPeer( + args: GetConnectPeerCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getConnectPeer( + args: GetConnectPeerCommandInput, + cb: (err: any, data?: GetConnectPeerCommandOutput) => void + ): void; + public getConnectPeer( + args: GetConnectPeerCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetConnectPeerCommandOutput) => void + ): void; + public getConnectPeer( + args: GetConnectPeerCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConnectPeerCommandOutput) => void), + cb?: (err: any, data?: GetConnectPeerCommandOutput) => void + ): Promise | void { + const command = new GetConnectPeerCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns information about a core network Connect peer associations.

                        + */ + public getConnectPeerAssociations( + args: GetConnectPeerAssociationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getConnectPeerAssociations( + args: GetConnectPeerAssociationsCommandInput, + cb: (err: any, data?: GetConnectPeerAssociationsCommandOutput) => void + ): void; + public getConnectPeerAssociations( + args: GetConnectPeerAssociationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetConnectPeerAssociationsCommandOutput) => void + ): void; + public getConnectPeerAssociations( + args: GetConnectPeerAssociationsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConnectPeerAssociationsCommandOutput) => void), + cb?: (err: any, data?: GetConnectPeerAssociationsCommandOutput) => void + ): Promise | void { + const command = new GetConnectPeerAssociationsCommand(args); if (typeof optionsOrCb === "function") { this.send(command, optionsOrCb); } else if (typeof cb === "function") { @@ -685,28 +1502,27 @@ export class NetworkManager extends NetworkManagerClient { } /** - *

                        Disassociates an existing device from a link. You must first disassociate any customer - * gateways that are associated with the link.

                        + *

                        Returns information about a core network. By default it returns the LIVE policy.

                        */ - public disassociateLink( - args: DisassociateLinkCommandInput, + public getCoreNetwork( + args: GetCoreNetworkCommandInput, options?: __HttpHandlerOptions - ): Promise; - public disassociateLink( - args: DisassociateLinkCommandInput, - cb: (err: any, data?: DisassociateLinkCommandOutput) => void + ): Promise; + public getCoreNetwork( + args: GetCoreNetworkCommandInput, + cb: (err: any, data?: GetCoreNetworkCommandOutput) => void ): void; - public disassociateLink( - args: DisassociateLinkCommandInput, + public getCoreNetwork( + args: GetCoreNetworkCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DisassociateLinkCommandOutput) => void - ): void; - public disassociateLink( - args: DisassociateLinkCommandInput, - optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DisassociateLinkCommandOutput) => void), - cb?: (err: any, data?: DisassociateLinkCommandOutput) => void - ): Promise | void { - const command = new DisassociateLinkCommand(args); + cb: (err: any, data?: GetCoreNetworkCommandOutput) => void + ): void; + public getCoreNetwork( + args: GetCoreNetworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetCoreNetworkCommandOutput) => void), + cb?: (err: any, data?: GetCoreNetworkCommandOutput) => void + ): Promise | void { + const command = new GetCoreNetworkCommand(args); if (typeof optionsOrCb === "function") { this.send(command, optionsOrCb); } else if (typeof cb === "function") { @@ -718,29 +1534,27 @@ export class NetworkManager extends NetworkManagerClient { } /** - *

                        Disassociates a transit gateway Connect peer from a device and link.

                        + *

                        Returns a change set between the LIVE core network policy and a submitted policy.

                        */ - public disassociateTransitGatewayConnectPeer( - args: DisassociateTransitGatewayConnectPeerCommandInput, + public getCoreNetworkChangeSet( + args: GetCoreNetworkChangeSetCommandInput, options?: __HttpHandlerOptions - ): Promise; - public disassociateTransitGatewayConnectPeer( - args: DisassociateTransitGatewayConnectPeerCommandInput, - cb: (err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void + ): Promise; + public getCoreNetworkChangeSet( + args: GetCoreNetworkChangeSetCommandInput, + cb: (err: any, data?: GetCoreNetworkChangeSetCommandOutput) => void ): void; - public disassociateTransitGatewayConnectPeer( - args: DisassociateTransitGatewayConnectPeerCommandInput, + public getCoreNetworkChangeSet( + args: GetCoreNetworkChangeSetCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void - ): void; - public disassociateTransitGatewayConnectPeer( - args: DisassociateTransitGatewayConnectPeerCommandInput, - optionsOrCb?: - | __HttpHandlerOptions - | ((err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void), - cb?: (err: any, data?: DisassociateTransitGatewayConnectPeerCommandOutput) => void - ): Promise | void { - const command = new DisassociateTransitGatewayConnectPeerCommand(args); + cb: (err: any, data?: GetCoreNetworkChangeSetCommandOutput) => void + ): void; + public getCoreNetworkChangeSet( + args: GetCoreNetworkChangeSetCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetCoreNetworkChangeSetCommandOutput) => void), + cb?: (err: any, data?: GetCoreNetworkChangeSetCommandOutput) => void + ): Promise | void { + const command = new GetCoreNetworkChangeSetCommand(args); if (typeof optionsOrCb === "function") { this.send(command, optionsOrCb); } else if (typeof cb === "function") { @@ -752,27 +1566,27 @@ export class NetworkManager extends NetworkManagerClient { } /** - *

                        Gets information about one or more of your connections in a global network.

                        + *

                        Gets details about a core network policy. You can get details about your current live policy or any previous policy version.

                        */ - public getConnections( - args: GetConnectionsCommandInput, + public getCoreNetworkPolicy( + args: GetCoreNetworkPolicyCommandInput, options?: __HttpHandlerOptions - ): Promise; - public getConnections( - args: GetConnectionsCommandInput, - cb: (err: any, data?: GetConnectionsCommandOutput) => void + ): Promise; + public getCoreNetworkPolicy( + args: GetCoreNetworkPolicyCommandInput, + cb: (err: any, data?: GetCoreNetworkPolicyCommandOutput) => void ): void; - public getConnections( - args: GetConnectionsCommandInput, + public getCoreNetworkPolicy( + args: GetCoreNetworkPolicyCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: GetConnectionsCommandOutput) => void - ): void; - public getConnections( - args: GetConnectionsCommandInput, - optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetConnectionsCommandOutput) => void), - cb?: (err: any, data?: GetConnectionsCommandOutput) => void - ): Promise | void { - const command = new GetConnectionsCommand(args); + cb: (err: any, data?: GetCoreNetworkPolicyCommandOutput) => void + ): void; + public getCoreNetworkPolicy( + args: GetCoreNetworkPolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetCoreNetworkPolicyCommandOutput) => void), + cb?: (err: any, data?: GetCoreNetworkPolicyCommandOutput) => void + ): Promise | void { + const command = new GetCoreNetworkPolicyCommand(args); if (typeof optionsOrCb === "function") { this.send(command, optionsOrCb); } else if (typeof cb === "function") { @@ -1063,6 +1877,38 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Returns information about a resource policy.

                        + */ + public getResourcePolicy( + args: GetResourcePolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getResourcePolicy( + args: GetResourcePolicyCommandInput, + cb: (err: any, data?: GetResourcePolicyCommandOutput) => void + ): void; + public getResourcePolicy( + args: GetResourcePolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetResourcePolicyCommandOutput) => void + ): void; + public getResourcePolicy( + args: GetResourcePolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetResourcePolicyCommandOutput) => void), + cb?: (err: any, data?: GetResourcePolicyCommandOutput) => void + ): Promise | void { + const command = new GetResourcePolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Gets information about the specified route analysis.

                        */ @@ -1121,6 +1967,38 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Returns information about a site-to-site VPN attachment.

                        + */ + public getSiteToSiteVpnAttachment( + args: GetSiteToSiteVpnAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getSiteToSiteVpnAttachment( + args: GetSiteToSiteVpnAttachmentCommandInput, + cb: (err: any, data?: GetSiteToSiteVpnAttachmentCommandOutput) => void + ): void; + public getSiteToSiteVpnAttachment( + args: GetSiteToSiteVpnAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetSiteToSiteVpnAttachmentCommandOutput) => void + ): void; + public getSiteToSiteVpnAttachment( + args: GetSiteToSiteVpnAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetSiteToSiteVpnAttachmentCommandOutput) => void), + cb?: (err: any, data?: GetSiteToSiteVpnAttachmentCommandOutput) => void + ): Promise | void { + const command = new GetSiteToSiteVpnAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Gets information about one or more of your transit gateway Connect peer associations in a global network.

                        */ @@ -1188,6 +2066,166 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Returns information about a VPC attachment.

                        + */ + public getVpcAttachment( + args: GetVpcAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public getVpcAttachment( + args: GetVpcAttachmentCommandInput, + cb: (err: any, data?: GetVpcAttachmentCommandOutput) => void + ): void; + public getVpcAttachment( + args: GetVpcAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetVpcAttachmentCommandOutput) => void + ): void; + public getVpcAttachment( + args: GetVpcAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: GetVpcAttachmentCommandOutput) => void), + cb?: (err: any, data?: GetVpcAttachmentCommandOutput) => void + ): Promise | void { + const command = new GetVpcAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns a list of core network attachments.

                        + */ + public listAttachments( + args: ListAttachmentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAttachments( + args: ListAttachmentsCommandInput, + cb: (err: any, data?: ListAttachmentsCommandOutput) => void + ): void; + public listAttachments( + args: ListAttachmentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAttachmentsCommandOutput) => void + ): void; + public listAttachments( + args: ListAttachmentsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAttachmentsCommandOutput) => void), + cb?: (err: any, data?: ListAttachmentsCommandOutput) => void + ): Promise | void { + const command = new ListAttachmentsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns a list of core network Connect peers.

                        + */ + public listConnectPeers( + args: ListConnectPeersCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listConnectPeers( + args: ListConnectPeersCommandInput, + cb: (err: any, data?: ListConnectPeersCommandOutput) => void + ): void; + public listConnectPeers( + args: ListConnectPeersCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListConnectPeersCommandOutput) => void + ): void; + public listConnectPeers( + args: ListConnectPeersCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListConnectPeersCommandOutput) => void), + cb?: (err: any, data?: ListConnectPeersCommandOutput) => void + ): Promise | void { + const command = new ListConnectPeersCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns a list of core network policy versions.

                        + */ + public listCoreNetworkPolicyVersions( + args: ListCoreNetworkPolicyVersionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCoreNetworkPolicyVersions( + args: ListCoreNetworkPolicyVersionsCommandInput, + cb: (err: any, data?: ListCoreNetworkPolicyVersionsCommandOutput) => void + ): void; + public listCoreNetworkPolicyVersions( + args: ListCoreNetworkPolicyVersionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCoreNetworkPolicyVersionsCommandOutput) => void + ): void; + public listCoreNetworkPolicyVersions( + args: ListCoreNetworkPolicyVersionsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCoreNetworkPolicyVersionsCommandOutput) => void), + cb?: (err: any, data?: ListCoreNetworkPolicyVersionsCommandOutput) => void + ): Promise | void { + const command = new ListCoreNetworkPolicyVersionsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Returns a list of owned and shared core networks.

                        + */ + public listCoreNetworks( + args: ListCoreNetworksCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCoreNetworks( + args: ListCoreNetworksCommandInput, + cb: (err: any, data?: ListCoreNetworksCommandOutput) => void + ): void; + public listCoreNetworks( + args: ListCoreNetworksCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCoreNetworksCommandOutput) => void + ): void; + public listCoreNetworks( + args: ListCoreNetworksCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCoreNetworksCommandOutput) => void), + cb?: (err: any, data?: ListCoreNetworksCommandOutput) => void + ): Promise | void { + const command = new ListCoreNetworksCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Lists the tags for a specified resource.

                        */ @@ -1220,6 +2258,70 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Creates a new, immutable version of a core network policy. A subsequent change set is created showing the differences between the LIVE policy and the submitted policy.

                        + */ + public putCoreNetworkPolicy( + args: PutCoreNetworkPolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putCoreNetworkPolicy( + args: PutCoreNetworkPolicyCommandInput, + cb: (err: any, data?: PutCoreNetworkPolicyCommandOutput) => void + ): void; + public putCoreNetworkPolicy( + args: PutCoreNetworkPolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutCoreNetworkPolicyCommandOutput) => void + ): void; + public putCoreNetworkPolicy( + args: PutCoreNetworkPolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutCoreNetworkPolicyCommandOutput) => void), + cb?: (err: any, data?: PutCoreNetworkPolicyCommandOutput) => void + ): Promise | void { + const command = new PutCoreNetworkPolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Creates or updates a resource policy.

                        + */ + public putResourcePolicy( + args: PutResourcePolicyCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putResourcePolicy( + args: PutResourcePolicyCommandInput, + cb: (err: any, data?: PutResourcePolicyCommandOutput) => void + ): void; + public putResourcePolicy( + args: PutResourcePolicyCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutResourcePolicyCommandOutput) => void + ): void; + public putResourcePolicy( + args: PutResourcePolicyCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutResourcePolicyCommandOutput) => void), + cb?: (err: any, data?: PutResourcePolicyCommandOutput) => void + ): Promise | void { + const command = new PutResourcePolicyCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Registers a transit gateway in your global network. The transit gateway can be in any * Amazon Web Services Region, but it must be owned by the same Amazon Web Services account that owns @@ -1254,6 +2356,70 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Rejects a core network attachment request.

                        + */ + public rejectAttachment( + args: RejectAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public rejectAttachment( + args: RejectAttachmentCommandInput, + cb: (err: any, data?: RejectAttachmentCommandOutput) => void + ): void; + public rejectAttachment( + args: RejectAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RejectAttachmentCommandOutput) => void + ): void; + public rejectAttachment( + args: RejectAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RejectAttachmentCommandOutput) => void), + cb?: (err: any, data?: RejectAttachmentCommandOutput) => void + ): Promise | void { + const command = new RejectAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

                        Restores a previous policy version as a new, immutable version of a core network policy. A subsequent change set is created showing the differences between the LIVE policy and restored policy.

                        + */ + public restoreCoreNetworkPolicyVersion( + args: RestoreCoreNetworkPolicyVersionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public restoreCoreNetworkPolicyVersion( + args: RestoreCoreNetworkPolicyVersionCommandInput, + cb: (err: any, data?: RestoreCoreNetworkPolicyVersionCommandOutput) => void + ): void; + public restoreCoreNetworkPolicyVersion( + args: RestoreCoreNetworkPolicyVersionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RestoreCoreNetworkPolicyVersionCommandOutput) => void + ): void; + public restoreCoreNetworkPolicyVersion( + args: RestoreCoreNetworkPolicyVersionCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: RestoreCoreNetworkPolicyVersionCommandOutput) => void), + cb?: (err: any, data?: RestoreCoreNetworkPolicyVersionCommandOutput) => void + ): Promise | void { + const command = new RestoreCoreNetworkPolicyVersionCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Starts analyzing the routing path between the specified source and destination. For more information, * see Route Analyzer.

                        @@ -1378,6 +2544,38 @@ export class NetworkManager extends NetworkManagerClient { } } + /** + *

                        Updates the description of a core network.

                        + */ + public updateCoreNetwork( + args: UpdateCoreNetworkCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateCoreNetwork( + args: UpdateCoreNetworkCommandInput, + cb: (err: any, data?: UpdateCoreNetworkCommandOutput) => void + ): void; + public updateCoreNetwork( + args: UpdateCoreNetworkCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateCoreNetworkCommandOutput) => void + ): void; + public updateCoreNetwork( + args: UpdateCoreNetworkCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateCoreNetworkCommandOutput) => void), + cb?: (err: any, data?: UpdateCoreNetworkCommandOutput) => void + ): Promise | void { + const command = new UpdateCoreNetworkCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        Updates the details for an existing device. To remove information for any of the * parameters, specify an empty string.

                        @@ -1526,4 +2724,36 @@ export class NetworkManager extends NetworkManagerClient { return this.send(command, optionsOrCb); } } + + /** + *

                        Updates a VPC attachment.

                        + */ + public updateVpcAttachment( + args: UpdateVpcAttachmentCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateVpcAttachment( + args: UpdateVpcAttachmentCommandInput, + cb: (err: any, data?: UpdateVpcAttachmentCommandOutput) => void + ): void; + public updateVpcAttachment( + args: UpdateVpcAttachmentCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateVpcAttachmentCommandOutput) => void + ): void; + public updateVpcAttachment( + args: UpdateVpcAttachmentCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateVpcAttachmentCommandOutput) => void), + cb?: (err: any, data?: UpdateVpcAttachmentCommandOutput) => void + ): Promise | void { + const command = new UpdateVpcAttachmentCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } } diff --git a/clients/client-networkmanager/src/NetworkManagerClient.ts b/clients/client-networkmanager/src/NetworkManagerClient.ts index ee59d3978948..e962a1a1ce08 100644 --- a/clients/client-networkmanager/src/NetworkManagerClient.ts +++ b/clients/client-networkmanager/src/NetworkManagerClient.ts @@ -49,6 +49,11 @@ import { UserAgent as __UserAgent, } from "@aws-sdk/types"; +import { AcceptAttachmentCommandInput, AcceptAttachmentCommandOutput } from "./commands/AcceptAttachmentCommand"; +import { + AssociateConnectPeerCommandInput, + AssociateConnectPeerCommandOutput, +} from "./commands/AssociateConnectPeerCommand"; import { AssociateCustomerGatewayCommandInput, AssociateCustomerGatewayCommandOutput, @@ -58,7 +63,13 @@ import { AssociateTransitGatewayConnectPeerCommandInput, AssociateTransitGatewayConnectPeerCommandOutput, } from "./commands/AssociateTransitGatewayConnectPeerCommand"; +import { + CreateConnectAttachmentCommandInput, + CreateConnectAttachmentCommandOutput, +} from "./commands/CreateConnectAttachmentCommand"; import { CreateConnectionCommandInput, CreateConnectionCommandOutput } from "./commands/CreateConnectionCommand"; +import { CreateConnectPeerCommandInput, CreateConnectPeerCommandOutput } from "./commands/CreateConnectPeerCommand"; +import { CreateCoreNetworkCommandInput, CreateCoreNetworkCommandOutput } from "./commands/CreateCoreNetworkCommand"; import { CreateDeviceCommandInput, CreateDeviceCommandOutput } from "./commands/CreateDeviceCommand"; import { CreateGlobalNetworkCommandInput, @@ -66,13 +77,32 @@ import { } from "./commands/CreateGlobalNetworkCommand"; import { CreateLinkCommandInput, CreateLinkCommandOutput } from "./commands/CreateLinkCommand"; import { CreateSiteCommandInput, CreateSiteCommandOutput } from "./commands/CreateSiteCommand"; +import { + CreateSiteToSiteVpnAttachmentCommandInput, + CreateSiteToSiteVpnAttachmentCommandOutput, +} from "./commands/CreateSiteToSiteVpnAttachmentCommand"; +import { + CreateVpcAttachmentCommandInput, + CreateVpcAttachmentCommandOutput, +} from "./commands/CreateVpcAttachmentCommand"; +import { DeleteAttachmentCommandInput, DeleteAttachmentCommandOutput } from "./commands/DeleteAttachmentCommand"; import { DeleteConnectionCommandInput, DeleteConnectionCommandOutput } from "./commands/DeleteConnectionCommand"; +import { DeleteConnectPeerCommandInput, DeleteConnectPeerCommandOutput } from "./commands/DeleteConnectPeerCommand"; +import { DeleteCoreNetworkCommandInput, DeleteCoreNetworkCommandOutput } from "./commands/DeleteCoreNetworkCommand"; +import { + DeleteCoreNetworkPolicyVersionCommandInput, + DeleteCoreNetworkPolicyVersionCommandOutput, +} from "./commands/DeleteCoreNetworkPolicyVersionCommand"; import { DeleteDeviceCommandInput, DeleteDeviceCommandOutput } from "./commands/DeleteDeviceCommand"; import { DeleteGlobalNetworkCommandInput, DeleteGlobalNetworkCommandOutput, } from "./commands/DeleteGlobalNetworkCommand"; import { DeleteLinkCommandInput, DeleteLinkCommandOutput } from "./commands/DeleteLinkCommand"; +import { + DeleteResourcePolicyCommandInput, + DeleteResourcePolicyCommandOutput, +} from "./commands/DeleteResourcePolicyCommand"; import { DeleteSiteCommandInput, DeleteSiteCommandOutput } from "./commands/DeleteSiteCommand"; import { DeregisterTransitGatewayCommandInput, @@ -82,6 +112,10 @@ import { DescribeGlobalNetworksCommandInput, DescribeGlobalNetworksCommandOutput, } from "./commands/DescribeGlobalNetworksCommand"; +import { + DisassociateConnectPeerCommandInput, + DisassociateConnectPeerCommandOutput, +} from "./commands/DisassociateConnectPeerCommand"; import { DisassociateCustomerGatewayCommandInput, DisassociateCustomerGatewayCommandOutput, @@ -91,7 +125,29 @@ import { DisassociateTransitGatewayConnectPeerCommandInput, DisassociateTransitGatewayConnectPeerCommandOutput, } from "./commands/DisassociateTransitGatewayConnectPeerCommand"; +import { + ExecuteCoreNetworkChangeSetCommandInput, + ExecuteCoreNetworkChangeSetCommandOutput, +} from "./commands/ExecuteCoreNetworkChangeSetCommand"; +import { + GetConnectAttachmentCommandInput, + GetConnectAttachmentCommandOutput, +} from "./commands/GetConnectAttachmentCommand"; import { GetConnectionsCommandInput, GetConnectionsCommandOutput } from "./commands/GetConnectionsCommand"; +import { + GetConnectPeerAssociationsCommandInput, + GetConnectPeerAssociationsCommandOutput, +} from "./commands/GetConnectPeerAssociationsCommand"; +import { GetConnectPeerCommandInput, GetConnectPeerCommandOutput } from "./commands/GetConnectPeerCommand"; +import { + GetCoreNetworkChangeSetCommandInput, + GetCoreNetworkChangeSetCommandOutput, +} from "./commands/GetCoreNetworkChangeSetCommand"; +import { GetCoreNetworkCommandInput, GetCoreNetworkCommandOutput } from "./commands/GetCoreNetworkCommand"; +import { + GetCoreNetworkPolicyCommandInput, + GetCoreNetworkPolicyCommandOutput, +} from "./commands/GetCoreNetworkPolicyCommand"; import { GetCustomerGatewayAssociationsCommandInput, GetCustomerGatewayAssociationsCommandOutput, @@ -119,8 +175,13 @@ import { GetNetworkTelemetryCommandInput, GetNetworkTelemetryCommandOutput, } from "./commands/GetNetworkTelemetryCommand"; +import { GetResourcePolicyCommandInput, GetResourcePolicyCommandOutput } from "./commands/GetResourcePolicyCommand"; import { GetRouteAnalysisCommandInput, GetRouteAnalysisCommandOutput } from "./commands/GetRouteAnalysisCommand"; import { GetSitesCommandInput, GetSitesCommandOutput } from "./commands/GetSitesCommand"; +import { + GetSiteToSiteVpnAttachmentCommandInput, + GetSiteToSiteVpnAttachmentCommandOutput, +} from "./commands/GetSiteToSiteVpnAttachmentCommand"; import { GetTransitGatewayConnectPeerAssociationsCommandInput, GetTransitGatewayConnectPeerAssociationsCommandOutput, @@ -129,18 +190,37 @@ import { GetTransitGatewayRegistrationsCommandInput, GetTransitGatewayRegistrationsCommandOutput, } from "./commands/GetTransitGatewayRegistrationsCommand"; +import { GetVpcAttachmentCommandInput, GetVpcAttachmentCommandOutput } from "./commands/GetVpcAttachmentCommand"; +import { ListAttachmentsCommandInput, ListAttachmentsCommandOutput } from "./commands/ListAttachmentsCommand"; +import { ListConnectPeersCommandInput, ListConnectPeersCommandOutput } from "./commands/ListConnectPeersCommand"; +import { + ListCoreNetworkPolicyVersionsCommandInput, + ListCoreNetworkPolicyVersionsCommandOutput, +} from "./commands/ListCoreNetworkPolicyVersionsCommand"; +import { ListCoreNetworksCommandInput, ListCoreNetworksCommandOutput } from "./commands/ListCoreNetworksCommand"; import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, } from "./commands/ListTagsForResourceCommand"; +import { + PutCoreNetworkPolicyCommandInput, + PutCoreNetworkPolicyCommandOutput, +} from "./commands/PutCoreNetworkPolicyCommand"; +import { PutResourcePolicyCommandInput, PutResourcePolicyCommandOutput } from "./commands/PutResourcePolicyCommand"; import { RegisterTransitGatewayCommandInput, RegisterTransitGatewayCommandOutput, } from "./commands/RegisterTransitGatewayCommand"; +import { RejectAttachmentCommandInput, RejectAttachmentCommandOutput } from "./commands/RejectAttachmentCommand"; +import { + RestoreCoreNetworkPolicyVersionCommandInput, + RestoreCoreNetworkPolicyVersionCommandOutput, +} from "./commands/RestoreCoreNetworkPolicyVersionCommand"; import { StartRouteAnalysisCommandInput, StartRouteAnalysisCommandOutput } from "./commands/StartRouteAnalysisCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateConnectionCommandInput, UpdateConnectionCommandOutput } from "./commands/UpdateConnectionCommand"; +import { UpdateCoreNetworkCommandInput, UpdateCoreNetworkCommandOutput } from "./commands/UpdateCoreNetworkCommand"; import { UpdateDeviceCommandInput, UpdateDeviceCommandOutput } from "./commands/UpdateDeviceCommand"; import { UpdateGlobalNetworkCommandInput, @@ -152,28 +232,52 @@ import { UpdateNetworkResourceMetadataCommandOutput, } from "./commands/UpdateNetworkResourceMetadataCommand"; import { UpdateSiteCommandInput, UpdateSiteCommandOutput } from "./commands/UpdateSiteCommand"; +import { + UpdateVpcAttachmentCommandInput, + UpdateVpcAttachmentCommandOutput, +} from "./commands/UpdateVpcAttachmentCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; export type ServiceInputTypes = + | AcceptAttachmentCommandInput + | AssociateConnectPeerCommandInput | AssociateCustomerGatewayCommandInput | AssociateLinkCommandInput | AssociateTransitGatewayConnectPeerCommandInput + | CreateConnectAttachmentCommandInput + | CreateConnectPeerCommandInput | CreateConnectionCommandInput + | CreateCoreNetworkCommandInput | CreateDeviceCommandInput | CreateGlobalNetworkCommandInput | CreateLinkCommandInput | CreateSiteCommandInput + | CreateSiteToSiteVpnAttachmentCommandInput + | CreateVpcAttachmentCommandInput + | DeleteAttachmentCommandInput + | DeleteConnectPeerCommandInput | DeleteConnectionCommandInput + | DeleteCoreNetworkCommandInput + | DeleteCoreNetworkPolicyVersionCommandInput | DeleteDeviceCommandInput | DeleteGlobalNetworkCommandInput | DeleteLinkCommandInput + | DeleteResourcePolicyCommandInput | DeleteSiteCommandInput | DeregisterTransitGatewayCommandInput | DescribeGlobalNetworksCommandInput + | DisassociateConnectPeerCommandInput | DisassociateCustomerGatewayCommandInput | DisassociateLinkCommandInput | DisassociateTransitGatewayConnectPeerCommandInput + | ExecuteCoreNetworkChangeSetCommandInput + | GetConnectAttachmentCommandInput + | GetConnectPeerAssociationsCommandInput + | GetConnectPeerCommandInput | GetConnectionsCommandInput + | GetCoreNetworkChangeSetCommandInput + | GetCoreNetworkCommandInput + | GetCoreNetworkPolicyCommandInput | GetCustomerGatewayAssociationsCommandInput | GetDevicesCommandInput | GetLinkAssociationsCommandInput @@ -183,42 +287,75 @@ export type ServiceInputTypes = | GetNetworkResourcesCommandInput | GetNetworkRoutesCommandInput | GetNetworkTelemetryCommandInput + | GetResourcePolicyCommandInput | GetRouteAnalysisCommandInput + | GetSiteToSiteVpnAttachmentCommandInput | GetSitesCommandInput | GetTransitGatewayConnectPeerAssociationsCommandInput | GetTransitGatewayRegistrationsCommandInput + | GetVpcAttachmentCommandInput + | ListAttachmentsCommandInput + | ListConnectPeersCommandInput + | ListCoreNetworkPolicyVersionsCommandInput + | ListCoreNetworksCommandInput | ListTagsForResourceCommandInput + | PutCoreNetworkPolicyCommandInput + | PutResourcePolicyCommandInput | RegisterTransitGatewayCommandInput + | RejectAttachmentCommandInput + | RestoreCoreNetworkPolicyVersionCommandInput | StartRouteAnalysisCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateConnectionCommandInput + | UpdateCoreNetworkCommandInput | UpdateDeviceCommandInput | UpdateGlobalNetworkCommandInput | UpdateLinkCommandInput | UpdateNetworkResourceMetadataCommandInput - | UpdateSiteCommandInput; + | UpdateSiteCommandInput + | UpdateVpcAttachmentCommandInput; export type ServiceOutputTypes = + | AcceptAttachmentCommandOutput + | AssociateConnectPeerCommandOutput | AssociateCustomerGatewayCommandOutput | AssociateLinkCommandOutput | AssociateTransitGatewayConnectPeerCommandOutput + | CreateConnectAttachmentCommandOutput + | CreateConnectPeerCommandOutput | CreateConnectionCommandOutput + | CreateCoreNetworkCommandOutput | CreateDeviceCommandOutput | CreateGlobalNetworkCommandOutput | CreateLinkCommandOutput | CreateSiteCommandOutput + | CreateSiteToSiteVpnAttachmentCommandOutput + | CreateVpcAttachmentCommandOutput + | DeleteAttachmentCommandOutput + | DeleteConnectPeerCommandOutput | DeleteConnectionCommandOutput + | DeleteCoreNetworkCommandOutput + | DeleteCoreNetworkPolicyVersionCommandOutput | DeleteDeviceCommandOutput | DeleteGlobalNetworkCommandOutput | DeleteLinkCommandOutput + | DeleteResourcePolicyCommandOutput | DeleteSiteCommandOutput | DeregisterTransitGatewayCommandOutput | DescribeGlobalNetworksCommandOutput + | DisassociateConnectPeerCommandOutput | DisassociateCustomerGatewayCommandOutput | DisassociateLinkCommandOutput | DisassociateTransitGatewayConnectPeerCommandOutput + | ExecuteCoreNetworkChangeSetCommandOutput + | GetConnectAttachmentCommandOutput + | GetConnectPeerAssociationsCommandOutput + | GetConnectPeerCommandOutput | GetConnectionsCommandOutput + | GetCoreNetworkChangeSetCommandOutput + | GetCoreNetworkCommandOutput + | GetCoreNetworkPolicyCommandOutput | GetCustomerGatewayAssociationsCommandOutput | GetDevicesCommandOutput | GetLinkAssociationsCommandOutput @@ -228,21 +365,34 @@ export type ServiceOutputTypes = | GetNetworkResourcesCommandOutput | GetNetworkRoutesCommandOutput | GetNetworkTelemetryCommandOutput + | GetResourcePolicyCommandOutput | GetRouteAnalysisCommandOutput + | GetSiteToSiteVpnAttachmentCommandOutput | GetSitesCommandOutput | GetTransitGatewayConnectPeerAssociationsCommandOutput | GetTransitGatewayRegistrationsCommandOutput + | GetVpcAttachmentCommandOutput + | ListAttachmentsCommandOutput + | ListConnectPeersCommandOutput + | ListCoreNetworkPolicyVersionsCommandOutput + | ListCoreNetworksCommandOutput | ListTagsForResourceCommandOutput + | PutCoreNetworkPolicyCommandOutput + | PutResourcePolicyCommandOutput | RegisterTransitGatewayCommandOutput + | RejectAttachmentCommandOutput + | RestoreCoreNetworkPolicyVersionCommandOutput | StartRouteAnalysisCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateConnectionCommandOutput + | UpdateCoreNetworkCommandOutput | UpdateDeviceCommandOutput | UpdateGlobalNetworkCommandOutput | UpdateLinkCommandOutput | UpdateNetworkResourceMetadataCommandOutput - | UpdateSiteCommandOutput; + | UpdateSiteCommandOutput + | UpdateVpcAttachmentCommandOutput; export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { /** diff --git a/clients/client-networkmanager/src/commands/AcceptAttachmentCommand.ts b/clients/client-networkmanager/src/commands/AcceptAttachmentCommand.ts new file mode 100644 index 000000000000..17bc66d4259c --- /dev/null +++ b/clients/client-networkmanager/src/commands/AcceptAttachmentCommand.ts @@ -0,0 +1,97 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AcceptAttachmentRequest, AcceptAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1AcceptAttachmentCommand, + serializeAws_restJson1AcceptAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface AcceptAttachmentCommandInput extends AcceptAttachmentRequest {} +export interface AcceptAttachmentCommandOutput extends AcceptAttachmentResponse, __MetadataBearer {} + +/** + *

                        Accepts a core network attachment request.

                        + *

                        Once the attachment request is accepted by a core network owner, the attachment is + * created and connected to a core network.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, AcceptAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, AcceptAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new AcceptAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link AcceptAttachmentCommandInput} for command's `input` shape. + * @see {@link AcceptAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class AcceptAttachmentCommand extends $Command< + AcceptAttachmentCommandInput, + AcceptAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AcceptAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "AcceptAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AcceptAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: AcceptAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AcceptAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1AcceptAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1AcceptAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/AssociateConnectPeerCommand.ts b/clients/client-networkmanager/src/commands/AssociateConnectPeerCommand.ts new file mode 100644 index 000000000000..330e240b7ffa --- /dev/null +++ b/clients/client-networkmanager/src/commands/AssociateConnectPeerCommand.ts @@ -0,0 +1,98 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { AssociateConnectPeerRequest, AssociateConnectPeerResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1AssociateConnectPeerCommand, + serializeAws_restJson1AssociateConnectPeerCommand, +} from "../protocols/Aws_restJson1"; + +export interface AssociateConnectPeerCommandInput extends AssociateConnectPeerRequest {} +export interface AssociateConnectPeerCommandOutput extends AssociateConnectPeerResponse, __MetadataBearer {} + +/** + *

                        Associates a core network Connect peer with a device and optionally, with a link.

                        + *

                        If you specify a link, it must be associated with the specified device. You can only + * associate core network Connect peers that have been created on a core network Connect + * attachment on a core network.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, AssociateConnectPeerCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, AssociateConnectPeerCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new AssociateConnectPeerCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link AssociateConnectPeerCommandInput} for command's `input` shape. + * @see {@link AssociateConnectPeerCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class AssociateConnectPeerCommand extends $Command< + AssociateConnectPeerCommandInput, + AssociateConnectPeerCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: AssociateConnectPeerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "AssociateConnectPeerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: AssociateConnectPeerRequest.filterSensitiveLog, + outputFilterSensitiveLog: AssociateConnectPeerResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: AssociateConnectPeerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1AssociateConnectPeerCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1AssociateConnectPeerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/CreateConnectAttachmentCommand.ts b/clients/client-networkmanager/src/commands/CreateConnectAttachmentCommand.ts new file mode 100644 index 000000000000..f1c898696753 --- /dev/null +++ b/clients/client-networkmanager/src/commands/CreateConnectAttachmentCommand.ts @@ -0,0 +1,98 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { CreateConnectAttachmentRequest, CreateConnectAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1CreateConnectAttachmentCommand, + serializeAws_restJson1CreateConnectAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateConnectAttachmentCommandInput extends CreateConnectAttachmentRequest {} +export interface CreateConnectAttachmentCommandOutput extends CreateConnectAttachmentResponse, __MetadataBearer {} + +/** + *

                        Creates a core network Connect attachment from a specified core network attachment.

                        + *

                        A core network Connect attachment is a GRE-based tunnel attachment that you can use to + * establish a connection between a core network and an appliance. A core network Connect + * attachment uses an existing VPC attachment as the underlying transport mechanism.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, CreateConnectAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, CreateConnectAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new CreateConnectAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateConnectAttachmentCommandInput} for command's `input` shape. + * @see {@link CreateConnectAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class CreateConnectAttachmentCommand extends $Command< + CreateConnectAttachmentCommandInput, + CreateConnectAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateConnectAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "CreateConnectAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateConnectAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateConnectAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateConnectAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateConnectAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateConnectAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/CreateConnectPeerCommand.ts b/clients/client-networkmanager/src/commands/CreateConnectPeerCommand.ts new file mode 100644 index 000000000000..39e69e941f99 --- /dev/null +++ b/clients/client-networkmanager/src/commands/CreateConnectPeerCommand.ts @@ -0,0 +1,96 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { CreateConnectPeerRequest, CreateConnectPeerResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1CreateConnectPeerCommand, + serializeAws_restJson1CreateConnectPeerCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateConnectPeerCommandInput extends CreateConnectPeerRequest {} +export interface CreateConnectPeerCommandOutput extends CreateConnectPeerResponse, __MetadataBearer {} + +/** + *

                        Creates a core network connect peer for a specified core network connect attachment between a core network and an appliance. + * The peer address and transit gateway address must be the same IP address family (IPv4 or IPv6).

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, CreateConnectPeerCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, CreateConnectPeerCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new CreateConnectPeerCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateConnectPeerCommandInput} for command's `input` shape. + * @see {@link CreateConnectPeerCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class CreateConnectPeerCommand extends $Command< + CreateConnectPeerCommandInput, + CreateConnectPeerCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateConnectPeerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "CreateConnectPeerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateConnectPeerRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateConnectPeerResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateConnectPeerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateConnectPeerCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateConnectPeerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/CreateCoreNetworkCommand.ts b/clients/client-networkmanager/src/commands/CreateCoreNetworkCommand.ts new file mode 100644 index 000000000000..fa19fe10e1c2 --- /dev/null +++ b/clients/client-networkmanager/src/commands/CreateCoreNetworkCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { CreateCoreNetworkRequest, CreateCoreNetworkResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1CreateCoreNetworkCommand, + serializeAws_restJson1CreateCoreNetworkCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateCoreNetworkCommandInput extends CreateCoreNetworkRequest {} +export interface CreateCoreNetworkCommandOutput extends CreateCoreNetworkResponse, __MetadataBearer {} + +/** + *

                        Creates a core network as part of your global network, and optionally, with a core network policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, CreateCoreNetworkCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, CreateCoreNetworkCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new CreateCoreNetworkCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateCoreNetworkCommandInput} for command's `input` shape. + * @see {@link CreateCoreNetworkCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class CreateCoreNetworkCommand extends $Command< + CreateCoreNetworkCommandInput, + CreateCoreNetworkCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateCoreNetworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "CreateCoreNetworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateCoreNetworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateCoreNetworkResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateCoreNetworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateCoreNetworkCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateCoreNetworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/CreateSiteToSiteVpnAttachmentCommand.ts b/clients/client-networkmanager/src/commands/CreateSiteToSiteVpnAttachmentCommand.ts new file mode 100644 index 000000000000..d87b495e2547 --- /dev/null +++ b/clients/client-networkmanager/src/commands/CreateSiteToSiteVpnAttachmentCommand.ts @@ -0,0 +1,100 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { CreateSiteToSiteVpnAttachmentRequest, CreateSiteToSiteVpnAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1CreateSiteToSiteVpnAttachmentCommand, + serializeAws_restJson1CreateSiteToSiteVpnAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateSiteToSiteVpnAttachmentCommandInput extends CreateSiteToSiteVpnAttachmentRequest {} +export interface CreateSiteToSiteVpnAttachmentCommandOutput + extends CreateSiteToSiteVpnAttachmentResponse, + __MetadataBearer {} + +/** + *

                        Creates a site-to-site VPN attachment on an edge location of a core network.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, CreateSiteToSiteVpnAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, CreateSiteToSiteVpnAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new CreateSiteToSiteVpnAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateSiteToSiteVpnAttachmentCommandInput} for command's `input` shape. + * @see {@link CreateSiteToSiteVpnAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class CreateSiteToSiteVpnAttachmentCommand extends $Command< + CreateSiteToSiteVpnAttachmentCommandInput, + CreateSiteToSiteVpnAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateSiteToSiteVpnAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "CreateSiteToSiteVpnAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateSiteToSiteVpnAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateSiteToSiteVpnAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateSiteToSiteVpnAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateSiteToSiteVpnAttachmentCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1CreateSiteToSiteVpnAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/CreateVpcAttachmentCommand.ts b/clients/client-networkmanager/src/commands/CreateVpcAttachmentCommand.ts new file mode 100644 index 000000000000..9ac2ffa7d224 --- /dev/null +++ b/clients/client-networkmanager/src/commands/CreateVpcAttachmentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { CreateVpcAttachmentRequest, CreateVpcAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1CreateVpcAttachmentCommand, + serializeAws_restJson1CreateVpcAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface CreateVpcAttachmentCommandInput extends CreateVpcAttachmentRequest {} +export interface CreateVpcAttachmentCommandOutput extends CreateVpcAttachmentResponse, __MetadataBearer {} + +/** + *

                        Creates a VPC attachment on an edge location of a core network.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, CreateVpcAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, CreateVpcAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new CreateVpcAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateVpcAttachmentCommandInput} for command's `input` shape. + * @see {@link CreateVpcAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class CreateVpcAttachmentCommand extends $Command< + CreateVpcAttachmentCommandInput, + CreateVpcAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateVpcAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "CreateVpcAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateVpcAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: CreateVpcAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateVpcAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1CreateVpcAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1CreateVpcAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/DeleteAttachmentCommand.ts b/clients/client-networkmanager/src/commands/DeleteAttachmentCommand.ts new file mode 100644 index 000000000000..4a5ada26ef66 --- /dev/null +++ b/clients/client-networkmanager/src/commands/DeleteAttachmentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteAttachmentRequest, DeleteAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1DeleteAttachmentCommand, + serializeAws_restJson1DeleteAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteAttachmentCommandInput extends DeleteAttachmentRequest {} +export interface DeleteAttachmentCommandOutput extends DeleteAttachmentResponse, __MetadataBearer {} + +/** + *

                        Deletes an attachment. Supports all attachment types.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, DeleteAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, DeleteAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new DeleteAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteAttachmentCommandInput} for command's `input` shape. + * @see {@link DeleteAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class DeleteAttachmentCommand extends $Command< + DeleteAttachmentCommandInput, + DeleteAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "DeleteAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/DeleteConnectPeerCommand.ts b/clients/client-networkmanager/src/commands/DeleteConnectPeerCommand.ts new file mode 100644 index 000000000000..f890b8afcee3 --- /dev/null +++ b/clients/client-networkmanager/src/commands/DeleteConnectPeerCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteConnectPeerRequest, DeleteConnectPeerResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1DeleteConnectPeerCommand, + serializeAws_restJson1DeleteConnectPeerCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteConnectPeerCommandInput extends DeleteConnectPeerRequest {} +export interface DeleteConnectPeerCommandOutput extends DeleteConnectPeerResponse, __MetadataBearer {} + +/** + *

                        Deletes a Connect peer.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, DeleteConnectPeerCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, DeleteConnectPeerCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new DeleteConnectPeerCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteConnectPeerCommandInput} for command's `input` shape. + * @see {@link DeleteConnectPeerCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class DeleteConnectPeerCommand extends $Command< + DeleteConnectPeerCommandInput, + DeleteConnectPeerCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteConnectPeerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "DeleteConnectPeerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteConnectPeerRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteConnectPeerResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteConnectPeerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteConnectPeerCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteConnectPeerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/DeleteCoreNetworkCommand.ts b/clients/client-networkmanager/src/commands/DeleteCoreNetworkCommand.ts new file mode 100644 index 000000000000..fae5cd17d341 --- /dev/null +++ b/clients/client-networkmanager/src/commands/DeleteCoreNetworkCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteCoreNetworkRequest, DeleteCoreNetworkResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1DeleteCoreNetworkCommand, + serializeAws_restJson1DeleteCoreNetworkCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteCoreNetworkCommandInput extends DeleteCoreNetworkRequest {} +export interface DeleteCoreNetworkCommandOutput extends DeleteCoreNetworkResponse, __MetadataBearer {} + +/** + *

                        Deletes a core network along with all core network policies. This can only be done if there are no attachments on a core network.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, DeleteCoreNetworkCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, DeleteCoreNetworkCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new DeleteCoreNetworkCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteCoreNetworkCommandInput} for command's `input` shape. + * @see {@link DeleteCoreNetworkCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class DeleteCoreNetworkCommand extends $Command< + DeleteCoreNetworkCommandInput, + DeleteCoreNetworkCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteCoreNetworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "DeleteCoreNetworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteCoreNetworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteCoreNetworkResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteCoreNetworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteCoreNetworkCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteCoreNetworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/DeleteCoreNetworkPolicyVersionCommand.ts b/clients/client-networkmanager/src/commands/DeleteCoreNetworkPolicyVersionCommand.ts new file mode 100644 index 000000000000..45b91415b6f6 --- /dev/null +++ b/clients/client-networkmanager/src/commands/DeleteCoreNetworkPolicyVersionCommand.ts @@ -0,0 +1,103 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteCoreNetworkPolicyVersionRequest, DeleteCoreNetworkPolicyVersionResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1DeleteCoreNetworkPolicyVersionCommand, + serializeAws_restJson1DeleteCoreNetworkPolicyVersionCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteCoreNetworkPolicyVersionCommandInput extends DeleteCoreNetworkPolicyVersionRequest {} +export interface DeleteCoreNetworkPolicyVersionCommandOutput + extends DeleteCoreNetworkPolicyVersionResponse, + __MetadataBearer {} + +/** + *

                        Deletes a policy version from a core network. You can't delete the current LIVE policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, DeleteCoreNetworkPolicyVersionCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, DeleteCoreNetworkPolicyVersionCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new DeleteCoreNetworkPolicyVersionCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteCoreNetworkPolicyVersionCommandInput} for command's `input` shape. + * @see {@link DeleteCoreNetworkPolicyVersionCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class DeleteCoreNetworkPolicyVersionCommand extends $Command< + DeleteCoreNetworkPolicyVersionCommandInput, + DeleteCoreNetworkPolicyVersionCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteCoreNetworkPolicyVersionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "DeleteCoreNetworkPolicyVersionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteCoreNetworkPolicyVersionRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteCoreNetworkPolicyVersionResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteCoreNetworkPolicyVersionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteCoreNetworkPolicyVersionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1DeleteCoreNetworkPolicyVersionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/DeleteResourcePolicyCommand.ts b/clients/client-networkmanager/src/commands/DeleteResourcePolicyCommand.ts new file mode 100644 index 000000000000..3ae03947dd33 --- /dev/null +++ b/clients/client-networkmanager/src/commands/DeleteResourcePolicyCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteResourcePolicyRequest, DeleteResourcePolicyResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1DeleteResourcePolicyCommand, + serializeAws_restJson1DeleteResourcePolicyCommand, +} from "../protocols/Aws_restJson1"; + +export interface DeleteResourcePolicyCommandInput extends DeleteResourcePolicyRequest {} +export interface DeleteResourcePolicyCommandOutput extends DeleteResourcePolicyResponse, __MetadataBearer {} + +/** + *

                        Deletes a resource policy for the specified resource. This revokes the access of the principals specified in the resource policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, DeleteResourcePolicyCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, DeleteResourcePolicyCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new DeleteResourcePolicyCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteResourcePolicyCommandInput} for command's `input` shape. + * @see {@link DeleteResourcePolicyCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class DeleteResourcePolicyCommand extends $Command< + DeleteResourcePolicyCommandInput, + DeleteResourcePolicyCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteResourcePolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "DeleteResourcePolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteResourcePolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteResourcePolicyResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteResourcePolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DeleteResourcePolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DeleteResourcePolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/DisassociateConnectPeerCommand.ts b/clients/client-networkmanager/src/commands/DisassociateConnectPeerCommand.ts new file mode 100644 index 000000000000..9c2fde8f6cd3 --- /dev/null +++ b/clients/client-networkmanager/src/commands/DisassociateConnectPeerCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DisassociateConnectPeerRequest, DisassociateConnectPeerResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1DisassociateConnectPeerCommand, + serializeAws_restJson1DisassociateConnectPeerCommand, +} from "../protocols/Aws_restJson1"; + +export interface DisassociateConnectPeerCommandInput extends DisassociateConnectPeerRequest {} +export interface DisassociateConnectPeerCommandOutput extends DisassociateConnectPeerResponse, __MetadataBearer {} + +/** + *

                        Disassociates a core network Connect peer from a device and a link.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, DisassociateConnectPeerCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, DisassociateConnectPeerCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new DisassociateConnectPeerCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DisassociateConnectPeerCommandInput} for command's `input` shape. + * @see {@link DisassociateConnectPeerCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class DisassociateConnectPeerCommand extends $Command< + DisassociateConnectPeerCommandInput, + DisassociateConnectPeerCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DisassociateConnectPeerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "DisassociateConnectPeerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DisassociateConnectPeerRequest.filterSensitiveLog, + outputFilterSensitiveLog: DisassociateConnectPeerResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DisassociateConnectPeerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1DisassociateConnectPeerCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1DisassociateConnectPeerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/ExecuteCoreNetworkChangeSetCommand.ts b/clients/client-networkmanager/src/commands/ExecuteCoreNetworkChangeSetCommand.ts new file mode 100644 index 000000000000..6ef69066c5a7 --- /dev/null +++ b/clients/client-networkmanager/src/commands/ExecuteCoreNetworkChangeSetCommand.ts @@ -0,0 +1,100 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ExecuteCoreNetworkChangeSetRequest, ExecuteCoreNetworkChangeSetResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1ExecuteCoreNetworkChangeSetCommand, + serializeAws_restJson1ExecuteCoreNetworkChangeSetCommand, +} from "../protocols/Aws_restJson1"; + +export interface ExecuteCoreNetworkChangeSetCommandInput extends ExecuteCoreNetworkChangeSetRequest {} +export interface ExecuteCoreNetworkChangeSetCommandOutput + extends ExecuteCoreNetworkChangeSetResponse, + __MetadataBearer {} + +/** + *

                        Executes a change set on your core network. Deploys changes globally based on the policy submitted..

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, ExecuteCoreNetworkChangeSetCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, ExecuteCoreNetworkChangeSetCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new ExecuteCoreNetworkChangeSetCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ExecuteCoreNetworkChangeSetCommandInput} for command's `input` shape. + * @see {@link ExecuteCoreNetworkChangeSetCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class ExecuteCoreNetworkChangeSetCommand extends $Command< + ExecuteCoreNetworkChangeSetCommandInput, + ExecuteCoreNetworkChangeSetCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ExecuteCoreNetworkChangeSetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "ExecuteCoreNetworkChangeSetCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ExecuteCoreNetworkChangeSetRequest.filterSensitiveLog, + outputFilterSensitiveLog: ExecuteCoreNetworkChangeSetResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ExecuteCoreNetworkChangeSetCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ExecuteCoreNetworkChangeSetCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1ExecuteCoreNetworkChangeSetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetConnectAttachmentCommand.ts b/clients/client-networkmanager/src/commands/GetConnectAttachmentCommand.ts new file mode 100644 index 000000000000..8890ec605f6a --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetConnectAttachmentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetConnectAttachmentRequest, GetConnectAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetConnectAttachmentCommand, + serializeAws_restJson1GetConnectAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetConnectAttachmentCommandInput extends GetConnectAttachmentRequest {} +export interface GetConnectAttachmentCommandOutput extends GetConnectAttachmentResponse, __MetadataBearer {} + +/** + *

                        Returns information about a core network Connect attachment.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetConnectAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetConnectAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetConnectAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetConnectAttachmentCommandInput} for command's `input` shape. + * @see {@link GetConnectAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetConnectAttachmentCommand extends $Command< + GetConnectAttachmentCommandInput, + GetConnectAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetConnectAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetConnectAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetConnectAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetConnectAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetConnectAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetConnectAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetConnectAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetConnectPeerAssociationsCommand.ts b/clients/client-networkmanager/src/commands/GetConnectPeerAssociationsCommand.ts new file mode 100644 index 000000000000..7ff5381c297f --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetConnectPeerAssociationsCommand.ts @@ -0,0 +1,98 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetConnectPeerAssociationsRequest, GetConnectPeerAssociationsResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetConnectPeerAssociationsCommand, + serializeAws_restJson1GetConnectPeerAssociationsCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetConnectPeerAssociationsCommandInput extends GetConnectPeerAssociationsRequest {} +export interface GetConnectPeerAssociationsCommandOutput extends GetConnectPeerAssociationsResponse, __MetadataBearer {} + +/** + *

                        Returns information about a core network Connect peer associations.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetConnectPeerAssociationsCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetConnectPeerAssociationsCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetConnectPeerAssociationsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetConnectPeerAssociationsCommandInput} for command's `input` shape. + * @see {@link GetConnectPeerAssociationsCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetConnectPeerAssociationsCommand extends $Command< + GetConnectPeerAssociationsCommandInput, + GetConnectPeerAssociationsCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetConnectPeerAssociationsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetConnectPeerAssociationsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetConnectPeerAssociationsRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetConnectPeerAssociationsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetConnectPeerAssociationsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetConnectPeerAssociationsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetConnectPeerAssociationsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetConnectPeerCommand.ts b/clients/client-networkmanager/src/commands/GetConnectPeerCommand.ts new file mode 100644 index 000000000000..ac98f241d344 --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetConnectPeerCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetConnectPeerRequest, GetConnectPeerResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetConnectPeerCommand, + serializeAws_restJson1GetConnectPeerCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetConnectPeerCommandInput extends GetConnectPeerRequest {} +export interface GetConnectPeerCommandOutput extends GetConnectPeerResponse, __MetadataBearer {} + +/** + *

                        Returns information about a core network Connect peer.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetConnectPeerCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetConnectPeerCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetConnectPeerCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetConnectPeerCommandInput} for command's `input` shape. + * @see {@link GetConnectPeerCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetConnectPeerCommand extends $Command< + GetConnectPeerCommandInput, + GetConnectPeerCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetConnectPeerCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetConnectPeerCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetConnectPeerRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetConnectPeerResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetConnectPeerCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetConnectPeerCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetConnectPeerCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetCoreNetworkChangeSetCommand.ts b/clients/client-networkmanager/src/commands/GetCoreNetworkChangeSetCommand.ts new file mode 100644 index 000000000000..dc1d6d2b369d --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetCoreNetworkChangeSetCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetCoreNetworkChangeSetRequest, GetCoreNetworkChangeSetResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetCoreNetworkChangeSetCommand, + serializeAws_restJson1GetCoreNetworkChangeSetCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetCoreNetworkChangeSetCommandInput extends GetCoreNetworkChangeSetRequest {} +export interface GetCoreNetworkChangeSetCommandOutput extends GetCoreNetworkChangeSetResponse, __MetadataBearer {} + +/** + *

                        Returns a change set between the LIVE core network policy and a submitted policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetCoreNetworkChangeSetCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetCoreNetworkChangeSetCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetCoreNetworkChangeSetCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetCoreNetworkChangeSetCommandInput} for command's `input` shape. + * @see {@link GetCoreNetworkChangeSetCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetCoreNetworkChangeSetCommand extends $Command< + GetCoreNetworkChangeSetCommandInput, + GetCoreNetworkChangeSetCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetCoreNetworkChangeSetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetCoreNetworkChangeSetCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetCoreNetworkChangeSetRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetCoreNetworkChangeSetResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetCoreNetworkChangeSetCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetCoreNetworkChangeSetCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetCoreNetworkChangeSetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetCoreNetworkCommand.ts b/clients/client-networkmanager/src/commands/GetCoreNetworkCommand.ts new file mode 100644 index 000000000000..3925a37fcbd3 --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetCoreNetworkCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetCoreNetworkRequest, GetCoreNetworkResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetCoreNetworkCommand, + serializeAws_restJson1GetCoreNetworkCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetCoreNetworkCommandInput extends GetCoreNetworkRequest {} +export interface GetCoreNetworkCommandOutput extends GetCoreNetworkResponse, __MetadataBearer {} + +/** + *

                        Returns information about a core network. By default it returns the LIVE policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetCoreNetworkCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetCoreNetworkCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetCoreNetworkCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetCoreNetworkCommandInput} for command's `input` shape. + * @see {@link GetCoreNetworkCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetCoreNetworkCommand extends $Command< + GetCoreNetworkCommandInput, + GetCoreNetworkCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetCoreNetworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetCoreNetworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetCoreNetworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetCoreNetworkResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetCoreNetworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetCoreNetworkCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetCoreNetworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetCoreNetworkPolicyCommand.ts b/clients/client-networkmanager/src/commands/GetCoreNetworkPolicyCommand.ts new file mode 100644 index 000000000000..a6a8d9084aa0 --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetCoreNetworkPolicyCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetCoreNetworkPolicyRequest, GetCoreNetworkPolicyResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetCoreNetworkPolicyCommand, + serializeAws_restJson1GetCoreNetworkPolicyCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetCoreNetworkPolicyCommandInput extends GetCoreNetworkPolicyRequest {} +export interface GetCoreNetworkPolicyCommandOutput extends GetCoreNetworkPolicyResponse, __MetadataBearer {} + +/** + *

                        Gets details about a core network policy. You can get details about your current live policy or any previous policy version.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetCoreNetworkPolicyCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetCoreNetworkPolicyCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetCoreNetworkPolicyCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetCoreNetworkPolicyCommandInput} for command's `input` shape. + * @see {@link GetCoreNetworkPolicyCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetCoreNetworkPolicyCommand extends $Command< + GetCoreNetworkPolicyCommandInput, + GetCoreNetworkPolicyCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetCoreNetworkPolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetCoreNetworkPolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetCoreNetworkPolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetCoreNetworkPolicyResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetCoreNetworkPolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetCoreNetworkPolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetCoreNetworkPolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetResourcePolicyCommand.ts b/clients/client-networkmanager/src/commands/GetResourcePolicyCommand.ts new file mode 100644 index 000000000000..6ca7ffa64662 --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetResourcePolicyCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetResourcePolicyRequest, GetResourcePolicyResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetResourcePolicyCommand, + serializeAws_restJson1GetResourcePolicyCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetResourcePolicyCommandInput extends GetResourcePolicyRequest {} +export interface GetResourcePolicyCommandOutput extends GetResourcePolicyResponse, __MetadataBearer {} + +/** + *

                        Returns information about a resource policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetResourcePolicyCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetResourcePolicyCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetResourcePolicyCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetResourcePolicyCommandInput} for command's `input` shape. + * @see {@link GetResourcePolicyCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetResourcePolicyCommand extends $Command< + GetResourcePolicyCommandInput, + GetResourcePolicyCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetResourcePolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetResourcePolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetResourcePolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetResourcePolicyResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetResourcePolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetResourcePolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetResourcePolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetSiteToSiteVpnAttachmentCommand.ts b/clients/client-networkmanager/src/commands/GetSiteToSiteVpnAttachmentCommand.ts new file mode 100644 index 000000000000..13343f3dab97 --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetSiteToSiteVpnAttachmentCommand.ts @@ -0,0 +1,98 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetSiteToSiteVpnAttachmentRequest, GetSiteToSiteVpnAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetSiteToSiteVpnAttachmentCommand, + serializeAws_restJson1GetSiteToSiteVpnAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetSiteToSiteVpnAttachmentCommandInput extends GetSiteToSiteVpnAttachmentRequest {} +export interface GetSiteToSiteVpnAttachmentCommandOutput extends GetSiteToSiteVpnAttachmentResponse, __MetadataBearer {} + +/** + *

                        Returns information about a site-to-site VPN attachment.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetSiteToSiteVpnAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetSiteToSiteVpnAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetSiteToSiteVpnAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetSiteToSiteVpnAttachmentCommandInput} for command's `input` shape. + * @see {@link GetSiteToSiteVpnAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetSiteToSiteVpnAttachmentCommand extends $Command< + GetSiteToSiteVpnAttachmentCommandInput, + GetSiteToSiteVpnAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetSiteToSiteVpnAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetSiteToSiteVpnAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetSiteToSiteVpnAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetSiteToSiteVpnAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetSiteToSiteVpnAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetSiteToSiteVpnAttachmentCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1GetSiteToSiteVpnAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/GetVpcAttachmentCommand.ts b/clients/client-networkmanager/src/commands/GetVpcAttachmentCommand.ts new file mode 100644 index 000000000000..121d4f04a845 --- /dev/null +++ b/clients/client-networkmanager/src/commands/GetVpcAttachmentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { GetVpcAttachmentRequest, GetVpcAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1GetVpcAttachmentCommand, + serializeAws_restJson1GetVpcAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface GetVpcAttachmentCommandInput extends GetVpcAttachmentRequest {} +export interface GetVpcAttachmentCommandOutput extends GetVpcAttachmentResponse, __MetadataBearer {} + +/** + *

                        Returns information about a VPC attachment.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, GetVpcAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, GetVpcAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new GetVpcAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link GetVpcAttachmentCommandInput} for command's `input` shape. + * @see {@link GetVpcAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class GetVpcAttachmentCommand extends $Command< + GetVpcAttachmentCommandInput, + GetVpcAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: GetVpcAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "GetVpcAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: GetVpcAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: GetVpcAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: GetVpcAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1GetVpcAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1GetVpcAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/ListAttachmentsCommand.ts b/clients/client-networkmanager/src/commands/ListAttachmentsCommand.ts new file mode 100644 index 000000000000..ac4af3b28b6b --- /dev/null +++ b/clients/client-networkmanager/src/commands/ListAttachmentsCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ListAttachmentsRequest, ListAttachmentsResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1ListAttachmentsCommand, + serializeAws_restJson1ListAttachmentsCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListAttachmentsCommandInput extends ListAttachmentsRequest {} +export interface ListAttachmentsCommandOutput extends ListAttachmentsResponse, __MetadataBearer {} + +/** + *

                        Returns a list of core network attachments.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, ListAttachmentsCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, ListAttachmentsCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new ListAttachmentsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListAttachmentsCommandInput} for command's `input` shape. + * @see {@link ListAttachmentsCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class ListAttachmentsCommand extends $Command< + ListAttachmentsCommandInput, + ListAttachmentsCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAttachmentsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "ListAttachmentsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAttachmentsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListAttachmentsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListAttachmentsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListAttachmentsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListAttachmentsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/ListConnectPeersCommand.ts b/clients/client-networkmanager/src/commands/ListConnectPeersCommand.ts new file mode 100644 index 000000000000..f99d551afb3c --- /dev/null +++ b/clients/client-networkmanager/src/commands/ListConnectPeersCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ListConnectPeersRequest, ListConnectPeersResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1ListConnectPeersCommand, + serializeAws_restJson1ListConnectPeersCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListConnectPeersCommandInput extends ListConnectPeersRequest {} +export interface ListConnectPeersCommandOutput extends ListConnectPeersResponse, __MetadataBearer {} + +/** + *

                        Returns a list of core network Connect peers.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, ListConnectPeersCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, ListConnectPeersCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new ListConnectPeersCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListConnectPeersCommandInput} for command's `input` shape. + * @see {@link ListConnectPeersCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class ListConnectPeersCommand extends $Command< + ListConnectPeersCommandInput, + ListConnectPeersCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListConnectPeersCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "ListConnectPeersCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListConnectPeersRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListConnectPeersResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListConnectPeersCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListConnectPeersCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListConnectPeersCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/ListCoreNetworkPolicyVersionsCommand.ts b/clients/client-networkmanager/src/commands/ListCoreNetworkPolicyVersionsCommand.ts new file mode 100644 index 000000000000..9e55c4f6141b --- /dev/null +++ b/clients/client-networkmanager/src/commands/ListCoreNetworkPolicyVersionsCommand.ts @@ -0,0 +1,100 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ListCoreNetworkPolicyVersionsRequest, ListCoreNetworkPolicyVersionsResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1ListCoreNetworkPolicyVersionsCommand, + serializeAws_restJson1ListCoreNetworkPolicyVersionsCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListCoreNetworkPolicyVersionsCommandInput extends ListCoreNetworkPolicyVersionsRequest {} +export interface ListCoreNetworkPolicyVersionsCommandOutput + extends ListCoreNetworkPolicyVersionsResponse, + __MetadataBearer {} + +/** + *

                        Returns a list of core network policy versions.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, ListCoreNetworkPolicyVersionsCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, ListCoreNetworkPolicyVersionsCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new ListCoreNetworkPolicyVersionsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListCoreNetworkPolicyVersionsCommandInput} for command's `input` shape. + * @see {@link ListCoreNetworkPolicyVersionsCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class ListCoreNetworkPolicyVersionsCommand extends $Command< + ListCoreNetworkPolicyVersionsCommandInput, + ListCoreNetworkPolicyVersionsCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCoreNetworkPolicyVersionsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "ListCoreNetworkPolicyVersionsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCoreNetworkPolicyVersionsRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCoreNetworkPolicyVersionsResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListCoreNetworkPolicyVersionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListCoreNetworkPolicyVersionsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1ListCoreNetworkPolicyVersionsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/ListCoreNetworksCommand.ts b/clients/client-networkmanager/src/commands/ListCoreNetworksCommand.ts new file mode 100644 index 000000000000..ffcf3b18b276 --- /dev/null +++ b/clients/client-networkmanager/src/commands/ListCoreNetworksCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ListCoreNetworksRequest, ListCoreNetworksResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1ListCoreNetworksCommand, + serializeAws_restJson1ListCoreNetworksCommand, +} from "../protocols/Aws_restJson1"; + +export interface ListCoreNetworksCommandInput extends ListCoreNetworksRequest {} +export interface ListCoreNetworksCommandOutput extends ListCoreNetworksResponse, __MetadataBearer {} + +/** + *

                        Returns a list of owned and shared core networks.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, ListCoreNetworksCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, ListCoreNetworksCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new ListCoreNetworksCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListCoreNetworksCommandInput} for command's `input` shape. + * @see {@link ListCoreNetworksCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class ListCoreNetworksCommand extends $Command< + ListCoreNetworksCommandInput, + ListCoreNetworksCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCoreNetworksCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "ListCoreNetworksCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCoreNetworksRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListCoreNetworksResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListCoreNetworksCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListCoreNetworksCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListCoreNetworksCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/PutCoreNetworkPolicyCommand.ts b/clients/client-networkmanager/src/commands/PutCoreNetworkPolicyCommand.ts new file mode 100644 index 000000000000..102f925e6d6b --- /dev/null +++ b/clients/client-networkmanager/src/commands/PutCoreNetworkPolicyCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { PutCoreNetworkPolicyRequest, PutCoreNetworkPolicyResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1PutCoreNetworkPolicyCommand, + serializeAws_restJson1PutCoreNetworkPolicyCommand, +} from "../protocols/Aws_restJson1"; + +export interface PutCoreNetworkPolicyCommandInput extends PutCoreNetworkPolicyRequest {} +export interface PutCoreNetworkPolicyCommandOutput extends PutCoreNetworkPolicyResponse, __MetadataBearer {} + +/** + *

                        Creates a new, immutable version of a core network policy. A subsequent change set is created showing the differences between the LIVE policy and the submitted policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, PutCoreNetworkPolicyCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, PutCoreNetworkPolicyCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new PutCoreNetworkPolicyCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link PutCoreNetworkPolicyCommandInput} for command's `input` shape. + * @see {@link PutCoreNetworkPolicyCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class PutCoreNetworkPolicyCommand extends $Command< + PutCoreNetworkPolicyCommandInput, + PutCoreNetworkPolicyCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutCoreNetworkPolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "PutCoreNetworkPolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutCoreNetworkPolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutCoreNetworkPolicyResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutCoreNetworkPolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1PutCoreNetworkPolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1PutCoreNetworkPolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/PutResourcePolicyCommand.ts b/clients/client-networkmanager/src/commands/PutResourcePolicyCommand.ts new file mode 100644 index 000000000000..933c6e4d40a7 --- /dev/null +++ b/clients/client-networkmanager/src/commands/PutResourcePolicyCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { PutResourcePolicyRequest, PutResourcePolicyResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1PutResourcePolicyCommand, + serializeAws_restJson1PutResourcePolicyCommand, +} from "../protocols/Aws_restJson1"; + +export interface PutResourcePolicyCommandInput extends PutResourcePolicyRequest {} +export interface PutResourcePolicyCommandOutput extends PutResourcePolicyResponse, __MetadataBearer {} + +/** + *

                        Creates or updates a resource policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, PutResourcePolicyCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, PutResourcePolicyCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new PutResourcePolicyCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link PutResourcePolicyCommandInput} for command's `input` shape. + * @see {@link PutResourcePolicyCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class PutResourcePolicyCommand extends $Command< + PutResourcePolicyCommandInput, + PutResourcePolicyCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutResourcePolicyCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "PutResourcePolicyCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutResourcePolicyRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutResourcePolicyResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: PutResourcePolicyCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1PutResourcePolicyCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1PutResourcePolicyCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/RejectAttachmentCommand.ts b/clients/client-networkmanager/src/commands/RejectAttachmentCommand.ts new file mode 100644 index 000000000000..d6e571150a5c --- /dev/null +++ b/clients/client-networkmanager/src/commands/RejectAttachmentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { RejectAttachmentRequest, RejectAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1RejectAttachmentCommand, + serializeAws_restJson1RejectAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface RejectAttachmentCommandInput extends RejectAttachmentRequest {} +export interface RejectAttachmentCommandOutput extends RejectAttachmentResponse, __MetadataBearer {} + +/** + *

                        Rejects a core network attachment request.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, RejectAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, RejectAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new RejectAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link RejectAttachmentCommandInput} for command's `input` shape. + * @see {@link RejectAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class RejectAttachmentCommand extends $Command< + RejectAttachmentCommandInput, + RejectAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RejectAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "RejectAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RejectAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: RejectAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: RejectAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1RejectAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1RejectAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/RestoreCoreNetworkPolicyVersionCommand.ts b/clients/client-networkmanager/src/commands/RestoreCoreNetworkPolicyVersionCommand.ts new file mode 100644 index 000000000000..a3ef5d1925d8 --- /dev/null +++ b/clients/client-networkmanager/src/commands/RestoreCoreNetworkPolicyVersionCommand.ts @@ -0,0 +1,103 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { RestoreCoreNetworkPolicyVersionRequest, RestoreCoreNetworkPolicyVersionResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1RestoreCoreNetworkPolicyVersionCommand, + serializeAws_restJson1RestoreCoreNetworkPolicyVersionCommand, +} from "../protocols/Aws_restJson1"; + +export interface RestoreCoreNetworkPolicyVersionCommandInput extends RestoreCoreNetworkPolicyVersionRequest {} +export interface RestoreCoreNetworkPolicyVersionCommandOutput + extends RestoreCoreNetworkPolicyVersionResponse, + __MetadataBearer {} + +/** + *

                        Restores a previous policy version as a new, immutable version of a core network policy. A subsequent change set is created showing the differences between the LIVE policy and restored policy.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, RestoreCoreNetworkPolicyVersionCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, RestoreCoreNetworkPolicyVersionCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new RestoreCoreNetworkPolicyVersionCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link RestoreCoreNetworkPolicyVersionCommandInput} for command's `input` shape. + * @see {@link RestoreCoreNetworkPolicyVersionCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class RestoreCoreNetworkPolicyVersionCommand extends $Command< + RestoreCoreNetworkPolicyVersionCommandInput, + RestoreCoreNetworkPolicyVersionCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: RestoreCoreNetworkPolicyVersionCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "RestoreCoreNetworkPolicyVersionCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: RestoreCoreNetworkPolicyVersionRequest.filterSensitiveLog, + outputFilterSensitiveLog: RestoreCoreNetworkPolicyVersionResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: RestoreCoreNetworkPolicyVersionCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1RestoreCoreNetworkPolicyVersionCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_restJson1RestoreCoreNetworkPolicyVersionCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/UpdateCoreNetworkCommand.ts b/clients/client-networkmanager/src/commands/UpdateCoreNetworkCommand.ts new file mode 100644 index 000000000000..af4a542fdca5 --- /dev/null +++ b/clients/client-networkmanager/src/commands/UpdateCoreNetworkCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { UpdateCoreNetworkRequest, UpdateCoreNetworkResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1UpdateCoreNetworkCommand, + serializeAws_restJson1UpdateCoreNetworkCommand, +} from "../protocols/Aws_restJson1"; + +export interface UpdateCoreNetworkCommandInput extends UpdateCoreNetworkRequest {} +export interface UpdateCoreNetworkCommandOutput extends UpdateCoreNetworkResponse, __MetadataBearer {} + +/** + *

                        Updates the description of a core network.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, UpdateCoreNetworkCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, UpdateCoreNetworkCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new UpdateCoreNetworkCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateCoreNetworkCommandInput} for command's `input` shape. + * @see {@link UpdateCoreNetworkCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class UpdateCoreNetworkCommand extends $Command< + UpdateCoreNetworkCommandInput, + UpdateCoreNetworkCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateCoreNetworkCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "UpdateCoreNetworkCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateCoreNetworkRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateCoreNetworkResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateCoreNetworkCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateCoreNetworkCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateCoreNetworkCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/UpdateVpcAttachmentCommand.ts b/clients/client-networkmanager/src/commands/UpdateVpcAttachmentCommand.ts new file mode 100644 index 000000000000..33b8e8d3342f --- /dev/null +++ b/clients/client-networkmanager/src/commands/UpdateVpcAttachmentCommand.ts @@ -0,0 +1,95 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { UpdateVpcAttachmentRequest, UpdateVpcAttachmentResponse } from "../models/models_0"; +import { NetworkManagerClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../NetworkManagerClient"; +import { + deserializeAws_restJson1UpdateVpcAttachmentCommand, + serializeAws_restJson1UpdateVpcAttachmentCommand, +} from "../protocols/Aws_restJson1"; + +export interface UpdateVpcAttachmentCommandInput extends UpdateVpcAttachmentRequest {} +export interface UpdateVpcAttachmentCommandOutput extends UpdateVpcAttachmentResponse, __MetadataBearer {} + +/** + *

                        Updates a VPC attachment.

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { NetworkManagerClient, UpdateVpcAttachmentCommand } from "@aws-sdk/client-networkmanager"; // ES Modules import + * // const { NetworkManagerClient, UpdateVpcAttachmentCommand } = require("@aws-sdk/client-networkmanager"); // CommonJS import + * const client = new NetworkManagerClient(config); + * const command = new UpdateVpcAttachmentCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateVpcAttachmentCommandInput} for command's `input` shape. + * @see {@link UpdateVpcAttachmentCommandOutput} for command's `response` shape. + * @see {@link NetworkManagerClientResolvedConfig | config} for NetworkManagerClient's `config` shape. + * + */ +export class UpdateVpcAttachmentCommand extends $Command< + UpdateVpcAttachmentCommandInput, + UpdateVpcAttachmentCommandOutput, + NetworkManagerClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateVpcAttachmentCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: NetworkManagerClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "NetworkManagerClient"; + const commandName = "UpdateVpcAttachmentCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateVpcAttachmentRequest.filterSensitiveLog, + outputFilterSensitiveLog: UpdateVpcAttachmentResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateVpcAttachmentCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateVpcAttachmentCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateVpcAttachmentCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-networkmanager/src/commands/index.ts b/clients/client-networkmanager/src/commands/index.ts index db988704036d..d76bd2abfc87 100644 --- a/clients/client-networkmanager/src/commands/index.ts +++ b/clients/client-networkmanager/src/commands/index.ts @@ -1,22 +1,42 @@ +export * from "./AcceptAttachmentCommand"; +export * from "./AssociateConnectPeerCommand"; export * from "./AssociateCustomerGatewayCommand"; export * from "./AssociateLinkCommand"; export * from "./AssociateTransitGatewayConnectPeerCommand"; +export * from "./CreateConnectAttachmentCommand"; +export * from "./CreateConnectPeerCommand"; export * from "./CreateConnectionCommand"; +export * from "./CreateCoreNetworkCommand"; export * from "./CreateDeviceCommand"; export * from "./CreateGlobalNetworkCommand"; export * from "./CreateLinkCommand"; export * from "./CreateSiteCommand"; +export * from "./CreateSiteToSiteVpnAttachmentCommand"; +export * from "./CreateVpcAttachmentCommand"; +export * from "./DeleteAttachmentCommand"; +export * from "./DeleteConnectPeerCommand"; export * from "./DeleteConnectionCommand"; +export * from "./DeleteCoreNetworkCommand"; +export * from "./DeleteCoreNetworkPolicyVersionCommand"; export * from "./DeleteDeviceCommand"; export * from "./DeleteGlobalNetworkCommand"; export * from "./DeleteLinkCommand"; +export * from "./DeleteResourcePolicyCommand"; export * from "./DeleteSiteCommand"; export * from "./DeregisterTransitGatewayCommand"; export * from "./DescribeGlobalNetworksCommand"; +export * from "./DisassociateConnectPeerCommand"; export * from "./DisassociateCustomerGatewayCommand"; export * from "./DisassociateLinkCommand"; export * from "./DisassociateTransitGatewayConnectPeerCommand"; +export * from "./ExecuteCoreNetworkChangeSetCommand"; +export * from "./GetConnectAttachmentCommand"; +export * from "./GetConnectPeerAssociationsCommand"; +export * from "./GetConnectPeerCommand"; export * from "./GetConnectionsCommand"; +export * from "./GetCoreNetworkChangeSetCommand"; +export * from "./GetCoreNetworkCommand"; +export * from "./GetCoreNetworkPolicyCommand"; export * from "./GetCustomerGatewayAssociationsCommand"; export * from "./GetDevicesCommand"; export * from "./GetLinkAssociationsCommand"; @@ -26,18 +46,31 @@ export * from "./GetNetworkResourceRelationshipsCommand"; export * from "./GetNetworkResourcesCommand"; export * from "./GetNetworkRoutesCommand"; export * from "./GetNetworkTelemetryCommand"; +export * from "./GetResourcePolicyCommand"; export * from "./GetRouteAnalysisCommand"; +export * from "./GetSiteToSiteVpnAttachmentCommand"; export * from "./GetSitesCommand"; export * from "./GetTransitGatewayConnectPeerAssociationsCommand"; export * from "./GetTransitGatewayRegistrationsCommand"; +export * from "./GetVpcAttachmentCommand"; +export * from "./ListAttachmentsCommand"; +export * from "./ListConnectPeersCommand"; +export * from "./ListCoreNetworkPolicyVersionsCommand"; +export * from "./ListCoreNetworksCommand"; export * from "./ListTagsForResourceCommand"; +export * from "./PutCoreNetworkPolicyCommand"; +export * from "./PutResourcePolicyCommand"; export * from "./RegisterTransitGatewayCommand"; +export * from "./RejectAttachmentCommand"; +export * from "./RestoreCoreNetworkPolicyVersionCommand"; export * from "./StartRouteAnalysisCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateConnectionCommand"; +export * from "./UpdateCoreNetworkCommand"; export * from "./UpdateDeviceCommand"; export * from "./UpdateGlobalNetworkCommand"; export * from "./UpdateLinkCommand"; export * from "./UpdateNetworkResourceMetadataCommand"; export * from "./UpdateSiteCommand"; +export * from "./UpdateVpcAttachmentCommand"; diff --git a/clients/client-networkmanager/src/endpoints.ts b/clients/client-networkmanager/src/endpoints.ts index 477d54d79ae8..3b2198dd8a8d 100644 --- a/clients/client-networkmanager/src/endpoints.ts +++ b/clients/client-networkmanager/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-networkmanager/src/models/models_0.ts b/clients/client-networkmanager/src/models/models_0.ts index ad32528a46d4..43a054ded55f 100644 --- a/clients/client-networkmanager/src/models/models_0.ts +++ b/clients/client-networkmanager/src/models/models_0.ts @@ -1,113 +1,209 @@ -import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; +import { LazyJsonString as __LazyJsonString, SENSITIVE_STRING } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException } from "@aws-sdk/types"; -/** - *

                        You do not have sufficient access to perform this action.

                        - */ -export interface AccessDeniedException extends __SmithyException, $MetadataBearer { - name: "AccessDeniedException"; - $fault: "client"; - Message: string | undefined; +export interface AcceptAttachmentRequest { + /** + *

                        The ID of the attachment.

                        + */ + AttachmentId: string | undefined; } -export namespace AccessDeniedException { +export namespace AcceptAttachmentRequest { /** * @internal */ - export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ + export const filterSensitiveLog = (obj: AcceptAttachmentRequest): any => ({ ...obj, }); } -export interface AssociateCustomerGatewayRequest { +export enum AttachmentType { + CONNECT = "CONNECT", + SITE_TO_SITE_VPN = "SITE_TO_SITE_VPN", + VPC = "VPC", +} + +/** + *

                        Describes a tag.

                        + */ +export interface Tag { /** - *

                        The Amazon Resource Name (ARN) of the customer gateway.

                        + *

                        The tag key.

                        + *

                        Constraints: Maximum length of 128 characters.

                        */ - CustomerGatewayArn: string | undefined; + Key?: string; /** - *

                        The ID of the global network.

                        + *

                        The tag value.

                        + *

                        Constraints: Maximum length of 256 characters.

                        */ - GlobalNetworkId: string | undefined; + Value?: string; +} +export namespace Tag { /** - *

                        The ID of the device.

                        + * @internal */ - DeviceId: string | undefined; + export const filterSensitiveLog = (obj: Tag): any => ({ + ...obj, + }); +} +/** + *

                        Describes a proposed segment change. In some cases, the segment change must first be evaluated and accepted.

                        + */ +export interface ProposedSegmentChange { /** - *

                        The ID of the link.

                        + *

                        The key-value tags that changed for the segment.

                        */ - LinkId?: string; + Tags?: Tag[]; + + /** + *

                        The rule number in the policy document that applies to this change.

                        + */ + AttachmentPolicyRuleNumber?: number; + + /** + *

                        The name of the segment to change.

                        + */ + SegmentName?: string; } -export namespace AssociateCustomerGatewayRequest { +export namespace ProposedSegmentChange { /** * @internal */ - export const filterSensitiveLog = (obj: AssociateCustomerGatewayRequest): any => ({ + export const filterSensitiveLog = (obj: ProposedSegmentChange): any => ({ ...obj, }); } -export enum CustomerGatewayAssociationState { - available = "AVAILABLE", - deleted = "DELETED", - deleting = "DELETING", - pending = "PENDING", +export enum AttachmentState { + AVAILABLE = "AVAILABLE", + CREATING = "CREATING", + DELETING = "DELETING", + FAILED = "FAILED", + PENDING_ATTACHMENT_ACCEPTANCE = "PENDING_ATTACHMENT_ACCEPTANCE", + PENDING_NETWORK_UPDATE = "PENDING_NETWORK_UPDATE", + PENDING_TAG_ACCEPTANCE = "PENDING_TAG_ACCEPTANCE", + REJECTED = "REJECTED", + UPDATING = "UPDATING", } /** - *

                        Describes the association between a customer gateway, a device, and a link.

                        + *

                        Describes a core network attachment.

                        */ -export interface CustomerGatewayAssociation { +export interface Attachment { /** - *

                        The Amazon Resource Name (ARN) of the customer gateway.

                        + *

                        A core network ID.

                        */ - CustomerGatewayArn?: string; + CoreNetworkId?: string; /** - *

                        The ID of the global network.

                        + *

                        The ARN of a core network.

                        */ - GlobalNetworkId?: string; + CoreNetworkArn?: string; /** - *

                        The ID of the device.

                        + *

                        The ID of the attachment.

                        */ - DeviceId?: string; + AttachmentId?: string; /** - *

                        The ID of the link.

                        + *

                        The ID of the attachment account owner.

                        */ - LinkId?: string; + OwnerAccountId?: string; /** - *

                        The association state.

                        + *

                        The type of attachment.

                        */ - State?: CustomerGatewayAssociationState | string; + AttachmentType?: AttachmentType | string; + + /** + *

                        The state of the attachment.

                        + */ + State?: AttachmentState | string; + + /** + *

                        The Region where the edge is located.

                        + */ + EdgeLocation?: string; + + /** + *

                        The attachment resource ARN.

                        + */ + ResourceArn?: string; + + /** + *

                        The policy rule number associated with the attachment.

                        + */ + AttachmentPolicyRuleNumber?: number; + + /** + *

                        The name of the segment attachment.

                        + */ + SegmentName?: string; + + /** + *

                        The tags associated with the attachment.

                        + */ + Tags?: Tag[]; + + /** + *

                        The attachment to move from one segment to another.

                        + */ + ProposedSegmentChange?: ProposedSegmentChange; + + /** + *

                        The timestamp when the attachment was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The timestamp when the attachment was last updated.

                        + */ + UpdatedAt?: Date; } -export namespace CustomerGatewayAssociation { +export namespace Attachment { /** * @internal */ - export const filterSensitiveLog = (obj: CustomerGatewayAssociation): any => ({ + export const filterSensitiveLog = (obj: Attachment): any => ({ ...obj, }); } -export interface AssociateCustomerGatewayResponse { +export interface AcceptAttachmentResponse { /** - *

                        The customer gateway association.

                        + *

                        The response to the attachment request.

                        */ - CustomerGatewayAssociation?: CustomerGatewayAssociation; + Attachment?: Attachment; } -export namespace AssociateCustomerGatewayResponse { +export namespace AcceptAttachmentResponse { /** * @internal */ - export const filterSensitiveLog = (obj: AssociateCustomerGatewayResponse): any => ({ + export const filterSensitiveLog = (obj: AcceptAttachmentResponse): any => ({ + ...obj, + }); +} + +/** + *

                        You do not have sufficient access to perform this action.

                        + */ +export interface AccessDeniedException extends __SmithyException, $MetadataBearer { + name: "AccessDeniedException"; + $fault: "client"; + Message: string | undefined; +} + +export namespace AccessDeniedException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AccessDeniedException): any => ({ ...obj, }); } @@ -179,6 +275,9 @@ export interface ResourceNotFoundException extends __SmithyException, $MetadataB */ ResourceType: string | undefined; + /** + *

                        The specified resource could not be found.

                        + */ Context?: { [key: string]: string }; } @@ -191,47 +290,6 @@ export namespace ResourceNotFoundException { }); } -/** - *

                        A service limit was exceeded.

                        - */ -export interface ServiceQuotaExceededException extends __SmithyException, $MetadataBearer { - name: "ServiceQuotaExceededException"; - $fault: "client"; - /** - *

                        The error message.

                        - */ - Message: string | undefined; - - /** - *

                        The ID of the resource.

                        - */ - ResourceId?: string; - - /** - *

                        The resource type.

                        - */ - ResourceType?: string; - - /** - *

                        The limit code.

                        - */ - LimitCode: string | undefined; - - /** - *

                        The service code.

                        - */ - ServiceCode: string | undefined; -} - -export namespace ServiceQuotaExceededException { - /** - * @internal - */ - export const filterSensitiveLog = (obj: ServiceQuotaExceededException): any => ({ - ...obj, - }); -} - /** *

                        The request was denied due to request throttling.

                        */ @@ -312,12 +370,17 @@ export namespace ValidationException { }); } -export interface AssociateLinkRequest { +export interface AssociateConnectPeerRequest { /** - *

                        The ID of the global network.

                        + *

                        The ID of your global network.

                        */ GlobalNetworkId: string | undefined; + /** + *

                        The ID of the Connect peer.

                        + */ + ConnectPeerId: string | undefined; + /** *

                        The ID of the device.

                        */ @@ -326,19 +389,19 @@ export interface AssociateLinkRequest { /** *

                        The ID of the link.

                        */ - LinkId: string | undefined; + LinkId?: string; } -export namespace AssociateLinkRequest { +export namespace AssociateConnectPeerRequest { /** * @internal */ - export const filterSensitiveLog = (obj: AssociateLinkRequest): any => ({ + export const filterSensitiveLog = (obj: AssociateConnectPeerRequest): any => ({ ...obj, }); } -export enum LinkAssociationState { +export enum ConnectPeerAssociationState { available = "AVAILABLE", deleted = "DELETED", deleting = "DELETING", @@ -346,16 +409,21 @@ export enum LinkAssociationState { } /** - *

                        Describes the association between a device and a link.

                        + *

                        Describes a core network Connect peer association.

                        */ -export interface LinkAssociation { +export interface ConnectPeerAssociation { + /** + *

                        The ID of the Connect peer.

                        + */ + ConnectPeerId?: string; + /** *

                        The ID of the global network.

                        */ GlobalNetworkId?: string; /** - *

                        The device ID for the link association.

                        + *

                        The ID of the device to connect to.

                        */ DeviceId?: string; @@ -365,116 +433,333 @@ export interface LinkAssociation { LinkId?: string; /** - *

                        The state of the association.

                        + *

                        The state of the Connect peer association.

                        */ - LinkAssociationState?: LinkAssociationState | string; + State?: ConnectPeerAssociationState | string; } -export namespace LinkAssociation { +export namespace ConnectPeerAssociation { /** * @internal */ - export const filterSensitiveLog = (obj: LinkAssociation): any => ({ + export const filterSensitiveLog = (obj: ConnectPeerAssociation): any => ({ ...obj, }); } -export interface AssociateLinkResponse { +export interface AssociateConnectPeerResponse { /** - *

                        The link association.

                        + *

                        The response to the Connect peer request.

                        */ - LinkAssociation?: LinkAssociation; + ConnectPeerAssociation?: ConnectPeerAssociation; } -export namespace AssociateLinkResponse { +export namespace AssociateConnectPeerResponse { /** * @internal */ - export const filterSensitiveLog = (obj: AssociateLinkResponse): any => ({ + export const filterSensitiveLog = (obj: AssociateConnectPeerResponse): any => ({ ...obj, }); } -export interface AssociateTransitGatewayConnectPeerRequest { +/** + *

                        A service limit was exceeded.

                        + */ +export interface ServiceQuotaExceededException extends __SmithyException, $MetadataBearer { + name: "ServiceQuotaExceededException"; + $fault: "client"; /** - *

                        The ID of the global network.

                        + *

                        The error message.

                        */ - GlobalNetworkId: string | undefined; + Message: string | undefined; /** - *

                        The Amazon Resource Name (ARN) of the Connect peer.

                        + *

                        The ID of the resource.

                        */ - TransitGatewayConnectPeerArn: string | undefined; + ResourceId?: string; /** - *

                        The ID of the device.

                        + *

                        The resource type.

                        */ - DeviceId: string | undefined; + ResourceType?: string; /** - *

                        The ID of the link.

                        + *

                        The limit code.

                        */ - LinkId?: string; + LimitCode: string | undefined; + + /** + *

                        The service code.

                        + */ + ServiceCode: string | undefined; } -export namespace AssociateTransitGatewayConnectPeerRequest { +export namespace ServiceQuotaExceededException { /** * @internal */ - export const filterSensitiveLog = (obj: AssociateTransitGatewayConnectPeerRequest): any => ({ + export const filterSensitiveLog = (obj: ServiceQuotaExceededException): any => ({ ...obj, }); } -export enum TransitGatewayConnectPeerAssociationState { - available = "AVAILABLE", - deleted = "DELETED", - deleting = "DELETING", - pending = "PENDING", -} - -/** - *

                        Describes a transit gateway Connect peer association.

                        - */ -export interface TransitGatewayConnectPeerAssociation { +export interface AssociateCustomerGatewayRequest { /** - *

                        The Amazon Resource Name (ARN) of the transit gateway Connect peer.

                        + *

                        The Amazon Resource Name (ARN) of the customer gateway.

                        */ - TransitGatewayConnectPeerArn?: string; + CustomerGatewayArn: string | undefined; /** *

                        The ID of the global network.

                        */ - GlobalNetworkId?: string; + GlobalNetworkId: string | undefined; /** *

                        The ID of the device.

                        */ - DeviceId?: string; + DeviceId: string | undefined; /** *

                        The ID of the link.

                        */ LinkId?: string; - - /** - *

                        The state of the association.

                        - */ - State?: TransitGatewayConnectPeerAssociationState | string; } -export namespace TransitGatewayConnectPeerAssociation { +export namespace AssociateCustomerGatewayRequest { /** * @internal */ - export const filterSensitiveLog = (obj: TransitGatewayConnectPeerAssociation): any => ({ + export const filterSensitiveLog = (obj: AssociateCustomerGatewayRequest): any => ({ ...obj, }); } -export interface AssociateTransitGatewayConnectPeerResponse { - /** - *

                        The transit gateway Connect peer association.

                        +export enum CustomerGatewayAssociationState { + available = "AVAILABLE", + deleted = "DELETED", + deleting = "DELETING", + pending = "PENDING", +} + +/** + *

                        Describes the association between a customer gateway, a device, and a link.

                        + */ +export interface CustomerGatewayAssociation { + /** + *

                        The Amazon Resource Name (ARN) of the customer gateway.

                        + */ + CustomerGatewayArn?: string; + + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The ID of the device.

                        + */ + DeviceId?: string; + + /** + *

                        The ID of the link.

                        + */ + LinkId?: string; + + /** + *

                        The association state.

                        + */ + State?: CustomerGatewayAssociationState | string; +} + +export namespace CustomerGatewayAssociation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CustomerGatewayAssociation): any => ({ + ...obj, + }); +} + +export interface AssociateCustomerGatewayResponse { + /** + *

                        The customer gateway association.

                        + */ + CustomerGatewayAssociation?: CustomerGatewayAssociation; +} + +export namespace AssociateCustomerGatewayResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AssociateCustomerGatewayResponse): any => ({ + ...obj, + }); +} + +export interface AssociateLinkRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        The ID of the device.

                        + */ + DeviceId: string | undefined; + + /** + *

                        The ID of the link.

                        + */ + LinkId: string | undefined; +} + +export namespace AssociateLinkRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AssociateLinkRequest): any => ({ + ...obj, + }); +} + +export enum LinkAssociationState { + available = "AVAILABLE", + deleted = "DELETED", + deleting = "DELETING", + pending = "PENDING", +} + +/** + *

                        Describes the association between a device and a link.

                        + */ +export interface LinkAssociation { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The device ID for the link association.

                        + */ + DeviceId?: string; + + /** + *

                        The ID of the link.

                        + */ + LinkId?: string; + + /** + *

                        The state of the association.

                        + */ + LinkAssociationState?: LinkAssociationState | string; +} + +export namespace LinkAssociation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: LinkAssociation): any => ({ + ...obj, + }); +} + +export interface AssociateLinkResponse { + /** + *

                        The link association.

                        + */ + LinkAssociation?: LinkAssociation; +} + +export namespace AssociateLinkResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AssociateLinkResponse): any => ({ + ...obj, + }); +} + +export interface AssociateTransitGatewayConnectPeerRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        The Amazon Resource Name (ARN) of the Connect peer.

                        + */ + TransitGatewayConnectPeerArn: string | undefined; + + /** + *

                        The ID of the device.

                        + */ + DeviceId: string | undefined; + + /** + *

                        The ID of the link.

                        + */ + LinkId?: string; +} + +export namespace AssociateTransitGatewayConnectPeerRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AssociateTransitGatewayConnectPeerRequest): any => ({ + ...obj, + }); +} + +export enum TransitGatewayConnectPeerAssociationState { + available = "AVAILABLE", + deleted = "DELETED", + deleting = "DELETING", + pending = "PENDING", +} + +/** + *

                        Describes a transit gateway Connect peer association.

                        + */ +export interface TransitGatewayConnectPeerAssociation { + /** + *

                        The Amazon Resource Name (ARN) of the transit gateway Connect peer.

                        + */ + TransitGatewayConnectPeerArn?: string; + + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The ID of the device.

                        + */ + DeviceId?: string; + + /** + *

                        The ID of the link.

                        + */ + LinkId?: string; + + /** + *

                        The state of the association.

                        + */ + State?: TransitGatewayConnectPeerAssociationState | string; +} + +export namespace TransitGatewayConnectPeerAssociation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: TransitGatewayConnectPeerAssociation): any => ({ + ...obj, + }); +} + +export interface AssociateTransitGatewayConnectPeerResponse { + /** + *

                        The transit gateway Connect peer association.

                        */ TransitGatewayConnectPeerAssociation?: TransitGatewayConnectPeerAssociation; } @@ -518,26 +803,1438 @@ export namespace AWSLocation { */ export interface Bandwidth { /** - *

                        Upload speed in Mbps.

                        + *

                        Upload speed in Mbps.

                        + */ + UploadSpeed?: number; + + /** + *

                        Download speed in Mbps.

                        + */ + DownloadSpeed?: number; +} + +export namespace Bandwidth { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Bandwidth): any => ({ + ...obj, + }); +} + +/** + *

                        Describes the BGP options.

                        + */ +export interface BgpOptions { + /** + *

                        The Peer ASN of the BGP.

                        + */ + PeerAsn?: number; +} + +export namespace BgpOptions { + /** + * @internal + */ + export const filterSensitiveLog = (obj: BgpOptions): any => ({ + ...obj, + }); +} + +export enum ChangeAction { + ADD = "ADD", + MODIFY = "MODIFY", + REMOVE = "REMOVE", +} + +export enum ChangeSetState { + EXECUTING = "EXECUTING", + EXECUTION_SUCCEEDED = "EXECUTION_SUCCEEDED", + FAILED_GENERATION = "FAILED_GENERATION", + OUT_OF_DATE = "OUT_OF_DATE", + PENDING_GENERATION = "PENDING_GENERATION", + READY_TO_EXECUTE = "READY_TO_EXECUTE", +} + +export enum ChangeType { + ATTACHMENT_MAPPING = "ATTACHMENT_MAPPING", + ATTACHMENT_ROUTE_PROPAGATION = "ATTACHMENT_ROUTE_PROPAGATION", + ATTACHMENT_ROUTE_STATIC = "ATTACHMENT_ROUTE_STATIC", + CORE_NETWORK_EDGE = "CORE_NETWORK_EDGE", + CORE_NETWORK_SEGMENT = "CORE_NETWORK_SEGMENT", +} + +export enum TunnelProtocol { + GRE = "GRE", +} + +/** + *

                        Describes a core network Connect attachment options.

                        + */ +export interface ConnectAttachmentOptions { + /** + *

                        The protocol used for the attachment connection.

                        + */ + Protocol?: TunnelProtocol | string; +} + +export namespace ConnectAttachmentOptions { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectAttachmentOptions): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network Connect attachment.

                        + */ +export interface ConnectAttachment { + /** + *

                        The attachment details.

                        + */ + Attachment?: Attachment; + + /** + *

                        The ID of the transport attachment.

                        + */ + TransportAttachmentId?: string; + + /** + *

                        Options for connecting an attachment.

                        + */ + Options?: ConnectAttachmentOptions; +} + +export namespace ConnectAttachment { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectAttachment): any => ({ + ...obj, + }); +} + +export enum ConnectionState { + available = "AVAILABLE", + deleting = "DELETING", + pending = "PENDING", + updating = "UPDATING", +} + +/** + *

                        Describes a connection.

                        + */ +export interface Connection { + /** + *

                        The ID of the connection.

                        + */ + ConnectionId?: string; + + /** + *

                        The Amazon Resource Name (ARN) of the connection.

                        + */ + ConnectionArn?: string; + + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The ID of the first device in the connection.

                        + */ + DeviceId?: string; + + /** + *

                        The ID of the second device in the connection.

                        + */ + ConnectedDeviceId?: string; + + /** + *

                        The ID of the link for the first device in the connection.

                        + */ + LinkId?: string; + + /** + *

                        The ID of the link for the second device in the connection.

                        + */ + ConnectedLinkId?: string; + + /** + *

                        The description of the connection.

                        + */ + Description?: string; + + /** + *

                        The date and time that the connection was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The state of the connection.

                        + */ + State?: ConnectionState | string; + + /** + *

                        The tags for the connection.

                        + */ + Tags?: Tag[]; +} + +export namespace Connection { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Connection): any => ({ + ...obj, + }); +} + +export enum ConnectionStatus { + DOWN = "DOWN", + UP = "UP", +} + +export enum ConnectionType { + BGP = "BGP", + IPSEC = "IPSEC", +} + +/** + *

                        Describes connection health.

                        + */ +export interface ConnectionHealth { + /** + *

                        The connection type.

                        + */ + Type?: ConnectionType | string; + + /** + *

                        The connection status.

                        + */ + Status?: ConnectionStatus | string; + + /** + *

                        The time the status was last updated.

                        + */ + Timestamp?: Date; +} + +export namespace ConnectionHealth { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectionHealth): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network BGP configuration.

                        + */ +export interface ConnectPeerBgpConfiguration { + /** + *

                        The ASN of the Coret Network.

                        + */ + CoreNetworkAsn?: number; + + /** + *

                        The ASN of the Connect peer.

                        + */ + PeerAsn?: number; + + /** + *

                        The address of a core network.

                        + */ + CoreNetworkAddress?: string; + + /** + *

                        The address of a core network Connect peer.

                        + */ + PeerAddress?: string; +} + +export namespace ConnectPeerBgpConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectPeerBgpConfiguration): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network Connect peer configuration.

                        + */ +export interface ConnectPeerConfiguration { + /** + *

                        The IP address of a core network.

                        + */ + CoreNetworkAddress?: string; + + /** + *

                        The IP address of the Connect peer.

                        + */ + PeerAddress?: string; + + /** + *

                        The inside IP addresses used for a Connect peer configuration.

                        + */ + InsideCidrBlocks?: string[]; + + /** + *

                        The protocol used for a Connect peer configuration.

                        + */ + Protocol?: TunnelProtocol | string; + + /** + *

                        The Connect peer BGP configurations.

                        + */ + BgpConfigurations?: ConnectPeerBgpConfiguration[]; +} + +export namespace ConnectPeerConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectPeerConfiguration): any => ({ + ...obj, + }); +} + +export enum ConnectPeerState { + AVAILABLE = "AVAILABLE", + CREATING = "CREATING", + DELETING = "DELETING", + FAILED = "FAILED", +} + +/** + *

                        Describes a core network Connect peer.

                        + */ +export interface ConnectPeer { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        The ID of the attachment to connect.

                        + */ + ConnectAttachmentId?: string; + + /** + *

                        The ID of the Connect peer.

                        + */ + ConnectPeerId?: string; + + /** + *

                        The Connect peer Regions where edges are located.

                        + */ + EdgeLocation?: string; + + /** + *

                        The state of the Connect peer.

                        + */ + State?: ConnectPeerState | string; + + /** + *

                        The timestamp when the Connect peer was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The configuration of the Connect peer.

                        + */ + Configuration?: ConnectPeerConfiguration; + + /** + *

                        The tags associated with the Connect peer.

                        + */ + Tags?: Tag[]; +} + +export namespace ConnectPeer { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectPeer): any => ({ + ...obj, + }); +} + +/** + *

                        Summary description of a Connect peer.

                        + */ +export interface ConnectPeerSummary { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        The ID of a Connect peer attachment.

                        + */ + ConnectAttachmentId?: string; + + /** + *

                        The ID of a Connect peer.

                        + */ + ConnectPeerId?: string; + + /** + *

                        The Region where the edge is located.

                        + */ + EdgeLocation?: string; + + /** + *

                        The state of a Connect peer.

                        + */ + ConnectPeerState?: ConnectPeerState | string; + + /** + *

                        The timestamp when a Connect peer was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The tags associated with a Connect peer summary.

                        + */ + Tags?: Tag[]; +} + +export namespace ConnectPeerSummary { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ConnectPeerSummary): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network edge.

                        + */ +export interface CoreNetworkEdge { + /** + *

                        The Region where a core network edge is located.

                        + */ + EdgeLocation?: string; + + /** + *

                        The ASN of a core network edge.

                        + */ + Asn?: number; + + /** + *

                        The inside IP addresses used for core network edges.

                        + */ + InsideCidrBlocks?: string[]; +} + +export namespace CoreNetworkEdge { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkEdge): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network segment, which are dedicated routes. Only attachments within this segment can communicate with each other.

                        + */ +export interface CoreNetworkSegment { + /** + *

                        The name of a core network segment.

                        + */ + Name?: string; + + /** + *

                        The Regions where the edges are located.

                        + */ + EdgeLocations?: string[]; + + /** + *

                        The shared segments of a core network.

                        + */ + SharedSegments?: string[]; +} + +export namespace CoreNetworkSegment { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkSegment): any => ({ + ...obj, + }); +} + +export enum CoreNetworkState { + AVAILABLE = "AVAILABLE", + CREATING = "CREATING", + DELETING = "DELETING", + UPDATING = "UPDATING", +} + +/** + *

                        Describes a core network.

                        + */ +export interface CoreNetwork { + /** + *

                        The ID of the global network that your core network is a part of.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        The ARN of a core network.

                        + */ + CoreNetworkArn?: string; + + /** + *

                        The description of a core network.

                        + */ + Description?: string; + + /** + *

                        The timestamp when a core network was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The current state of a core network.

                        + */ + State?: CoreNetworkState | string; + + /** + *

                        The segments within a core network.

                        + */ + Segments?: CoreNetworkSegment[]; + + /** + *

                        The edges within a core network.

                        + */ + Edges?: CoreNetworkEdge[]; + + /** + *

                        The tags associated with a core network.

                        + */ + Tags?: Tag[]; +} + +export namespace CoreNetwork { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetwork): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network change.

                        + */ +export interface CoreNetworkChangeValues { + /** + *

                        The names of the segments in a core network.

                        + */ + SegmentName?: string; + + /** + *

                        The Regions where edges are located in a core network.

                        + */ + EdgeLocations?: string[]; + + /** + *

                        The ASN of a core network.

                        + */ + Asn?: number; + + /** + *

                        The IP addresses used for a core network.

                        + */ + Cidr?: string; + + /** + *

                        The ID of the destination.

                        + */ + DestinationIdentifier?: string; + + /** + *

                        The inside IP addresses used for core network change values.

                        + */ + InsideCidrBlocks?: string[]; + + /** + *

                        The shared segments for a core network change value.

                        + */ + SharedSegments?: string[]; +} + +export namespace CoreNetworkChangeValues { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkChangeValues): any => ({ + ...obj, + }); +} + +/** + *

                        Details describing a core network change.

                        + */ +export interface CoreNetworkChange { + /** + *

                        The type of change.

                        + */ + Type?: ChangeType | string; + + /** + *

                        The action to take for a core network.

                        + */ + Action?: ChangeAction | string; + + /** + *

                        The resource identifier.

                        + */ + Identifier?: string; + + /** + *

                        The previous values for a core network.

                        + */ + PreviousValues?: CoreNetworkChangeValues; + + /** + *

                        The new value for a core network

                        + */ + NewValues?: CoreNetworkChangeValues; +} + +export namespace CoreNetworkChange { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkChange): any => ({ + ...obj, + }); +} + +export enum CoreNetworkPolicyAlias { + LATEST = "LATEST", + LIVE = "LIVE", +} + +/** + *

                        Provides details about an error in a core network policy.

                        + */ +export interface CoreNetworkPolicyError { + /** + *

                        The error code associated with a core network policy error.

                        + */ + ErrorCode: string | undefined; + + /** + *

                        The message associated with a core network policy error code.

                        + */ + Message: string | undefined; + + /** + *

                        The JSON path where the error was discovered in the policy document.

                        + */ + Path?: string; +} + +export namespace CoreNetworkPolicyError { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkPolicyError): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network policy. You can have only one LIVE Core Policy.

                        + */ +export interface CoreNetworkPolicy { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        The ID of the policy version.

                        + */ + PolicyVersionId?: number; + + /** + *

                        Whether a core network policy is the current LIVE policy or the most recently submitted policy.

                        + */ + Alias?: CoreNetworkPolicyAlias | string; + + /** + *

                        The description of a core network policy.

                        + */ + Description?: string; + + /** + *

                        The timestamp when a core network policy was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The state of a core network policy.

                        + */ + ChangeSetState?: ChangeSetState | string; + + /** + *

                        Describes any errors in a core network policy.

                        + */ + PolicyErrors?: CoreNetworkPolicyError[]; + + /** + *

                        Describes a core network policy.

                        + */ + PolicyDocument?: __LazyJsonString | string; +} + +export namespace CoreNetworkPolicy { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkPolicy): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network policy exception.

                        + */ +export interface CoreNetworkPolicyException extends __SmithyException, $MetadataBearer { + name: "CoreNetworkPolicyException"; + $fault: "client"; + Message: string | undefined; + /** + *

                        Describes a core network policy exception.

                        + */ + Errors?: CoreNetworkPolicyError[]; +} + +export namespace CoreNetworkPolicyException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkPolicyException): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a core network policy version.

                        + */ +export interface CoreNetworkPolicyVersion { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        The ID of the policy version.

                        + */ + PolicyVersionId?: number; + + /** + *

                        Whether a core network policy is the current policy or the most recently submitted policy.

                        + */ + Alias?: CoreNetworkPolicyAlias | string; + + /** + *

                        The description of a core network policy version.

                        + */ + Description?: string; + + /** + *

                        The timestamp when a core network policy version was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The status of the policy version change set.

                        + */ + ChangeSetState?: ChangeSetState | string; +} + +export namespace CoreNetworkPolicyVersion { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkPolicyVersion): any => ({ + ...obj, + }); +} + +/** + *

                        Returns details about a core network edge.

                        + */ +export interface CoreNetworkSegmentEdgeIdentifier { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        The name of the segment edge.

                        + */ + SegmentName?: string; + + /** + *

                        The Region where the segment edge is located.

                        + */ + EdgeLocation?: string; +} + +export namespace CoreNetworkSegmentEdgeIdentifier { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkSegmentEdgeIdentifier): any => ({ + ...obj, + }); +} + +/** + *

                        Returns summary information about a core network.

                        + */ +export interface CoreNetworkSummary { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + + /** + *

                        a core network ARN.

                        + */ + CoreNetworkArn?: string; + + /** + *

                        The global network ID.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The ID of the account owner.

                        + */ + OwnerAccountId?: string; + + /** + *

                        The state of a core network.

                        + */ + State?: CoreNetworkState | string; + + /** + *

                        The description of a core network.

                        + */ + Description?: string; + + /** + *

                        The key-value tags associated with a core network summary.

                        + */ + Tags?: Tag[]; +} + +export namespace CoreNetworkSummary { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CoreNetworkSummary): any => ({ + ...obj, + }); +} + +export interface CreateConnectAttachmentRequest { + /** + *

                        The ID of a core network where you want to create the attachment.

                        + */ + CoreNetworkId: string | undefined; + + /** + *

                        The Region where the edge is located.

                        + */ + EdgeLocation: string | undefined; + + /** + *

                        The ID of the attachment between the two connections.

                        + */ + TransportAttachmentId: string | undefined; + + /** + *

                        Options for creating an attachment.

                        + */ + Options: ConnectAttachmentOptions | undefined; + + /** + *

                        The list of key-value tags associated with the request.

                        + */ + Tags?: Tag[]; + + /** + *

                        The client token associated with the request.

                        + */ + ClientToken?: string; +} + +export namespace CreateConnectAttachmentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateConnectAttachmentRequest): any => ({ + ...obj, + }); +} + +export interface CreateConnectAttachmentResponse { + /** + *

                        The response to a Connect attachment request.

                        + */ + ConnectAttachment?: ConnectAttachment; +} + +export namespace CreateConnectAttachmentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateConnectAttachmentResponse): any => ({ + ...obj, + }); +} + +export interface CreateConnectionRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        The ID of the first device in the connection.

                        + */ + DeviceId: string | undefined; + + /** + *

                        The ID of the second device in the connection.

                        + */ + ConnectedDeviceId: string | undefined; + + /** + *

                        The ID of the link for the first device.

                        + */ + LinkId?: string; + + /** + *

                        The ID of the link for the second device.

                        + */ + ConnectedLinkId?: string; + + /** + *

                        A description of the connection.

                        + *

                        Length Constraints: Maximum length of 256 characters.

                        + */ + Description?: string; + + /** + *

                        The tags to apply to the resource during creation.

                        + */ + Tags?: Tag[]; +} + +export namespace CreateConnectionRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateConnectionRequest): any => ({ + ...obj, + }); +} + +export interface CreateConnectionResponse { + /** + *

                        Information about the connection.

                        + */ + Connection?: Connection; +} + +export namespace CreateConnectionResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateConnectionResponse): any => ({ + ...obj, + }); +} + +export interface CreateConnectPeerRequest { + /** + *

                        The ID of the connection attachment.

                        + */ + ConnectAttachmentId: string | undefined; + + /** + *

                        A Connect peer core network address.

                        + */ + CoreNetworkAddress?: string; + + /** + *

                        The Connect peer address.

                        + */ + PeerAddress: string | undefined; + + /** + *

                        The Connect peer BGP options.

                        + */ + BgpOptions?: BgpOptions; + + /** + *

                        The inside IP addresses used for BGP peering.

                        + */ + InsideCidrBlocks: string[] | undefined; + + /** + *

                        The tags associated with the peer request.

                        + */ + Tags?: Tag[]; + + /** + *

                        The client token associated with the request.

                        + */ + ClientToken?: string; +} + +export namespace CreateConnectPeerRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateConnectPeerRequest): any => ({ + ...obj, + }); +} + +export interface CreateConnectPeerResponse { + /** + *

                        The response to the request.

                        + */ + ConnectPeer?: ConnectPeer; +} + +export namespace CreateConnectPeerResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateConnectPeerResponse): any => ({ + ...obj, + }); +} + +export interface CreateCoreNetworkRequest { + /** + *

                        The ID of the global network that a core network will be a part of.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        The description of a core network.

                        + */ + Description?: string; + + /** + *

                        Key-value tags associated with a core network request.

                        + */ + Tags?: Tag[]; + + /** + *

                        The policy document for creating a core network.

                        + */ + PolicyDocument?: string; + + /** + *

                        The client token associated with a core network request.

                        + */ + ClientToken?: string; +} + +export namespace CreateCoreNetworkRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateCoreNetworkRequest): any => ({ + ...obj, + }); +} + +export interface CreateCoreNetworkResponse { + /** + *

                        Returns details about a core network.

                        + */ + CoreNetwork?: CoreNetwork; +} + +export namespace CreateCoreNetworkResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateCoreNetworkResponse): any => ({ + ...obj, + }); +} + +/** + *

                        Describes a location.

                        + */ +export interface Location { + /** + *

                        The physical address.

                        + */ + Address?: string; + + /** + *

                        The latitude.

                        + */ + Latitude?: string; + + /** + *

                        The longitude.

                        + */ + Longitude?: string; +} + +export namespace Location { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Location): any => ({ + ...obj, + }); +} + +export interface CreateDeviceRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        The Amazon Web Services location of the device, if applicable. For an on-premises device, you can omit this parameter.

                        + */ + AWSLocation?: AWSLocation; + + /** + *

                        A description of the device.

                        + *

                        Constraints: Maximum length of 256 characters.

                        + */ + Description?: string; + + /** + *

                        The type of the device.

                        + */ + Type?: string; + + /** + *

                        The vendor of the device.

                        + *

                        Constraints: Maximum length of 128 characters.

                        + */ + Vendor?: string; + + /** + *

                        The model of the device.

                        + *

                        Constraints: Maximum length of 128 characters.

                        + */ + Model?: string; + + /** + *

                        The serial number of the device.

                        + *

                        Constraints: Maximum length of 128 characters.

                        + */ + SerialNumber?: string; + + /** + *

                        The location of the device.

                        + */ + Location?: Location; + + /** + *

                        The ID of the site.

                        + */ + SiteId?: string; + + /** + *

                        The tags to apply to the resource during creation.

                        + */ + Tags?: Tag[]; +} + +export namespace CreateDeviceRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateDeviceRequest): any => ({ + ...obj, + ...(obj.Location && { Location: SENSITIVE_STRING }), + }); +} + +export enum DeviceState { + available = "AVAILABLE", + deleting = "DELETING", + pending = "PENDING", + updating = "UPDATING", +} + +/** + *

                        Describes a device.

                        + */ +export interface Device { + /** + *

                        The ID of the device.

                        + */ + DeviceId?: string; + + /** + *

                        The Amazon Resource Name (ARN) of the device.

                        + */ + DeviceArn?: string; + + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The Amazon Web Services location of the device.

                        + */ + AWSLocation?: AWSLocation; + + /** + *

                        The description of the device.

                        + */ + Description?: string; + + /** + *

                        The device type.

                        + */ + Type?: string; + + /** + *

                        The device vendor.

                        + */ + Vendor?: string; + + /** + *

                        The device model.

                        + */ + Model?: string; + + /** + *

                        The device serial number.

                        + */ + SerialNumber?: string; + + /** + *

                        The site location.

                        + */ + Location?: Location; + + /** + *

                        The site ID.

                        + */ + SiteId?: string; + + /** + *

                        The date and time that the site was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The device state.

                        + */ + State?: DeviceState | string; + + /** + *

                        The tags for the device.

                        + */ + Tags?: Tag[]; +} + +export namespace Device { + /** + * @internal + */ + export const filterSensitiveLog = (obj: Device): any => ({ + ...obj, + ...(obj.Location && { Location: SENSITIVE_STRING }), + }); +} + +export interface CreateDeviceResponse { + /** + *

                        Information about the device.

                        + */ + Device?: Device; +} + +export namespace CreateDeviceResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateDeviceResponse): any => ({ + ...obj, + ...(obj.Device && { Device: Device.filterSensitiveLog(obj.Device) }), + }); +} + +export interface CreateGlobalNetworkRequest { + /** + *

                        A description of the global network.

                        + *

                        Constraints: Maximum length of 256 characters.

                        + */ + Description?: string; + + /** + *

                        The tags to apply to the resource during creation.

                        + */ + Tags?: Tag[]; +} + +export namespace CreateGlobalNetworkRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateGlobalNetworkRequest): any => ({ + ...obj, + }); +} + +export enum GlobalNetworkState { + available = "AVAILABLE", + deleting = "DELETING", + pending = "PENDING", + updating = "UPDATING", +} + +/** + *

                        Describes a global network. This is a single private network acting as a high-level container for your network objects, including an Amazon Web Services-manged Core Network.

                        + */ +export interface GlobalNetwork { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId?: string; + + /** + *

                        The Amazon Resource Name (ARN) of the global network.

                        + */ + GlobalNetworkArn?: string; + + /** + *

                        The description of the global network.

                        + */ + Description?: string; + + /** + *

                        The date and time that the global network was created.

                        + */ + CreatedAt?: Date; + + /** + *

                        The state of the global network.

                        + */ + State?: GlobalNetworkState | string; + + /** + *

                        The tags for the global network.

                        + */ + Tags?: Tag[]; +} + +export namespace GlobalNetwork { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GlobalNetwork): any => ({ + ...obj, + }); +} + +export interface CreateGlobalNetworkResponse { + /** + *

                        Information about the global network object.

                        + */ + GlobalNetwork?: GlobalNetwork; +} + +export namespace CreateGlobalNetworkResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateGlobalNetworkResponse): any => ({ + ...obj, + }); +} + +export interface CreateLinkRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        A description of the link.

                        + *

                        Constraints: Maximum length of 256 characters.

                        + */ + Description?: string; + + /** + *

                        The type of the link.

                        + *

                        Constraints: Maximum length of 128 characters. Cannot include the following characters: | \ ^

                        + */ + Type?: string; + + /** + *

                        The upload speed and download speed in Mbps.

                        + */ + Bandwidth: Bandwidth | undefined; + + /** + *

                        The provider of the link.

                        + *

                        Constraints: Maximum length of 128 characters. Cannot include the following characters: | \ ^

                        + */ + Provider?: string; + + /** + *

                        The ID of the site.

                        */ - UploadSpeed?: number; + SiteId: string | undefined; /** - *

                        Download speed in Mbps.

                        + *

                        The tags to apply to the resource during creation.

                        */ - DownloadSpeed?: number; + Tags?: Tag[]; } -export namespace Bandwidth { +export namespace CreateLinkRequest { /** * @internal */ - export const filterSensitiveLog = (obj: Bandwidth): any => ({ + export const filterSensitiveLog = (obj: CreateLinkRequest): any => ({ ...obj, }); } -export enum ConnectionState { +export enum LinkState { available = "AVAILABLE", deleting = "DELETING", pending = "PENDING", @@ -545,44 +2242,18 @@ export enum ConnectionState { } /** - *

                        Describes a tag.

                        - */ -export interface Tag { - /** - *

                        The tag key.

                        - *

                        Constraints: Maximum length of 128 characters.

                        - */ - Key?: string; - - /** - *

                        The tag value.

                        - *

                        Constraints: Maximum length of 256 characters.

                        - */ - Value?: string; -} - -export namespace Tag { - /** - * @internal - */ - export const filterSensitiveLog = (obj: Tag): any => ({ - ...obj, - }); -} - -/** - *

                        Describes a connection.

                        + *

                        Describes a link.

                        */ -export interface Connection { +export interface Link { /** - *

                        The ID of the connection.

                        + *

                        The ID of the link.

                        */ - ConnectionId?: string; + LinkId?: string; /** - *

                        The Amazon Resource Name (ARN) of the connection.

                        + *

                        The Amazon Resource Name (ARN) of the link.

                        */ - ConnectionArn?: string; + LinkArn?: string; /** *

                        The ID of the global network.

                        @@ -590,1002 +2261,1092 @@ export interface Connection { GlobalNetworkId?: string; /** - *

                        The ID of the first device in the connection.

                        + *

                        The ID of the site.

                        */ - DeviceId?: string; + SiteId?: string; /** - *

                        The ID of the second device in the connection.

                        + *

                        The description of the link.

                        */ - ConnectedDeviceId?: string; + Description?: string; /** - *

                        The ID of the link for the first device in the connection.

                        + *

                        The type of the link.

                        */ - LinkId?: string; + Type?: string; /** - *

                        The ID of the link for the second device in the connection.

                        + *

                        The bandwidth for the link.

                        */ - ConnectedLinkId?: string; + Bandwidth?: Bandwidth; /** - *

                        The description of the connection.

                        + *

                        The provider of the link.

                        */ - Description?: string; + Provider?: string; /** - *

                        The date and time that the connection was created.

                        + *

                        The date and time that the link was created.

                        */ CreatedAt?: Date; /** - *

                        The state of the connection.

                        + *

                        The state of the link.

                        */ - State?: ConnectionState | string; + State?: LinkState | string; /** - *

                        The tags for the connection.

                        + *

                        The tags for the link.

                        */ Tags?: Tag[]; } -export namespace Connection { +export namespace Link { /** * @internal */ - export const filterSensitiveLog = (obj: Connection): any => ({ + export const filterSensitiveLog = (obj: Link): any => ({ ...obj, }); } -export enum ConnectionStatus { - DOWN = "DOWN", - UP = "UP", +export interface CreateLinkResponse { + /** + *

                        Information about the link.

                        + */ + Link?: Link; } -export enum ConnectionType { - BGP = "BGP", - IPSEC = "IPSEC", +export namespace CreateLinkResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: CreateLinkResponse): any => ({ + ...obj, + }); } -/** - *

                        Describes connection health.

                        - */ -export interface ConnectionHealth { +export interface CreateSiteRequest { /** - *

                        The connection type.

                        + *

                        The ID of the global network.

                        */ - Type?: ConnectionType | string; + GlobalNetworkId: string | undefined; /** - *

                        The connection status.

                        + *

                        A description of your site.

                        + *

                        Constraints: Maximum length of 256 characters.

                        */ - Status?: ConnectionStatus | string; + Description?: string; /** - *

                        The time the status was last updated.

                        + *

                        The site location. This information is used for visualization in the Network Manager console. If you specify the address, the latitude and longitude are automatically calculated.

                        + *
                          + *
                        • + *

                          + * Address: The physical address of the site.

                          + *
                        • + *
                        • + *

                          + * Latitude: The latitude of the site.

                          + *
                        • + *
                        • + *

                          + * Longitude: The longitude of the site.

                          + *
                        • + *
                        */ - Timestamp?: Date; + Location?: Location; + + /** + *

                        The tags to apply to the resource during creation.

                        + */ + Tags?: Tag[]; } -export namespace ConnectionHealth { +export namespace CreateSiteRequest { /** * @internal */ - export const filterSensitiveLog = (obj: ConnectionHealth): any => ({ + export const filterSensitiveLog = (obj: CreateSiteRequest): any => ({ ...obj, + ...(obj.Location && { Location: SENSITIVE_STRING }), }); } -export interface CreateConnectionRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; +export enum SiteState { + available = "AVAILABLE", + deleting = "DELETING", + pending = "PENDING", + updating = "UPDATING", +} +/** + *

                        Describes a site.

                        + */ +export interface Site { /** - *

                        The ID of the first device in the connection.

                        + *

                        The ID of the site.

                        */ - DeviceId: string | undefined; + SiteId?: string; /** - *

                        The ID of the second device in the connection.

                        + *

                        The Amazon Resource Name (ARN) of the site.

                        */ - ConnectedDeviceId: string | undefined; + SiteArn?: string; /** - *

                        The ID of the link for the first device.

                        + *

                        The ID of the global network.

                        */ - LinkId?: string; + GlobalNetworkId?: string; /** - *

                        The ID of the link for the second device.

                        + *

                        The description of the site.

                        */ - ConnectedLinkId?: string; + Description?: string; /** - *

                        A description of the connection.

                        - *

                        Length Constraints: Maximum length of 256 characters.

                        + *

                        The location of the site.

                        */ - Description?: string; + Location?: Location; /** - *

                        The tags to apply to the resource during creation.

                        + *

                        The date and time that the site was created.

                        */ - Tags?: Tag[]; -} + CreatedAt?: Date; -export namespace CreateConnectionRequest { /** - * @internal + *

                        The state of the site.

                        */ - export const filterSensitiveLog = (obj: CreateConnectionRequest): any => ({ - ...obj, - }); -} + State?: SiteState | string; -export interface CreateConnectionResponse { /** - *

                        Information about the connection.

                        + *

                        The tags for the site.

                        */ - Connection?: Connection; + Tags?: Tag[]; } -export namespace CreateConnectionResponse { +export namespace Site { /** * @internal */ - export const filterSensitiveLog = (obj: CreateConnectionResponse): any => ({ + export const filterSensitiveLog = (obj: Site): any => ({ ...obj, + ...(obj.Location && { Location: SENSITIVE_STRING }), }); } -/** - *

                        Describes a location.

                        - */ -export interface Location { - /** - *

                        The physical address.

                        - */ - Address?: string; - - /** - *

                        The latitude.

                        - */ - Latitude?: string; - +export interface CreateSiteResponse { /** - *

                        The longitude.

                        + *

                        Information about the site.

                        */ - Longitude?: string; + Site?: Site; } -export namespace Location { +export namespace CreateSiteResponse { /** * @internal */ - export const filterSensitiveLog = (obj: Location): any => ({ + export const filterSensitiveLog = (obj: CreateSiteResponse): any => ({ ...obj, + ...(obj.Site && { Site: Site.filterSensitiveLog(obj.Site) }), }); } -export interface CreateDeviceRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - +export interface CreateSiteToSiteVpnAttachmentRequest { /** - *

                        The Amazon Web Services location of the device, if applicable. For an on-premises device, you can omit this parameter.

                        + *

                        The ID of a core network where you're creating a site-to-site VPN attachment.

                        */ - AWSLocation?: AWSLocation; + CoreNetworkId: string | undefined; /** - *

                        A description of the device.

                        - *

                        Constraints: Maximum length of 256 characters.

                        + *

                        The ARN identifying the VPN attachment.

                        */ - Description?: string; + VpnConnectionArn: string | undefined; /** - *

                        The type of the device.

                        + *

                        The tags associated with the request.

                        */ - Type?: string; + Tags?: Tag[]; /** - *

                        The vendor of the device.

                        - *

                        Constraints: Maximum length of 128 characters.

                        + *

                        The client token associated with the request.

                        */ - Vendor?: string; + ClientToken?: string; +} +export namespace CreateSiteToSiteVpnAttachmentRequest { /** - *

                        The model of the device.

                        - *

                        Constraints: Maximum length of 128 characters.

                        + * @internal */ - Model?: string; + export const filterSensitiveLog = (obj: CreateSiteToSiteVpnAttachmentRequest): any => ({ + ...obj, + }); +} +/** + *

                        Creates a site-to-site VPN attachment.

                        + */ +export interface SiteToSiteVpnAttachment { /** - *

                        The serial number of the device.

                        - *

                        Constraints: Maximum length of 128 characters.

                        + *

                        Provides details about a site-to-site VPN attachment.

                        */ - SerialNumber?: string; + Attachment?: Attachment; /** - *

                        The location of the device.

                        + *

                        The ARN of the site-to-site VPN attachment.

                        */ - Location?: Location; + VpnConnectionArn?: string; +} +export namespace SiteToSiteVpnAttachment { /** - *

                        The ID of the site.

                        + * @internal */ - SiteId?: string; + export const filterSensitiveLog = (obj: SiteToSiteVpnAttachment): any => ({ + ...obj, + }); +} +export interface CreateSiteToSiteVpnAttachmentResponse { /** - *

                        The tags to apply to the resource during creation.

                        + *

                        Details about a site-to-site VPN attachment.

                        */ - Tags?: Tag[]; + SiteToSiteVpnAttachment?: SiteToSiteVpnAttachment; } -export namespace CreateDeviceRequest { +export namespace CreateSiteToSiteVpnAttachmentResponse { /** * @internal */ - export const filterSensitiveLog = (obj: CreateDeviceRequest): any => ({ + export const filterSensitiveLog = (obj: CreateSiteToSiteVpnAttachmentResponse): any => ({ ...obj, - ...(obj.Location && { Location: SENSITIVE_STRING }), }); } -export enum DeviceState { - available = "AVAILABLE", - deleting = "DELETING", - pending = "PENDING", - updating = "UPDATING", -} - /** - *

                        Describes a device.

                        + *

                        Describes the VPC options.

                        */ -export interface Device { +export interface VpcOptions { /** - *

                        The ID of the device.

                        + *

                        Indicates whether IPv6 is supported.

                        */ - DeviceId?: string; + Ipv6Support?: boolean; +} +export namespace VpcOptions { /** - *

                        The Amazon Resource Name (ARN) of the device.

                        + * @internal */ - DeviceArn?: string; + export const filterSensitiveLog = (obj: VpcOptions): any => ({ + ...obj, + }); +} +export interface CreateVpcAttachmentRequest { /** - *

                        The ID of the global network.

                        + *

                        The ID of a core network for the VPC attachment.

                        */ - GlobalNetworkId?: string; + CoreNetworkId: string | undefined; /** - *

                        The Amazon Web Services location of the device.

                        + *

                        The ARN of the VPC.

                        */ - AWSLocation?: AWSLocation; + VpcArn: string | undefined; /** - *

                        The description of the device.

                        + *

                        The subnet ARN of the VPC attachment.

                        */ - Description?: string; + SubnetArns: string[] | undefined; /** - *

                        The device type.

                        + *

                        Options for the VPC attachment.

                        */ - Type?: string; + Options?: VpcOptions; /** - *

                        The device vendor.

                        + *

                        The key-value tags associated with the request.

                        */ - Vendor?: string; + Tags?: Tag[]; /** - *

                        The device model.

                        + *

                        The client token associated with the request.

                        */ - Model?: string; + ClientToken?: string; +} +export namespace CreateVpcAttachmentRequest { /** - *

                        The device serial number.

                        + * @internal */ - SerialNumber?: string; + export const filterSensitiveLog = (obj: CreateVpcAttachmentRequest): any => ({ + ...obj, + }); +} +/** + *

                        Describes a VPC attachment.

                        + */ +export interface VpcAttachment { /** - *

                        The site location.

                        + *

                        Provides details about the VPC attachment.

                        */ - Location?: Location; + Attachment?: Attachment; /** - *

                        The site ID.

                        + *

                        The subnet ARNs.

                        */ - SiteId?: string; + SubnetArns?: string[]; /** - *

                        The date and time that the site was created.

                        + *

                        Provides details about the VPC attachment.

                        */ - CreatedAt?: Date; + Options?: VpcOptions; +} +export namespace VpcAttachment { /** - *

                        The device state.

                        + * @internal */ - State?: DeviceState | string; + export const filterSensitiveLog = (obj: VpcAttachment): any => ({ + ...obj, + }); +} +export interface CreateVpcAttachmentResponse { /** - *

                        The tags for the device.

                        + *

                        Provides details about the VPC attachment.

                        */ - Tags?: Tag[]; + VpcAttachment?: VpcAttachment; } -export namespace Device { +export namespace CreateVpcAttachmentResponse { /** * @internal */ - export const filterSensitiveLog = (obj: Device): any => ({ + export const filterSensitiveLog = (obj: CreateVpcAttachmentResponse): any => ({ ...obj, - ...(obj.Location && { Location: SENSITIVE_STRING }), }); } -export interface CreateDeviceResponse { +export interface DeleteAttachmentRequest { /** - *

                        Information about the device.

                        + *

                        The ID of the attachment to delete.

                        */ - Device?: Device; + AttachmentId: string | undefined; } -export namespace CreateDeviceResponse { +export namespace DeleteAttachmentRequest { /** * @internal */ - export const filterSensitiveLog = (obj: CreateDeviceResponse): any => ({ + export const filterSensitiveLog = (obj: DeleteAttachmentRequest): any => ({ ...obj, - ...(obj.Device && { Device: Device.filterSensitiveLog(obj.Device) }), }); } -export interface CreateGlobalNetworkRequest { - /** - *

                        A description of the global network.

                        - *

                        Constraints: Maximum length of 256 characters.

                        - */ - Description?: string; - +export interface DeleteAttachmentResponse { /** - *

                        The tags to apply to the resource during creation.

                        + *

                        Information about the deleted attachment.

                        */ - Tags?: Tag[]; + Attachment?: Attachment; } -export namespace CreateGlobalNetworkRequest { +export namespace DeleteAttachmentResponse { /** * @internal */ - export const filterSensitiveLog = (obj: CreateGlobalNetworkRequest): any => ({ + export const filterSensitiveLog = (obj: DeleteAttachmentResponse): any => ({ ...obj, }); } -export enum GlobalNetworkState { - available = "AVAILABLE", - deleting = "DELETING", - pending = "PENDING", - updating = "UPDATING", -} - -/** - *

                        Describes a global network.

                        - */ -export interface GlobalNetwork { +export interface DeleteConnectionRequest { /** *

                        The ID of the global network.

                        */ - GlobalNetworkId?: string; + GlobalNetworkId: string | undefined; /** - *

                        The Amazon Resource Name (ARN) of the global network.

                        + *

                        The ID of the connection.

                        */ - GlobalNetworkArn?: string; + ConnectionId: string | undefined; +} +export namespace DeleteConnectionRequest { /** - *

                        The description of the global network.

                        + * @internal */ - Description?: string; + export const filterSensitiveLog = (obj: DeleteConnectionRequest): any => ({ + ...obj, + }); +} +export interface DeleteConnectionResponse { /** - *

                        The date and time that the global network was created.

                        + *

                        Information about the connection.

                        */ - CreatedAt?: Date; + Connection?: Connection; +} +export namespace DeleteConnectionResponse { /** - *

                        The state of the global network.

                        + * @internal */ - State?: GlobalNetworkState | string; + export const filterSensitiveLog = (obj: DeleteConnectionResponse): any => ({ + ...obj, + }); +} +export interface DeleteConnectPeerRequest { /** - *

                        The tags for the global network.

                        + *

                        The ID of the deleted Connect peer.

                        */ - Tags?: Tag[]; + ConnectPeerId: string | undefined; } -export namespace GlobalNetwork { +export namespace DeleteConnectPeerRequest { /** * @internal */ - export const filterSensitiveLog = (obj: GlobalNetwork): any => ({ + export const filterSensitiveLog = (obj: DeleteConnectPeerRequest): any => ({ ...obj, }); } -export interface CreateGlobalNetworkResponse { +export interface DeleteConnectPeerResponse { /** - *

                        Information about the global network object.

                        + *

                        Information about the deleted Connect peer.

                        */ - GlobalNetwork?: GlobalNetwork; + ConnectPeer?: ConnectPeer; } -export namespace CreateGlobalNetworkResponse { +export namespace DeleteConnectPeerResponse { /** * @internal */ - export const filterSensitiveLog = (obj: CreateGlobalNetworkResponse): any => ({ + export const filterSensitiveLog = (obj: DeleteConnectPeerResponse): any => ({ ...obj, }); } -export interface CreateLinkRequest { +export interface DeleteCoreNetworkRequest { /** - *

                        The ID of the global network.

                        + *

                        The network ID of the deleted core network.

                        */ - GlobalNetworkId: string | undefined; + CoreNetworkId: string | undefined; +} +export namespace DeleteCoreNetworkRequest { /** - *

                        A description of the link.

                        - *

                        Constraints: Maximum length of 256 characters.

                        + * @internal */ - Description?: string; + export const filterSensitiveLog = (obj: DeleteCoreNetworkRequest): any => ({ + ...obj, + }); +} +export interface DeleteCoreNetworkResponse { /** - *

                        The type of the link.

                        - *

                        Constraints: Maximum length of 128 characters. Cannot include the following characters: | \ ^

                        + *

                        Information about the deleted core network.

                        */ - Type?: string; + CoreNetwork?: CoreNetwork; +} +export namespace DeleteCoreNetworkResponse { /** - *

                        The upload speed and download speed in Mbps.

                        + * @internal */ - Bandwidth: Bandwidth | undefined; + export const filterSensitiveLog = (obj: DeleteCoreNetworkResponse): any => ({ + ...obj, + }); +} +export interface DeleteCoreNetworkPolicyVersionRequest { /** - *

                        The provider of the link.

                        - *

                        Constraints: Maximum length of 128 characters. Cannot include the following characters: | \ ^

                        + *

                        The ID of a core network for the deleted policy.

                        */ - Provider?: string; + CoreNetworkId: string | undefined; /** - *

                        The ID of the site.

                        + *

                        The version ID of the deleted policy.

                        */ - SiteId: string | undefined; + PolicyVersionId: number | undefined; +} +export namespace DeleteCoreNetworkPolicyVersionRequest { /** - *

                        The tags to apply to the resource during creation.

                        + * @internal */ - Tags?: Tag[]; + export const filterSensitiveLog = (obj: DeleteCoreNetworkPolicyVersionRequest): any => ({ + ...obj, + }); } -export namespace CreateLinkRequest { +export interface DeleteCoreNetworkPolicyVersionResponse { + /** + *

                        Returns information about the deleted policy version.

                        + */ + CoreNetworkPolicy?: CoreNetworkPolicy; +} + +export namespace DeleteCoreNetworkPolicyVersionResponse { /** * @internal */ - export const filterSensitiveLog = (obj: CreateLinkRequest): any => ({ + export const filterSensitiveLog = (obj: DeleteCoreNetworkPolicyVersionResponse): any => ({ ...obj, }); } -export enum LinkState { - available = "AVAILABLE", - deleting = "DELETING", - pending = "PENDING", - updating = "UPDATING", -} - -/** - *

                        Describes a link.

                        - */ -export interface Link { +export interface DeleteDeviceRequest { /** - *

                        The ID of the link.

                        + *

                        The ID of the global network.

                        */ - LinkId?: string; + GlobalNetworkId: string | undefined; /** - *

                        The Amazon Resource Name (ARN) of the link.

                        + *

                        The ID of the device.

                        */ - LinkArn?: string; + DeviceId: string | undefined; +} +export namespace DeleteDeviceRequest { /** - *

                        The ID of the global network.

                        + * @internal */ - GlobalNetworkId?: string; + export const filterSensitiveLog = (obj: DeleteDeviceRequest): any => ({ + ...obj, + }); +} +export interface DeleteDeviceResponse { /** - *

                        The ID of the site.

                        + *

                        Information about the device.

                        */ - SiteId?: string; + Device?: Device; +} +export namespace DeleteDeviceResponse { /** - *

                        The description of the link.

                        + * @internal */ - Description?: string; + export const filterSensitiveLog = (obj: DeleteDeviceResponse): any => ({ + ...obj, + ...(obj.Device && { Device: Device.filterSensitiveLog(obj.Device) }), + }); +} +export interface DeleteGlobalNetworkRequest { /** - *

                        The type of the link.

                        + *

                        The ID of the global network.

                        */ - Type?: string; + GlobalNetworkId: string | undefined; +} +export namespace DeleteGlobalNetworkRequest { /** - *

                        The bandwidth for the link.

                        + * @internal */ - Bandwidth?: Bandwidth; + export const filterSensitiveLog = (obj: DeleteGlobalNetworkRequest): any => ({ + ...obj, + }); +} +export interface DeleteGlobalNetworkResponse { /** - *

                        The provider of the link.

                        + *

                        Information about the global network.

                        */ - Provider?: string; + GlobalNetwork?: GlobalNetwork; +} +export namespace DeleteGlobalNetworkResponse { /** - *

                        The date and time that the link was created.

                        + * @internal */ - CreatedAt?: Date; + export const filterSensitiveLog = (obj: DeleteGlobalNetworkResponse): any => ({ + ...obj, + }); +} +export interface DeleteLinkRequest { /** - *

                        The state of the link.

                        + *

                        The ID of the global network.

                        */ - State?: LinkState | string; + GlobalNetworkId: string | undefined; /** - *

                        The tags for the link.

                        + *

                        The ID of the link.

                        */ - Tags?: Tag[]; + LinkId: string | undefined; } -export namespace Link { +export namespace DeleteLinkRequest { /** * @internal */ - export const filterSensitiveLog = (obj: Link): any => ({ + export const filterSensitiveLog = (obj: DeleteLinkRequest): any => ({ ...obj, }); } -export interface CreateLinkResponse { +export interface DeleteLinkResponse { /** *

                        Information about the link.

                        */ Link?: Link; } -export namespace CreateLinkResponse { +export namespace DeleteLinkResponse { /** * @internal */ - export const filterSensitiveLog = (obj: CreateLinkResponse): any => ({ + export const filterSensitiveLog = (obj: DeleteLinkResponse): any => ({ ...obj, }); } -export interface CreateSiteRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - - /** - *

                        A description of your site.

                        - *

                        Constraints: Maximum length of 256 characters.

                        - */ - Description?: string; - - /** - *

                        The site location. This information is used for visualization in the Network Manager console. If you specify the address, the latitude and longitude are automatically calculated.

                        - *
                          - *
                        • - *

                          - * Address: The physical address of the site.

                          - *
                        • - *
                        • - *

                          - * Latitude: The latitude of the site.

                          - *
                        • - *
                        • - *

                          - * Longitude: The longitude of the site.

                          - *
                        • - *
                        - */ - Location?: Location; - +export interface DeleteResourcePolicyRequest { /** - *

                        The tags to apply to the resource during creation.

                        + *

                        The ARN of the policy to delete.

                        */ - Tags?: Tag[]; + ResourceArn: string | undefined; } -export namespace CreateSiteRequest { +export namespace DeleteResourcePolicyRequest { /** * @internal */ - export const filterSensitiveLog = (obj: CreateSiteRequest): any => ({ + export const filterSensitiveLog = (obj: DeleteResourcePolicyRequest): any => ({ ...obj, - ...(obj.Location && { Location: SENSITIVE_STRING }), }); } -export enum SiteState { - available = "AVAILABLE", - deleting = "DELETING", - pending = "PENDING", - updating = "UPDATING", -} +export interface DeleteResourcePolicyResponse {} -/** - *

                        Describes a site.

                        - */ -export interface Site { +export namespace DeleteResourcePolicyResponse { /** - *

                        The ID of the site.

                        + * @internal */ - SiteId?: string; + export const filterSensitiveLog = (obj: DeleteResourcePolicyResponse): any => ({ + ...obj, + }); +} +export interface DeleteSiteRequest { /** - *

                        The Amazon Resource Name (ARN) of the site.

                        + *

                        The ID of the global network.

                        */ - SiteArn?: string; + GlobalNetworkId: string | undefined; /** - *

                        The ID of the global network.

                        + *

                        The ID of the site.

                        */ - GlobalNetworkId?: string; + SiteId: string | undefined; +} +export namespace DeleteSiteRequest { /** - *

                        The description of the site.

                        + * @internal */ - Description?: string; + export const filterSensitiveLog = (obj: DeleteSiteRequest): any => ({ + ...obj, + }); +} +export interface DeleteSiteResponse { /** - *

                        The location of the site.

                        + *

                        Information about the site.

                        */ - Location?: Location; + Site?: Site; +} +export namespace DeleteSiteResponse { /** - *

                        The date and time that the site was created.

                        + * @internal */ - CreatedAt?: Date; + export const filterSensitiveLog = (obj: DeleteSiteResponse): any => ({ + ...obj, + ...(obj.Site && { Site: Site.filterSensitiveLog(obj.Site) }), + }); +} +export interface DeregisterTransitGatewayRequest { /** - *

                        The state of the site.

                        + *

                        The ID of the global network.

                        */ - State?: SiteState | string; + GlobalNetworkId: string | undefined; /** - *

                        The tags for the site.

                        + *

                        The Amazon Resource Name (ARN) of the transit gateway.

                        */ - Tags?: Tag[]; + TransitGatewayArn: string | undefined; } -export namespace Site { +export namespace DeregisterTransitGatewayRequest { /** * @internal */ - export const filterSensitiveLog = (obj: Site): any => ({ + export const filterSensitiveLog = (obj: DeregisterTransitGatewayRequest): any => ({ ...obj, - ...(obj.Location && { Location: SENSITIVE_STRING }), }); } -export interface CreateSiteResponse { +export enum TransitGatewayRegistrationState { + available = "AVAILABLE", + deleted = "DELETED", + deleting = "DELETING", + failed = "FAILED", + pending = "PENDING", +} + +/** + *

                        Describes the status of a transit gateway registration.

                        + */ +export interface TransitGatewayRegistrationStateReason { /** - *

                        Information about the site.

                        + *

                        The code for the state reason.

                        */ - Site?: Site; + Code?: TransitGatewayRegistrationState | string; + + /** + *

                        The message for the state reason.

                        + */ + Message?: string; } -export namespace CreateSiteResponse { +export namespace TransitGatewayRegistrationStateReason { /** * @internal */ - export const filterSensitiveLog = (obj: CreateSiteResponse): any => ({ + export const filterSensitiveLog = (obj: TransitGatewayRegistrationStateReason): any => ({ ...obj, - ...(obj.Site && { Site: Site.filterSensitiveLog(obj.Site) }), }); } -export interface DeleteConnectionRequest { +/** + *

                        Describes the registration of a transit gateway to a global network.

                        + */ +export interface TransitGatewayRegistration { /** *

                        The ID of the global network.

                        */ - GlobalNetworkId: string | undefined; + GlobalNetworkId?: string; /** - *

                        The ID of the connection.

                        + *

                        The Amazon Resource Name (ARN) of the transit gateway.

                        */ - ConnectionId: string | undefined; + TransitGatewayArn?: string; + + /** + *

                        The state of the transit gateway registration.

                        + */ + State?: TransitGatewayRegistrationStateReason; } -export namespace DeleteConnectionRequest { +export namespace TransitGatewayRegistration { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteConnectionRequest): any => ({ + export const filterSensitiveLog = (obj: TransitGatewayRegistration): any => ({ ...obj, }); } -export interface DeleteConnectionResponse { +export interface DeregisterTransitGatewayResponse { /** - *

                        Information about the connection.

                        + *

                        The transit gateway registration information.

                        */ - Connection?: Connection; + TransitGatewayRegistration?: TransitGatewayRegistration; } -export namespace DeleteConnectionResponse { +export namespace DeregisterTransitGatewayResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteConnectionResponse): any => ({ + export const filterSensitiveLog = (obj: DeregisterTransitGatewayResponse): any => ({ ...obj, }); } -export interface DeleteDeviceRequest { +export interface DescribeGlobalNetworksRequest { /** - *

                        The ID of the global network.

                        + *

                        The IDs of one or more global networks. The maximum is 10.

                        */ - GlobalNetworkId: string | undefined; + GlobalNetworkIds?: string[]; /** - *

                        The ID of the device.

                        + *

                        The maximum number of results to return.

                        */ - DeviceId: string | undefined; + MaxResults?: number; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; } -export namespace DeleteDeviceRequest { +export namespace DescribeGlobalNetworksRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteDeviceRequest): any => ({ + export const filterSensitiveLog = (obj: DescribeGlobalNetworksRequest): any => ({ ...obj, }); } -export interface DeleteDeviceResponse { +export interface DescribeGlobalNetworksResponse { /** - *

                        Information about the device.

                        + *

                        Information about the global networks.

                        */ - Device?: Device; + GlobalNetworks?: GlobalNetwork[]; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; } -export namespace DeleteDeviceResponse { +export namespace DescribeGlobalNetworksResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteDeviceResponse): any => ({ + export const filterSensitiveLog = (obj: DescribeGlobalNetworksResponse): any => ({ ...obj, - ...(obj.Device && { Device: Device.filterSensitiveLog(obj.Device) }), }); } -export interface DeleteGlobalNetworkRequest { +export interface DisassociateConnectPeerRequest { /** *

                        The ID of the global network.

                        */ GlobalNetworkId: string | undefined; + + /** + *

                        The ID of the Connect peer to disassociate from a device.

                        + */ + ConnectPeerId: string | undefined; } -export namespace DeleteGlobalNetworkRequest { +export namespace DisassociateConnectPeerRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteGlobalNetworkRequest): any => ({ + export const filterSensitiveLog = (obj: DisassociateConnectPeerRequest): any => ({ ...obj, }); } -export interface DeleteGlobalNetworkResponse { +export interface DisassociateConnectPeerResponse { /** - *

                        Information about the global network.

                        + *

                        Describes the Connect peer association.

                        */ - GlobalNetwork?: GlobalNetwork; + ConnectPeerAssociation?: ConnectPeerAssociation; } -export namespace DeleteGlobalNetworkResponse { +export namespace DisassociateConnectPeerResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteGlobalNetworkResponse): any => ({ + export const filterSensitiveLog = (obj: DisassociateConnectPeerResponse): any => ({ ...obj, }); } -export interface DeleteLinkRequest { +export interface DisassociateCustomerGatewayRequest { /** *

                        The ID of the global network.

                        */ GlobalNetworkId: string | undefined; /** - *

                        The ID of the link.

                        + *

                        The Amazon Resource Name (ARN) of the customer gateway.

                        */ - LinkId: string | undefined; + CustomerGatewayArn: string | undefined; } -export namespace DeleteLinkRequest { +export namespace DisassociateCustomerGatewayRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteLinkRequest): any => ({ + export const filterSensitiveLog = (obj: DisassociateCustomerGatewayRequest): any => ({ ...obj, }); } -export interface DeleteLinkResponse { +export interface DisassociateCustomerGatewayResponse { /** - *

                        Information about the link.

                        + *

                        Information about the customer gateway association.

                        */ - Link?: Link; + CustomerGatewayAssociation?: CustomerGatewayAssociation; } -export namespace DeleteLinkResponse { +export namespace DisassociateCustomerGatewayResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteLinkResponse): any => ({ + export const filterSensitiveLog = (obj: DisassociateCustomerGatewayResponse): any => ({ ...obj, }); } -export interface DeleteSiteRequest { +export interface DisassociateLinkRequest { /** *

                        The ID of the global network.

                        */ GlobalNetworkId: string | undefined; /** - *

                        The ID of the site.

                        + *

                        The ID of the device.

                        */ - SiteId: string | undefined; + DeviceId: string | undefined; + + /** + *

                        The ID of the link.

                        + */ + LinkId: string | undefined; } -export namespace DeleteSiteRequest { +export namespace DisassociateLinkRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteSiteRequest): any => ({ + export const filterSensitiveLog = (obj: DisassociateLinkRequest): any => ({ ...obj, }); } -export interface DeleteSiteResponse { +export interface DisassociateLinkResponse { /** - *

                        Information about the site.

                        + *

                        Information about the link association.

                        */ - Site?: Site; + LinkAssociation?: LinkAssociation; } -export namespace DeleteSiteResponse { +export namespace DisassociateLinkResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DeleteSiteResponse): any => ({ + export const filterSensitiveLog = (obj: DisassociateLinkResponse): any => ({ ...obj, - ...(obj.Site && { Site: Site.filterSensitiveLog(obj.Site) }), }); } -export interface DeregisterTransitGatewayRequest { +export interface DisassociateTransitGatewayConnectPeerRequest { /** *

                        The ID of the global network.

                        */ GlobalNetworkId: string | undefined; /** - *

                        The Amazon Resource Name (ARN) of the transit gateway.

                        + *

                        The Amazon Resource Name (ARN) of the transit gateway Connect peer.

                        */ - TransitGatewayArn: string | undefined; + TransitGatewayConnectPeerArn: string | undefined; } -export namespace DeregisterTransitGatewayRequest { +export namespace DisassociateTransitGatewayConnectPeerRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DeregisterTransitGatewayRequest): any => ({ + export const filterSensitiveLog = (obj: DisassociateTransitGatewayConnectPeerRequest): any => ({ ...obj, }); } -export enum TransitGatewayRegistrationState { - available = "AVAILABLE", - deleted = "DELETED", - deleting = "DELETING", - failed = "FAILED", - pending = "PENDING", +export interface DisassociateTransitGatewayConnectPeerResponse { + /** + *

                        The transit gateway Connect peer association.

                        + */ + TransitGatewayConnectPeerAssociation?: TransitGatewayConnectPeerAssociation; } -/** - *

                        Describes the status of a transit gateway registration.

                        - */ -export interface TransitGatewayRegistrationStateReason { +export namespace DisassociateTransitGatewayConnectPeerResponse { /** - *

                        The code for the state reason.

                        + * @internal */ - Code?: TransitGatewayRegistrationState | string; + export const filterSensitiveLog = (obj: DisassociateTransitGatewayConnectPeerResponse): any => ({ + ...obj, + }); +} +export interface ExecuteCoreNetworkChangeSetRequest { /** - *

                        The message for the state reason.

                        + *

                        The ID of a core network.

                        */ - Message?: string; + CoreNetworkId: string | undefined; + + /** + *

                        The ID of the policy version.

                        + */ + PolicyVersionId: number | undefined; } -export namespace TransitGatewayRegistrationStateReason { +export namespace ExecuteCoreNetworkChangeSetRequest { /** * @internal */ - export const filterSensitiveLog = (obj: TransitGatewayRegistrationStateReason): any => ({ + export const filterSensitiveLog = (obj: ExecuteCoreNetworkChangeSetRequest): any => ({ ...obj, }); } -/** - *

                        Describes the registration of a transit gateway to a global network.

                        - */ -export interface TransitGatewayRegistration { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId?: string; +export interface ExecuteCoreNetworkChangeSetResponse {} +export namespace ExecuteCoreNetworkChangeSetResponse { /** - *

                        The Amazon Resource Name (ARN) of the transit gateway.

                        + * @internal */ - TransitGatewayArn?: string; + export const filterSensitiveLog = (obj: ExecuteCoreNetworkChangeSetResponse): any => ({ + ...obj, + }); +} +export interface GetConnectAttachmentRequest { /** - *

                        The state of the transit gateway registration.

                        + *

                        The ID of the attachment.

                        */ - State?: TransitGatewayRegistrationStateReason; + AttachmentId: string | undefined; } -export namespace TransitGatewayRegistration { +export namespace GetConnectAttachmentRequest { /** * @internal */ - export const filterSensitiveLog = (obj: TransitGatewayRegistration): any => ({ + export const filterSensitiveLog = (obj: GetConnectAttachmentRequest): any => ({ ...obj, }); } -export interface DeregisterTransitGatewayResponse { +export interface GetConnectAttachmentResponse { /** - *

                        The transit gateway registration information.

                        + *

                        Details about the Connect attachment.

                        */ - TransitGatewayRegistration?: TransitGatewayRegistration; + ConnectAttachment?: ConnectAttachment; } -export namespace DeregisterTransitGatewayResponse { +export namespace GetConnectAttachmentResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DeregisterTransitGatewayResponse): any => ({ + export const filterSensitiveLog = (obj: GetConnectAttachmentResponse): any => ({ ...obj, }); } -export interface DescribeGlobalNetworksRequest { +export interface GetConnectionsRequest { /** - *

                        The IDs of one or more global networks. The maximum is 10.

                        + *

                        The ID of the global network.

                        */ - GlobalNetworkIds?: string[]; + GlobalNetworkId: string | undefined; + + /** + *

                        One or more connection IDs.

                        + */ + ConnectionIds?: string[]; + + /** + *

                        The ID of the device.

                        + */ + DeviceId?: string; /** *

                        The maximum number of results to return.

                        @@ -1598,167 +3359,162 @@ export interface DescribeGlobalNetworksRequest { NextToken?: string; } -export namespace DescribeGlobalNetworksRequest { +export namespace GetConnectionsRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DescribeGlobalNetworksRequest): any => ({ + export const filterSensitiveLog = (obj: GetConnectionsRequest): any => ({ ...obj, }); } -export interface DescribeGlobalNetworksResponse { +export interface GetConnectionsResponse { /** - *

                        Information about the global networks.

                        + *

                        Information about the connections.

                        */ - GlobalNetworks?: GlobalNetwork[]; + Connections?: Connection[]; /** - *

                        The token for the next page of results.

                        + *

                        The token to use for the next page of results.

                        */ NextToken?: string; } -export namespace DescribeGlobalNetworksResponse { +export namespace GetConnectionsResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DescribeGlobalNetworksResponse): any => ({ + export const filterSensitiveLog = (obj: GetConnectionsResponse): any => ({ ...obj, }); } -export interface DisassociateCustomerGatewayRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - +export interface GetConnectPeerRequest { /** - *

                        The Amazon Resource Name (ARN) of the customer gateway.

                        + *

                        The ID of the Connect peer.

                        */ - CustomerGatewayArn: string | undefined; + ConnectPeerId: string | undefined; } -export namespace DisassociateCustomerGatewayRequest { +export namespace GetConnectPeerRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DisassociateCustomerGatewayRequest): any => ({ + export const filterSensitiveLog = (obj: GetConnectPeerRequest): any => ({ ...obj, }); } -export interface DisassociateCustomerGatewayResponse { +export interface GetConnectPeerResponse { /** - *

                        Information about the customer gateway association.

                        + *

                        Returns information about a core network Connect peer.

                        */ - CustomerGatewayAssociation?: CustomerGatewayAssociation; + ConnectPeer?: ConnectPeer; } -export namespace DisassociateCustomerGatewayResponse { +export namespace GetConnectPeerResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DisassociateCustomerGatewayResponse): any => ({ + export const filterSensitiveLog = (obj: GetConnectPeerResponse): any => ({ ...obj, }); } -export interface DisassociateLinkRequest { +export interface GetConnectPeerAssociationsRequest { /** *

                        The ID of the global network.

                        */ GlobalNetworkId: string | undefined; /** - *

                        The ID of the device.

                        + *

                        The IDs of the Connect peers.

                        */ - DeviceId: string | undefined; + ConnectPeerIds?: string[]; /** - *

                        The ID of the link.

                        + *

                        The maximum number of results to return.

                        */ - LinkId: string | undefined; + MaxResults?: number; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; } -export namespace DisassociateLinkRequest { +export namespace GetConnectPeerAssociationsRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DisassociateLinkRequest): any => ({ + export const filterSensitiveLog = (obj: GetConnectPeerAssociationsRequest): any => ({ ...obj, }); } -export interface DisassociateLinkResponse { +export interface GetConnectPeerAssociationsResponse { /** - *

                        Information about the link association.

                        + *

                        Displays a list of Connect peer associations.

                        */ - LinkAssociation?: LinkAssociation; + ConnectPeerAssociations?: ConnectPeerAssociation[]; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; } -export namespace DisassociateLinkResponse { +export namespace GetConnectPeerAssociationsResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DisassociateLinkResponse): any => ({ + export const filterSensitiveLog = (obj: GetConnectPeerAssociationsResponse): any => ({ ...obj, }); } -export interface DisassociateTransitGatewayConnectPeerRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - +export interface GetCoreNetworkRequest { /** - *

                        The Amazon Resource Name (ARN) of the transit gateway Connect peer.

                        + *

                        The ID of a core network.

                        */ - TransitGatewayConnectPeerArn: string | undefined; + CoreNetworkId: string | undefined; } -export namespace DisassociateTransitGatewayConnectPeerRequest { +export namespace GetCoreNetworkRequest { /** * @internal */ - export const filterSensitiveLog = (obj: DisassociateTransitGatewayConnectPeerRequest): any => ({ + export const filterSensitiveLog = (obj: GetCoreNetworkRequest): any => ({ ...obj, }); } -export interface DisassociateTransitGatewayConnectPeerResponse { +export interface GetCoreNetworkResponse { /** - *

                        The transit gateway Connect peer association.

                        + *

                        Details about a core network.

                        */ - TransitGatewayConnectPeerAssociation?: TransitGatewayConnectPeerAssociation; + CoreNetwork?: CoreNetwork; } -export namespace DisassociateTransitGatewayConnectPeerResponse { +export namespace GetCoreNetworkResponse { /** * @internal */ - export const filterSensitiveLog = (obj: DisassociateTransitGatewayConnectPeerResponse): any => ({ + export const filterSensitiveLog = (obj: GetCoreNetworkResponse): any => ({ ...obj, }); } -export interface GetConnectionsRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - +export interface GetCoreNetworkChangeSetRequest { /** - *

                        One or more connection IDs.

                        + *

                        The ID of a core network.

                        */ - ConnectionIds?: string[]; + CoreNetworkId: string | undefined; /** - *

                        The ID of the device.

                        + *

                        The ID of the policy version.

                        */ - DeviceId?: string; + PolicyVersionId: number | undefined; /** *

                        The maximum number of results to return.

                        @@ -1771,32 +3527,74 @@ export interface GetConnectionsRequest { NextToken?: string; } -export namespace GetConnectionsRequest { +export namespace GetCoreNetworkChangeSetRequest { /** * @internal */ - export const filterSensitiveLog = (obj: GetConnectionsRequest): any => ({ + export const filterSensitiveLog = (obj: GetCoreNetworkChangeSetRequest): any => ({ ...obj, }); } -export interface GetConnectionsResponse { +export interface GetCoreNetworkChangeSetResponse { /** - *

                        Information about the connections.

                        + *

                        Describes a core network changes.

                        */ - Connections?: Connection[]; + CoreNetworkChanges?: CoreNetworkChange[]; /** - *

                        The token to use for the next page of results.

                        + *

                        The token for the next page of results.

                        */ NextToken?: string; } -export namespace GetConnectionsResponse { +export namespace GetCoreNetworkChangeSetResponse { /** * @internal */ - export const filterSensitiveLog = (obj: GetConnectionsResponse): any => ({ + export const filterSensitiveLog = (obj: GetCoreNetworkChangeSetResponse): any => ({ + ...obj, + }); +} + +export interface GetCoreNetworkPolicyRequest { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId: string | undefined; + + /** + *

                        The ID of a core network policy version.

                        + */ + PolicyVersionId?: number; + + /** + *

                        The alias of a core network policy

                        + */ + Alias?: CoreNetworkPolicyAlias | string; +} + +export namespace GetCoreNetworkPolicyRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetCoreNetworkPolicyRequest): any => ({ + ...obj, + }); +} + +export interface GetCoreNetworkPolicyResponse { + /** + *

                        The details about a core network policy.

                        + */ + CoreNetworkPolicy?: CoreNetworkPolicy; +} + +export namespace GetCoreNetworkPolicyResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetCoreNetworkPolicyResponse): any => ({ ...obj, }); } @@ -2193,6 +3991,11 @@ export interface GetNetworkResourceRelationshipsRequest { */ GlobalNetworkId: string | undefined; + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + /** *

                        The ARN of the registered gateway.

                        */ @@ -2365,6 +4168,11 @@ export interface GetNetworkResourcesRequest { */ GlobalNetworkId: string | undefined; + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + /** *

                        The ARN of the gateway.

                        */ @@ -2495,6 +4303,11 @@ export interface NetworkResource { */ RegisteredGatewayArn?: string; + /** + *

                        a core network ID.

                        + */ + CoreNetworkId?: string; + /** *

                        The Amazon Web Services Region.

                        */ @@ -2655,6 +4468,11 @@ export interface RouteTableIdentifier { *

                        The ARN of the transit gateway route table.

                        */ TransitGatewayRouteTableArn?: string; + + /** + *

                        The segment edge in a core network.

                        + */ + CoreNetworkSegmentEdge?: CoreNetworkSegmentEdgeIdentifier; } export namespace RouteTableIdentifier { @@ -2741,11 +4559,26 @@ export namespace GetNetworkRoutesRequest { *

                        Describes the destination of a network route.

                        */ export interface NetworkRouteDestination { + /** + *

                        The ID of a core network attachment.

                        + */ + CoreNetworkAttachmentId?: string; + /** *

                        The ID of the transit gateway attachment.

                        */ TransitGatewayAttachmentId?: string; + /** + *

                        The name of the segment.

                        + */ + SegmentName?: string; + + /** + *

                        The edge location for the network destination.

                        + */ + EdgeLocation?: string; + /** *

                        The resource type.

                        */ @@ -2806,6 +4639,7 @@ export namespace NetworkRoute { } export enum RouteTableType { + CORE_NETWORK_SEGMENT = "CORE_NETWORK_SEGMENT", TRANSIT_GATEWAY_ROUTE_TABLE = "TRANSIT_GATEWAY_ROUTE_TABLE", } @@ -2815,6 +4649,11 @@ export interface GetNetworkRoutesResponse { */ RouteTableArn?: string; + /** + *

                        Describes a core network segment edge.

                        + */ + CoreNetworkSegmentEdge?: CoreNetworkSegmentEdgeIdentifier; + /** *

                        The route table type.

                        */ @@ -2846,6 +4685,11 @@ export interface GetNetworkTelemetryRequest { */ GlobalNetworkId: string | undefined; + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + /** *

                        The ARN of the gateway.

                        */ @@ -2976,6 +4820,11 @@ export interface NetworkTelemetry { */ RegisteredGatewayArn?: string; + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId?: string; + /** *

                        The Amazon Web Services Region.

                        */ @@ -3037,7 +4886,39 @@ export namespace GetNetworkTelemetryResponse { /** * @internal */ - export const filterSensitiveLog = (obj: GetNetworkTelemetryResponse): any => ({ + export const filterSensitiveLog = (obj: GetNetworkTelemetryResponse): any => ({ + ...obj, + }); +} + +export interface GetResourcePolicyRequest { + /** + *

                        The ARN of the resource.

                        + */ + ResourceArn: string | undefined; +} + +export namespace GetResourcePolicyRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetResourcePolicyRequest): any => ({ + ...obj, + }); +} + +export interface GetResourcePolicyResponse { + /** + *

                        The resource policy document.

                        + */ + PolicyDocument?: __LazyJsonString | string; +} + +export namespace GetResourcePolicyResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetResourcePolicyResponse): any => ({ ...obj, }); } @@ -3297,87 +5178,371 @@ export interface RouteAnalysis { OwnerAccountId?: string; /** - *

                        The ID of the route analysis.

                        + *

                        The ID of the route analysis.

                        + */ + RouteAnalysisId?: string; + + /** + *

                        The time that the analysis started.

                        + */ + StartTimestamp?: Date; + + /** + *

                        The status of the route analysis.

                        + */ + Status?: RouteAnalysisStatus | string; + + /** + *

                        The source.

                        + */ + Source?: RouteAnalysisEndpointOptions; + + /** + *

                        The destination.

                        + */ + Destination?: RouteAnalysisEndpointOptions; + + /** + *

                        Indicates whether to analyze the return path. The return path is not analyzed if the forward path + * analysis does not succeed.

                        + */ + IncludeReturnPath?: boolean; + + /** + *

                        Indicates whether to include the location of middlebox appliances in the route analysis.

                        + */ + UseMiddleboxes?: boolean; + + /** + *

                        The forward path.

                        + */ + ForwardPath?: RouteAnalysisPath; + + /** + *

                        The return path.

                        + */ + ReturnPath?: RouteAnalysisPath; +} + +export namespace RouteAnalysis { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RouteAnalysis): any => ({ + ...obj, + }); +} + +export interface GetRouteAnalysisResponse { + /** + *

                        The route analysis.

                        + */ + RouteAnalysis?: RouteAnalysis; +} + +export namespace GetRouteAnalysisResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetRouteAnalysisResponse): any => ({ + ...obj, + }); +} + +export interface GetSitesRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        One or more site IDs. The maximum is 10.

                        + */ + SiteIds?: string[]; + + /** + *

                        The maximum number of results to return.

                        + */ + MaxResults?: number; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; +} + +export namespace GetSitesRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetSitesRequest): any => ({ + ...obj, + }); +} + +export interface GetSitesResponse { + /** + *

                        The sites.

                        + */ + Sites?: Site[]; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; +} + +export namespace GetSitesResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetSitesResponse): any => ({ + ...obj, + ...(obj.Sites && { Sites: obj.Sites.map((item) => Site.filterSensitiveLog(item)) }), + }); +} + +export interface GetSiteToSiteVpnAttachmentRequest { + /** + *

                        The ID of the attachment.

                        + */ + AttachmentId: string | undefined; +} + +export namespace GetSiteToSiteVpnAttachmentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetSiteToSiteVpnAttachmentRequest): any => ({ + ...obj, + }); +} + +export interface GetSiteToSiteVpnAttachmentResponse { + /** + *

                        Describes the site-to-site attachment.

                        + */ + SiteToSiteVpnAttachment?: SiteToSiteVpnAttachment; +} + +export namespace GetSiteToSiteVpnAttachmentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetSiteToSiteVpnAttachmentResponse): any => ({ + ...obj, + }); +} + +export interface GetTransitGatewayConnectPeerAssociationsRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        One or more transit gateway Connect peer Amazon Resource Names (ARNs).

                        + */ + TransitGatewayConnectPeerArns?: string[]; + + /** + *

                        The maximum number of results to return.

                        + */ + MaxResults?: number; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; +} + +export namespace GetTransitGatewayConnectPeerAssociationsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetTransitGatewayConnectPeerAssociationsRequest): any => ({ + ...obj, + }); +} + +export interface GetTransitGatewayConnectPeerAssociationsResponse { + /** + *

                        Information about the transit gateway Connect peer associations.

                        + */ + TransitGatewayConnectPeerAssociations?: TransitGatewayConnectPeerAssociation[]; + + /** + *

                        The token to use for the next page of results.

                        + */ + NextToken?: string; +} + +export namespace GetTransitGatewayConnectPeerAssociationsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetTransitGatewayConnectPeerAssociationsResponse): any => ({ + ...obj, + }); +} + +export interface GetTransitGatewayRegistrationsRequest { + /** + *

                        The ID of the global network.

                        + */ + GlobalNetworkId: string | undefined; + + /** + *

                        The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum is + * 10.

                        + */ + TransitGatewayArns?: string[]; + + /** + *

                        The maximum number of results to return.

                        + */ + MaxResults?: number; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; +} + +export namespace GetTransitGatewayRegistrationsRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetTransitGatewayRegistrationsRequest): any => ({ + ...obj, + }); +} + +export interface GetTransitGatewayRegistrationsResponse { + /** + *

                        The transit gateway registrations.

                        + */ + TransitGatewayRegistrations?: TransitGatewayRegistration[]; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; +} + +export namespace GetTransitGatewayRegistrationsResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: GetTransitGatewayRegistrationsResponse): any => ({ + ...obj, + }); +} + +export interface GetVpcAttachmentRequest { + /** + *

                        The ID of the attachment.

                        + */ + AttachmentId: string | undefined; +} + +export namespace GetVpcAttachmentRequest { + /** + * @internal */ - RouteAnalysisId?: string; + export const filterSensitiveLog = (obj: GetVpcAttachmentRequest): any => ({ + ...obj, + }); +} +export interface GetVpcAttachmentResponse { /** - *

                        The time that the analysis started.

                        + *

                        Returns details about a VPC attachment.

                        */ - StartTimestamp?: Date; + VpcAttachment?: VpcAttachment; +} +export namespace GetVpcAttachmentResponse { /** - *

                        The status of the route analysis.

                        + * @internal */ - Status?: RouteAnalysisStatus | string; + export const filterSensitiveLog = (obj: GetVpcAttachmentResponse): any => ({ + ...obj, + }); +} +export interface ListAttachmentsRequest { /** - *

                        The source.

                        + *

                        The ID of a core network.

                        */ - Source?: RouteAnalysisEndpointOptions; + CoreNetworkId?: string; /** - *

                        The destination.

                        + *

                        The type of attachment.

                        */ - Destination?: RouteAnalysisEndpointOptions; + AttachmentType?: AttachmentType | string; /** - *

                        Indicates whether to analyze the return path. The return path is not analyzed if the forward path - * analysis does not succeed.

                        + *

                        The Region where the edge is located.

                        */ - IncludeReturnPath?: boolean; + EdgeLocation?: string; /** - *

                        Indicates whether to include the location of middlebox appliances in the route analysis.

                        + *

                        The state of the attachment.

                        */ - UseMiddleboxes?: boolean; + State?: AttachmentState | string; /** - *

                        The forward path.

                        + *

                        The maximum number of results to return.

                        */ - ForwardPath?: RouteAnalysisPath; + MaxResults?: number; /** - *

                        The return path.

                        + *

                        The token for the next page of results.

                        */ - ReturnPath?: RouteAnalysisPath; + NextToken?: string; } -export namespace RouteAnalysis { +export namespace ListAttachmentsRequest { /** * @internal */ - export const filterSensitiveLog = (obj: RouteAnalysis): any => ({ + export const filterSensitiveLog = (obj: ListAttachmentsRequest): any => ({ ...obj, }); } -export interface GetRouteAnalysisResponse { +export interface ListAttachmentsResponse { /** - *

                        The route analysis.

                        + *

                        Describes the list of attachments.

                        */ - RouteAnalysis?: RouteAnalysis; + Attachments?: Attachment[]; + + /** + *

                        The token for the next page of results.

                        + */ + NextToken?: string; } -export namespace GetRouteAnalysisResponse { +export namespace ListAttachmentsResponse { /** * @internal */ - export const filterSensitiveLog = (obj: GetRouteAnalysisResponse): any => ({ + export const filterSensitiveLog = (obj: ListAttachmentsResponse): any => ({ ...obj, }); } -export interface GetSitesRequest { +export interface ListConnectPeersRequest { /** - *

                        The ID of the global network.

                        + *

                        The ID of a core network.

                        */ - GlobalNetworkId: string | undefined; + CoreNetworkId?: string; /** - *

                        One or more site IDs. The maximum is 10.

                        + *

                        The ID of the attachment.

                        */ - SiteIds?: string[]; + ConnectAttachmentId?: string; /** *

                        The maximum number of results to return.

                        @@ -3390,20 +5555,20 @@ export interface GetSitesRequest { NextToken?: string; } -export namespace GetSitesRequest { +export namespace ListConnectPeersRequest { /** * @internal */ - export const filterSensitiveLog = (obj: GetSitesRequest): any => ({ + export const filterSensitiveLog = (obj: ListConnectPeersRequest): any => ({ ...obj, }); } -export interface GetSitesResponse { +export interface ListConnectPeersResponse { /** - *

                        The sites.

                        + *

                        Describes the Connect peers.

                        */ - Sites?: Site[]; + ConnectPeers?: ConnectPeerSummary[]; /** *

                        The token for the next page of results.

                        @@ -3411,26 +5576,20 @@ export interface GetSitesResponse { NextToken?: string; } -export namespace GetSitesResponse { +export namespace ListConnectPeersResponse { /** * @internal */ - export const filterSensitiveLog = (obj: GetSitesResponse): any => ({ + export const filterSensitiveLog = (obj: ListConnectPeersResponse): any => ({ ...obj, - ...(obj.Sites && { Sites: obj.Sites.map((item) => Site.filterSensitiveLog(item)) }), }); } -export interface GetTransitGatewayConnectPeerAssociationsRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - +export interface ListCoreNetworkPolicyVersionsRequest { /** - *

                        One or more transit gateway Connect peer Amazon Resource Names (ARNs).

                        + *

                        The ID of a core network.

                        */ - TransitGatewayConnectPeerArns?: string[]; + CoreNetworkId: string | undefined; /** *

                        The maximum number of results to return.

                        @@ -3443,48 +5602,37 @@ export interface GetTransitGatewayConnectPeerAssociationsRequest { NextToken?: string; } -export namespace GetTransitGatewayConnectPeerAssociationsRequest { +export namespace ListCoreNetworkPolicyVersionsRequest { /** * @internal */ - export const filterSensitiveLog = (obj: GetTransitGatewayConnectPeerAssociationsRequest): any => ({ + export const filterSensitiveLog = (obj: ListCoreNetworkPolicyVersionsRequest): any => ({ ...obj, }); } -export interface GetTransitGatewayConnectPeerAssociationsResponse { +export interface ListCoreNetworkPolicyVersionsResponse { /** - *

                        Information about the transit gateway Connect peer associations.

                        + *

                        Describes core network policy versions.

                        */ - TransitGatewayConnectPeerAssociations?: TransitGatewayConnectPeerAssociation[]; + CoreNetworkPolicyVersions?: CoreNetworkPolicyVersion[]; /** - *

                        The token to use for the next page of results.

                        + *

                        The token for the next page of results.

                        */ NextToken?: string; } -export namespace GetTransitGatewayConnectPeerAssociationsResponse { +export namespace ListCoreNetworkPolicyVersionsResponse { /** * @internal */ - export const filterSensitiveLog = (obj: GetTransitGatewayConnectPeerAssociationsResponse): any => ({ + export const filterSensitiveLog = (obj: ListCoreNetworkPolicyVersionsResponse): any => ({ ...obj, }); } -export interface GetTransitGatewayRegistrationsRequest { - /** - *

                        The ID of the global network.

                        - */ - GlobalNetworkId: string | undefined; - - /** - *

                        The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum is - * 10.

                        - */ - TransitGatewayArns?: string[]; - +export interface ListCoreNetworksRequest { /** *

                        The maximum number of results to return.

                        */ @@ -3496,20 +5644,20 @@ export interface GetTransitGatewayRegistrationsRequest { NextToken?: string; } -export namespace GetTransitGatewayRegistrationsRequest { +export namespace ListCoreNetworksRequest { /** * @internal */ - export const filterSensitiveLog = (obj: GetTransitGatewayRegistrationsRequest): any => ({ + export const filterSensitiveLog = (obj: ListCoreNetworksRequest): any => ({ ...obj, }); } -export interface GetTransitGatewayRegistrationsResponse { +export interface ListCoreNetworksResponse { /** - *

                        The transit gateway registrations.

                        + *

                        Describes the list of core networks.

                        */ - TransitGatewayRegistrations?: TransitGatewayRegistration[]; + CoreNetworks?: CoreNetworkSummary[]; /** *

                        The token for the next page of results.

                        @@ -3517,11 +5665,11 @@ export interface GetTransitGatewayRegistrationsResponse { NextToken?: string; } -export namespace GetTransitGatewayRegistrationsResponse { +export namespace ListCoreNetworksResponse { /** * @internal */ - export const filterSensitiveLog = (obj: GetTransitGatewayRegistrationsResponse): any => ({ + export const filterSensitiveLog = (obj: ListCoreNetworksResponse): any => ({ ...obj, }); } @@ -3558,6 +5706,90 @@ export namespace ListTagsForResourceResponse { }); } +export interface PutCoreNetworkPolicyRequest { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId: string | undefined; + + /** + *

                        The policy document.

                        + */ + PolicyDocument: __LazyJsonString | string | undefined; + + /** + *

                        a core network policy description.

                        + */ + Description?: string; + + /** + *

                        The ID of a core network policy.

                        + */ + LatestVersionId?: number; + + /** + *

                        The client token associated with the request.

                        + */ + ClientToken?: string; +} + +export namespace PutCoreNetworkPolicyRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutCoreNetworkPolicyRequest): any => ({ + ...obj, + }); +} + +export interface PutCoreNetworkPolicyResponse { + /** + *

                        Describes the changed core network policy.

                        + */ + CoreNetworkPolicy?: CoreNetworkPolicy; +} + +export namespace PutCoreNetworkPolicyResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutCoreNetworkPolicyResponse): any => ({ + ...obj, + }); +} + +export interface PutResourcePolicyRequest { + /** + *

                        The JSON resource policy document.

                        + */ + PolicyDocument: __LazyJsonString | string | undefined; + + /** + *

                        The ARN of the resource policy.

                        + */ + ResourceArn: string | undefined; +} + +export namespace PutResourcePolicyRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutResourcePolicyRequest): any => ({ + ...obj, + }); +} + +export interface PutResourcePolicyResponse {} + +export namespace PutResourcePolicyResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutResourcePolicyResponse): any => ({ + ...obj, + }); +} + export interface RegisterTransitGatewayRequest { /** *

                        The ID of the global network.

                        @@ -3595,6 +5827,75 @@ export namespace RegisterTransitGatewayResponse { }); } +export interface RejectAttachmentRequest { + /** + *

                        The ID of the attachment.

                        + */ + AttachmentId: string | undefined; +} + +export namespace RejectAttachmentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RejectAttachmentRequest): any => ({ + ...obj, + }); +} + +export interface RejectAttachmentResponse { + /** + *

                        Describes the rejected attachment request.

                        + */ + Attachment?: Attachment; +} + +export namespace RejectAttachmentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RejectAttachmentResponse): any => ({ + ...obj, + }); +} + +export interface RestoreCoreNetworkPolicyVersionRequest { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId: string | undefined; + + /** + *

                        The ID of the policy version to restore.

                        + */ + PolicyVersionId: number | undefined; +} + +export namespace RestoreCoreNetworkPolicyVersionRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RestoreCoreNetworkPolicyVersionRequest): any => ({ + ...obj, + }); +} + +export interface RestoreCoreNetworkPolicyVersionResponse { + /** + *

                        Describes the restored core network policy.

                        + */ + CoreNetworkPolicy?: CoreNetworkPolicy; +} + +export namespace RestoreCoreNetworkPolicyVersionResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: RestoreCoreNetworkPolicyVersionResponse): any => ({ + ...obj, + }); +} + /** *

                        Describes a source or a destination.

                        */ @@ -3789,6 +6090,43 @@ export namespace UpdateConnectionResponse { }); } +export interface UpdateCoreNetworkRequest { + /** + *

                        The ID of a core network.

                        + */ + CoreNetworkId: string | undefined; + + /** + *

                        The description of the update.

                        + */ + Description?: string; +} + +export namespace UpdateCoreNetworkRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateCoreNetworkRequest): any => ({ + ...obj, + }); +} + +export interface UpdateCoreNetworkResponse { + /** + *

                        Returns information about a core network update.

                        + */ + CoreNetwork?: CoreNetwork; +} + +export namespace UpdateCoreNetworkResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateCoreNetworkResponse): any => ({ + ...obj, + }); +} + export interface UpdateDeviceRequest { /** *

                        The ID of the global network.

                        @@ -4080,3 +6418,50 @@ export namespace UpdateSiteResponse { ...(obj.Site && { Site: Site.filterSensitiveLog(obj.Site) }), }); } + +export interface UpdateVpcAttachmentRequest { + /** + *

                        The ID of the attachment.

                        + */ + AttachmentId: string | undefined; + + /** + *

                        Adds a subnet ARN to the VPC attachment.

                        + */ + AddSubnetArns?: string[]; + + /** + *

                        Removes a subnet ARN from the attachment.

                        + */ + RemoveSubnetArns?: string[]; + + /** + *

                        Additional options for updating the VPC attachment.

                        + */ + Options?: VpcOptions; +} + +export namespace UpdateVpcAttachmentRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateVpcAttachmentRequest): any => ({ + ...obj, + }); +} + +export interface UpdateVpcAttachmentResponse { + /** + *

                        Describes the updated VPC attachment.

                        + */ + VpcAttachment?: VpcAttachment; +} + +export namespace UpdateVpcAttachmentResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateVpcAttachmentResponse): any => ({ + ...obj, + }); +} diff --git a/clients/client-networkmanager/src/pagination/GetConnectPeerAssociationsPaginator.ts b/clients/client-networkmanager/src/pagination/GetConnectPeerAssociationsPaginator.ts new file mode 100644 index 000000000000..f90811f25748 --- /dev/null +++ b/clients/client-networkmanager/src/pagination/GetConnectPeerAssociationsPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + GetConnectPeerAssociationsCommand, + GetConnectPeerAssociationsCommandInput, + GetConnectPeerAssociationsCommandOutput, +} from "../commands/GetConnectPeerAssociationsCommand"; +import { NetworkManager } from "../NetworkManager"; +import { NetworkManagerClient } from "../NetworkManagerClient"; +import { NetworkManagerPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: NetworkManagerClient, + input: GetConnectPeerAssociationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetConnectPeerAssociationsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: NetworkManager, + input: GetConnectPeerAssociationsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getConnectPeerAssociations(input, ...args); +}; +export async function* paginateGetConnectPeerAssociations( + config: NetworkManagerPaginationConfiguration, + input: GetConnectPeerAssociationsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetConnectPeerAssociationsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof NetworkManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof NetworkManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected NetworkManager | NetworkManagerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-networkmanager/src/pagination/GetCoreNetworkChangeSetPaginator.ts b/clients/client-networkmanager/src/pagination/GetCoreNetworkChangeSetPaginator.ts new file mode 100644 index 000000000000..6e8e6cb985ae --- /dev/null +++ b/clients/client-networkmanager/src/pagination/GetCoreNetworkChangeSetPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + GetCoreNetworkChangeSetCommand, + GetCoreNetworkChangeSetCommandInput, + GetCoreNetworkChangeSetCommandOutput, +} from "../commands/GetCoreNetworkChangeSetCommand"; +import { NetworkManager } from "../NetworkManager"; +import { NetworkManagerClient } from "../NetworkManagerClient"; +import { NetworkManagerPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: NetworkManagerClient, + input: GetCoreNetworkChangeSetCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new GetCoreNetworkChangeSetCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: NetworkManager, + input: GetCoreNetworkChangeSetCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.getCoreNetworkChangeSet(input, ...args); +}; +export async function* paginateGetCoreNetworkChangeSet( + config: NetworkManagerPaginationConfiguration, + input: GetCoreNetworkChangeSetCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: GetCoreNetworkChangeSetCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof NetworkManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof NetworkManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected NetworkManager | NetworkManagerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-networkmanager/src/pagination/ListAttachmentsPaginator.ts b/clients/client-networkmanager/src/pagination/ListAttachmentsPaginator.ts new file mode 100644 index 000000000000..7206e83627c2 --- /dev/null +++ b/clients/client-networkmanager/src/pagination/ListAttachmentsPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + ListAttachmentsCommand, + ListAttachmentsCommandInput, + ListAttachmentsCommandOutput, +} from "../commands/ListAttachmentsCommand"; +import { NetworkManager } from "../NetworkManager"; +import { NetworkManagerClient } from "../NetworkManagerClient"; +import { NetworkManagerPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: NetworkManagerClient, + input: ListAttachmentsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAttachmentsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: NetworkManager, + input: ListAttachmentsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAttachments(input, ...args); +}; +export async function* paginateListAttachments( + config: NetworkManagerPaginationConfiguration, + input: ListAttachmentsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAttachmentsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof NetworkManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof NetworkManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected NetworkManager | NetworkManagerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-networkmanager/src/pagination/ListConnectPeersPaginator.ts b/clients/client-networkmanager/src/pagination/ListConnectPeersPaginator.ts new file mode 100644 index 000000000000..73ac6a198ed2 --- /dev/null +++ b/clients/client-networkmanager/src/pagination/ListConnectPeersPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + ListConnectPeersCommand, + ListConnectPeersCommandInput, + ListConnectPeersCommandOutput, +} from "../commands/ListConnectPeersCommand"; +import { NetworkManager } from "../NetworkManager"; +import { NetworkManagerClient } from "../NetworkManagerClient"; +import { NetworkManagerPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: NetworkManagerClient, + input: ListConnectPeersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListConnectPeersCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: NetworkManager, + input: ListConnectPeersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listConnectPeers(input, ...args); +}; +export async function* paginateListConnectPeers( + config: NetworkManagerPaginationConfiguration, + input: ListConnectPeersCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListConnectPeersCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof NetworkManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof NetworkManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected NetworkManager | NetworkManagerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-networkmanager/src/pagination/ListCoreNetworkPolicyVersionsPaginator.ts b/clients/client-networkmanager/src/pagination/ListCoreNetworkPolicyVersionsPaginator.ts new file mode 100644 index 000000000000..a142b5f853c6 --- /dev/null +++ b/clients/client-networkmanager/src/pagination/ListCoreNetworkPolicyVersionsPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + ListCoreNetworkPolicyVersionsCommand, + ListCoreNetworkPolicyVersionsCommandInput, + ListCoreNetworkPolicyVersionsCommandOutput, +} from "../commands/ListCoreNetworkPolicyVersionsCommand"; +import { NetworkManager } from "../NetworkManager"; +import { NetworkManagerClient } from "../NetworkManagerClient"; +import { NetworkManagerPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: NetworkManagerClient, + input: ListCoreNetworkPolicyVersionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCoreNetworkPolicyVersionsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: NetworkManager, + input: ListCoreNetworkPolicyVersionsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCoreNetworkPolicyVersions(input, ...args); +}; +export async function* paginateListCoreNetworkPolicyVersions( + config: NetworkManagerPaginationConfiguration, + input: ListCoreNetworkPolicyVersionsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCoreNetworkPolicyVersionsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof NetworkManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof NetworkManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected NetworkManager | NetworkManagerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-networkmanager/src/pagination/ListCoreNetworksPaginator.ts b/clients/client-networkmanager/src/pagination/ListCoreNetworksPaginator.ts new file mode 100644 index 000000000000..56a87758636c --- /dev/null +++ b/clients/client-networkmanager/src/pagination/ListCoreNetworksPaginator.ts @@ -0,0 +1,59 @@ +import { Paginator } from "@aws-sdk/types"; + +import { + ListCoreNetworksCommand, + ListCoreNetworksCommandInput, + ListCoreNetworksCommandOutput, +} from "../commands/ListCoreNetworksCommand"; +import { NetworkManager } from "../NetworkManager"; +import { NetworkManagerClient } from "../NetworkManagerClient"; +import { NetworkManagerPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: NetworkManagerClient, + input: ListCoreNetworksCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCoreNetworksCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: NetworkManager, + input: ListCoreNetworksCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCoreNetworks(input, ...args); +}; +export async function* paginateListCoreNetworks( + config: NetworkManagerPaginationConfiguration, + input: ListCoreNetworksCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCoreNetworksCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof NetworkManager) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof NetworkManagerClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected NetworkManager | NetworkManagerClient"); + } + yield page; + token = page.NextToken; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-networkmanager/src/pagination/index.ts b/clients/client-networkmanager/src/pagination/index.ts index 7d8ddbdb58bf..e24608c8fe3b 100644 --- a/clients/client-networkmanager/src/pagination/index.ts +++ b/clients/client-networkmanager/src/pagination/index.ts @@ -1,14 +1,20 @@ export * from "./DescribeGlobalNetworksPaginator"; +export * from "./GetConnectPeerAssociationsPaginator"; export * from "./GetConnectionsPaginator"; +export * from "./GetCoreNetworkChangeSetPaginator"; export * from "./GetCustomerGatewayAssociationsPaginator"; export * from "./GetDevicesPaginator"; export * from "./GetLinkAssociationsPaginator"; export * from "./GetLinksPaginator"; export * from "./GetNetworkResourceCountsPaginator"; export * from "./GetNetworkResourceRelationshipsPaginator"; +export * from "./Interfaces"; export * from "./GetNetworkResourcesPaginator"; export * from "./GetNetworkTelemetryPaginator"; -export * from "./Interfaces"; export * from "./GetSitesPaginator"; export * from "./GetTransitGatewayConnectPeerAssociationsPaginator"; export * from "./GetTransitGatewayRegistrationsPaginator"; +export * from "./ListAttachmentsPaginator"; +export * from "./ListConnectPeersPaginator"; +export * from "./ListCoreNetworkPolicyVersionsPaginator"; +export * from "./ListCoreNetworksPaginator"; diff --git a/clients/client-networkmanager/src/protocols/Aws_restJson1.ts b/clients/client-networkmanager/src/protocols/Aws_restJson1.ts index 0158d9c07547..ffbbcc61ab1a 100644 --- a/clients/client-networkmanager/src/protocols/Aws_restJson1.ts +++ b/clients/client-networkmanager/src/protocols/Aws_restJson1.ts @@ -2,11 +2,13 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@a import { expectBoolean as __expectBoolean, expectInt32 as __expectInt32, + expectLong as __expectLong, expectNonNull as __expectNonNull, expectNumber as __expectNumber, expectObject as __expectObject, expectString as __expectString, extendedEncodeURIComponent as __extendedEncodeURIComponent, + LazyJsonString as __LazyJsonString, parseEpochTimestamp as __parseEpochTimestamp, strictParseInt32 as __strictParseInt32, } from "@aws-sdk/smithy-client"; @@ -17,7 +19,13 @@ import { SerdeContext as __SerdeContext, SmithyException as __SmithyException, } from "@aws-sdk/types"; +import { v4 as generateIdempotencyToken } from "uuid"; +import { AcceptAttachmentCommandInput, AcceptAttachmentCommandOutput } from "../commands/AcceptAttachmentCommand"; +import { + AssociateConnectPeerCommandInput, + AssociateConnectPeerCommandOutput, +} from "../commands/AssociateConnectPeerCommand"; import { AssociateCustomerGatewayCommandInput, AssociateCustomerGatewayCommandOutput, @@ -27,7 +35,13 @@ import { AssociateTransitGatewayConnectPeerCommandInput, AssociateTransitGatewayConnectPeerCommandOutput, } from "../commands/AssociateTransitGatewayConnectPeerCommand"; +import { + CreateConnectAttachmentCommandInput, + CreateConnectAttachmentCommandOutput, +} from "../commands/CreateConnectAttachmentCommand"; import { CreateConnectionCommandInput, CreateConnectionCommandOutput } from "../commands/CreateConnectionCommand"; +import { CreateConnectPeerCommandInput, CreateConnectPeerCommandOutput } from "../commands/CreateConnectPeerCommand"; +import { CreateCoreNetworkCommandInput, CreateCoreNetworkCommandOutput } from "../commands/CreateCoreNetworkCommand"; import { CreateDeviceCommandInput, CreateDeviceCommandOutput } from "../commands/CreateDeviceCommand"; import { CreateGlobalNetworkCommandInput, @@ -35,13 +49,32 @@ import { } from "../commands/CreateGlobalNetworkCommand"; import { CreateLinkCommandInput, CreateLinkCommandOutput } from "../commands/CreateLinkCommand"; import { CreateSiteCommandInput, CreateSiteCommandOutput } from "../commands/CreateSiteCommand"; +import { + CreateSiteToSiteVpnAttachmentCommandInput, + CreateSiteToSiteVpnAttachmentCommandOutput, +} from "../commands/CreateSiteToSiteVpnAttachmentCommand"; +import { + CreateVpcAttachmentCommandInput, + CreateVpcAttachmentCommandOutput, +} from "../commands/CreateVpcAttachmentCommand"; +import { DeleteAttachmentCommandInput, DeleteAttachmentCommandOutput } from "../commands/DeleteAttachmentCommand"; import { DeleteConnectionCommandInput, DeleteConnectionCommandOutput } from "../commands/DeleteConnectionCommand"; +import { DeleteConnectPeerCommandInput, DeleteConnectPeerCommandOutput } from "../commands/DeleteConnectPeerCommand"; +import { DeleteCoreNetworkCommandInput, DeleteCoreNetworkCommandOutput } from "../commands/DeleteCoreNetworkCommand"; +import { + DeleteCoreNetworkPolicyVersionCommandInput, + DeleteCoreNetworkPolicyVersionCommandOutput, +} from "../commands/DeleteCoreNetworkPolicyVersionCommand"; import { DeleteDeviceCommandInput, DeleteDeviceCommandOutput } from "../commands/DeleteDeviceCommand"; import { DeleteGlobalNetworkCommandInput, DeleteGlobalNetworkCommandOutput, } from "../commands/DeleteGlobalNetworkCommand"; import { DeleteLinkCommandInput, DeleteLinkCommandOutput } from "../commands/DeleteLinkCommand"; +import { + DeleteResourcePolicyCommandInput, + DeleteResourcePolicyCommandOutput, +} from "../commands/DeleteResourcePolicyCommand"; import { DeleteSiteCommandInput, DeleteSiteCommandOutput } from "../commands/DeleteSiteCommand"; import { DeregisterTransitGatewayCommandInput, @@ -51,6 +84,10 @@ import { DescribeGlobalNetworksCommandInput, DescribeGlobalNetworksCommandOutput, } from "../commands/DescribeGlobalNetworksCommand"; +import { + DisassociateConnectPeerCommandInput, + DisassociateConnectPeerCommandOutput, +} from "../commands/DisassociateConnectPeerCommand"; import { DisassociateCustomerGatewayCommandInput, DisassociateCustomerGatewayCommandOutput, @@ -60,7 +97,29 @@ import { DisassociateTransitGatewayConnectPeerCommandInput, DisassociateTransitGatewayConnectPeerCommandOutput, } from "../commands/DisassociateTransitGatewayConnectPeerCommand"; +import { + ExecuteCoreNetworkChangeSetCommandInput, + ExecuteCoreNetworkChangeSetCommandOutput, +} from "../commands/ExecuteCoreNetworkChangeSetCommand"; +import { + GetConnectAttachmentCommandInput, + GetConnectAttachmentCommandOutput, +} from "../commands/GetConnectAttachmentCommand"; import { GetConnectionsCommandInput, GetConnectionsCommandOutput } from "../commands/GetConnectionsCommand"; +import { + GetConnectPeerAssociationsCommandInput, + GetConnectPeerAssociationsCommandOutput, +} from "../commands/GetConnectPeerAssociationsCommand"; +import { GetConnectPeerCommandInput, GetConnectPeerCommandOutput } from "../commands/GetConnectPeerCommand"; +import { + GetCoreNetworkChangeSetCommandInput, + GetCoreNetworkChangeSetCommandOutput, +} from "../commands/GetCoreNetworkChangeSetCommand"; +import { GetCoreNetworkCommandInput, GetCoreNetworkCommandOutput } from "../commands/GetCoreNetworkCommand"; +import { + GetCoreNetworkPolicyCommandInput, + GetCoreNetworkPolicyCommandOutput, +} from "../commands/GetCoreNetworkPolicyCommand"; import { GetCustomerGatewayAssociationsCommandInput, GetCustomerGatewayAssociationsCommandOutput, @@ -88,8 +147,13 @@ import { GetNetworkTelemetryCommandInput, GetNetworkTelemetryCommandOutput, } from "../commands/GetNetworkTelemetryCommand"; +import { GetResourcePolicyCommandInput, GetResourcePolicyCommandOutput } from "../commands/GetResourcePolicyCommand"; import { GetRouteAnalysisCommandInput, GetRouteAnalysisCommandOutput } from "../commands/GetRouteAnalysisCommand"; import { GetSitesCommandInput, GetSitesCommandOutput } from "../commands/GetSitesCommand"; +import { + GetSiteToSiteVpnAttachmentCommandInput, + GetSiteToSiteVpnAttachmentCommandOutput, +} from "../commands/GetSiteToSiteVpnAttachmentCommand"; import { GetTransitGatewayConnectPeerAssociationsCommandInput, GetTransitGatewayConnectPeerAssociationsCommandOutput, @@ -98,18 +162,37 @@ import { GetTransitGatewayRegistrationsCommandInput, GetTransitGatewayRegistrationsCommandOutput, } from "../commands/GetTransitGatewayRegistrationsCommand"; +import { GetVpcAttachmentCommandInput, GetVpcAttachmentCommandOutput } from "../commands/GetVpcAttachmentCommand"; +import { ListAttachmentsCommandInput, ListAttachmentsCommandOutput } from "../commands/ListAttachmentsCommand"; +import { ListConnectPeersCommandInput, ListConnectPeersCommandOutput } from "../commands/ListConnectPeersCommand"; +import { + ListCoreNetworkPolicyVersionsCommandInput, + ListCoreNetworkPolicyVersionsCommandOutput, +} from "../commands/ListCoreNetworkPolicyVersionsCommand"; +import { ListCoreNetworksCommandInput, ListCoreNetworksCommandOutput } from "../commands/ListCoreNetworksCommand"; import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, } from "../commands/ListTagsForResourceCommand"; +import { + PutCoreNetworkPolicyCommandInput, + PutCoreNetworkPolicyCommandOutput, +} from "../commands/PutCoreNetworkPolicyCommand"; +import { PutResourcePolicyCommandInput, PutResourcePolicyCommandOutput } from "../commands/PutResourcePolicyCommand"; import { RegisterTransitGatewayCommandInput, RegisterTransitGatewayCommandOutput, } from "../commands/RegisterTransitGatewayCommand"; +import { RejectAttachmentCommandInput, RejectAttachmentCommandOutput } from "../commands/RejectAttachmentCommand"; +import { + RestoreCoreNetworkPolicyVersionCommandInput, + RestoreCoreNetworkPolicyVersionCommandOutput, +} from "../commands/RestoreCoreNetworkPolicyVersionCommand"; import { StartRouteAnalysisCommandInput, StartRouteAnalysisCommandOutput } from "../commands/StartRouteAnalysisCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateConnectionCommandInput, UpdateConnectionCommandOutput } from "../commands/UpdateConnectionCommand"; +import { UpdateCoreNetworkCommandInput, UpdateCoreNetworkCommandOutput } from "../commands/UpdateCoreNetworkCommand"; import { UpdateDeviceCommandInput, UpdateDeviceCommandOutput } from "../commands/UpdateDeviceCommand"; import { UpdateGlobalNetworkCommandInput, @@ -121,13 +204,37 @@ import { UpdateNetworkResourceMetadataCommandOutput, } from "../commands/UpdateNetworkResourceMetadataCommand"; import { UpdateSiteCommandInput, UpdateSiteCommandOutput } from "../commands/UpdateSiteCommand"; +import { + UpdateVpcAttachmentCommandInput, + UpdateVpcAttachmentCommandOutput, +} from "../commands/UpdateVpcAttachmentCommand"; import { AccessDeniedException, + Attachment, AWSLocation, Bandwidth, + BgpOptions, ConflictException, + ConnectAttachment, + ConnectAttachmentOptions, Connection, ConnectionHealth, + ConnectPeer, + ConnectPeerAssociation, + ConnectPeerBgpConfiguration, + ConnectPeerConfiguration, + ConnectPeerSummary, + CoreNetwork, + CoreNetworkChange, + CoreNetworkChangeValues, + CoreNetworkEdge, + CoreNetworkPolicy, + CoreNetworkPolicyError, + CoreNetworkPolicyException, + CoreNetworkPolicyVersion, + CoreNetworkSegment, + CoreNetworkSegmentEdgeIdentifier, + CoreNetworkSummary, CustomerGatewayAssociation, Device, GlobalNetwork, @@ -142,6 +249,7 @@ import { NetworkRouteDestination, NetworkTelemetry, PathComponent, + ProposedSegmentChange, Relationship, ResourceNotFoundException, RouteAnalysis, @@ -154,6 +262,7 @@ import { RouteType, ServiceQuotaExceededException, Site, + SiteToSiteVpnAttachment, Tag, ThrottlingException, TransitGatewayConnectPeerAssociation, @@ -161,8 +270,76 @@ import { TransitGatewayRegistrationStateReason, ValidationException, ValidationExceptionField, + VpcAttachment, + VpcOptions, } from "../models/models_0"; +export const serializeAws_restJson1AcceptAttachmentCommand = async ( + input: AcceptAttachmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/attachments/{AttachmentId}/accept"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: AttachmentId."); + } + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: AttachmentId."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1AssociateConnectPeerCommand = async ( + input: AssociateConnectPeerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/connect-peer-associations"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + let body: any; + body = JSON.stringify({ + ...(input.ConnectPeerId !== undefined && input.ConnectPeerId !== null && { ConnectPeerId: input.ConnectPeerId }), + ...(input.DeviceId !== undefined && input.DeviceId !== null && { DeviceId: input.DeviceId }), + ...(input.LinkId !== undefined && input.LinkId !== null && { LinkId: input.LinkId }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1AssociateCustomerGatewayCommand = async ( input: AssociateCustomerGatewayCommandInput, context: __SerdeContext @@ -277,6 +454,38 @@ export const serializeAws_restJson1AssociateTransitGatewayConnectPeerCommand = a }); }; +export const serializeAws_restJson1CreateConnectAttachmentCommand = async ( + input: CreateConnectAttachmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/connect-attachments"; + let body: any; + body = JSON.stringify({ + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.CoreNetworkId !== undefined && input.CoreNetworkId !== null && { CoreNetworkId: input.CoreNetworkId }), + ...(input.EdgeLocation !== undefined && input.EdgeLocation !== null && { EdgeLocation: input.EdgeLocation }), + ...(input.Options !== undefined && + input.Options !== null && { Options: serializeAws_restJson1ConnectAttachmentOptions(input.Options, context) }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + ...(input.TransportAttachmentId !== undefined && + input.TransportAttachmentId !== null && { TransportAttachmentId: input.TransportAttachmentId }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1CreateConnectionCommand = async ( input: CreateConnectionCommandInput, context: __SerdeContext @@ -320,6 +529,74 @@ export const serializeAws_restJson1CreateConnectionCommand = async ( }); }; +export const serializeAws_restJson1CreateConnectPeerCommand = async ( + input: CreateConnectPeerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/connect-peers"; + let body: any; + body = JSON.stringify({ + ...(input.BgpOptions !== undefined && + input.BgpOptions !== null && { BgpOptions: serializeAws_restJson1BgpOptions(input.BgpOptions, context) }), + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.ConnectAttachmentId !== undefined && + input.ConnectAttachmentId !== null && { ConnectAttachmentId: input.ConnectAttachmentId }), + ...(input.CoreNetworkAddress !== undefined && + input.CoreNetworkAddress !== null && { CoreNetworkAddress: input.CoreNetworkAddress }), + ...(input.InsideCidrBlocks !== undefined && + input.InsideCidrBlocks !== null && { + InsideCidrBlocks: serializeAws_restJson1ConstrainedStringList(input.InsideCidrBlocks, context), + }), + ...(input.PeerAddress !== undefined && input.PeerAddress !== null && { PeerAddress: input.PeerAddress }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateCoreNetworkCommand = async ( + input: CreateCoreNetworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/core-networks"; + let body: any; + body = JSON.stringify({ + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.GlobalNetworkId !== undefined && + input.GlobalNetworkId !== null && { GlobalNetworkId: input.GlobalNetworkId }), + ...(input.PolicyDocument !== undefined && + input.PolicyDocument !== null && { PolicyDocument: input.PolicyDocument }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1CreateDeviceCommand = async ( input: CreateDeviceCommandInput, context: __SerdeContext @@ -471,6 +748,97 @@ export const serializeAws_restJson1CreateSiteCommand = async ( }); }; +export const serializeAws_restJson1CreateSiteToSiteVpnAttachmentCommand = async ( + input: CreateSiteToSiteVpnAttachmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/site-to-site-vpn-attachments"; + let body: any; + body = JSON.stringify({ + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.CoreNetworkId !== undefined && input.CoreNetworkId !== null && { CoreNetworkId: input.CoreNetworkId }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + ...(input.VpnConnectionArn !== undefined && + input.VpnConnectionArn !== null && { VpnConnectionArn: input.VpnConnectionArn }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1CreateVpcAttachmentCommand = async ( + input: CreateVpcAttachmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/vpc-attachments"; + let body: any; + body = JSON.stringify({ + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.CoreNetworkId !== undefined && input.CoreNetworkId !== null && { CoreNetworkId: input.CoreNetworkId }), + ...(input.Options !== undefined && + input.Options !== null && { Options: serializeAws_restJson1VpcOptions(input.Options, context) }), + ...(input.SubnetArns !== undefined && + input.SubnetArns !== null && { SubnetArns: serializeAws_restJson1SubnetArnList(input.SubnetArns, context) }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + ...(input.VpcArn !== undefined && input.VpcArn !== null && { VpcArn: input.VpcArn }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteAttachmentCommand = async ( + input: DeleteAttachmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/attachments/{AttachmentId}"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: AttachmentId."); + } + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: AttachmentId."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1DeleteConnectionCommand = async ( input: DeleteConnectionCommandInput, context: __SerdeContext @@ -510,32 +878,22 @@ export const serializeAws_restJson1DeleteConnectionCommand = async ( }); }; -export const serializeAws_restJson1DeleteDeviceCommand = async ( - input: DeleteDeviceCommandInput, +export const serializeAws_restJson1DeleteConnectPeerCommand = async ( + input: DeleteConnectPeerCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/devices/{DeviceId}"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); - } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); - } - if (input.DeviceId !== undefined) { - const labelValue: string = input.DeviceId; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/connect-peers/{ConnectPeerId}"; + if (input.ConnectPeerId !== undefined) { + const labelValue: string = input.ConnectPeerId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: DeviceId."); + throw new Error("Empty value provided for input HTTP label: ConnectPeerId."); } - resolvedPath = resolvedPath.replace("{DeviceId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{ConnectPeerId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: DeviceId."); + throw new Error("No value provided for input HTTP label: ConnectPeerId."); } let body: any; return new __HttpRequest({ @@ -549,22 +907,22 @@ export const serializeAws_restJson1DeleteDeviceCommand = async ( }); }; -export const serializeAws_restJson1DeleteGlobalNetworkCommand = async ( - input: DeleteGlobalNetworkCommandInput, +export const serializeAws_restJson1DeleteCoreNetworkCommand = async ( + input: DeleteCoreNetworkCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/core-networks/{CoreNetworkId}"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } let body: any; return new __HttpRequest({ @@ -578,32 +936,32 @@ export const serializeAws_restJson1DeleteGlobalNetworkCommand = async ( }); }; -export const serializeAws_restJson1DeleteLinkCommand = async ( - input: DeleteLinkCommandInput, +export const serializeAws_restJson1DeleteCoreNetworkPolicyVersionCommand = async ( + input: DeleteCoreNetworkPolicyVersionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/links/{LinkId}"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + "/core-networks/{CoreNetworkId}/core-network-policy-versions/{PolicyVersionId}"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } - if (input.LinkId !== undefined) { - const labelValue: string = input.LinkId; + if (input.PolicyVersionId !== undefined) { + const labelValue: string = input.PolicyVersionId.toString(); if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: LinkId."); + throw new Error("Empty value provided for input HTTP label: PolicyVersionId."); } - resolvedPath = resolvedPath.replace("{LinkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{PolicyVersionId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: LinkId."); + throw new Error("No value provided for input HTTP label: PolicyVersionId."); } let body: any; return new __HttpRequest({ @@ -617,15 +975,15 @@ export const serializeAws_restJson1DeleteLinkCommand = async ( }); }; -export const serializeAws_restJson1DeleteSiteCommand = async ( - input: DeleteSiteCommandInput, +export const serializeAws_restJson1DeleteDeviceCommand = async ( + input: DeleteDeviceCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/sites/{SiteId}"; + "/global-networks/{GlobalNetworkId}/devices/{DeviceId}"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -635,12 +993,148 @@ export const serializeAws_restJson1DeleteSiteCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - if (input.SiteId !== undefined) { - const labelValue: string = input.SiteId; + if (input.DeviceId !== undefined) { + const labelValue: string = input.DeviceId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: SiteId."); + throw new Error("Empty value provided for input HTTP label: DeviceId."); } - resolvedPath = resolvedPath.replace("{SiteId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{DeviceId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DeviceId."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteGlobalNetworkCommand = async ( + input: DeleteGlobalNetworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteLinkCommand = async ( + input: DeleteLinkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/links/{LinkId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.LinkId !== undefined) { + const labelValue: string = input.LinkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: LinkId."); + } + resolvedPath = resolvedPath.replace("{LinkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: LinkId."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteResourcePolicyCommand = async ( + input: DeleteResourcePolicyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/resource-policy/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1DeleteSiteCommand = async ( + input: DeleteSiteCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/sites/{SiteId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.SiteId !== undefined) { + const labelValue: string = input.SiteId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: SiteId."); + } + resolvedPath = resolvedPath.replace("{SiteId}", __extendedEncodeURIComponent(labelValue)); } else { throw new Error("No value provided for input HTTP label: SiteId."); } @@ -722,6 +1216,45 @@ export const serializeAws_restJson1DescribeGlobalNetworksCommand = async ( }); }; +export const serializeAws_restJson1DisassociateConnectPeerCommand = async ( + input: DisassociateConnectPeerCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/connect-peer-associations/{ConnectPeerId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.ConnectPeerId !== undefined) { + const labelValue: string = input.ConnectPeerId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ConnectPeerId."); + } + resolvedPath = resolvedPath.replace("{ConnectPeerId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ConnectPeerId."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1DisassociateCustomerGatewayCommand = async ( input: DisassociateCustomerGatewayCommandInput, context: __SerdeContext @@ -835,70 +1368,62 @@ export const serializeAws_restJson1DisassociateTransitGatewayConnectPeerCommand }); }; -export const serializeAws_restJson1GetConnectionsCommand = async ( - input: GetConnectionsCommandInput, +export const serializeAws_restJson1ExecuteCoreNetworkChangeSetCommand = async ( + input: ExecuteCoreNetworkChangeSetCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/connections"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + "/core-networks/{CoreNetworkId}/core-network-change-sets/{PolicyVersionId}/execute"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: CoreNetworkId."); + } + if (input.PolicyVersionId !== undefined) { + const labelValue: string = input.PolicyVersionId.toString(); + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: PolicyVersionId."); + } + resolvedPath = resolvedPath.replace("{PolicyVersionId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: PolicyVersionId."); } - const query: any = { - ...(input.ConnectionIds !== undefined && { - connectionIds: (input.ConnectionIds || []).map((_entry) => _entry as any), - }), - ...(input.DeviceId !== undefined && { deviceId: input.DeviceId }), - ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), - ...(input.NextToken !== undefined && { nextToken: input.NextToken }), - }; let body: any; return new __HttpRequest({ protocol, hostname, port, - method: "GET", + method: "POST", headers, path: resolvedPath, - query, body, }); }; -export const serializeAws_restJson1GetCustomerGatewayAssociationsCommand = async ( - input: GetCustomerGatewayAssociationsCommandInput, +export const serializeAws_restJson1GetConnectAttachmentCommand = async ( + input: GetConnectAttachmentCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/customer-gateway-associations"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/connect-attachments/{AttachmentId}"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: AttachmentId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: AttachmentId."); } - const query: any = { - ...(input.CustomerGatewayArns !== undefined && { - customerGatewayArns: (input.CustomerGatewayArns || []).map((_entry) => _entry as any), - }), - ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), - ...(input.NextToken !== undefined && { nextToken: input.NextToken }), - }; let body: any; return new __HttpRequest({ protocol, @@ -907,20 +1432,19 @@ export const serializeAws_restJson1GetCustomerGatewayAssociationsCommand = async method: "GET", headers, path: resolvedPath, - query, body, }); }; -export const serializeAws_restJson1GetDevicesCommand = async ( - input: GetDevicesCommandInput, +export const serializeAws_restJson1GetConnectionsCommand = async ( + input: GetConnectionsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/devices"; + "/global-networks/{GlobalNetworkId}/connections"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -931,8 +1455,10 @@ export const serializeAws_restJson1GetDevicesCommand = async ( throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } const query: any = { - ...(input.DeviceIds !== undefined && { deviceIds: (input.DeviceIds || []).map((_entry) => _entry as any) }), - ...(input.SiteId !== undefined && { siteId: input.SiteId }), + ...(input.ConnectionIds !== undefined && { + connectionIds: (input.ConnectionIds || []).map((_entry) => _entry as any), + }), + ...(input.DeviceId !== undefined && { deviceId: input.DeviceId }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -949,30 +1475,23 @@ export const serializeAws_restJson1GetDevicesCommand = async ( }); }; -export const serializeAws_restJson1GetLinkAssociationsCommand = async ( - input: GetLinkAssociationsCommandInput, +export const serializeAws_restJson1GetConnectPeerCommand = async ( + input: GetConnectPeerCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/link-associations"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/connect-peers/{ConnectPeerId}"; + if (input.ConnectPeerId !== undefined) { + const labelValue: string = input.ConnectPeerId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: ConnectPeerId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{ConnectPeerId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: ConnectPeerId."); } - const query: any = { - ...(input.DeviceId !== undefined && { deviceId: input.DeviceId }), - ...(input.LinkId !== undefined && { linkId: input.LinkId }), - ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), - ...(input.NextToken !== undefined && { nextToken: input.NextToken }), - }; let body: any; return new __HttpRequest({ protocol, @@ -981,19 +1500,19 @@ export const serializeAws_restJson1GetLinkAssociationsCommand = async ( method: "GET", headers, path: resolvedPath, - query, body, }); }; -export const serializeAws_restJson1GetLinksCommand = async ( - input: GetLinksCommandInput, +export const serializeAws_restJson1GetConnectPeerAssociationsCommand = async ( + input: GetConnectPeerAssociationsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}/links"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/connect-peer-associations"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1004,10 +1523,9 @@ export const serializeAws_restJson1GetLinksCommand = async ( throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } const query: any = { - ...(input.LinkIds !== undefined && { linkIds: (input.LinkIds || []).map((_entry) => _entry as any) }), - ...(input.SiteId !== undefined && { siteId: input.SiteId }), - ...(input.Type !== undefined && { type: input.Type }), - ...(input.Provider !== undefined && { provider: input.Provider }), + ...(input.ConnectPeerIds !== undefined && { + connectPeerIds: (input.ConnectPeerIds || []).map((_entry) => _entry as any), + }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -1024,29 +1542,23 @@ export const serializeAws_restJson1GetLinksCommand = async ( }); }; -export const serializeAws_restJson1GetNetworkResourceCountsCommand = async ( - input: GetNetworkResourceCountsCommandInput, +export const serializeAws_restJson1GetCoreNetworkCommand = async ( + input: GetCoreNetworkCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/network-resource-count"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/core-networks/{CoreNetworkId}"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } - const query: any = { - ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), - ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), - ...(input.NextToken !== undefined && { nextToken: input.NextToken }), - }; let body: any; return new __HttpRequest({ protocol, @@ -1055,35 +1567,38 @@ export const serializeAws_restJson1GetNetworkResourceCountsCommand = async ( method: "GET", headers, path: resolvedPath, - query, body, }); }; -export const serializeAws_restJson1GetNetworkResourceRelationshipsCommand = async ( - input: GetNetworkResourceRelationshipsCommandInput, +export const serializeAws_restJson1GetCoreNetworkChangeSetCommand = async ( + input: GetCoreNetworkChangeSetCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/network-resource-relationships"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + "/core-networks/{CoreNetworkId}/core-network-change-sets/{PolicyVersionId}"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: CoreNetworkId."); + } + if (input.PolicyVersionId !== undefined) { + const labelValue: string = input.PolicyVersionId.toString(); + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: PolicyVersionId."); + } + resolvedPath = resolvedPath.replace("{PolicyVersionId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: PolicyVersionId."); } const query: any = { - ...(input.RegisteredGatewayArn !== undefined && { registeredGatewayArn: input.RegisteredGatewayArn }), - ...(input.AwsRegion !== undefined && { awsRegion: input.AwsRegion }), - ...(input.AccountId !== undefined && { accountId: input.AccountId }), - ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), - ...(input.ResourceArn !== undefined && { resourceArn: input.ResourceArn }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -1100,32 +1615,27 @@ export const serializeAws_restJson1GetNetworkResourceRelationshipsCommand = asyn }); }; -export const serializeAws_restJson1GetNetworkResourcesCommand = async ( - input: GetNetworkResourcesCommandInput, +export const serializeAws_restJson1GetCoreNetworkPolicyCommand = async ( + input: GetCoreNetworkPolicyCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/network-resources"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; + "/core-networks/{CoreNetworkId}/core-network-policy"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } const query: any = { - ...(input.RegisteredGatewayArn !== undefined && { registeredGatewayArn: input.RegisteredGatewayArn }), - ...(input.AwsRegion !== undefined && { awsRegion: input.AwsRegion }), - ...(input.AccountId !== undefined && { accountId: input.AccountId }), - ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), - ...(input.ResourceArn !== undefined && { resourceArn: input.ResourceArn }), - ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), - ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + ...(input.PolicyVersionId !== undefined && { policyVersionId: input.PolicyVersionId.toString() }), + ...(input.Alias !== undefined && { alias: input.Alias }), }; let body: any; return new __HttpRequest({ @@ -1140,17 +1650,15 @@ export const serializeAws_restJson1GetNetworkResourcesCommand = async ( }); }; -export const serializeAws_restJson1GetNetworkRoutesCommand = async ( - input: GetNetworkRoutesCommandInput, +export const serializeAws_restJson1GetCustomerGatewayAssociationsCommand = async ( + input: GetCustomerGatewayAssociationsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/network-routes"; + "/global-networks/{GlobalNetworkId}/customer-gateway-associations"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1160,61 +1668,35 @@ export const serializeAws_restJson1GetNetworkRoutesCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } + const query: any = { + ...(input.CustomerGatewayArns !== undefined && { + customerGatewayArns: (input.CustomerGatewayArns || []).map((_entry) => _entry as any), + }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; - body = JSON.stringify({ - ...(input.DestinationFilters !== undefined && - input.DestinationFilters !== null && { - DestinationFilters: serializeAws_restJson1FilterMap(input.DestinationFilters, context), - }), - ...(input.ExactCidrMatches !== undefined && - input.ExactCidrMatches !== null && { - ExactCidrMatches: serializeAws_restJson1StringList(input.ExactCidrMatches, context), - }), - ...(input.LongestPrefixMatches !== undefined && - input.LongestPrefixMatches !== null && { - LongestPrefixMatches: serializeAws_restJson1StringList(input.LongestPrefixMatches, context), - }), - ...(input.PrefixListIds !== undefined && - input.PrefixListIds !== null && { - PrefixListIds: serializeAws_restJson1StringList(input.PrefixListIds, context), - }), - ...(input.RouteTableIdentifier !== undefined && - input.RouteTableIdentifier !== null && { - RouteTableIdentifier: serializeAws_restJson1RouteTableIdentifier(input.RouteTableIdentifier, context), - }), - ...(input.States !== undefined && - input.States !== null && { States: serializeAws_restJson1RouteStateList(input.States, context) }), - ...(input.SubnetOfMatches !== undefined && - input.SubnetOfMatches !== null && { - SubnetOfMatches: serializeAws_restJson1StringList(input.SubnetOfMatches, context), - }), - ...(input.SupernetOfMatches !== undefined && - input.SupernetOfMatches !== null && { - SupernetOfMatches: serializeAws_restJson1StringList(input.SupernetOfMatches, context), - }), - ...(input.Types !== undefined && - input.Types !== null && { Types: serializeAws_restJson1RouteTypeList(input.Types, context) }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "POST", + method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1GetNetworkTelemetryCommand = async ( - input: GetNetworkTelemetryCommandInput, +export const serializeAws_restJson1GetDevicesCommand = async ( + input: GetDevicesCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/network-telemetry"; + "/global-networks/{GlobalNetworkId}/devices"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1225,11 +1707,8 @@ export const serializeAws_restJson1GetNetworkTelemetryCommand = async ( throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } const query: any = { - ...(input.RegisteredGatewayArn !== undefined && { registeredGatewayArn: input.RegisteredGatewayArn }), - ...(input.AwsRegion !== undefined && { awsRegion: input.AwsRegion }), - ...(input.AccountId !== undefined && { accountId: input.AccountId }), - ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), - ...(input.ResourceArn !== undefined && { resourceArn: input.ResourceArn }), + ...(input.DeviceIds !== undefined && { deviceIds: (input.DeviceIds || []).map((_entry) => _entry as any) }), + ...(input.SiteId !== undefined && { siteId: input.SiteId }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -1246,15 +1725,15 @@ export const serializeAws_restJson1GetNetworkTelemetryCommand = async ( }); }; -export const serializeAws_restJson1GetRouteAnalysisCommand = async ( - input: GetRouteAnalysisCommandInput, +export const serializeAws_restJson1GetLinkAssociationsCommand = async ( + input: GetLinkAssociationsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/route-analyses/{RouteAnalysisId}"; + "/global-networks/{GlobalNetworkId}/link-associations"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1264,15 +1743,12 @@ export const serializeAws_restJson1GetRouteAnalysisCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - if (input.RouteAnalysisId !== undefined) { - const labelValue: string = input.RouteAnalysisId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: RouteAnalysisId."); - } - resolvedPath = resolvedPath.replace("{RouteAnalysisId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: RouteAnalysisId."); - } + const query: any = { + ...(input.DeviceId !== undefined && { deviceId: input.DeviceId }), + ...(input.LinkId !== undefined && { linkId: input.LinkId }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; return new __HttpRequest({ protocol, @@ -1281,18 +1757,19 @@ export const serializeAws_restJson1GetRouteAnalysisCommand = async ( method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1GetSitesCommand = async ( - input: GetSitesCommandInput, +export const serializeAws_restJson1GetLinksCommand = async ( + input: GetLinksCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}/sites"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}/links"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1303,7 +1780,10 @@ export const serializeAws_restJson1GetSitesCommand = async ( throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } const query: any = { - ...(input.SiteIds !== undefined && { siteIds: (input.SiteIds || []).map((_entry) => _entry as any) }), + ...(input.LinkIds !== undefined && { linkIds: (input.LinkIds || []).map((_entry) => _entry as any) }), + ...(input.SiteId !== undefined && { siteId: input.SiteId }), + ...(input.Type !== undefined && { type: input.Type }), + ...(input.Provider !== undefined && { provider: input.Provider }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -1320,15 +1800,15 @@ export const serializeAws_restJson1GetSitesCommand = async ( }); }; -export const serializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommand = async ( - input: GetTransitGatewayConnectPeerAssociationsCommandInput, +export const serializeAws_restJson1GetNetworkResourceCountsCommand = async ( + input: GetNetworkResourceCountsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/transit-gateway-connect-peer-associations"; + "/global-networks/{GlobalNetworkId}/network-resource-count"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1339,9 +1819,7 @@ export const serializeAws_restJson1GetTransitGatewayConnectPeerAssociationsComma throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } const query: any = { - ...(input.TransitGatewayConnectPeerArns !== undefined && { - transitGatewayConnectPeerArns: (input.TransitGatewayConnectPeerArns || []).map((_entry) => _entry as any), - }), + ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -1358,15 +1836,15 @@ export const serializeAws_restJson1GetTransitGatewayConnectPeerAssociationsComma }); }; -export const serializeAws_restJson1GetTransitGatewayRegistrationsCommand = async ( - input: GetTransitGatewayRegistrationsCommandInput, +export const serializeAws_restJson1GetNetworkResourceRelationshipsCommand = async ( + input: GetNetworkResourceRelationshipsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/transit-gateway-registrations"; + "/global-networks/{GlobalNetworkId}/network-resource-relationships"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1377,9 +1855,12 @@ export const serializeAws_restJson1GetTransitGatewayRegistrationsCommand = async throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } const query: any = { - ...(input.TransitGatewayArns !== undefined && { - transitGatewayArns: (input.TransitGatewayArns || []).map((_entry) => _entry as any), - }), + ...(input.CoreNetworkId !== undefined && { coreNetworkId: input.CoreNetworkId }), + ...(input.RegisteredGatewayArn !== undefined && { registeredGatewayArn: input.RegisteredGatewayArn }), + ...(input.AwsRegion !== undefined && { awsRegion: input.AwsRegion }), + ...(input.AccountId !== undefined && { accountId: input.AccountId }), + ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), + ...(input.ResourceArn !== undefined && { resourceArn: input.ResourceArn }), ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; @@ -1396,22 +1877,34 @@ export const serializeAws_restJson1GetTransitGatewayRegistrationsCommand = async }); }; -export const serializeAws_restJson1ListTagsForResourceCommand = async ( - input: ListTagsForResourceCommandInput, +export const serializeAws_restJson1GetNetworkResourcesCommand = async ( + input: GetNetworkResourcesCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; - let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; - if (input.ResourceArn !== undefined) { - const labelValue: string = input.ResourceArn; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/network-resources"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: ResourceArn."); + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); } - resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: ResourceArn."); + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } + const query: any = { + ...(input.CoreNetworkId !== undefined && { coreNetworkId: input.CoreNetworkId }), + ...(input.RegisteredGatewayArn !== undefined && { registeredGatewayArn: input.RegisteredGatewayArn }), + ...(input.AwsRegion !== undefined && { awsRegion: input.AwsRegion }), + ...(input.AccountId !== undefined && { accountId: input.AccountId }), + ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), + ...(input.ResourceArn !== undefined && { resourceArn: input.ResourceArn }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; return new __HttpRequest({ protocol, @@ -1420,12 +1913,13 @@ export const serializeAws_restJson1ListTagsForResourceCommand = async ( method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1RegisterTransitGatewayCommand = async ( - input: RegisterTransitGatewayCommandInput, +export const serializeAws_restJson1GetNetworkRoutesCommand = async ( + input: GetNetworkRoutesCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -1434,7 +1928,7 @@ export const serializeAws_restJson1RegisterTransitGatewayCommand = async ( }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/transit-gateway-registrations"; + "/global-networks/{GlobalNetworkId}/network-routes"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1446,8 +1940,38 @@ export const serializeAws_restJson1RegisterTransitGatewayCommand = async ( } let body: any; body = JSON.stringify({ - ...(input.TransitGatewayArn !== undefined && - input.TransitGatewayArn !== null && { TransitGatewayArn: input.TransitGatewayArn }), + ...(input.DestinationFilters !== undefined && + input.DestinationFilters !== null && { + DestinationFilters: serializeAws_restJson1FilterMap(input.DestinationFilters, context), + }), + ...(input.ExactCidrMatches !== undefined && + input.ExactCidrMatches !== null && { + ExactCidrMatches: serializeAws_restJson1ConstrainedStringList(input.ExactCidrMatches, context), + }), + ...(input.LongestPrefixMatches !== undefined && + input.LongestPrefixMatches !== null && { + LongestPrefixMatches: serializeAws_restJson1ConstrainedStringList(input.LongestPrefixMatches, context), + }), + ...(input.PrefixListIds !== undefined && + input.PrefixListIds !== null && { + PrefixListIds: serializeAws_restJson1ConstrainedStringList(input.PrefixListIds, context), + }), + ...(input.RouteTableIdentifier !== undefined && + input.RouteTableIdentifier !== null && { + RouteTableIdentifier: serializeAws_restJson1RouteTableIdentifier(input.RouteTableIdentifier, context), + }), + ...(input.States !== undefined && + input.States !== null && { States: serializeAws_restJson1RouteStateList(input.States, context) }), + ...(input.SubnetOfMatches !== undefined && + input.SubnetOfMatches !== null && { + SubnetOfMatches: serializeAws_restJson1ConstrainedStringList(input.SubnetOfMatches, context), + }), + ...(input.SupernetOfMatches !== undefined && + input.SupernetOfMatches !== null && { + SupernetOfMatches: serializeAws_restJson1ConstrainedStringList(input.SupernetOfMatches, context), + }), + ...(input.Types !== undefined && + input.Types !== null && { Types: serializeAws_restJson1RouteTypeList(input.Types, context) }), }); return new __HttpRequest({ protocol, @@ -1460,17 +1984,15 @@ export const serializeAws_restJson1RegisterTransitGatewayCommand = async ( }); }; -export const serializeAws_restJson1StartRouteAnalysisCommand = async ( - input: StartRouteAnalysisCommandInput, +export const serializeAws_restJson1GetNetworkTelemetryCommand = async ( + input: GetNetworkTelemetryCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/route-analyses"; + "/global-networks/{GlobalNetworkId}/network-telemetry"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1480,41 +2002,37 @@ export const serializeAws_restJson1StartRouteAnalysisCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } + const query: any = { + ...(input.CoreNetworkId !== undefined && { coreNetworkId: input.CoreNetworkId }), + ...(input.RegisteredGatewayArn !== undefined && { registeredGatewayArn: input.RegisteredGatewayArn }), + ...(input.AwsRegion !== undefined && { awsRegion: input.AwsRegion }), + ...(input.AccountId !== undefined && { accountId: input.AccountId }), + ...(input.ResourceType !== undefined && { resourceType: input.ResourceType }), + ...(input.ResourceArn !== undefined && { resourceArn: input.ResourceArn }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; - body = JSON.stringify({ - ...(input.Destination !== undefined && - input.Destination !== null && { - Destination: serializeAws_restJson1RouteAnalysisEndpointOptionsSpecification(input.Destination, context), - }), - ...(input.IncludeReturnPath !== undefined && - input.IncludeReturnPath !== null && { IncludeReturnPath: input.IncludeReturnPath }), - ...(input.Source !== undefined && - input.Source !== null && { - Source: serializeAws_restJson1RouteAnalysisEndpointOptionsSpecification(input.Source, context), - }), - ...(input.UseMiddleboxes !== undefined && - input.UseMiddleboxes !== null && { UseMiddleboxes: input.UseMiddleboxes }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "POST", + method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1TagResourceCommand = async ( - input: TagResourceCommandInput, +export const serializeAws_restJson1GetResourcePolicyCommand = async ( + input: GetResourcePolicyCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; - let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/resource-policy/{ResourceArn}"; if (input.ResourceArn !== undefined) { const labelValue: string = input.ResourceArn; if (labelValue.length <= 0) { @@ -1525,64 +2043,64 @@ export const serializeAws_restJson1TagResourceCommand = async ( throw new Error("No value provided for input HTTP label: ResourceArn."); } let body: any; - body = JSON.stringify({ - ...(input.Tags !== undefined && - input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "POST", + method: "GET", headers, path: resolvedPath, body, }); }; -export const serializeAws_restJson1UntagResourceCommand = async ( - input: UntagResourceCommandInput, +export const serializeAws_restJson1GetRouteAnalysisCommand = async ( + input: GetRouteAnalysisCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; - let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; - if (input.ResourceArn !== undefined) { - const labelValue: string = input.ResourceArn; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/route-analyses/{RouteAnalysisId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: ResourceArn."); + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); } - resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: ResourceArn."); + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.RouteAnalysisId !== undefined) { + const labelValue: string = input.RouteAnalysisId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: RouteAnalysisId."); + } + resolvedPath = resolvedPath.replace("{RouteAnalysisId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: RouteAnalysisId."); } - const query: any = { - ...(input.TagKeys !== undefined && { tagKeys: (input.TagKeys || []).map((_entry) => _entry as any) }), - }; let body: any; return new __HttpRequest({ protocol, hostname, port, - method: "DELETE", + method: "GET", headers, path: resolvedPath, - query, body, }); }; -export const serializeAws_restJson1UpdateConnectionCommand = async ( - input: UpdateConnectionCommandInput, +export const serializeAws_restJson1GetSitesCommand = async ( + input: GetSitesCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/connections/{ConnectionId}"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}/sites"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1592,96 +2110,63 @@ export const serializeAws_restJson1UpdateConnectionCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - if (input.ConnectionId !== undefined) { - const labelValue: string = input.ConnectionId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: ConnectionId."); - } - resolvedPath = resolvedPath.replace("{ConnectionId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: ConnectionId."); - } + const query: any = { + ...(input.SiteIds !== undefined && { siteIds: (input.SiteIds || []).map((_entry) => _entry as any) }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; - body = JSON.stringify({ - ...(input.ConnectedLinkId !== undefined && - input.ConnectedLinkId !== null && { ConnectedLinkId: input.ConnectedLinkId }), - ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), - ...(input.LinkId !== undefined && input.LinkId !== null && { LinkId: input.LinkId }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "PATCH", + method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1UpdateDeviceCommand = async ( - input: UpdateDeviceCommandInput, +export const serializeAws_restJson1GetSiteToSiteVpnAttachmentCommand = async ( + input: GetSiteToSiteVpnAttachmentCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/devices/{DeviceId}"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); - } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); - } - if (input.DeviceId !== undefined) { - const labelValue: string = input.DeviceId; + "/site-to-site-vpn-attachments/{AttachmentId}"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: DeviceId."); + throw new Error("Empty value provided for input HTTP label: AttachmentId."); } - resolvedPath = resolvedPath.replace("{DeviceId}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: DeviceId."); + throw new Error("No value provided for input HTTP label: AttachmentId."); } let body: any; - body = JSON.stringify({ - ...(input.AWSLocation !== undefined && - input.AWSLocation !== null && { AWSLocation: serializeAws_restJson1AWSLocation(input.AWSLocation, context) }), - ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), - ...(input.Location !== undefined && - input.Location !== null && { Location: serializeAws_restJson1Location(input.Location, context) }), - ...(input.Model !== undefined && input.Model !== null && { Model: input.Model }), - ...(input.SerialNumber !== undefined && input.SerialNumber !== null && { SerialNumber: input.SerialNumber }), - ...(input.SiteId !== undefined && input.SiteId !== null && { SiteId: input.SiteId }), - ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), - ...(input.Vendor !== undefined && input.Vendor !== null && { Vendor: input.Vendor }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "PATCH", + method: "GET", headers, path: resolvedPath, body, }); }; -export const serializeAws_restJson1UpdateGlobalNetworkCommand = async ( - input: UpdateGlobalNetworkCommandInput, +export const serializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommand = async ( + input: GetTransitGatewayConnectPeerAssociationsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/transit-gateway-connect-peer-associations"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1691,32 +2176,35 @@ export const serializeAws_restJson1UpdateGlobalNetworkCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } + const query: any = { + ...(input.TransitGatewayConnectPeerArns !== undefined && { + transitGatewayConnectPeerArns: (input.TransitGatewayConnectPeerArns || []).map((_entry) => _entry as any), + }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; - body = JSON.stringify({ - ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "PATCH", + method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1UpdateLinkCommand = async ( - input: UpdateLinkCommandInput, +export const serializeAws_restJson1GetTransitGatewayRegistrationsCommand = async ( + input: GetTransitGatewayRegistrationsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/links/{LinkId}"; + "/global-networks/{GlobalNetworkId}/transit-gateway-registrations"; if (input.GlobalNetworkId !== undefined) { const labelValue: string = input.GlobalNetworkId; if (labelValue.length <= 0) { @@ -1726,774 +2214,878 @@ export const serializeAws_restJson1UpdateLinkCommand = async ( } else { throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - if (input.LinkId !== undefined) { - const labelValue: string = input.LinkId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: LinkId."); - } - resolvedPath = resolvedPath.replace("{LinkId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: LinkId."); - } + const query: any = { + ...(input.TransitGatewayArns !== undefined && { + transitGatewayArns: (input.TransitGatewayArns || []).map((_entry) => _entry as any), + }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; let body: any; - body = JSON.stringify({ - ...(input.Bandwidth !== undefined && - input.Bandwidth !== null && { Bandwidth: serializeAws_restJson1Bandwidth(input.Bandwidth, context) }), - ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), - ...(input.Provider !== undefined && input.Provider !== null && { Provider: input.Provider }), - ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "PATCH", + method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const serializeAws_restJson1UpdateNetworkResourceMetadataCommand = async ( - input: UpdateNetworkResourceMetadataCommandInput, +export const serializeAws_restJson1GetVpcAttachmentCommand = async ( + input: GetVpcAttachmentCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; + const headers: any = {}; let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/network-resources/{ResourceArn}/metadata"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); - } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); - } - if (input.ResourceArn !== undefined) { - const labelValue: string = input.ResourceArn; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/vpc-attachments/{AttachmentId}"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: ResourceArn."); + throw new Error("Empty value provided for input HTTP label: AttachmentId."); } - resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); } else { - throw new Error("No value provided for input HTTP label: ResourceArn."); + throw new Error("No value provided for input HTTP label: AttachmentId."); } let body: any; - body = JSON.stringify({ - ...(input.Metadata !== undefined && - input.Metadata !== null && { - Metadata: serializeAws_restJson1NetworkResourceMetadataMap(input.Metadata, context), - }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "PATCH", + method: "GET", headers, path: resolvedPath, body, }); }; -export const serializeAws_restJson1UpdateSiteCommand = async ( - input: UpdateSiteCommandInput, +export const serializeAws_restJson1ListAttachmentsCommand = async ( + input: ListAttachmentsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", + const headers: any = {}; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/attachments"; + const query: any = { + ...(input.CoreNetworkId !== undefined && { coreNetworkId: input.CoreNetworkId }), + ...(input.AttachmentType !== undefined && { attachmentType: input.AttachmentType }), + ...(input.EdgeLocation !== undefined && { edgeLocation: input.EdgeLocation }), + ...(input.State !== undefined && { state: input.State }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; - let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/global-networks/{GlobalNetworkId}/sites/{SiteId}"; - if (input.GlobalNetworkId !== undefined) { - const labelValue: string = input.GlobalNetworkId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); - } - resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: GlobalNetworkId."); - } - if (input.SiteId !== undefined) { - const labelValue: string = input.SiteId; - if (labelValue.length <= 0) { - throw new Error("Empty value provided for input HTTP label: SiteId."); - } - resolvedPath = resolvedPath.replace("{SiteId}", __extendedEncodeURIComponent(labelValue)); - } else { - throw new Error("No value provided for input HTTP label: SiteId."); - } let body: any; - body = JSON.stringify({ - ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), - ...(input.Location !== undefined && - input.Location !== null && { Location: serializeAws_restJson1Location(input.Location, context) }), - }); return new __HttpRequest({ protocol, hostname, port, - method: "PATCH", + method: "GET", headers, path: resolvedPath, + query, body, }); }; -export const deserializeAws_restJson1AssociateCustomerGatewayCommand = async ( - output: __HttpResponse, +export const serializeAws_restJson1ListConnectPeersCommand = async ( + input: ListConnectPeersCommandInput, context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1AssociateCustomerGatewayCommandError(output, context); - } - const contents: AssociateCustomerGatewayCommandOutput = { - $metadata: deserializeMetadata(output), - CustomerGatewayAssociation: undefined, +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/connect-peers"; + const query: any = { + ...(input.CoreNetworkId !== undefined && { coreNetworkId: input.CoreNetworkId }), + ...(input.ConnectAttachmentId !== undefined && { connectAttachmentId: input.ConnectAttachmentId }), + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.CustomerGatewayAssociation !== undefined && data.CustomerGatewayAssociation !== null) { - contents.CustomerGatewayAssociation = deserializeAws_restJson1CustomerGatewayAssociation( - data.CustomerGatewayAssociation, - context - ); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListCoreNetworkPolicyVersionsCommand = async ( + input: ListCoreNetworkPolicyVersionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/core-networks/{CoreNetworkId}/core-network-policy-versions"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); + } + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } - return Promise.resolve(contents); + const query: any = { + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); }; -const deserializeAws_restJson1AssociateCustomerGatewayCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1ListCoreNetworksCommand = async ( + input: ListCoreNetworksCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/core-networks"; + const query: any = { + ...(input.MaxResults !== undefined && { maxResults: input.MaxResults.toString() }), + ...(input.NextToken !== undefined && { nextToken: input.NextToken }), }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "InternalServerException": - case "com.amazonaws.networkmanager#InternalServerException": - response = { - ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": - response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ThrottlingException": - case "com.amazonaws.networkmanager#ThrottlingException": - response = { - ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ValidationException": - case "com.amazonaws.networkmanager#ValidationException": - response = { - ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - default: - const parsedBody = parsedOutput.body; - errorCode = parsedBody.code || parsedBody.Code || errorCode; - response = { - ...parsedBody, - name: `${errorCode}`, - message: parsedBody.message || parsedBody.Message || errorCode, - $fault: "client", - $metadata: deserializeMetadata(output), - } as any; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + +export const serializeAws_restJson1ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); } - const message = response.message || response.Message || errorCode; - response.message = message; - delete response.Message; - return Promise.reject(Object.assign(new Error(message), response)); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); }; -export const deserializeAws_restJson1AssociateLinkCommand = async ( - output: __HttpResponse, +export const serializeAws_restJson1PutCoreNetworkPolicyCommand = async ( + input: PutCoreNetworkPolicyCommandInput, context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1AssociateLinkCommandError(output, context); +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/core-networks/{CoreNetworkId}/core-network-policy"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); + } + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } - const contents: AssociateLinkCommandOutput = { - $metadata: deserializeMetadata(output), - LinkAssociation: undefined, + let body: any; + body = JSON.stringify({ + ClientToken: input.ClientToken ?? generateIdempotencyToken(), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.LatestVersionId !== undefined && + input.LatestVersionId !== null && { LatestVersionId: input.LatestVersionId }), + ...(input.PolicyDocument !== undefined && + input.PolicyDocument !== null && { PolicyDocument: __LazyJsonString.fromObject(input.PolicyDocument) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1PutResourcePolicyCommand = async ( + input: PutResourcePolicyCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.LinkAssociation !== undefined && data.LinkAssociation !== null) { - contents.LinkAssociation = deserializeAws_restJson1LinkAssociation(data.LinkAssociation, context); + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/resource-policy/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); } - return Promise.resolve(contents); + let body: any; + body = JSON.stringify({ + ...(input.PolicyDocument !== undefined && + input.PolicyDocument !== null && { PolicyDocument: __LazyJsonString.fromObject(input.PolicyDocument) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); }; -const deserializeAws_restJson1AssociateLinkCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1RegisterTransitGatewayCommand = async ( + input: RegisterTransitGatewayCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "InternalServerException": - case "com.amazonaws.networkmanager#InternalServerException": - response = { - ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": - response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ThrottlingException": - case "com.amazonaws.networkmanager#ThrottlingException": - response = { - ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ValidationException": - case "com.amazonaws.networkmanager#ValidationException": - response = { - ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - default: - const parsedBody = parsedOutput.body; - errorCode = parsedBody.code || parsedBody.Code || errorCode; - response = { - ...parsedBody, - name: `${errorCode}`, - message: parsedBody.message || parsedBody.Message || errorCode, - $fault: "client", - $metadata: deserializeMetadata(output), - } as any; - } - const message = response.message || response.Message || errorCode; - response.message = message; - delete response.Message; - return Promise.reject(Object.assign(new Error(message), response)); -}; - -export const deserializeAws_restJson1AssociateTransitGatewayConnectPeerCommand = async ( - output: __HttpResponse, - context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1AssociateTransitGatewayConnectPeerCommandError(output, context); - } - const contents: AssociateTransitGatewayConnectPeerCommandOutput = { - $metadata: deserializeMetadata(output), - TransitGatewayConnectPeerAssociation: undefined, - }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.TransitGatewayConnectPeerAssociation !== undefined && data.TransitGatewayConnectPeerAssociation !== null) { - contents.TransitGatewayConnectPeerAssociation = deserializeAws_restJson1TransitGatewayConnectPeerAssociation( - data.TransitGatewayConnectPeerAssociation, - context - ); + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/transit-gateway-registrations"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - return Promise.resolve(contents); + let body: any; + body = JSON.stringify({ + ...(input.TransitGatewayArn !== undefined && + input.TransitGatewayArn !== null && { TransitGatewayArn: input.TransitGatewayArn }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); }; -const deserializeAws_restJson1AssociateTransitGatewayConnectPeerCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1RejectAttachmentCommand = async ( + input: RejectAttachmentCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), - }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "InternalServerException": - case "com.amazonaws.networkmanager#InternalServerException": - response = { - ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": - response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ThrottlingException": - case "com.amazonaws.networkmanager#ThrottlingException": - response = { - ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ValidationException": - case "com.amazonaws.networkmanager#ValidationException": - response = { - ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - default: - const parsedBody = parsedOutput.body; - errorCode = parsedBody.code || parsedBody.Code || errorCode; - response = { - ...parsedBody, - name: `${errorCode}`, - message: parsedBody.message || parsedBody.Message || errorCode, - $fault: "client", - $metadata: deserializeMetadata(output), - } as any; +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/attachments/{AttachmentId}/reject"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: AttachmentId."); + } + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: AttachmentId."); } - const message = response.message || response.Message || errorCode; - response.message = message; - delete response.Message; - return Promise.reject(Object.assign(new Error(message), response)); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); }; -export const deserializeAws_restJson1CreateConnectionCommand = async ( - output: __HttpResponse, +export const serializeAws_restJson1RestoreCoreNetworkPolicyVersionCommand = async ( + input: RestoreCoreNetworkPolicyVersionCommandInput, context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1CreateConnectionCommandError(output, context); +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/core-networks/{CoreNetworkId}/core-network-policy-versions/{PolicyVersionId}/restore"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); + } + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } - const contents: CreateConnectionCommandOutput = { - $metadata: deserializeMetadata(output), - Connection: undefined, - }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Connection !== undefined && data.Connection !== null) { - contents.Connection = deserializeAws_restJson1Connection(data.Connection, context); + if (input.PolicyVersionId !== undefined) { + const labelValue: string = input.PolicyVersionId.toString(); + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: PolicyVersionId."); + } + resolvedPath = resolvedPath.replace("{PolicyVersionId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: PolicyVersionId."); } - return Promise.resolve(contents); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); }; -const deserializeAws_restJson1CreateConnectionCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1StartRouteAnalysisCommand = async ( + input: StartRouteAnalysisCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "InternalServerException": - case "com.amazonaws.networkmanager#InternalServerException": - response = { - ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ThrottlingException": - case "com.amazonaws.networkmanager#ThrottlingException": - response = { - ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ValidationException": - case "com.amazonaws.networkmanager#ValidationException": - response = { - ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - default: - const parsedBody = parsedOutput.body; - errorCode = parsedBody.code || parsedBody.Code || errorCode; - response = { - ...parsedBody, - name: `${errorCode}`, - message: parsedBody.message || parsedBody.Message || errorCode, - $fault: "client", - $metadata: deserializeMetadata(output), - } as any; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/route-analyses"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - const message = response.message || response.Message || errorCode; - response.message = message; - delete response.Message; - return Promise.reject(Object.assign(new Error(message), response)); + let body: any; + body = JSON.stringify({ + ...(input.Destination !== undefined && + input.Destination !== null && { + Destination: serializeAws_restJson1RouteAnalysisEndpointOptionsSpecification(input.Destination, context), + }), + ...(input.IncludeReturnPath !== undefined && + input.IncludeReturnPath !== null && { IncludeReturnPath: input.IncludeReturnPath }), + ...(input.Source !== undefined && + input.Source !== null && { + Source: serializeAws_restJson1RouteAnalysisEndpointOptionsSpecification(input.Source, context), + }), + ...(input.UseMiddleboxes !== undefined && + input.UseMiddleboxes !== null && { UseMiddleboxes: input.UseMiddleboxes }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); }; -export const deserializeAws_restJson1CreateDeviceCommand = async ( - output: __HttpResponse, +export const serializeAws_restJson1TagResourceCommand = async ( + input: TagResourceCommandInput, context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1CreateDeviceCommandError(output, context); - } - const contents: CreateDeviceCommandOutput = { - $metadata: deserializeMetadata(output), - Device: undefined, +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Device !== undefined && data.Device !== null) { - contents.Device = deserializeAws_restJson1Device(data.Device, context); + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); } - return Promise.resolve(contents); + let body: any; + body = JSON.stringify({ + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1TagList(input.Tags, context) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); }; -const deserializeAws_restJson1CreateDeviceCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1UntagResourceCommand = async ( + input: UntagResourceCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), - }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "InternalServerException": - case "com.amazonaws.networkmanager#InternalServerException": - response = { - ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": - response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ThrottlingException": - case "com.amazonaws.networkmanager#ThrottlingException": - response = { - ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ValidationException": - case "com.amazonaws.networkmanager#ValidationException": - response = { - ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - default: - const parsedBody = parsedOutput.body; - errorCode = parsedBody.code || parsedBody.Code || errorCode; - response = { - ...parsedBody, - name: `${errorCode}`, - message: parsedBody.message || parsedBody.Message || errorCode, - $fault: "client", - $metadata: deserializeMetadata(output), - } as any; +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); } - const message = response.message || response.Message || errorCode; - response.message = message; - delete response.Message; - return Promise.reject(Object.assign(new Error(message), response)); + const query: any = { + ...(input.TagKeys !== undefined && { tagKeys: (input.TagKeys || []).map((_entry) => _entry as any) }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); }; -export const deserializeAws_restJson1CreateGlobalNetworkCommand = async ( - output: __HttpResponse, +export const serializeAws_restJson1UpdateConnectionCommand = async ( + input: UpdateConnectionCommandInput, context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1CreateGlobalNetworkCommandError(output, context); - } - const contents: CreateGlobalNetworkCommandOutput = { - $metadata: deserializeMetadata(output), - GlobalNetwork: undefined, - }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.GlobalNetwork !== undefined && data.GlobalNetwork !== null) { - contents.GlobalNetwork = deserializeAws_restJson1GlobalNetwork(data.GlobalNetwork, context); +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/connections/{ConnectionId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - return Promise.resolve(contents); + if (input.ConnectionId !== undefined) { + const labelValue: string = input.ConnectionId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ConnectionId."); + } + resolvedPath = resolvedPath.replace("{ConnectionId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ConnectionId."); + } + let body: any; + body = JSON.stringify({ + ...(input.ConnectedLinkId !== undefined && + input.ConnectedLinkId !== null && { ConnectedLinkId: input.ConnectedLinkId }), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.LinkId !== undefined && input.LinkId !== null && { LinkId: input.LinkId }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); }; -const deserializeAws_restJson1CreateGlobalNetworkCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1UpdateCoreNetworkCommand = async ( + input: UpdateCoreNetworkCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "InternalServerException": - case "com.amazonaws.networkmanager#InternalServerException": - response = { - ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ThrottlingException": - case "com.amazonaws.networkmanager#ThrottlingException": - response = { - ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ValidationException": - case "com.amazonaws.networkmanager#ValidationException": - response = { - ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - default: - const parsedBody = parsedOutput.body; - errorCode = parsedBody.code || parsedBody.Code || errorCode; - response = { - ...parsedBody, - name: `${errorCode}`, - message: parsedBody.message || parsedBody.Message || errorCode, - $fault: "client", - $metadata: deserializeMetadata(output), - } as any; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/core-networks/{CoreNetworkId}"; + if (input.CoreNetworkId !== undefined) { + const labelValue: string = input.CoreNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: CoreNetworkId."); + } + resolvedPath = resolvedPath.replace("{CoreNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: CoreNetworkId."); } - const message = response.message || response.Message || errorCode; - response.message = message; - delete response.Message; - return Promise.reject(Object.assign(new Error(message), response)); + let body: any; + body = JSON.stringify({ + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); }; -export const deserializeAws_restJson1CreateLinkCommand = async ( - output: __HttpResponse, +export const serializeAws_restJson1UpdateDeviceCommand = async ( + input: UpdateDeviceCommandInput, context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1CreateLinkCommandError(output, context); +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/devices/{DeviceId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - const contents: CreateLinkCommandOutput = { - $metadata: deserializeMetadata(output), - Link: undefined, + if (input.DeviceId !== undefined) { + const labelValue: string = input.DeviceId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: DeviceId."); + } + resolvedPath = resolvedPath.replace("{DeviceId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: DeviceId."); + } + let body: any; + body = JSON.stringify({ + ...(input.AWSLocation !== undefined && + input.AWSLocation !== null && { AWSLocation: serializeAws_restJson1AWSLocation(input.AWSLocation, context) }), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.Location !== undefined && + input.Location !== null && { Location: serializeAws_restJson1Location(input.Location, context) }), + ...(input.Model !== undefined && input.Model !== null && { Model: input.Model }), + ...(input.SerialNumber !== undefined && input.SerialNumber !== null && { SerialNumber: input.SerialNumber }), + ...(input.SiteId !== undefined && input.SiteId !== null && { SiteId: input.SiteId }), + ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + ...(input.Vendor !== undefined && input.Vendor !== null && { Vendor: input.Vendor }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateGlobalNetworkCommand = async ( + input: UpdateGlobalNetworkCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Link !== undefined && data.Link !== null) { - contents.Link = deserializeAws_restJson1Link(data.Link, context); + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/global-networks/{GlobalNetworkId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); } - return Promise.resolve(contents); + let body: any; + body = JSON.stringify({ + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); }; -const deserializeAws_restJson1CreateLinkCommandError = async ( - output: __HttpResponse, +export const serializeAws_restJson1UpdateLinkCommand = async ( + input: UpdateLinkCommandInput, context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseBody(output.body, context), +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", }; - let response: __SmithyException & __MetadataBearer & { [key: string]: any }; - let errorCode = "UnknownError"; - errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.networkmanager#AccessDeniedException": - response = { - ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; - case "ConflictException": + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/links/{LinkId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.LinkId !== undefined) { + const labelValue: string = input.LinkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: LinkId."); + } + resolvedPath = resolvedPath.replace("{LinkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: LinkId."); + } + let body: any; + body = JSON.stringify({ + ...(input.Bandwidth !== undefined && + input.Bandwidth !== null && { Bandwidth: serializeAws_restJson1Bandwidth(input.Bandwidth, context) }), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.Provider !== undefined && input.Provider !== null && { Provider: input.Provider }), + ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateNetworkResourceMetadataCommand = async ( + input: UpdateNetworkResourceMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/network-resources/{ResourceArn}/metadata"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); + } + let body: any; + body = JSON.stringify({ + ...(input.Metadata !== undefined && + input.Metadata !== null && { + Metadata: serializeAws_restJson1NetworkResourceMetadataMap(input.Metadata, context), + }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateSiteCommand = async ( + input: UpdateSiteCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/global-networks/{GlobalNetworkId}/sites/{SiteId}"; + if (input.GlobalNetworkId !== undefined) { + const labelValue: string = input.GlobalNetworkId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: GlobalNetworkId."); + } + resolvedPath = resolvedPath.replace("{GlobalNetworkId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: GlobalNetworkId."); + } + if (input.SiteId !== undefined) { + const labelValue: string = input.SiteId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: SiteId."); + } + resolvedPath = resolvedPath.replace("{SiteId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: SiteId."); + } + let body: any; + body = JSON.stringify({ + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.Location !== undefined && + input.Location !== null && { Location: serializeAws_restJson1Location(input.Location, context) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UpdateVpcAttachmentCommand = async ( + input: UpdateVpcAttachmentCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/vpc-attachments/{AttachmentId}"; + if (input.AttachmentId !== undefined) { + const labelValue: string = input.AttachmentId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: AttachmentId."); + } + resolvedPath = resolvedPath.replace("{AttachmentId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: AttachmentId."); + } + let body: any; + body = JSON.stringify({ + ...(input.AddSubnetArns !== undefined && + input.AddSubnetArns !== null && { + AddSubnetArns: serializeAws_restJson1SubnetArnList(input.AddSubnetArns, context), + }), + ...(input.Options !== undefined && + input.Options !== null && { Options: serializeAws_restJson1VpcOptions(input.Options, context) }), + ...(input.RemoveSubnetArns !== undefined && + input.RemoveSubnetArns !== null && { + RemoveSubnetArns: serializeAws_restJson1SubnetArnList(input.RemoveSubnetArns, context), + }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); +}; + +export const deserializeAws_restJson1AcceptAttachmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1AcceptAttachmentCommandError(output, context); + } + const contents: AcceptAttachmentCommandOutput = { + $metadata: deserializeMetadata(output), + Attachment: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Attachment !== undefined && data.Attachment !== null) { + contents.Attachment = deserializeAws_restJson1Attachment(data.Attachment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1AcceptAttachmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": case "com.amazonaws.networkmanager#ConflictException": response = { ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), @@ -2517,14 +3109,6 @@ const deserializeAws_restJson1CreateLinkCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -2558,28 +3142,31 @@ const deserializeAws_restJson1CreateLinkCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1CreateSiteCommand = async ( +export const deserializeAws_restJson1AssociateConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1CreateSiteCommandError(output, context); + return deserializeAws_restJson1AssociateConnectPeerCommandError(output, context); } - const contents: CreateSiteCommandOutput = { + const contents: AssociateConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), - Site: undefined, + ConnectPeerAssociation: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Site !== undefined && data.Site !== null) { - contents.Site = deserializeAws_restJson1Site(data.Site, context); + if (data.ConnectPeerAssociation !== undefined && data.ConnectPeerAssociation !== null) { + contents.ConnectPeerAssociation = deserializeAws_restJson1ConnectPeerAssociation( + data.ConnectPeerAssociation, + context + ); } return Promise.resolve(contents); }; -const deserializeAws_restJson1CreateSiteCommandError = async ( +const deserializeAws_restJson1AssociateConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2661,28 +3248,31 @@ const deserializeAws_restJson1CreateSiteCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DeleteConnectionCommand = async ( +export const deserializeAws_restJson1AssociateCustomerGatewayCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeleteConnectionCommandError(output, context); + return deserializeAws_restJson1AssociateCustomerGatewayCommandError(output, context); } - const contents: DeleteConnectionCommandOutput = { + const contents: AssociateCustomerGatewayCommandOutput = { $metadata: deserializeMetadata(output), - Connection: undefined, + CustomerGatewayAssociation: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Connection !== undefined && data.Connection !== null) { - contents.Connection = deserializeAws_restJson1Connection(data.Connection, context); + if (data.CustomerGatewayAssociation !== undefined && data.CustomerGatewayAssociation !== null) { + contents.CustomerGatewayAssociation = deserializeAws_restJson1CustomerGatewayAssociation( + data.CustomerGatewayAssociation, + context + ); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeleteConnectionCommandError = async ( +const deserializeAws_restJson1AssociateCustomerGatewayCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2723,6 +3313,14 @@ const deserializeAws_restJson1DeleteConnectionCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -2756,28 +3354,28 @@ const deserializeAws_restJson1DeleteConnectionCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DeleteDeviceCommand = async ( +export const deserializeAws_restJson1AssociateLinkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeleteDeviceCommandError(output, context); + return deserializeAws_restJson1AssociateLinkCommandError(output, context); } - const contents: DeleteDeviceCommandOutput = { + const contents: AssociateLinkCommandOutput = { $metadata: deserializeMetadata(output), - Device: undefined, + LinkAssociation: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Device !== undefined && data.Device !== null) { - contents.Device = deserializeAws_restJson1Device(data.Device, context); + if (data.LinkAssociation !== undefined && data.LinkAssociation !== null) { + contents.LinkAssociation = deserializeAws_restJson1LinkAssociation(data.LinkAssociation, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeleteDeviceCommandError = async ( +const deserializeAws_restJson1AssociateLinkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2818,6 +3416,14 @@ const deserializeAws_restJson1DeleteDeviceCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -2851,28 +3457,31 @@ const deserializeAws_restJson1DeleteDeviceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DeleteGlobalNetworkCommand = async ( +export const deserializeAws_restJson1AssociateTransitGatewayConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeleteGlobalNetworkCommandError(output, context); + return deserializeAws_restJson1AssociateTransitGatewayConnectPeerCommandError(output, context); } - const contents: DeleteGlobalNetworkCommandOutput = { + const contents: AssociateTransitGatewayConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), - GlobalNetwork: undefined, + TransitGatewayConnectPeerAssociation: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.GlobalNetwork !== undefined && data.GlobalNetwork !== null) { - contents.GlobalNetwork = deserializeAws_restJson1GlobalNetwork(data.GlobalNetwork, context); + if (data.TransitGatewayConnectPeerAssociation !== undefined && data.TransitGatewayConnectPeerAssociation !== null) { + contents.TransitGatewayConnectPeerAssociation = deserializeAws_restJson1TransitGatewayConnectPeerAssociation( + data.TransitGatewayConnectPeerAssociation, + context + ); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeleteGlobalNetworkCommandError = async ( +const deserializeAws_restJson1AssociateTransitGatewayConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2913,6 +3522,14 @@ const deserializeAws_restJson1DeleteGlobalNetworkCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -2946,28 +3563,28 @@ const deserializeAws_restJson1DeleteGlobalNetworkCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DeleteLinkCommand = async ( +export const deserializeAws_restJson1CreateConnectAttachmentCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeleteLinkCommandError(output, context); + return deserializeAws_restJson1CreateConnectAttachmentCommandError(output, context); } - const contents: DeleteLinkCommandOutput = { + const contents: CreateConnectAttachmentCommandOutput = { $metadata: deserializeMetadata(output), - Link: undefined, + ConnectAttachment: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Link !== undefined && data.Link !== null) { - contents.Link = deserializeAws_restJson1Link(data.Link, context); + if (data.ConnectAttachment !== undefined && data.ConnectAttachment !== null) { + contents.ConnectAttachment = deserializeAws_restJson1ConnectAttachment(data.ConnectAttachment, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeleteLinkCommandError = async ( +const deserializeAws_restJson1CreateConnectAttachmentCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3041,28 +3658,28 @@ const deserializeAws_restJson1DeleteLinkCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DeleteSiteCommand = async ( +export const deserializeAws_restJson1CreateConnectionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeleteSiteCommandError(output, context); + return deserializeAws_restJson1CreateConnectionCommandError(output, context); } - const contents: DeleteSiteCommandOutput = { + const contents: CreateConnectionCommandOutput = { $metadata: deserializeMetadata(output), - Site: undefined, + Connection: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Site !== undefined && data.Site !== null) { - contents.Site = deserializeAws_restJson1Site(data.Site, context); + if (data.Connection !== undefined && data.Connection !== null) { + contents.Connection = deserializeAws_restJson1Connection(data.Connection, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeleteSiteCommandError = async ( +const deserializeAws_restJson1CreateConnectionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3095,10 +3712,10 @@ const deserializeAws_restJson1DeleteSiteCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -3136,31 +3753,28 @@ const deserializeAws_restJson1DeleteSiteCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DeregisterTransitGatewayCommand = async ( +export const deserializeAws_restJson1CreateConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DeregisterTransitGatewayCommandError(output, context); + return deserializeAws_restJson1CreateConnectPeerCommandError(output, context); } - const contents: DeregisterTransitGatewayCommandOutput = { + const contents: CreateConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), - TransitGatewayRegistration: undefined, + ConnectPeer: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.TransitGatewayRegistration !== undefined && data.TransitGatewayRegistration !== null) { - contents.TransitGatewayRegistration = deserializeAws_restJson1TransitGatewayRegistration( - data.TransitGatewayRegistration, - context - ); + if (data.ConnectPeer !== undefined && data.ConnectPeer !== null) { + contents.ConnectPeer = deserializeAws_restJson1ConnectPeer(data.ConnectPeer, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DeregisterTransitGatewayCommandError = async ( +const deserializeAws_restJson1CreateConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3234,32 +3848,28 @@ const deserializeAws_restJson1DeregisterTransitGatewayCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DescribeGlobalNetworksCommand = async ( +export const deserializeAws_restJson1CreateCoreNetworkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DescribeGlobalNetworksCommandError(output, context); + return deserializeAws_restJson1CreateCoreNetworkCommandError(output, context); } - const contents: DescribeGlobalNetworksCommandOutput = { + const contents: CreateCoreNetworkCommandOutput = { $metadata: deserializeMetadata(output), - GlobalNetworks: undefined, - NextToken: undefined, + CoreNetwork: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.GlobalNetworks !== undefined && data.GlobalNetworks !== null) { - contents.GlobalNetworks = deserializeAws_restJson1GlobalNetworkList(data.GlobalNetworks, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.CoreNetwork !== undefined && data.CoreNetwork !== null) { + contents.CoreNetwork = deserializeAws_restJson1CoreNetwork(data.CoreNetwork, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DescribeGlobalNetworksCommandError = async ( +const deserializeAws_restJson1CreateCoreNetworkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3276,6 +3886,22 @@ const deserializeAws_restJson1DescribeGlobalNetworksCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "CoreNetworkPolicyException": + case "com.amazonaws.networkmanager#CoreNetworkPolicyException": + response = { + ...(await deserializeAws_restJson1CoreNetworkPolicyExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -3284,10 +3910,10 @@ const deserializeAws_restJson1DescribeGlobalNetworksCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -3325,31 +3951,28 @@ const deserializeAws_restJson1DescribeGlobalNetworksCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DisassociateCustomerGatewayCommand = async ( +export const deserializeAws_restJson1CreateDeviceCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DisassociateCustomerGatewayCommandError(output, context); + return deserializeAws_restJson1CreateDeviceCommandError(output, context); } - const contents: DisassociateCustomerGatewayCommandOutput = { + const contents: CreateDeviceCommandOutput = { $metadata: deserializeMetadata(output), - CustomerGatewayAssociation: undefined, + Device: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.CustomerGatewayAssociation !== undefined && data.CustomerGatewayAssociation !== null) { - contents.CustomerGatewayAssociation = deserializeAws_restJson1CustomerGatewayAssociation( - data.CustomerGatewayAssociation, - context - ); + if (data.Device !== undefined && data.Device !== null) { + contents.Device = deserializeAws_restJson1Device(data.Device, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DisassociateCustomerGatewayCommandError = async ( +const deserializeAws_restJson1CreateDeviceCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3390,6 +4013,14 @@ const deserializeAws_restJson1DisassociateCustomerGatewayCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -3423,28 +4054,28 @@ const deserializeAws_restJson1DisassociateCustomerGatewayCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DisassociateLinkCommand = async ( +export const deserializeAws_restJson1CreateGlobalNetworkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DisassociateLinkCommandError(output, context); + return deserializeAws_restJson1CreateGlobalNetworkCommandError(output, context); } - const contents: DisassociateLinkCommandOutput = { + const contents: CreateGlobalNetworkCommandOutput = { $metadata: deserializeMetadata(output), - LinkAssociation: undefined, + GlobalNetwork: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.LinkAssociation !== undefined && data.LinkAssociation !== null) { - contents.LinkAssociation = deserializeAws_restJson1LinkAssociation(data.LinkAssociation, context); + if (data.GlobalNetwork !== undefined && data.GlobalNetwork !== null) { + contents.GlobalNetwork = deserializeAws_restJson1GlobalNetwork(data.GlobalNetwork, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DisassociateLinkCommandError = async ( +const deserializeAws_restJson1CreateGlobalNetworkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3477,10 +4108,10 @@ const deserializeAws_restJson1DisassociateLinkCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -3518,31 +4149,28 @@ const deserializeAws_restJson1DisassociateLinkCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommand = async ( +export const deserializeAws_restJson1CreateLinkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommandError(output, context); + return deserializeAws_restJson1CreateLinkCommandError(output, context); } - const contents: DisassociateTransitGatewayConnectPeerCommandOutput = { + const contents: CreateLinkCommandOutput = { $metadata: deserializeMetadata(output), - TransitGatewayConnectPeerAssociation: undefined, + Link: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.TransitGatewayConnectPeerAssociation !== undefined && data.TransitGatewayConnectPeerAssociation !== null) { - contents.TransitGatewayConnectPeerAssociation = deserializeAws_restJson1TransitGatewayConnectPeerAssociation( - data.TransitGatewayConnectPeerAssociation, - context - ); + if (data.Link !== undefined && data.Link !== null) { + contents.Link = deserializeAws_restJson1Link(data.Link, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommandError = async ( +const deserializeAws_restJson1CreateLinkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3583,6 +4211,14 @@ const deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommandError $metadata: deserializeMetadata(output), }; break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -3616,32 +4252,28 @@ const deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommandError return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetConnectionsCommand = async ( +export const deserializeAws_restJson1CreateSiteCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetConnectionsCommandError(output, context); + return deserializeAws_restJson1CreateSiteCommandError(output, context); } - const contents: GetConnectionsCommandOutput = { + const contents: CreateSiteCommandOutput = { $metadata: deserializeMetadata(output), - Connections: undefined, - NextToken: undefined, + Site: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Connections !== undefined && data.Connections !== null) { - contents.Connections = deserializeAws_restJson1ConnectionList(data.Connections, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.Site !== undefined && data.Site !== null) { + contents.Site = deserializeAws_restJson1Site(data.Site, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetConnectionsCommandError = async ( +const deserializeAws_restJson1CreateSiteCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3658,6 +4290,14 @@ const deserializeAws_restJson1GetConnectionsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -3674,6 +4314,14 @@ const deserializeAws_restJson1GetConnectionsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -3707,35 +4355,31 @@ const deserializeAws_restJson1GetConnectionsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetCustomerGatewayAssociationsCommand = async ( +export const deserializeAws_restJson1CreateSiteToSiteVpnAttachmentCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetCustomerGatewayAssociationsCommandError(output, context); + return deserializeAws_restJson1CreateSiteToSiteVpnAttachmentCommandError(output, context); } - const contents: GetCustomerGatewayAssociationsCommandOutput = { + const contents: CreateSiteToSiteVpnAttachmentCommandOutput = { $metadata: deserializeMetadata(output), - CustomerGatewayAssociations: undefined, - NextToken: undefined, + SiteToSiteVpnAttachment: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.CustomerGatewayAssociations !== undefined && data.CustomerGatewayAssociations !== null) { - contents.CustomerGatewayAssociations = deserializeAws_restJson1CustomerGatewayAssociationList( - data.CustomerGatewayAssociations, + if (data.SiteToSiteVpnAttachment !== undefined && data.SiteToSiteVpnAttachment !== null) { + contents.SiteToSiteVpnAttachment = deserializeAws_restJson1SiteToSiteVpnAttachment( + data.SiteToSiteVpnAttachment, context ); } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); - } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetCustomerGatewayAssociationsCommandError = async ( +const deserializeAws_restJson1CreateSiteToSiteVpnAttachmentCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3809,32 +4453,28 @@ const deserializeAws_restJson1GetCustomerGatewayAssociationsCommandError = async return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetDevicesCommand = async ( +export const deserializeAws_restJson1CreateVpcAttachmentCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetDevicesCommandError(output, context); + return deserializeAws_restJson1CreateVpcAttachmentCommandError(output, context); } - const contents: GetDevicesCommandOutput = { + const contents: CreateVpcAttachmentCommandOutput = { $metadata: deserializeMetadata(output), - Devices: undefined, - NextToken: undefined, + VpcAttachment: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Devices !== undefined && data.Devices !== null) { - contents.Devices = deserializeAws_restJson1DeviceList(data.Devices, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.VpcAttachment !== undefined && data.VpcAttachment !== null) { + contents.VpcAttachment = deserializeAws_restJson1VpcAttachment(data.VpcAttachment, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetDevicesCommandError = async ( +const deserializeAws_restJson1CreateVpcAttachmentCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3851,6 +4491,14 @@ const deserializeAws_restJson1GetDevicesCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -3900,32 +4548,28 @@ const deserializeAws_restJson1GetDevicesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetLinkAssociationsCommand = async ( +export const deserializeAws_restJson1DeleteAttachmentCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetLinkAssociationsCommandError(output, context); + return deserializeAws_restJson1DeleteAttachmentCommandError(output, context); } - const contents: GetLinkAssociationsCommandOutput = { + const contents: DeleteAttachmentCommandOutput = { $metadata: deserializeMetadata(output), - LinkAssociations: undefined, - NextToken: undefined, + Attachment: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.LinkAssociations !== undefined && data.LinkAssociations !== null) { - contents.LinkAssociations = deserializeAws_restJson1LinkAssociationList(data.LinkAssociations, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.Attachment !== undefined && data.Attachment !== null) { + contents.Attachment = deserializeAws_restJson1Attachment(data.Attachment, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetLinkAssociationsCommandError = async ( +const deserializeAws_restJson1DeleteAttachmentCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -3942,6 +4586,14 @@ const deserializeAws_restJson1GetLinkAssociationsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -3991,32 +4643,28 @@ const deserializeAws_restJson1GetLinkAssociationsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetLinksCommand = async ( +export const deserializeAws_restJson1DeleteConnectionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetLinksCommandError(output, context); + return deserializeAws_restJson1DeleteConnectionCommandError(output, context); } - const contents: GetLinksCommandOutput = { + const contents: DeleteConnectionCommandOutput = { $metadata: deserializeMetadata(output), - Links: undefined, - NextToken: undefined, + Connection: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Links !== undefined && data.Links !== null) { - contents.Links = deserializeAws_restJson1LinkList(data.Links, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.Connection !== undefined && data.Connection !== null) { + contents.Connection = deserializeAws_restJson1Connection(data.Connection, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetLinksCommandError = async ( +const deserializeAws_restJson1DeleteConnectionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4033,6 +4681,14 @@ const deserializeAws_restJson1GetLinksCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4082,35 +4738,28 @@ const deserializeAws_restJson1GetLinksCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetNetworkResourceCountsCommand = async ( +export const deserializeAws_restJson1DeleteConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetNetworkResourceCountsCommandError(output, context); + return deserializeAws_restJson1DeleteConnectPeerCommandError(output, context); } - const contents: GetNetworkResourceCountsCommandOutput = { + const contents: DeleteConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), - NetworkResourceCounts: undefined, - NextToken: undefined, + ConnectPeer: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NetworkResourceCounts !== undefined && data.NetworkResourceCounts !== null) { - contents.NetworkResourceCounts = deserializeAws_restJson1NetworkResourceCountList( - data.NetworkResourceCounts, - context - ); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.ConnectPeer !== undefined && data.ConnectPeer !== null) { + contents.ConnectPeer = deserializeAws_restJson1ConnectPeer(data.ConnectPeer, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetNetworkResourceCountsCommandError = async ( +const deserializeAws_restJson1DeleteConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4127,6 +4776,14 @@ const deserializeAws_restJson1GetNetworkResourceCountsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4135,6 +4792,14 @@ const deserializeAws_restJson1GetNetworkResourceCountsCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -4168,32 +4833,28 @@ const deserializeAws_restJson1GetNetworkResourceCountsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetNetworkResourceRelationshipsCommand = async ( +export const deserializeAws_restJson1DeleteCoreNetworkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetNetworkResourceRelationshipsCommandError(output, context); + return deserializeAws_restJson1DeleteCoreNetworkCommandError(output, context); } - const contents: GetNetworkResourceRelationshipsCommandOutput = { + const contents: DeleteCoreNetworkCommandOutput = { $metadata: deserializeMetadata(output), - NextToken: undefined, - Relationships: undefined, + CoreNetwork: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); - } - if (data.Relationships !== undefined && data.Relationships !== null) { - contents.Relationships = deserializeAws_restJson1RelationshipList(data.Relationships, context); + if (data.CoreNetwork !== undefined && data.CoreNetwork !== null) { + contents.CoreNetwork = deserializeAws_restJson1CoreNetwork(data.CoreNetwork, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetNetworkResourceRelationshipsCommandError = async ( +const deserializeAws_restJson1DeleteCoreNetworkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4210,6 +4871,14 @@ const deserializeAws_restJson1GetNetworkResourceRelationshipsCommandError = asyn $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4259,32 +4928,28 @@ const deserializeAws_restJson1GetNetworkResourceRelationshipsCommandError = asyn return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetNetworkResourcesCommand = async ( +export const deserializeAws_restJson1DeleteCoreNetworkPolicyVersionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetNetworkResourcesCommandError(output, context); + return deserializeAws_restJson1DeleteCoreNetworkPolicyVersionCommandError(output, context); } - const contents: GetNetworkResourcesCommandOutput = { + const contents: DeleteCoreNetworkPolicyVersionCommandOutput = { $metadata: deserializeMetadata(output), - NetworkResources: undefined, - NextToken: undefined, + CoreNetworkPolicy: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NetworkResources !== undefined && data.NetworkResources !== null) { - contents.NetworkResources = deserializeAws_restJson1NetworkResourceList(data.NetworkResources, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.CoreNetworkPolicy !== undefined && data.CoreNetworkPolicy !== null) { + contents.CoreNetworkPolicy = deserializeAws_restJson1CoreNetworkPolicy(data.CoreNetworkPolicy, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetNetworkResourcesCommandError = async ( +const deserializeAws_restJson1DeleteCoreNetworkPolicyVersionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4301,6 +4966,14 @@ const deserializeAws_restJson1GetNetworkResourcesCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4350,40 +5023,28 @@ const deserializeAws_restJson1GetNetworkResourcesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetNetworkRoutesCommand = async ( +export const deserializeAws_restJson1DeleteDeviceCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetNetworkRoutesCommandError(output, context); + return deserializeAws_restJson1DeleteDeviceCommandError(output, context); } - const contents: GetNetworkRoutesCommandOutput = { + const contents: DeleteDeviceCommandOutput = { $metadata: deserializeMetadata(output), - NetworkRoutes: undefined, - RouteTableArn: undefined, - RouteTableTimestamp: undefined, - RouteTableType: undefined, + Device: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NetworkRoutes !== undefined && data.NetworkRoutes !== null) { - contents.NetworkRoutes = deserializeAws_restJson1NetworkRouteList(data.NetworkRoutes, context); - } - if (data.RouteTableArn !== undefined && data.RouteTableArn !== null) { - contents.RouteTableArn = __expectString(data.RouteTableArn); - } - if (data.RouteTableTimestamp !== undefined && data.RouteTableTimestamp !== null) { - contents.RouteTableTimestamp = __expectNonNull(__parseEpochTimestamp(__expectNumber(data.RouteTableTimestamp))); - } - if (data.RouteTableType !== undefined && data.RouteTableType !== null) { - contents.RouteTableType = __expectString(data.RouteTableType); + if (data.Device !== undefined && data.Device !== null) { + contents.Device = deserializeAws_restJson1Device(data.Device, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetNetworkRoutesCommandError = async ( +const deserializeAws_restJson1DeleteDeviceCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4400,6 +5061,14 @@ const deserializeAws_restJson1GetNetworkRoutesCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4449,32 +5118,28 @@ const deserializeAws_restJson1GetNetworkRoutesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetNetworkTelemetryCommand = async ( +export const deserializeAws_restJson1DeleteGlobalNetworkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetNetworkTelemetryCommandError(output, context); + return deserializeAws_restJson1DeleteGlobalNetworkCommandError(output, context); } - const contents: GetNetworkTelemetryCommandOutput = { + const contents: DeleteGlobalNetworkCommandOutput = { $metadata: deserializeMetadata(output), - NetworkTelemetry: undefined, - NextToken: undefined, + GlobalNetwork: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NetworkTelemetry !== undefined && data.NetworkTelemetry !== null) { - contents.NetworkTelemetry = deserializeAws_restJson1NetworkTelemetryList(data.NetworkTelemetry, context); - } - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); + if (data.GlobalNetwork !== undefined && data.GlobalNetwork !== null) { + contents.GlobalNetwork = deserializeAws_restJson1GlobalNetwork(data.GlobalNetwork, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetNetworkTelemetryCommandError = async ( +const deserializeAws_restJson1DeleteGlobalNetworkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4491,6 +5156,14 @@ const deserializeAws_restJson1GetNetworkTelemetryCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4540,28 +5213,28 @@ const deserializeAws_restJson1GetNetworkTelemetryCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetRouteAnalysisCommand = async ( +export const deserializeAws_restJson1DeleteLinkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetRouteAnalysisCommandError(output, context); + return deserializeAws_restJson1DeleteLinkCommandError(output, context); } - const contents: GetRouteAnalysisCommandOutput = { + const contents: DeleteLinkCommandOutput = { $metadata: deserializeMetadata(output), - RouteAnalysis: undefined, + Link: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.RouteAnalysis !== undefined && data.RouteAnalysis !== null) { - contents.RouteAnalysis = deserializeAws_restJson1RouteAnalysis(data.RouteAnalysis, context); + if (data.Link !== undefined && data.Link !== null) { + contents.Link = deserializeAws_restJson1Link(data.Link, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetRouteAnalysisCommandError = async ( +const deserializeAws_restJson1DeleteLinkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4578,6 +5251,14 @@ const deserializeAws_restJson1GetRouteAnalysisCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4627,32 +5308,24 @@ const deserializeAws_restJson1GetRouteAnalysisCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetSitesCommand = async ( +export const deserializeAws_restJson1DeleteResourcePolicyCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetSitesCommandError(output, context); + return deserializeAws_restJson1DeleteResourcePolicyCommandError(output, context); } - const contents: GetSitesCommandOutput = { + const contents: DeleteResourcePolicyCommandOutput = { $metadata: deserializeMetadata(output), - NextToken: undefined, - Sites: undefined, }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); - } - if (data.Sites !== undefined && data.Sites !== null) { - contents.Sites = deserializeAws_restJson1SiteList(data.Sites, context); - } + await collectBody(output.body, context); return Promise.resolve(contents); }; -const deserializeAws_restJson1GetSitesCommandError = async ( +const deserializeAws_restJson1DeleteResourcePolicyCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4669,6 +5342,14 @@ const deserializeAws_restJson1GetSitesCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4677,14 +5358,6 @@ const deserializeAws_restJson1GetSitesCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ResourceNotFoundException": - case "com.amazonaws.networkmanager#ResourceNotFoundException": - response = { - ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -4718,35 +5391,28 @@ const deserializeAws_restJson1GetSitesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommand = async ( +export const deserializeAws_restJson1DeleteSiteCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommandError(output, context); + return deserializeAws_restJson1DeleteSiteCommandError(output, context); } - const contents: GetTransitGatewayConnectPeerAssociationsCommandOutput = { + const contents: DeleteSiteCommandOutput = { $metadata: deserializeMetadata(output), - NextToken: undefined, - TransitGatewayConnectPeerAssociations: undefined, + Site: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); - } - if (data.TransitGatewayConnectPeerAssociations !== undefined && data.TransitGatewayConnectPeerAssociations !== null) { - contents.TransitGatewayConnectPeerAssociations = deserializeAws_restJson1TransitGatewayConnectPeerAssociationList( - data.TransitGatewayConnectPeerAssociations, - context - ); + if (data.Site !== undefined && data.Site !== null) { + contents.Site = deserializeAws_restJson1Site(data.Site, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommandError = async ( +const deserializeAws_restJson1DeleteSiteCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4820,35 +5486,31 @@ const deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommandErr return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1GetTransitGatewayRegistrationsCommand = async ( +export const deserializeAws_restJson1DeregisterTransitGatewayCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1GetTransitGatewayRegistrationsCommandError(output, context); + return deserializeAws_restJson1DeregisterTransitGatewayCommandError(output, context); } - const contents: GetTransitGatewayRegistrationsCommandOutput = { + const contents: DeregisterTransitGatewayCommandOutput = { $metadata: deserializeMetadata(output), - NextToken: undefined, - TransitGatewayRegistrations: undefined, + TransitGatewayRegistration: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.NextToken !== undefined && data.NextToken !== null) { - contents.NextToken = __expectString(data.NextToken); - } - if (data.TransitGatewayRegistrations !== undefined && data.TransitGatewayRegistrations !== null) { - contents.TransitGatewayRegistrations = deserializeAws_restJson1TransitGatewayRegistrationList( - data.TransitGatewayRegistrations, + if (data.TransitGatewayRegistration !== undefined && data.TransitGatewayRegistration !== null) { + contents.TransitGatewayRegistration = deserializeAws_restJson1TransitGatewayRegistration( + data.TransitGatewayRegistration, context ); } return Promise.resolve(contents); }; -const deserializeAws_restJson1GetTransitGatewayRegistrationsCommandError = async ( +const deserializeAws_restJson1DeregisterTransitGatewayCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -4865,6 +5527,14 @@ const deserializeAws_restJson1GetTransitGatewayRegistrationsCommandError = async $metadata: deserializeMetadata(output), }; break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -4914,28 +5584,32 @@ const deserializeAws_restJson1GetTransitGatewayRegistrationsCommandError = async return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1ListTagsForResourceCommand = async ( +export const deserializeAws_restJson1DescribeGlobalNetworksCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + return deserializeAws_restJson1DescribeGlobalNetworksCommandError(output, context); } - const contents: ListTagsForResourceCommandOutput = { + const contents: DescribeGlobalNetworksCommandOutput = { $metadata: deserializeMetadata(output), - TagList: undefined, + GlobalNetworks: undefined, + NextToken: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.TagList !== undefined && data.TagList !== null) { - contents.TagList = deserializeAws_restJson1TagList(data.TagList, context); + if (data.GlobalNetworks !== undefined && data.GlobalNetworks !== null) { + contents.GlobalNetworks = deserializeAws_restJson1GlobalNetworkList(data.GlobalNetworks, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); } return Promise.resolve(contents); }; -const deserializeAws_restJson1ListTagsForResourceCommandError = async ( +const deserializeAws_restJson1DescribeGlobalNetworksCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5001,31 +5675,31 @@ const deserializeAws_restJson1ListTagsForResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1RegisterTransitGatewayCommand = async ( +export const deserializeAws_restJson1DisassociateConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1RegisterTransitGatewayCommandError(output, context); + return deserializeAws_restJson1DisassociateConnectPeerCommandError(output, context); } - const contents: RegisterTransitGatewayCommandOutput = { + const contents: DisassociateConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), - TransitGatewayRegistration: undefined, + ConnectPeerAssociation: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.TransitGatewayRegistration !== undefined && data.TransitGatewayRegistration !== null) { - contents.TransitGatewayRegistration = deserializeAws_restJson1TransitGatewayRegistration( - data.TransitGatewayRegistration, + if (data.ConnectPeerAssociation !== undefined && data.ConnectPeerAssociation !== null) { + contents.ConnectPeerAssociation = deserializeAws_restJson1ConnectPeerAssociation( + data.ConnectPeerAssociation, context ); } return Promise.resolve(contents); }; -const deserializeAws_restJson1RegisterTransitGatewayCommandError = async ( +const deserializeAws_restJson1DisassociateConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5099,28 +5773,31 @@ const deserializeAws_restJson1RegisterTransitGatewayCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1StartRouteAnalysisCommand = async ( +export const deserializeAws_restJson1DisassociateCustomerGatewayCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1StartRouteAnalysisCommandError(output, context); + return deserializeAws_restJson1DisassociateCustomerGatewayCommandError(output, context); } - const contents: StartRouteAnalysisCommandOutput = { + const contents: DisassociateCustomerGatewayCommandOutput = { $metadata: deserializeMetadata(output), - RouteAnalysis: undefined, + CustomerGatewayAssociation: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.RouteAnalysis !== undefined && data.RouteAnalysis !== null) { - contents.RouteAnalysis = deserializeAws_restJson1RouteAnalysis(data.RouteAnalysis, context); + if (data.CustomerGatewayAssociation !== undefined && data.CustomerGatewayAssociation !== null) { + contents.CustomerGatewayAssociation = deserializeAws_restJson1CustomerGatewayAssociation( + data.CustomerGatewayAssociation, + context + ); } return Promise.resolve(contents); }; -const deserializeAws_restJson1StartRouteAnalysisCommandError = async ( +const deserializeAws_restJson1DisassociateCustomerGatewayCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5194,24 +5871,28 @@ const deserializeAws_restJson1StartRouteAnalysisCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1TagResourceCommand = async ( +export const deserializeAws_restJson1DisassociateLinkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1TagResourceCommandError(output, context); + return deserializeAws_restJson1DisassociateLinkCommandError(output, context); } - const contents: TagResourceCommandOutput = { + const contents: DisassociateLinkCommandOutput = { $metadata: deserializeMetadata(output), + LinkAssociation: undefined, }; - await collectBody(output.body, context); + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.LinkAssociation !== undefined && data.LinkAssociation !== null) { + contents.LinkAssociation = deserializeAws_restJson1LinkAssociation(data.LinkAssociation, context); + } return Promise.resolve(contents); }; -const deserializeAws_restJson1TagResourceCommandError = async ( +const deserializeAws_restJson1DisassociateLinkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5252,14 +5933,6 @@ const deserializeAws_restJson1TagResourceCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -5293,24 +5966,31 @@ const deserializeAws_restJson1TagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UntagResourceCommand = async ( +export const deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UntagResourceCommandError(output, context); + return deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommandError(output, context); } - const contents: UntagResourceCommandOutput = { + const contents: DisassociateTransitGatewayConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), + TransitGatewayConnectPeerAssociation: undefined, }; - await collectBody(output.body, context); + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.TransitGatewayConnectPeerAssociation !== undefined && data.TransitGatewayConnectPeerAssociation !== null) { + contents.TransitGatewayConnectPeerAssociation = deserializeAws_restJson1TransitGatewayConnectPeerAssociation( + data.TransitGatewayConnectPeerAssociation, + context + ); + } return Promise.resolve(contents); }; -const deserializeAws_restJson1UntagResourceCommandError = async ( +const deserializeAws_restJson1DisassociateTransitGatewayConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5384,28 +6064,24 @@ const deserializeAws_restJson1UntagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UpdateConnectionCommand = async ( +export const deserializeAws_restJson1ExecuteCoreNetworkChangeSetCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UpdateConnectionCommandError(output, context); + return deserializeAws_restJson1ExecuteCoreNetworkChangeSetCommandError(output, context); } - const contents: UpdateConnectionCommandOutput = { + const contents: ExecuteCoreNetworkChangeSetCommandOutput = { $metadata: deserializeMetadata(output), - Connection: undefined, }; - const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Connection !== undefined && data.Connection !== null) { - contents.Connection = deserializeAws_restJson1Connection(data.Connection, context); - } + await collectBody(output.body, context); return Promise.resolve(contents); }; -const deserializeAws_restJson1UpdateConnectionCommandError = async ( +const deserializeAws_restJson1ExecuteCoreNetworkChangeSetCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5479,28 +6155,28 @@ const deserializeAws_restJson1UpdateConnectionCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UpdateDeviceCommand = async ( +export const deserializeAws_restJson1GetConnectAttachmentCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UpdateDeviceCommandError(output, context); + return deserializeAws_restJson1GetConnectAttachmentCommandError(output, context); } - const contents: UpdateDeviceCommandOutput = { + const contents: GetConnectAttachmentCommandOutput = { $metadata: deserializeMetadata(output), - Device: undefined, + ConnectAttachment: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Device !== undefined && data.Device !== null) { - contents.Device = deserializeAws_restJson1Device(data.Device, context); + if (data.ConnectAttachment !== undefined && data.ConnectAttachment !== null) { + contents.ConnectAttachment = deserializeAws_restJson1ConnectAttachment(data.ConnectAttachment, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1UpdateDeviceCommandError = async ( +const deserializeAws_restJson1GetConnectAttachmentCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5517,14 +6193,6 @@ const deserializeAws_restJson1UpdateDeviceCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -5574,28 +6242,32 @@ const deserializeAws_restJson1UpdateDeviceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UpdateGlobalNetworkCommand = async ( +export const deserializeAws_restJson1GetConnectionsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UpdateGlobalNetworkCommandError(output, context); + return deserializeAws_restJson1GetConnectionsCommandError(output, context); } - const contents: UpdateGlobalNetworkCommandOutput = { + const contents: GetConnectionsCommandOutput = { $metadata: deserializeMetadata(output), - GlobalNetwork: undefined, + Connections: undefined, + NextToken: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.GlobalNetwork !== undefined && data.GlobalNetwork !== null) { - contents.GlobalNetwork = deserializeAws_restJson1GlobalNetwork(data.GlobalNetwork, context); + if (data.Connections !== undefined && data.Connections !== null) { + contents.Connections = deserializeAws_restJson1ConnectionList(data.Connections, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); } return Promise.resolve(contents); }; -const deserializeAws_restJson1UpdateGlobalNetworkCommandError = async ( +const deserializeAws_restJson1GetConnectionsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5612,14 +6284,6 @@ const deserializeAws_restJson1UpdateGlobalNetworkCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -5669,28 +6333,28 @@ const deserializeAws_restJson1UpdateGlobalNetworkCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UpdateLinkCommand = async ( +export const deserializeAws_restJson1GetConnectPeerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UpdateLinkCommandError(output, context); + return deserializeAws_restJson1GetConnectPeerCommandError(output, context); } - const contents: UpdateLinkCommandOutput = { + const contents: GetConnectPeerCommandOutput = { $metadata: deserializeMetadata(output), - Link: undefined, + ConnectPeer: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Link !== undefined && data.Link !== null) { - contents.Link = deserializeAws_restJson1Link(data.Link, context); + if (data.ConnectPeer !== undefined && data.ConnectPeer !== null) { + contents.ConnectPeer = deserializeAws_restJson1ConnectPeer(data.ConnectPeer, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1UpdateLinkCommandError = async ( +const deserializeAws_restJson1GetConnectPeerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5707,14 +6371,6 @@ const deserializeAws_restJson1UpdateLinkCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": - response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "InternalServerException": case "com.amazonaws.networkmanager#InternalServerException": response = { @@ -5731,14 +6387,6 @@ const deserializeAws_restJson1UpdateLinkCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ServiceQuotaExceededException": - case "com.amazonaws.networkmanager#ServiceQuotaExceededException": - response = { - ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), - name: errorCode, - $metadata: deserializeMetadata(output), - }; - break; case "ThrottlingException": case "com.amazonaws.networkmanager#ThrottlingException": response = { @@ -5772,32 +6420,35 @@ const deserializeAws_restJson1UpdateLinkCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UpdateNetworkResourceMetadataCommand = async ( +export const deserializeAws_restJson1GetConnectPeerAssociationsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UpdateNetworkResourceMetadataCommandError(output, context); + return deserializeAws_restJson1GetConnectPeerAssociationsCommandError(output, context); } - const contents: UpdateNetworkResourceMetadataCommandOutput = { + const contents: GetConnectPeerAssociationsCommandOutput = { $metadata: deserializeMetadata(output), - Metadata: undefined, - ResourceArn: undefined, + ConnectPeerAssociations: undefined, + NextToken: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Metadata !== undefined && data.Metadata !== null) { - contents.Metadata = deserializeAws_restJson1NetworkResourceMetadataMap(data.Metadata, context); + if (data.ConnectPeerAssociations !== undefined && data.ConnectPeerAssociations !== null) { + contents.ConnectPeerAssociations = deserializeAws_restJson1ConnectPeerAssociationList( + data.ConnectPeerAssociations, + context + ); } - if (data.ResourceArn !== undefined && data.ResourceArn !== null) { - contents.ResourceArn = __expectString(data.ResourceArn); + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); } return Promise.resolve(contents); }; -const deserializeAws_restJson1UpdateNetworkResourceMetadataCommandError = async ( +const deserializeAws_restJson1GetConnectPeerAssociationsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5871,28 +6522,28 @@ const deserializeAws_restJson1UpdateNetworkResourceMetadataCommandError = async return Promise.reject(Object.assign(new Error(message), response)); }; -export const deserializeAws_restJson1UpdateSiteCommand = async ( +export const deserializeAws_restJson1GetCoreNetworkCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return deserializeAws_restJson1UpdateSiteCommandError(output, context); + return deserializeAws_restJson1GetCoreNetworkCommandError(output, context); } - const contents: UpdateSiteCommandOutput = { + const contents: GetCoreNetworkCommandOutput = { $metadata: deserializeMetadata(output), - Site: undefined, + CoreNetwork: undefined, }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - if (data.Site !== undefined && data.Site !== null) { - contents.Site = deserializeAws_restJson1Site(data.Site, context); + if (data.CoreNetwork !== undefined && data.CoreNetwork !== null) { + contents.CoreNetwork = deserializeAws_restJson1CoreNetwork(data.CoreNetwork, context); } return Promise.resolve(contents); }; -const deserializeAws_restJson1UpdateSiteCommandError = async ( +const deserializeAws_restJson1GetCoreNetworkCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -5909,10 +6560,180 @@ const deserializeAws_restJson1UpdateSiteCommandError = async ( $metadata: deserializeMetadata(output), }; break; - case "ConflictException": - case "com.amazonaws.networkmanager#ConflictException": + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": response = { - ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetCoreNetworkChangeSetCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetCoreNetworkChangeSetCommandError(output, context); + } + const contents: GetCoreNetworkChangeSetCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworkChanges: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworkChanges !== undefined && data.CoreNetworkChanges !== null) { + contents.CoreNetworkChanges = deserializeAws_restJson1CoreNetworkChangeList(data.CoreNetworkChanges, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetCoreNetworkChangeSetCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetCoreNetworkPolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetCoreNetworkPolicyCommandError(output, context); + } + const contents: GetCoreNetworkPolicyCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworkPolicy: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworkPolicy !== undefined && data.CoreNetworkPolicy !== null) { + contents.CoreNetworkPolicy = deserializeAws_restJson1CoreNetworkPolicy(data.CoreNetworkPolicy, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetCoreNetworkPolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), name: errorCode, $metadata: deserializeMetadata(output), }; @@ -5966,334 +6787,4293 @@ const deserializeAws_restJson1UpdateSiteCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; -const deserializeAws_restJson1AccessDeniedExceptionResponse = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: AccessDeniedException = { - name: "AccessDeniedException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - Message: undefined, - }; - const data: any = parsedOutput.body; - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - return contents; +export const deserializeAws_restJson1GetCustomerGatewayAssociationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetCustomerGatewayAssociationsCommandError(output, context); + } + const contents: GetCustomerGatewayAssociationsCommandOutput = { + $metadata: deserializeMetadata(output), + CustomerGatewayAssociations: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CustomerGatewayAssociations !== undefined && data.CustomerGatewayAssociations !== null) { + contents.CustomerGatewayAssociations = deserializeAws_restJson1CustomerGatewayAssociationList( + data.CustomerGatewayAssociations, + context + ); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetCustomerGatewayAssociationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetDevicesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetDevicesCommandError(output, context); + } + const contents: GetDevicesCommandOutput = { + $metadata: deserializeMetadata(output), + Devices: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Devices !== undefined && data.Devices !== null) { + contents.Devices = deserializeAws_restJson1DeviceList(data.Devices, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetDevicesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetLinkAssociationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetLinkAssociationsCommandError(output, context); + } + const contents: GetLinkAssociationsCommandOutput = { + $metadata: deserializeMetadata(output), + LinkAssociations: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.LinkAssociations !== undefined && data.LinkAssociations !== null) { + contents.LinkAssociations = deserializeAws_restJson1LinkAssociationList(data.LinkAssociations, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetLinkAssociationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetLinksCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetLinksCommandError(output, context); + } + const contents: GetLinksCommandOutput = { + $metadata: deserializeMetadata(output), + Links: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Links !== undefined && data.Links !== null) { + contents.Links = deserializeAws_restJson1LinkList(data.Links, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetLinksCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetNetworkResourceCountsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetNetworkResourceCountsCommandError(output, context); + } + const contents: GetNetworkResourceCountsCommandOutput = { + $metadata: deserializeMetadata(output), + NetworkResourceCounts: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NetworkResourceCounts !== undefined && data.NetworkResourceCounts !== null) { + contents.NetworkResourceCounts = deserializeAws_restJson1NetworkResourceCountList( + data.NetworkResourceCounts, + context + ); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetNetworkResourceCountsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetNetworkResourceRelationshipsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetNetworkResourceRelationshipsCommandError(output, context); + } + const contents: GetNetworkResourceRelationshipsCommandOutput = { + $metadata: deserializeMetadata(output), + NextToken: undefined, + Relationships: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + if (data.Relationships !== undefined && data.Relationships !== null) { + contents.Relationships = deserializeAws_restJson1RelationshipList(data.Relationships, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetNetworkResourceRelationshipsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetNetworkResourcesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetNetworkResourcesCommandError(output, context); + } + const contents: GetNetworkResourcesCommandOutput = { + $metadata: deserializeMetadata(output), + NetworkResources: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NetworkResources !== undefined && data.NetworkResources !== null) { + contents.NetworkResources = deserializeAws_restJson1NetworkResourceList(data.NetworkResources, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetNetworkResourcesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetNetworkRoutesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetNetworkRoutesCommandError(output, context); + } + const contents: GetNetworkRoutesCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworkSegmentEdge: undefined, + NetworkRoutes: undefined, + RouteTableArn: undefined, + RouteTableTimestamp: undefined, + RouteTableType: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworkSegmentEdge !== undefined && data.CoreNetworkSegmentEdge !== null) { + contents.CoreNetworkSegmentEdge = deserializeAws_restJson1CoreNetworkSegmentEdgeIdentifier( + data.CoreNetworkSegmentEdge, + context + ); + } + if (data.NetworkRoutes !== undefined && data.NetworkRoutes !== null) { + contents.NetworkRoutes = deserializeAws_restJson1NetworkRouteList(data.NetworkRoutes, context); + } + if (data.RouteTableArn !== undefined && data.RouteTableArn !== null) { + contents.RouteTableArn = __expectString(data.RouteTableArn); + } + if (data.RouteTableTimestamp !== undefined && data.RouteTableTimestamp !== null) { + contents.RouteTableTimestamp = __expectNonNull(__parseEpochTimestamp(__expectNumber(data.RouteTableTimestamp))); + } + if (data.RouteTableType !== undefined && data.RouteTableType !== null) { + contents.RouteTableType = __expectString(data.RouteTableType); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetNetworkRoutesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetNetworkTelemetryCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetNetworkTelemetryCommandError(output, context); + } + const contents: GetNetworkTelemetryCommandOutput = { + $metadata: deserializeMetadata(output), + NetworkTelemetry: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NetworkTelemetry !== undefined && data.NetworkTelemetry !== null) { + contents.NetworkTelemetry = deserializeAws_restJson1NetworkTelemetryList(data.NetworkTelemetry, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetNetworkTelemetryCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetResourcePolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetResourcePolicyCommandError(output, context); + } + const contents: GetResourcePolicyCommandOutput = { + $metadata: deserializeMetadata(output), + PolicyDocument: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.PolicyDocument !== undefined && data.PolicyDocument !== null) { + contents.PolicyDocument = new __LazyJsonString(data.PolicyDocument); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetResourcePolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetRouteAnalysisCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetRouteAnalysisCommandError(output, context); + } + const contents: GetRouteAnalysisCommandOutput = { + $metadata: deserializeMetadata(output), + RouteAnalysis: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.RouteAnalysis !== undefined && data.RouteAnalysis !== null) { + contents.RouteAnalysis = deserializeAws_restJson1RouteAnalysis(data.RouteAnalysis, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetRouteAnalysisCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetSitesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetSitesCommandError(output, context); + } + const contents: GetSitesCommandOutput = { + $metadata: deserializeMetadata(output), + NextToken: undefined, + Sites: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + if (data.Sites !== undefined && data.Sites !== null) { + contents.Sites = deserializeAws_restJson1SiteList(data.Sites, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetSitesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetSiteToSiteVpnAttachmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetSiteToSiteVpnAttachmentCommandError(output, context); + } + const contents: GetSiteToSiteVpnAttachmentCommandOutput = { + $metadata: deserializeMetadata(output), + SiteToSiteVpnAttachment: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.SiteToSiteVpnAttachment !== undefined && data.SiteToSiteVpnAttachment !== null) { + contents.SiteToSiteVpnAttachment = deserializeAws_restJson1SiteToSiteVpnAttachment( + data.SiteToSiteVpnAttachment, + context + ); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetSiteToSiteVpnAttachmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommandError(output, context); + } + const contents: GetTransitGatewayConnectPeerAssociationsCommandOutput = { + $metadata: deserializeMetadata(output), + NextToken: undefined, + TransitGatewayConnectPeerAssociations: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + if (data.TransitGatewayConnectPeerAssociations !== undefined && data.TransitGatewayConnectPeerAssociations !== null) { + contents.TransitGatewayConnectPeerAssociations = deserializeAws_restJson1TransitGatewayConnectPeerAssociationList( + data.TransitGatewayConnectPeerAssociations, + context + ); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetTransitGatewayConnectPeerAssociationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetTransitGatewayRegistrationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetTransitGatewayRegistrationsCommandError(output, context); + } + const contents: GetTransitGatewayRegistrationsCommandOutput = { + $metadata: deserializeMetadata(output), + NextToken: undefined, + TransitGatewayRegistrations: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + if (data.TransitGatewayRegistrations !== undefined && data.TransitGatewayRegistrations !== null) { + contents.TransitGatewayRegistrations = deserializeAws_restJson1TransitGatewayRegistrationList( + data.TransitGatewayRegistrations, + context + ); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetTransitGatewayRegistrationsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1GetVpcAttachmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1GetVpcAttachmentCommandError(output, context); + } + const contents: GetVpcAttachmentCommandOutput = { + $metadata: deserializeMetadata(output), + VpcAttachment: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.VpcAttachment !== undefined && data.VpcAttachment !== null) { + contents.VpcAttachment = deserializeAws_restJson1VpcAttachment(data.VpcAttachment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1GetVpcAttachmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListAttachmentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListAttachmentsCommandError(output, context); + } + const contents: ListAttachmentsCommandOutput = { + $metadata: deserializeMetadata(output), + Attachments: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Attachments !== undefined && data.Attachments !== null) { + contents.Attachments = deserializeAws_restJson1AttachmentList(data.Attachments, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListAttachmentsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListConnectPeersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListConnectPeersCommandError(output, context); + } + const contents: ListConnectPeersCommandOutput = { + $metadata: deserializeMetadata(output), + ConnectPeers: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.ConnectPeers !== undefined && data.ConnectPeers !== null) { + contents.ConnectPeers = deserializeAws_restJson1ConnectPeerSummaryList(data.ConnectPeers, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListConnectPeersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListCoreNetworkPolicyVersionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListCoreNetworkPolicyVersionsCommandError(output, context); + } + const contents: ListCoreNetworkPolicyVersionsCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworkPolicyVersions: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworkPolicyVersions !== undefined && data.CoreNetworkPolicyVersions !== null) { + contents.CoreNetworkPolicyVersions = deserializeAws_restJson1CoreNetworkPolicyVersionList( + data.CoreNetworkPolicyVersions, + context + ); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListCoreNetworkPolicyVersionsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListCoreNetworksCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListCoreNetworksCommandError(output, context); + } + const contents: ListCoreNetworksCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworks: undefined, + NextToken: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworks !== undefined && data.CoreNetworks !== null) { + contents.CoreNetworks = deserializeAws_restJson1CoreNetworkSummaryList(data.CoreNetworks, context); + } + if (data.NextToken !== undefined && data.NextToken !== null) { + contents.NextToken = __expectString(data.NextToken); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListCoreNetworksCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + } + const contents: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + TagList: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.TagList !== undefined && data.TagList !== null) { + contents.TagList = deserializeAws_restJson1TagList(data.TagList, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1PutCoreNetworkPolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1PutCoreNetworkPolicyCommandError(output, context); + } + const contents: PutCoreNetworkPolicyCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworkPolicy: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworkPolicy !== undefined && data.CoreNetworkPolicy !== null) { + contents.CoreNetworkPolicy = deserializeAws_restJson1CoreNetworkPolicy(data.CoreNetworkPolicy, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1PutCoreNetworkPolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "CoreNetworkPolicyException": + case "com.amazonaws.networkmanager#CoreNetworkPolicyException": + response = { + ...(await deserializeAws_restJson1CoreNetworkPolicyExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1PutResourcePolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1PutResourcePolicyCommandError(output, context); + } + const contents: PutResourcePolicyCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1PutResourcePolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1RegisterTransitGatewayCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1RegisterTransitGatewayCommandError(output, context); + } + const contents: RegisterTransitGatewayCommandOutput = { + $metadata: deserializeMetadata(output), + TransitGatewayRegistration: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.TransitGatewayRegistration !== undefined && data.TransitGatewayRegistration !== null) { + contents.TransitGatewayRegistration = deserializeAws_restJson1TransitGatewayRegistration( + data.TransitGatewayRegistration, + context + ); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1RegisterTransitGatewayCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1RejectAttachmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1RejectAttachmentCommandError(output, context); + } + const contents: RejectAttachmentCommandOutput = { + $metadata: deserializeMetadata(output), + Attachment: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Attachment !== undefined && data.Attachment !== null) { + contents.Attachment = deserializeAws_restJson1Attachment(data.Attachment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1RejectAttachmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1RestoreCoreNetworkPolicyVersionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1RestoreCoreNetworkPolicyVersionCommandError(output, context); + } + const contents: RestoreCoreNetworkPolicyVersionCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetworkPolicy: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetworkPolicy !== undefined && data.CoreNetworkPolicy !== null) { + contents.CoreNetworkPolicy = deserializeAws_restJson1CoreNetworkPolicy(data.CoreNetworkPolicy, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1RestoreCoreNetworkPolicyVersionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1StartRouteAnalysisCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1StartRouteAnalysisCommandError(output, context); + } + const contents: StartRouteAnalysisCommandOutput = { + $metadata: deserializeMetadata(output), + RouteAnalysis: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.RouteAnalysis !== undefined && data.RouteAnalysis !== null) { + contents.RouteAnalysis = deserializeAws_restJson1RouteAnalysis(data.RouteAnalysis, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1StartRouteAnalysisCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1TagResourceCommandError(output, context); + } + const contents: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UntagResourceCommandError(output, context); + } + const contents: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateConnectionCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateConnectionCommandError(output, context); + } + const contents: UpdateConnectionCommandOutput = { + $metadata: deserializeMetadata(output), + Connection: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Connection !== undefined && data.Connection !== null) { + contents.Connection = deserializeAws_restJson1Connection(data.Connection, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateConnectionCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateCoreNetworkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateCoreNetworkCommandError(output, context); + } + const contents: UpdateCoreNetworkCommandOutput = { + $metadata: deserializeMetadata(output), + CoreNetwork: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.CoreNetwork !== undefined && data.CoreNetwork !== null) { + contents.CoreNetwork = deserializeAws_restJson1CoreNetwork(data.CoreNetwork, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateCoreNetworkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateDeviceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateDeviceCommandError(output, context); + } + const contents: UpdateDeviceCommandOutput = { + $metadata: deserializeMetadata(output), + Device: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Device !== undefined && data.Device !== null) { + contents.Device = deserializeAws_restJson1Device(data.Device, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateDeviceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateGlobalNetworkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateGlobalNetworkCommandError(output, context); + } + const contents: UpdateGlobalNetworkCommandOutput = { + $metadata: deserializeMetadata(output), + GlobalNetwork: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.GlobalNetwork !== undefined && data.GlobalNetwork !== null) { + contents.GlobalNetwork = deserializeAws_restJson1GlobalNetwork(data.GlobalNetwork, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateGlobalNetworkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateLinkCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateLinkCommandError(output, context); + } + const contents: UpdateLinkCommandOutput = { + $metadata: deserializeMetadata(output), + Link: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Link !== undefined && data.Link !== null) { + contents.Link = deserializeAws_restJson1Link(data.Link, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateLinkCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.networkmanager#ServiceQuotaExceededException": + response = { + ...(await deserializeAws_restJson1ServiceQuotaExceededExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateNetworkResourceMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateNetworkResourceMetadataCommandError(output, context); + } + const contents: UpdateNetworkResourceMetadataCommandOutput = { + $metadata: deserializeMetadata(output), + Metadata: undefined, + ResourceArn: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Metadata !== undefined && data.Metadata !== null) { + contents.Metadata = deserializeAws_restJson1NetworkResourceMetadataMap(data.Metadata, context); + } + if (data.ResourceArn !== undefined && data.ResourceArn !== null) { + contents.ResourceArn = __expectString(data.ResourceArn); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateNetworkResourceMetadataCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateSiteCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateSiteCommandError(output, context); + } + const contents: UpdateSiteCommandOutput = { + $metadata: deserializeMetadata(output), + Site: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Site !== undefined && data.Site !== null) { + contents.Site = deserializeAws_restJson1Site(data.Site, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateSiteCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UpdateVpcAttachmentCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateVpcAttachmentCommandError(output, context); + } + const contents: UpdateVpcAttachmentCommandOutput = { + $metadata: deserializeMetadata(output), + VpcAttachment: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.VpcAttachment !== undefined && data.VpcAttachment !== null) { + contents.VpcAttachment = deserializeAws_restJson1VpcAttachment(data.VpcAttachment, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateVpcAttachmentCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.networkmanager#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.networkmanager#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.networkmanager#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.networkmanager#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ThrottlingException": + case "com.amazonaws.networkmanager#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.networkmanager#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +const deserializeAws_restJson1AccessDeniedExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: AccessDeniedException = { + name: "AccessDeniedException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + return contents; +}; + +const deserializeAws_restJson1ConflictExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ConflictException = { + name: "ConflictException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + ResourceId: undefined, + ResourceType: undefined, + }; + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + if (data.ResourceId !== undefined && data.ResourceId !== null) { + contents.ResourceId = __expectString(data.ResourceId); + } + if (data.ResourceType !== undefined && data.ResourceType !== null) { + contents.ResourceType = __expectString(data.ResourceType); + } + return contents; +}; + +const deserializeAws_restJson1CoreNetworkPolicyExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: CoreNetworkPolicyException = { + name: "CoreNetworkPolicyException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Errors: undefined, + Message: undefined, + }; + const data: any = parsedOutput.body; + if (data.Errors !== undefined && data.Errors !== null) { + contents.Errors = deserializeAws_restJson1CoreNetworkPolicyErrorList(data.Errors, context); + } + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + return contents; +}; + +const deserializeAws_restJson1InternalServerExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: InternalServerException = { + name: "InternalServerException", + $fault: "server", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + RetryAfterSeconds: undefined, + }; + if (parsedOutput.headers["retry-after"] !== undefined) { + contents.RetryAfterSeconds = __strictParseInt32(parsedOutput.headers["retry-after"]); + } + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + return contents; +}; + +const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotFoundException = { + name: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Context: undefined, + Message: undefined, + ResourceId: undefined, + ResourceType: undefined, + }; + const data: any = parsedOutput.body; + if (data.Context !== undefined && data.Context !== null) { + contents.Context = deserializeAws_restJson1ExceptionContextMap(data.Context, context); + } + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + if (data.ResourceId !== undefined && data.ResourceId !== null) { + contents.ResourceId = __expectString(data.ResourceId); + } + if (data.ResourceType !== undefined && data.ResourceType !== null) { + contents.ResourceType = __expectString(data.ResourceType); + } + return contents; +}; + +const deserializeAws_restJson1ServiceQuotaExceededExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ServiceQuotaExceededException = { + name: "ServiceQuotaExceededException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + LimitCode: undefined, + Message: undefined, + ResourceId: undefined, + ResourceType: undefined, + ServiceCode: undefined, + }; + const data: any = parsedOutput.body; + if (data.LimitCode !== undefined && data.LimitCode !== null) { + contents.LimitCode = __expectString(data.LimitCode); + } + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + if (data.ResourceId !== undefined && data.ResourceId !== null) { + contents.ResourceId = __expectString(data.ResourceId); + } + if (data.ResourceType !== undefined && data.ResourceType !== null) { + contents.ResourceType = __expectString(data.ResourceType); + } + if (data.ServiceCode !== undefined && data.ServiceCode !== null) { + contents.ServiceCode = __expectString(data.ServiceCode); + } + return contents; +}; + +const deserializeAws_restJson1ThrottlingExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ThrottlingException = { + name: "ThrottlingException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Message: undefined, + RetryAfterSeconds: undefined, + }; + if (parsedOutput.headers["retry-after"] !== undefined) { + contents.RetryAfterSeconds = __strictParseInt32(parsedOutput.headers["retry-after"]); + } + const data: any = parsedOutput.body; + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + return contents; +}; + +const deserializeAws_restJson1ValidationExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ValidationException = { + name: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + Fields: undefined, + Message: undefined, + Reason: undefined, + }; + const data: any = parsedOutput.body; + if (data.Fields !== undefined && data.Fields !== null) { + contents.Fields = deserializeAws_restJson1ValidationExceptionFieldList(data.Fields, context); + } + if (data.Message !== undefined && data.Message !== null) { + contents.Message = __expectString(data.Message); + } + if (data.Reason !== undefined && data.Reason !== null) { + contents.Reason = __expectString(data.Reason); + } + return contents; +}; + +const serializeAws_restJson1AWSLocation = (input: AWSLocation, context: __SerdeContext): any => { + return { + ...(input.SubnetArn !== undefined && input.SubnetArn !== null && { SubnetArn: input.SubnetArn }), + ...(input.Zone !== undefined && input.Zone !== null && { Zone: input.Zone }), + }; +}; + +const serializeAws_restJson1Bandwidth = (input: Bandwidth, context: __SerdeContext): any => { + return { + ...(input.DownloadSpeed !== undefined && input.DownloadSpeed !== null && { DownloadSpeed: input.DownloadSpeed }), + ...(input.UploadSpeed !== undefined && input.UploadSpeed !== null && { UploadSpeed: input.UploadSpeed }), + }; +}; + +const serializeAws_restJson1BgpOptions = (input: BgpOptions, context: __SerdeContext): any => { + return { + ...(input.PeerAsn !== undefined && input.PeerAsn !== null && { PeerAsn: input.PeerAsn }), + }; +}; + +const serializeAws_restJson1ConnectAttachmentOptions = ( + input: ConnectAttachmentOptions, + context: __SerdeContext +): any => { + return { + ...(input.Protocol !== undefined && input.Protocol !== null && { Protocol: input.Protocol }), + }; +}; + +const serializeAws_restJson1ConstrainedStringList = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1CoreNetworkSegmentEdgeIdentifier = ( + input: CoreNetworkSegmentEdgeIdentifier, + context: __SerdeContext +): any => { + return { + ...(input.CoreNetworkId !== undefined && input.CoreNetworkId !== null && { CoreNetworkId: input.CoreNetworkId }), + ...(input.EdgeLocation !== undefined && input.EdgeLocation !== null && { EdgeLocation: input.EdgeLocation }), + ...(input.SegmentName !== undefined && input.SegmentName !== null && { SegmentName: input.SegmentName }), + }; +}; + +const serializeAws_restJson1FilterMap = (input: { [key: string]: string[] }, context: __SerdeContext): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: serializeAws_restJson1FilterValues(value, context), + }; + }, {}); +}; + +const serializeAws_restJson1FilterValues = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1Location = (input: Location, context: __SerdeContext): any => { + return { + ...(input.Address !== undefined && input.Address !== null && { Address: input.Address }), + ...(input.Latitude !== undefined && input.Latitude !== null && { Latitude: input.Latitude }), + ...(input.Longitude !== undefined && input.Longitude !== null && { Longitude: input.Longitude }), + }; +}; + +const serializeAws_restJson1NetworkResourceMetadataMap = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + +const serializeAws_restJson1RouteAnalysisEndpointOptionsSpecification = ( + input: RouteAnalysisEndpointOptionsSpecification, + context: __SerdeContext +): any => { + return { + ...(input.IpAddress !== undefined && input.IpAddress !== null && { IpAddress: input.IpAddress }), + ...(input.TransitGatewayAttachmentArn !== undefined && + input.TransitGatewayAttachmentArn !== null && { TransitGatewayAttachmentArn: input.TransitGatewayAttachmentArn }), + }; +}; + +const serializeAws_restJson1RouteStateList = (input: (RouteState | string)[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1RouteTableIdentifier = (input: RouteTableIdentifier, context: __SerdeContext): any => { + return { + ...(input.CoreNetworkSegmentEdge !== undefined && + input.CoreNetworkSegmentEdge !== null && { + CoreNetworkSegmentEdge: serializeAws_restJson1CoreNetworkSegmentEdgeIdentifier( + input.CoreNetworkSegmentEdge, + context + ), + }), + ...(input.TransitGatewayRouteTableArn !== undefined && + input.TransitGatewayRouteTableArn !== null && { TransitGatewayRouteTableArn: input.TransitGatewayRouteTableArn }), + }; +}; + +const serializeAws_restJson1RouteTypeList = (input: (RouteType | string)[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1SubnetArnList = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1Tag = (input: Tag, context: __SerdeContext): any => { + return { + ...(input.Key !== undefined && input.Key !== null && { Key: input.Key }), + ...(input.Value !== undefined && input.Value !== null && { Value: input.Value }), + }; +}; + +const serializeAws_restJson1TagList = (input: Tag[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1Tag(entry, context); + }); +}; + +const serializeAws_restJson1VpcOptions = (input: VpcOptions, context: __SerdeContext): any => { + return { + ...(input.Ipv6Support !== undefined && input.Ipv6Support !== null && { Ipv6Support: input.Ipv6Support }), + }; +}; + +const deserializeAws_restJson1Attachment = (output: any, context: __SerdeContext): Attachment => { + return { + AttachmentId: __expectString(output.AttachmentId), + AttachmentPolicyRuleNumber: __expectInt32(output.AttachmentPolicyRuleNumber), + AttachmentType: __expectString(output.AttachmentType), + CoreNetworkArn: __expectString(output.CoreNetworkArn), + CoreNetworkId: __expectString(output.CoreNetworkId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + EdgeLocation: __expectString(output.EdgeLocation), + OwnerAccountId: __expectString(output.OwnerAccountId), + ProposedSegmentChange: + output.ProposedSegmentChange !== undefined && output.ProposedSegmentChange !== null + ? deserializeAws_restJson1ProposedSegmentChange(output.ProposedSegmentChange, context) + : undefined, + ResourceArn: __expectString(output.ResourceArn), + SegmentName: __expectString(output.SegmentName), + State: __expectString(output.State), + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + UpdatedAt: + output.UpdatedAt !== undefined && output.UpdatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.UpdatedAt))) + : undefined, + } as any; +}; + +const deserializeAws_restJson1AttachmentList = (output: any, context: __SerdeContext): Attachment[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Attachment(entry, context); + }); +}; + +const deserializeAws_restJson1AWSLocation = (output: any, context: __SerdeContext): AWSLocation => { + return { + SubnetArn: __expectString(output.SubnetArn), + Zone: __expectString(output.Zone), + } as any; }; -const deserializeAws_restJson1ConflictExceptionResponse = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: ConflictException = { - name: "ConflictException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - Message: undefined, - ResourceId: undefined, - ResourceType: undefined, - }; - const data: any = parsedOutput.body; - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - if (data.ResourceId !== undefined && data.ResourceId !== null) { - contents.ResourceId = __expectString(data.ResourceId); - } - if (data.ResourceType !== undefined && data.ResourceType !== null) { - contents.ResourceType = __expectString(data.ResourceType); - } - return contents; +const deserializeAws_restJson1Bandwidth = (output: any, context: __SerdeContext): Bandwidth => { + return { + DownloadSpeed: __expectInt32(output.DownloadSpeed), + UploadSpeed: __expectInt32(output.UploadSpeed), + } as any; }; -const deserializeAws_restJson1InternalServerExceptionResponse = async ( - parsedOutput: any, +const deserializeAws_restJson1ConnectAttachment = (output: any, context: __SerdeContext): ConnectAttachment => { + return { + Attachment: + output.Attachment !== undefined && output.Attachment !== null + ? deserializeAws_restJson1Attachment(output.Attachment, context) + : undefined, + Options: + output.Options !== undefined && output.Options !== null + ? deserializeAws_restJson1ConnectAttachmentOptions(output.Options, context) + : undefined, + TransportAttachmentId: __expectString(output.TransportAttachmentId), + } as any; +}; + +const deserializeAws_restJson1ConnectAttachmentOptions = ( + output: any, context: __SerdeContext -): Promise => { - const contents: InternalServerException = { - name: "InternalServerException", - $fault: "server", - $metadata: deserializeMetadata(parsedOutput), - Message: undefined, - RetryAfterSeconds: undefined, - }; - if (parsedOutput.headers["retry-after"] !== undefined) { - contents.RetryAfterSeconds = __strictParseInt32(parsedOutput.headers["retry-after"]); - } - const data: any = parsedOutput.body; - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - return contents; +): ConnectAttachmentOptions => { + return { + Protocol: __expectString(output.Protocol), + } as any; }; -const deserializeAws_restJson1ResourceNotFoundExceptionResponse = async ( - parsedOutput: any, +const deserializeAws_restJson1Connection = (output: any, context: __SerdeContext): Connection => { + return { + ConnectedDeviceId: __expectString(output.ConnectedDeviceId), + ConnectedLinkId: __expectString(output.ConnectedLinkId), + ConnectionArn: __expectString(output.ConnectionArn), + ConnectionId: __expectString(output.ConnectionId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + Description: __expectString(output.Description), + DeviceId: __expectString(output.DeviceId), + GlobalNetworkId: __expectString(output.GlobalNetworkId), + LinkId: __expectString(output.LinkId), + State: __expectString(output.State), + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ConnectionHealth = (output: any, context: __SerdeContext): ConnectionHealth => { + return { + Status: __expectString(output.Status), + Timestamp: + output.Timestamp !== undefined && output.Timestamp !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.Timestamp))) + : undefined, + Type: __expectString(output.Type), + } as any; +}; + +const deserializeAws_restJson1ConnectionList = (output: any, context: __SerdeContext): Connection[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Connection(entry, context); + }); +}; + +const deserializeAws_restJson1ConnectPeer = (output: any, context: __SerdeContext): ConnectPeer => { + return { + Configuration: + output.Configuration !== undefined && output.Configuration !== null + ? deserializeAws_restJson1ConnectPeerConfiguration(output.Configuration, context) + : undefined, + ConnectAttachmentId: __expectString(output.ConnectAttachmentId), + ConnectPeerId: __expectString(output.ConnectPeerId), + CoreNetworkId: __expectString(output.CoreNetworkId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + EdgeLocation: __expectString(output.EdgeLocation), + State: __expectString(output.State), + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ConnectPeerAssociation = ( + output: any, context: __SerdeContext -): Promise => { - const contents: ResourceNotFoundException = { - name: "ResourceNotFoundException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - Context: undefined, - Message: undefined, - ResourceId: undefined, - ResourceType: undefined, - }; - const data: any = parsedOutput.body; - if (data.Context !== undefined && data.Context !== null) { - contents.Context = deserializeAws_restJson1ExceptionContextMap(data.Context, context); - } - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - if (data.ResourceId !== undefined && data.ResourceId !== null) { - contents.ResourceId = __expectString(data.ResourceId); - } - if (data.ResourceType !== undefined && data.ResourceType !== null) { - contents.ResourceType = __expectString(data.ResourceType); - } - return contents; +): ConnectPeerAssociation => { + return { + ConnectPeerId: __expectString(output.ConnectPeerId), + DeviceId: __expectString(output.DeviceId), + GlobalNetworkId: __expectString(output.GlobalNetworkId), + LinkId: __expectString(output.LinkId), + State: __expectString(output.State), + } as any; }; -const deserializeAws_restJson1ServiceQuotaExceededExceptionResponse = async ( - parsedOutput: any, +const deserializeAws_restJson1ConnectPeerAssociationList = ( + output: any, context: __SerdeContext -): Promise => { - const contents: ServiceQuotaExceededException = { - name: "ServiceQuotaExceededException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - LimitCode: undefined, - Message: undefined, - ResourceId: undefined, - ResourceType: undefined, - ServiceCode: undefined, - }; - const data: any = parsedOutput.body; - if (data.LimitCode !== undefined && data.LimitCode !== null) { - contents.LimitCode = __expectString(data.LimitCode); - } - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - if (data.ResourceId !== undefined && data.ResourceId !== null) { - contents.ResourceId = __expectString(data.ResourceId); - } - if (data.ResourceType !== undefined && data.ResourceType !== null) { - contents.ResourceType = __expectString(data.ResourceType); - } - if (data.ServiceCode !== undefined && data.ServiceCode !== null) { - contents.ServiceCode = __expectString(data.ServiceCode); - } - return contents; +): ConnectPeerAssociation[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ConnectPeerAssociation(entry, context); + }); }; -const deserializeAws_restJson1ThrottlingExceptionResponse = async ( - parsedOutput: any, +const deserializeAws_restJson1ConnectPeerBgpConfiguration = ( + output: any, context: __SerdeContext -): Promise => { - const contents: ThrottlingException = { - name: "ThrottlingException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - Message: undefined, - RetryAfterSeconds: undefined, - }; - if (parsedOutput.headers["retry-after"] !== undefined) { - contents.RetryAfterSeconds = __strictParseInt32(parsedOutput.headers["retry-after"]); - } - const data: any = parsedOutput.body; - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - return contents; +): ConnectPeerBgpConfiguration => { + return { + CoreNetworkAddress: __expectString(output.CoreNetworkAddress), + CoreNetworkAsn: __expectLong(output.CoreNetworkAsn), + PeerAddress: __expectString(output.PeerAddress), + PeerAsn: __expectLong(output.PeerAsn), + } as any; }; -const deserializeAws_restJson1ValidationExceptionResponse = async ( - parsedOutput: any, +const deserializeAws_restJson1ConnectPeerBgpConfigurationList = ( + output: any, context: __SerdeContext -): Promise => { - const contents: ValidationException = { - name: "ValidationException", - $fault: "client", - $metadata: deserializeMetadata(parsedOutput), - Fields: undefined, - Message: undefined, - Reason: undefined, - }; - const data: any = parsedOutput.body; - if (data.Fields !== undefined && data.Fields !== null) { - contents.Fields = deserializeAws_restJson1ValidationExceptionFieldList(data.Fields, context); - } - if (data.Message !== undefined && data.Message !== null) { - contents.Message = __expectString(data.Message); - } - if (data.Reason !== undefined && data.Reason !== null) { - contents.Reason = __expectString(data.Reason); - } - return contents; +): ConnectPeerBgpConfiguration[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ConnectPeerBgpConfiguration(entry, context); + }); }; -const serializeAws_restJson1AWSLocation = (input: AWSLocation, context: __SerdeContext): any => { +const deserializeAws_restJson1ConnectPeerConfiguration = ( + output: any, + context: __SerdeContext +): ConnectPeerConfiguration => { return { - ...(input.SubnetArn !== undefined && input.SubnetArn !== null && { SubnetArn: input.SubnetArn }), - ...(input.Zone !== undefined && input.Zone !== null && { Zone: input.Zone }), - }; + BgpConfigurations: + output.BgpConfigurations !== undefined && output.BgpConfigurations !== null + ? deserializeAws_restJson1ConnectPeerBgpConfigurationList(output.BgpConfigurations, context) + : undefined, + CoreNetworkAddress: __expectString(output.CoreNetworkAddress), + InsideCidrBlocks: + output.InsideCidrBlocks !== undefined && output.InsideCidrBlocks !== null + ? deserializeAws_restJson1ConstrainedStringList(output.InsideCidrBlocks, context) + : undefined, + PeerAddress: __expectString(output.PeerAddress), + Protocol: __expectString(output.Protocol), + } as any; }; -const serializeAws_restJson1Bandwidth = (input: Bandwidth, context: __SerdeContext): any => { +const deserializeAws_restJson1ConnectPeerSummary = (output: any, context: __SerdeContext): ConnectPeerSummary => { return { - ...(input.DownloadSpeed !== undefined && input.DownloadSpeed !== null && { DownloadSpeed: input.DownloadSpeed }), - ...(input.UploadSpeed !== undefined && input.UploadSpeed !== null && { UploadSpeed: input.UploadSpeed }), - }; + ConnectAttachmentId: __expectString(output.ConnectAttachmentId), + ConnectPeerId: __expectString(output.ConnectPeerId), + ConnectPeerState: __expectString(output.ConnectPeerState), + CoreNetworkId: __expectString(output.CoreNetworkId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + EdgeLocation: __expectString(output.EdgeLocation), + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + } as any; }; -const serializeAws_restJson1FilterMap = (input: { [key: string]: string[] }, context: __SerdeContext): any => { - return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { - if (value === null) { - return acc; - } - return { - ...acc, - [key]: serializeAws_restJson1FilterValues(value, context), - }; - }, {}); +const deserializeAws_restJson1ConnectPeerSummaryList = (output: any, context: __SerdeContext): ConnectPeerSummary[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1ConnectPeerSummary(entry, context); + }); }; -const serializeAws_restJson1FilterValues = (input: string[], context: __SerdeContext): any => { - return input +const deserializeAws_restJson1ConstrainedStringList = (output: any, context: __SerdeContext): string[] => { + return (output || []) .filter((e: any) => e != null) - .map((entry) => { + .map((entry: any) => { if (entry === null) { return null as any; } - return entry; + return __expectString(entry) as any; }); }; -const serializeAws_restJson1Location = (input: Location, context: __SerdeContext): any => { +const deserializeAws_restJson1CoreNetwork = (output: any, context: __SerdeContext): CoreNetwork => { return { - ...(input.Address !== undefined && input.Address !== null && { Address: input.Address }), - ...(input.Latitude !== undefined && input.Latitude !== null && { Latitude: input.Latitude }), - ...(input.Longitude !== undefined && input.Longitude !== null && { Longitude: input.Longitude }), - }; -}; - -const serializeAws_restJson1NetworkResourceMetadataMap = ( - input: { [key: string]: string }, - context: __SerdeContext -): any => { - return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { - if (value === null) { - return acc; - } - return { - ...acc, - [key]: value, - }; - }, {}); + CoreNetworkArn: __expectString(output.CoreNetworkArn), + CoreNetworkId: __expectString(output.CoreNetworkId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + Description: __expectString(output.Description), + Edges: + output.Edges !== undefined && output.Edges !== null + ? deserializeAws_restJson1CoreNetworkEdgeList(output.Edges, context) + : undefined, + GlobalNetworkId: __expectString(output.GlobalNetworkId), + Segments: + output.Segments !== undefined && output.Segments !== null + ? deserializeAws_restJson1CoreNetworkSegmentList(output.Segments, context) + : undefined, + State: __expectString(output.State), + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + } as any; }; -const serializeAws_restJson1RouteAnalysisEndpointOptionsSpecification = ( - input: RouteAnalysisEndpointOptionsSpecification, - context: __SerdeContext -): any => { +const deserializeAws_restJson1CoreNetworkChange = (output: any, context: __SerdeContext): CoreNetworkChange => { return { - ...(input.IpAddress !== undefined && input.IpAddress !== null && { IpAddress: input.IpAddress }), - ...(input.TransitGatewayAttachmentArn !== undefined && - input.TransitGatewayAttachmentArn !== null && { TransitGatewayAttachmentArn: input.TransitGatewayAttachmentArn }), - }; + Action: __expectString(output.Action), + Identifier: __expectString(output.Identifier), + NewValues: + output.NewValues !== undefined && output.NewValues !== null + ? deserializeAws_restJson1CoreNetworkChangeValues(output.NewValues, context) + : undefined, + PreviousValues: + output.PreviousValues !== undefined && output.PreviousValues !== null + ? deserializeAws_restJson1CoreNetworkChangeValues(output.PreviousValues, context) + : undefined, + Type: __expectString(output.Type), + } as any; }; -const serializeAws_restJson1RouteStateList = (input: (RouteState | string)[], context: __SerdeContext): any => { - return input +const deserializeAws_restJson1CoreNetworkChangeList = (output: any, context: __SerdeContext): CoreNetworkChange[] => { + return (output || []) .filter((e: any) => e != null) - .map((entry) => { + .map((entry: any) => { if (entry === null) { return null as any; } - return entry; + return deserializeAws_restJson1CoreNetworkChange(entry, context); }); }; -const serializeAws_restJson1RouteTableIdentifier = (input: RouteTableIdentifier, context: __SerdeContext): any => { +const deserializeAws_restJson1CoreNetworkChangeValues = ( + output: any, + context: __SerdeContext +): CoreNetworkChangeValues => { return { - ...(input.TransitGatewayRouteTableArn !== undefined && - input.TransitGatewayRouteTableArn !== null && { TransitGatewayRouteTableArn: input.TransitGatewayRouteTableArn }), - }; + Asn: __expectLong(output.Asn), + Cidr: __expectString(output.Cidr), + DestinationIdentifier: __expectString(output.DestinationIdentifier), + EdgeLocations: + output.EdgeLocations !== undefined && output.EdgeLocations !== null + ? deserializeAws_restJson1ExternalRegionCodeList(output.EdgeLocations, context) + : undefined, + InsideCidrBlocks: + output.InsideCidrBlocks !== undefined && output.InsideCidrBlocks !== null + ? deserializeAws_restJson1ConstrainedStringList(output.InsideCidrBlocks, context) + : undefined, + SegmentName: __expectString(output.SegmentName), + SharedSegments: + output.SharedSegments !== undefined && output.SharedSegments !== null + ? deserializeAws_restJson1ConstrainedStringList(output.SharedSegments, context) + : undefined, + } as any; }; -const serializeAws_restJson1RouteTypeList = (input: (RouteType | string)[], context: __SerdeContext): any => { - return input +const deserializeAws_restJson1CoreNetworkEdge = (output: any, context: __SerdeContext): CoreNetworkEdge => { + return { + Asn: __expectLong(output.Asn), + EdgeLocation: __expectString(output.EdgeLocation), + InsideCidrBlocks: + output.InsideCidrBlocks !== undefined && output.InsideCidrBlocks !== null + ? deserializeAws_restJson1ConstrainedStringList(output.InsideCidrBlocks, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1CoreNetworkEdgeList = (output: any, context: __SerdeContext): CoreNetworkEdge[] => { + return (output || []) .filter((e: any) => e != null) - .map((entry) => { + .map((entry: any) => { if (entry === null) { return null as any; } - return entry; + return deserializeAws_restJson1CoreNetworkEdge(entry, context); }); }; -const serializeAws_restJson1StringList = (input: string[], context: __SerdeContext): any => { - return input +const deserializeAws_restJson1CoreNetworkPolicy = (output: any, context: __SerdeContext): CoreNetworkPolicy => { + return { + Alias: __expectString(output.Alias), + ChangeSetState: __expectString(output.ChangeSetState), + CoreNetworkId: __expectString(output.CoreNetworkId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + Description: __expectString(output.Description), + PolicyDocument: + output.PolicyDocument !== undefined && output.PolicyDocument !== null + ? new __LazyJsonString(output.PolicyDocument) + : undefined, + PolicyErrors: + output.PolicyErrors !== undefined && output.PolicyErrors !== null + ? deserializeAws_restJson1CoreNetworkPolicyErrorList(output.PolicyErrors, context) + : undefined, + PolicyVersionId: __expectInt32(output.PolicyVersionId), + } as any; +}; + +const deserializeAws_restJson1CoreNetworkPolicyError = ( + output: any, + context: __SerdeContext +): CoreNetworkPolicyError => { + return { + ErrorCode: __expectString(output.ErrorCode), + Message: __expectString(output.Message), + Path: __expectString(output.Path), + } as any; +}; + +const deserializeAws_restJson1CoreNetworkPolicyErrorList = ( + output: any, + context: __SerdeContext +): CoreNetworkPolicyError[] => { + return (output || []) .filter((e: any) => e != null) - .map((entry) => { + .map((entry: any) => { if (entry === null) { return null as any; } - return entry; + return deserializeAws_restJson1CoreNetworkPolicyError(entry, context); }); }; -const serializeAws_restJson1Tag = (input: Tag, context: __SerdeContext): any => { +const deserializeAws_restJson1CoreNetworkPolicyVersion = ( + output: any, + context: __SerdeContext +): CoreNetworkPolicyVersion => { return { - ...(input.Key !== undefined && input.Key !== null && { Key: input.Key }), - ...(input.Value !== undefined && input.Value !== null && { Value: input.Value }), - }; + Alias: __expectString(output.Alias), + ChangeSetState: __expectString(output.ChangeSetState), + CoreNetworkId: __expectString(output.CoreNetworkId), + CreatedAt: + output.CreatedAt !== undefined && output.CreatedAt !== null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) + : undefined, + Description: __expectString(output.Description), + PolicyVersionId: __expectInt32(output.PolicyVersionId), + } as any; }; -const serializeAws_restJson1TagList = (input: Tag[], context: __SerdeContext): any => { - return input +const deserializeAws_restJson1CoreNetworkPolicyVersionList = ( + output: any, + context: __SerdeContext +): CoreNetworkPolicyVersion[] => { + return (output || []) .filter((e: any) => e != null) - .map((entry) => { + .map((entry: any) => { if (entry === null) { return null as any; } - return serializeAws_restJson1Tag(entry, context); + return deserializeAws_restJson1CoreNetworkPolicyVersion(entry, context); }); }; -const deserializeAws_restJson1AWSLocation = (output: any, context: __SerdeContext): AWSLocation => { +const deserializeAws_restJson1CoreNetworkSegment = (output: any, context: __SerdeContext): CoreNetworkSegment => { return { - SubnetArn: __expectString(output.SubnetArn), - Zone: __expectString(output.Zone), + EdgeLocations: + output.EdgeLocations !== undefined && output.EdgeLocations !== null + ? deserializeAws_restJson1ExternalRegionCodeList(output.EdgeLocations, context) + : undefined, + Name: __expectString(output.Name), + SharedSegments: + output.SharedSegments !== undefined && output.SharedSegments !== null + ? deserializeAws_restJson1ConstrainedStringList(output.SharedSegments, context) + : undefined, } as any; }; -const deserializeAws_restJson1Bandwidth = (output: any, context: __SerdeContext): Bandwidth => { +const deserializeAws_restJson1CoreNetworkSegmentEdgeIdentifier = ( + output: any, + context: __SerdeContext +): CoreNetworkSegmentEdgeIdentifier => { return { - DownloadSpeed: __expectInt32(output.DownloadSpeed), - UploadSpeed: __expectInt32(output.UploadSpeed), + CoreNetworkId: __expectString(output.CoreNetworkId), + EdgeLocation: __expectString(output.EdgeLocation), + SegmentName: __expectString(output.SegmentName), } as any; }; -const deserializeAws_restJson1Connection = (output: any, context: __SerdeContext): Connection => { +const deserializeAws_restJson1CoreNetworkSegmentList = (output: any, context: __SerdeContext): CoreNetworkSegment[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1CoreNetworkSegment(entry, context); + }); +}; + +const deserializeAws_restJson1CoreNetworkSummary = (output: any, context: __SerdeContext): CoreNetworkSummary => { return { - ConnectedDeviceId: __expectString(output.ConnectedDeviceId), - ConnectedLinkId: __expectString(output.ConnectedLinkId), - ConnectionArn: __expectString(output.ConnectionArn), - ConnectionId: __expectString(output.ConnectionId), - CreatedAt: - output.CreatedAt !== undefined && output.CreatedAt !== null - ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.CreatedAt))) - : undefined, + CoreNetworkArn: __expectString(output.CoreNetworkArn), + CoreNetworkId: __expectString(output.CoreNetworkId), Description: __expectString(output.Description), - DeviceId: __expectString(output.DeviceId), GlobalNetworkId: __expectString(output.GlobalNetworkId), - LinkId: __expectString(output.LinkId), + OwnerAccountId: __expectString(output.OwnerAccountId), State: __expectString(output.State), Tags: output.Tags !== undefined && output.Tags !== null @@ -6302,25 +11082,14 @@ const deserializeAws_restJson1Connection = (output: any, context: __SerdeContext } as any; }; -const deserializeAws_restJson1ConnectionHealth = (output: any, context: __SerdeContext): ConnectionHealth => { - return { - Status: __expectString(output.Status), - Timestamp: - output.Timestamp !== undefined && output.Timestamp !== null - ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.Timestamp))) - : undefined, - Type: __expectString(output.Type), - } as any; -}; - -const deserializeAws_restJson1ConnectionList = (output: any, context: __SerdeContext): Connection[] => { +const deserializeAws_restJson1CoreNetworkSummaryList = (output: any, context: __SerdeContext): CoreNetworkSummary[] => { return (output || []) .filter((e: any) => e != null) .map((entry: any) => { if (entry === null) { return null as any; } - return deserializeAws_restJson1Connection(entry, context); + return deserializeAws_restJson1CoreNetworkSummary(entry, context); }); }; @@ -6408,6 +11177,17 @@ const deserializeAws_restJson1ExceptionContextMap = ( }, {}); }; +const deserializeAws_restJson1ExternalRegionCodeList = (output: any, context: __SerdeContext): string[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + const deserializeAws_restJson1GlobalNetwork = (output: any, context: __SerdeContext): GlobalNetwork => { return { CreatedAt: @@ -6504,6 +11284,7 @@ const deserializeAws_restJson1NetworkResource = (output: any, context: __SerdeCo return { AccountId: __expectString(output.AccountId), AwsRegion: __expectString(output.AwsRegion), + CoreNetworkId: __expectString(output.CoreNetworkId), Definition: __expectString(output.Definition), DefinitionTimestamp: output.DefinitionTimestamp !== undefined && output.DefinitionTimestamp !== null @@ -6603,8 +11384,11 @@ const deserializeAws_restJson1NetworkRouteDestination = ( context: __SerdeContext ): NetworkRouteDestination => { return { + CoreNetworkAttachmentId: __expectString(output.CoreNetworkAttachmentId), + EdgeLocation: __expectString(output.EdgeLocation), ResourceId: __expectString(output.ResourceId), ResourceType: __expectString(output.ResourceType), + SegmentName: __expectString(output.SegmentName), TransitGatewayAttachmentId: __expectString(output.TransitGatewayAttachmentId), } as any; }; @@ -6639,6 +11423,7 @@ const deserializeAws_restJson1NetworkTelemetry = (output: any, context: __SerdeC AccountId: __expectString(output.AccountId), Address: __expectString(output.Address), AwsRegion: __expectString(output.AwsRegion), + CoreNetworkId: __expectString(output.CoreNetworkId), Health: output.Health !== undefined && output.Health !== null ? deserializeAws_restJson1ConnectionHealth(output.Health, context) @@ -6683,6 +11468,17 @@ const deserializeAws_restJson1PathComponentList = (output: any, context: __Serde }); }; +const deserializeAws_restJson1ProposedSegmentChange = (output: any, context: __SerdeContext): ProposedSegmentChange => { + return { + AttachmentPolicyRuleNumber: __expectInt32(output.AttachmentPolicyRuleNumber), + SegmentName: __expectString(output.SegmentName), + Tags: + output.Tags !== undefined && output.Tags !== null + ? deserializeAws_restJson1TagList(output.Tags, context) + : undefined, + } as any; +}; + const deserializeAws_restJson1ReasonContextMap = (output: any, context: __SerdeContext): { [key: string]: string } => { return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { if (value === null) { @@ -6815,6 +11611,30 @@ const deserializeAws_restJson1SiteList = (output: any, context: __SerdeContext): }); }; +const deserializeAws_restJson1SiteToSiteVpnAttachment = ( + output: any, + context: __SerdeContext +): SiteToSiteVpnAttachment => { + return { + Attachment: + output.Attachment !== undefined && output.Attachment !== null + ? deserializeAws_restJson1Attachment(output.Attachment, context) + : undefined, + VpnConnectionArn: __expectString(output.VpnConnectionArn), + } as any; +}; + +const deserializeAws_restJson1SubnetArnList = (output: any, context: __SerdeContext): string[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + const deserializeAws_restJson1Tag = (output: any, context: __SerdeContext): Tag => { return { Key: __expectString(output.Key), @@ -6922,6 +11742,29 @@ const deserializeAws_restJson1ValidationExceptionFieldList = ( }); }; +const deserializeAws_restJson1VpcAttachment = (output: any, context: __SerdeContext): VpcAttachment => { + return { + Attachment: + output.Attachment !== undefined && output.Attachment !== null + ? deserializeAws_restJson1Attachment(output.Attachment, context) + : undefined, + Options: + output.Options !== undefined && output.Options !== null + ? deserializeAws_restJson1VpcOptions(output.Options, context) + : undefined, + SubnetArns: + output.SubnetArns !== undefined && output.SubnetArns !== null + ? deserializeAws_restJson1SubnetArnList(output.SubnetArns, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1VpcOptions = (output: any, context: __SerdeContext): VpcOptions => { + return { + Ipv6Support: __expectBoolean(output.Ipv6Support), + } as any; +}; + const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ httpStatusCode: output.statusCode, requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"], diff --git a/clients/client-nimble/src/Nimble.ts b/clients/client-nimble/src/Nimble.ts index cc687e51f372..963cbef313a8 100644 --- a/clients/client-nimble/src/Nimble.ts +++ b/clients/client-nimble/src/Nimble.ts @@ -1256,6 +1256,10 @@ export class Nimble extends NimbleClient { /** *

                        Get all users in a given studio membership.

                        + * + *

                        + * ListStudioMembers only returns admin members.

                        + *
                        */ public listStudioMembers( args: ListStudioMembersCommandInput, diff --git a/clients/client-nimble/src/commands/ListStudioMembersCommand.ts b/clients/client-nimble/src/commands/ListStudioMembersCommand.ts index e6ae29f06cf1..210683f0a007 100644 --- a/clients/client-nimble/src/commands/ListStudioMembersCommand.ts +++ b/clients/client-nimble/src/commands/ListStudioMembersCommand.ts @@ -23,6 +23,10 @@ export interface ListStudioMembersCommandOutput extends ListStudioMembersRespons /** *

                        Get all users in a given studio membership.

                        + * + *

                        + * ListStudioMembers only returns admin members.

                        + *
                        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-nimble/src/endpoints.ts b/clients/client-nimble/src/endpoints.ts index 17c01cda87db..9e26adb3d570 100644 --- a/clients/client-nimble/src/endpoints.ts +++ b/clients/client-nimble/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-nimble/src/models/models_0.ts b/clients/client-nimble/src/models/models_0.ts index 9072ee557706..9fe5a9e8ee3d 100644 --- a/clients/client-nimble/src/models/models_0.ts +++ b/clients/client-nimble/src/models/models_0.ts @@ -1,9 +1,6 @@ import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException } from "@aws-sdk/types"; -/** - * - */ export interface AcceptEulasRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -71,9 +68,6 @@ export namespace EulaAcceptance { }); } -/** - * - */ export interface AcceptEulasResponse { /** *

                        A collection of EULA acceptances.

                        @@ -411,6 +405,65 @@ export enum StreamingInstanceType { g4dn_xlarge = "g4dn.xlarge", } +export enum StreamingSessionStorageMode { + UPLOAD = "UPLOAD", +} + +/** + *

                        The upload storage root location (folder) on streaming workstations where files are + * uploaded.

                        + */ +export interface StreamingSessionStorageRoot { + /** + *

                        The folder path in Linux workstations where files are uploaded. The default path is + * $HOME/Downloads.

                        + */ + linux?: string; + + /** + *

                        The folder path in Windows workstations where files are uploaded. The default path is + * %HOMEPATH%\Downloads.

                        + */ + windows?: string; +} + +export namespace StreamingSessionStorageRoot { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StreamingSessionStorageRoot): any => ({ + ...obj, + ...(obj.linux && { linux: SENSITIVE_STRING }), + ...(obj.windows && { windows: SENSITIVE_STRING }), + }); +} + +/** + *

                        The configuration for a streaming session’s upload storage.

                        + */ +export interface StreamConfigurationSessionStorage { + /** + *

                        The configuration for the upload storage root of the streaming session.

                        + */ + root?: StreamingSessionStorageRoot; + + /** + *

                        Allows artists to upload files to their workstations. The only valid option is + * UPLOAD.

                        + */ + mode: (StreamingSessionStorageMode | string)[] | undefined; +} + +export namespace StreamConfigurationSessionStorage { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StreamConfigurationSessionStorage): any => ({ + ...obj, + ...(obj.root && { root: StreamingSessionStorageRoot.filterSensitiveLog(obj.root) }), + }); +} + /** *

                        Configuration for streaming workstations created using this launch profile.

                        */ @@ -429,9 +482,9 @@ export interface StreamConfigurationCreate { /** *

                        The length of time, in minutes, that a streaming session can be active before it is - * stopped or terminated. After this point, Nimble Studio automatically terminates - * or stops the session. The default length of time is 690 minutes, and the maximum length - * of time is 30 days.

                        + * stopped or terminated. After this point, Nimble Studio automatically terminates or + * stops the session. The default length of time is 690 minutes, and the maximum length of + * time is 30 days.

                        */ maxSessionLengthInMinutes?: number; @@ -442,12 +495,24 @@ export interface StreamConfigurationCreate { streamingImageIds: string[] | undefined; /** - *

                        The length of time, in minutes, that a streaming session can be active before it is - * stopped or terminated. After this point, Nimble Studio automatically terminates or - * stops the session. The default length of time is 690 minutes, and the maximum length of - * time is 30 days.

                        + *

                        Integer that determines if you can start and stop your sessions and how long a session + * can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

                        + *

                        If the value is missing or set to 0, your sessions can’t be stopped. If you then call + * StopStreamingSession, the session fails. If the time that a session stays in the READY + * state exceeds the maxSessionLengthInMinutes value, the session will automatically be + * terminated by AWS (instead of stopped).

                        + *

                        If the value is set to a positive number, the session can be stopped. You can call + * StopStreamingSession to stop sessions in the READY state. If the time that a session + * stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will + * automatically be stopped by AWS (instead of terminated).

                        */ maxStoppedSessionLengthInMinutes?: number; + + /** + *

                        (Optional) The upload storage for a streaming workstation that is created using this + * launch profile.

                        + */ + sessionStorage?: StreamConfigurationSessionStorage; } export namespace StreamConfigurationCreate { @@ -456,12 +521,12 @@ export namespace StreamConfigurationCreate { */ export const filterSensitiveLog = (obj: StreamConfigurationCreate): any => ({ ...obj, + ...(obj.sessionStorage && { + sessionStorage: StreamConfigurationSessionStorage.filterSensitiveLog(obj.sessionStorage), + }), }); } -/** - * - */ export interface CreateLaunchProfileRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -523,6 +588,9 @@ export namespace CreateLaunchProfileRequest { ...obj, ...(obj.description && { description: SENSITIVE_STRING }), ...(obj.name && { name: SENSITIVE_STRING }), + ...(obj.streamConfiguration && { + streamConfiguration: StreamConfigurationCreate.filterSensitiveLog(obj.streamConfiguration), + }), }); } @@ -571,9 +639,9 @@ export interface StreamConfiguration { /** *

                        The length of time, in minutes, that a streaming session can be active before it is - * stopped or terminated. After this point, Nimble Studio automatically terminates - * or stops the session. The default length of time is 690 minutes, and the maximum length - * of time is 30 days.

                        + * stopped or terminated. After this point, Nimble Studio automatically terminates or + * stops the session. The default length of time is 690 minutes, and the maximum length of + * time is 30 days.

                        */ maxSessionLengthInMinutes?: number; @@ -596,6 +664,11 @@ export interface StreamConfiguration { * automatically be stopped by AWS (instead of terminated).

                        */ maxStoppedSessionLengthInMinutes?: number; + + /** + *

                        (Optional) The upload storage for a streaming session.

                        + */ + sessionStorage?: StreamConfigurationSessionStorage; } export namespace StreamConfiguration { @@ -604,6 +677,9 @@ export namespace StreamConfiguration { */ export const filterSensitiveLog = (obj: StreamConfiguration): any => ({ ...obj, + ...(obj.sessionStorage && { + sessionStorage: StreamConfigurationSessionStorage.filterSensitiveLog(obj.sessionStorage), + }), }); } @@ -710,12 +786,12 @@ export namespace LaunchProfile { ...obj, ...(obj.description && { description: SENSITIVE_STRING }), ...(obj.name && { name: SENSITIVE_STRING }), + ...(obj.streamConfiguration && { + streamConfiguration: StreamConfiguration.filterSensitiveLog(obj.streamConfiguration), + }), }); } -/** - * - */ export interface CreateLaunchProfileResponse { /** *

                        The launch profile.

                        @@ -733,9 +809,6 @@ export namespace CreateLaunchProfileResponse { }); } -/** - * - */ export interface CreateStreamingImageRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -822,6 +895,7 @@ export enum StreamingImageState { } export enum StreamingImageStatusCode { + ACCESS_DENIED = "ACCESS_DENIED", INTERNAL_ERROR = "INTERNAL_ERROR", STREAMING_IMAGE_CREATE_IN_PROGRESS = "STREAMING_IMAGE_CREATE_IN_PROGRESS", STREAMING_IMAGE_DELETED = "STREAMING_IMAGE_DELETED", @@ -921,9 +995,6 @@ export namespace StreamingImage { }); } -/** - * - */ export interface CreateStreamingImageResponse { /** *

                        The streaming image.

                        @@ -941,9 +1012,6 @@ export namespace CreateStreamingImageResponse { }); } -/** - * - */ export interface CreateStreamingSessionRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -1143,9 +1211,6 @@ export namespace StreamingSession { }); } -/** - * - */ export interface CreateStreamingSessionResponse { /** *

                        The session.

                        @@ -1162,9 +1227,6 @@ export namespace CreateStreamingSessionResponse { }); } -/** - * - */ export interface CreateStreamingSessionStreamRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -1274,9 +1336,6 @@ export namespace StreamingSessionStream { }); } -/** - * - */ export interface CreateStreamingSessionStreamResponse { /** *

                        The stream.

                        @@ -1323,9 +1382,6 @@ export namespace StudioEncryptionConfiguration { }); } -/** - * - */ export interface CreateStudioRequest { /** *

                        The IAM role that Studio Admins will assume when logging in to the Nimble Studio @@ -1523,9 +1579,6 @@ export namespace Studio { }); } -/** - * - */ export interface CreateStudioResponse { /** *

                        Information about a studio.

                        @@ -1745,9 +1798,6 @@ export enum StudioComponentType { SHARED_FILE_SYSTEM = "SHARED_FILE_SYSTEM", } -/** - * - */ export interface CreateStudioComponentRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -1972,9 +2022,6 @@ export namespace StudioComponent { }); } -/** - *

                        - */ export interface CreateStudioComponentResponse { /** *

                        Information about the studio component.

                        @@ -2020,9 +2067,6 @@ export namespace DeleteLaunchProfileRequest { }); } -/** - * - */ export interface DeleteLaunchProfileResponse { /** *

                        The launch profile.

                        @@ -2073,9 +2117,6 @@ export namespace DeleteLaunchProfileMemberRequest { }); } -/** - * - */ export interface DeleteLaunchProfileMemberResponse {} export namespace DeleteLaunchProfileMemberResponse { @@ -2115,9 +2156,6 @@ export namespace DeleteStreamingImageRequest { }); } -/** - * - */ export interface DeleteStreamingImageResponse { /** *

                        The streaming image.

                        @@ -2163,9 +2201,6 @@ export namespace DeleteStreamingSessionRequest { }); } -/** - * - */ export interface DeleteStreamingSessionResponse { /** *

                        The session.

                        @@ -2205,9 +2240,6 @@ export namespace DeleteStudioRequest { }); } -/** - * - */ export interface DeleteStudioResponse { /** *

                        Information about a studio.

                        @@ -2253,9 +2285,6 @@ export namespace DeleteStudioComponentRequest { }); } -/** - * - */ export interface DeleteStudioComponentResponse { /** *

                        Information about the studio component.

                        @@ -2301,9 +2330,6 @@ export namespace DeleteStudioMemberRequest { }); } -/** - * - */ export interface DeleteStudioMemberResponse {} export namespace DeleteStudioMemberResponse { @@ -2380,9 +2406,6 @@ export namespace ListEulaAcceptancesRequest { }); } -/** - *

                        - */ export interface ListEulaAcceptancesResponse { /** *

                        A collection of EULA acceptances.

                        @@ -2420,9 +2443,6 @@ export namespace GetEulaRequest { }); } -/** - * - */ export interface GetEulaResponse { /** *

                        The EULA.

                        @@ -2460,9 +2480,6 @@ export namespace ListEulasRequest { }); } -/** - * - */ export interface ListEulasResponse { /** *

                        A collection of EULA resources.

                        @@ -2505,9 +2522,6 @@ export namespace GetLaunchProfileRequest { }); } -/** - * - */ export interface GetLaunchProfileResponse { /** *

                        The launch profile.

                        @@ -2547,7 +2561,7 @@ export namespace GetLaunchProfileDetailsRequest { } /** - *

                        + *

                        The studio component's summary.

                        */ export interface StudioComponentSummary { /** @@ -2607,9 +2621,6 @@ export namespace StudioComponentSummary { }); } -/** - * - */ export interface GetLaunchProfileDetailsResponse { /** *

                        The launch profile.

                        @@ -2682,7 +2693,8 @@ export namespace GetLaunchProfileInitializationRequest { } /** - *

                        + *

                        The Launch Profile Initialization Active Directory contains information required for + * the launch profile to connect to the Active Directory.

                        */ export interface LaunchProfileInitializationActiveDirectory { /** @@ -2734,7 +2746,8 @@ export namespace LaunchProfileInitializationActiveDirectory { } /** - *

                        + *

                        The Launch Profile Initialization Script is used when start streaming session + * runs.

                        */ export interface LaunchProfileInitializationScript { /** @@ -2766,7 +2779,7 @@ export namespace LaunchProfileInitializationScript { /** *

                        A Launch Profile Initialization contains information required for a workstation or - * server to connect to a launch profile

                        + * server to connect to a launch profile.

                        *

                        This includes scripts, endpoints, security groups, subnets, and other * configuration.

                        */ @@ -2841,9 +2854,6 @@ export namespace LaunchProfileInitialization { }); } -/** - * - */ export interface GetLaunchProfileInitializationResponse { /** *

                        The launch profile initialization.

                        @@ -2894,7 +2904,32 @@ export enum LaunchProfilePersona { } /** - *

                        + *

                        Launch profile membership enables your studio admins to delegate launch profile access + * to other studio users in the Nimble Studio portal without needing to write or + * maintain complex IAM policies. A launch profile member is a user association from your + * studio identity source who is granted permissions to a launch profile.

                        + *

                        A launch profile member (type USER) provides the following permissions to that launch + * profile:

                        + *
                          + *
                        • + *

                          GetLaunchProfile

                          + *
                        • + *
                        • + *

                          GetLaunchProfileInitialization

                          + *
                        • + *
                        • + *

                          GetLaunchProfileMembers

                          + *
                        • + *
                        • + *

                          GetLaunchProfileMember

                          + *
                        • + *
                        • + *

                          CreateStreamingSession

                          + *
                        • + *
                        • + *

                          GetLaunchProfileDetails

                          + *
                        • + *
                        */ export interface LaunchProfileMembership { /** @@ -2927,9 +2962,6 @@ export namespace LaunchProfileMembership { }); } -/** - * - */ export interface GetLaunchProfileMemberResponse { /** *

                        The member.

                        @@ -2967,9 +2999,6 @@ export namespace GetStreamingImageRequest { }); } -/** - * - */ export interface GetStreamingImageResponse { /** *

                        The streaming image.

                        @@ -3008,9 +3037,6 @@ export namespace GetStreamingSessionRequest { }); } -/** - * - */ export interface GetStreamingSessionResponse { /** *

                        The session.

                        @@ -3053,9 +3079,6 @@ export namespace GetStreamingSessionStreamRequest { }); } -/** - * - */ export interface GetStreamingSessionStreamResponse { /** *

                        The stream.

                        @@ -3089,9 +3112,6 @@ export namespace GetStudioRequest { }); } -/** - * - */ export interface GetStudioResponse { /** *

                        Information about a studio.

                        @@ -3130,9 +3150,6 @@ export namespace GetStudioComponentRequest { }); } -/** - * - */ export interface GetStudioComponentResponse { /** *

                        Information about the studio component.

                        @@ -3218,9 +3235,6 @@ export namespace StudioMembership { }); } -/** - * - */ export interface GetStudioMemberResponse { /** *

                        The member.

                        @@ -3268,9 +3282,6 @@ export namespace ListLaunchProfileMembersRequest { }); } -/** - * - */ export interface ListLaunchProfileMembersResponse { /** *

                        A list of members.

                        @@ -3328,9 +3339,6 @@ export namespace ListLaunchProfilesRequest { }); } -/** - * - */ export interface ListLaunchProfilesResponse { /** *

                        A collection of launch profiles.

                        @@ -3356,7 +3364,7 @@ export namespace ListLaunchProfilesResponse { } /** - *

                        + *

                        A new member that is added to a launch profile.

                        */ export interface NewLaunchProfileMember { /** @@ -3379,9 +3387,6 @@ export namespace NewLaunchProfileMember { }); } -/** - * - */ export interface PutLaunchProfileMembersRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -3431,9 +3436,6 @@ export namespace PutLaunchProfileMembersResponse { }); } -/** - * - */ export interface UpdateLaunchProfileRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -3488,12 +3490,12 @@ export namespace UpdateLaunchProfileRequest { ...obj, ...(obj.description && { description: SENSITIVE_STRING }), ...(obj.name && { name: SENSITIVE_STRING }), + ...(obj.streamConfiguration && { + streamConfiguration: StreamConfigurationCreate.filterSensitiveLog(obj.streamConfiguration), + }), }); } -/** - * - */ export interface UpdateLaunchProfileResponse { /** *

                        The launch profile.

                        @@ -3511,9 +3513,6 @@ export namespace UpdateLaunchProfileResponse { }); } -/** - *

                        - */ export interface UpdateLaunchProfileMemberRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -3594,9 +3593,6 @@ export namespace ListStreamingImagesRequest { }); } -/** - * - */ export interface ListStreamingImagesResponse { /** *

                        The token for the next set of results, or null if there are no more results.

                        @@ -3657,9 +3653,6 @@ export namespace ListStreamingSessionsRequest { }); } -/** - * - */ export interface ListStreamingSessionsResponse { /** *

                        The token for the next set of results, or null if there are no more results.

                        @@ -3717,9 +3710,6 @@ export namespace ListStudioComponentsRequest { }); } -/** - * - */ export interface ListStudioComponentsResponse { /** *

                        The token for the next set of results, or null if there are no more results.

                        @@ -3770,12 +3760,9 @@ export namespace ListStudioMembersRequest { }); } -/** - * - */ export interface ListStudioMembersResponse { /** - *

                        A list of members.

                        + *

                        A list of admin members.

                        */ members?: StudioMembership[]; @@ -3810,9 +3797,6 @@ export namespace ListStudiosRequest { }); } -/** - * - */ export interface ListStudiosResponse { /** *

                        The token for the next set of results, or null if there are no more results.

                        @@ -3851,9 +3835,6 @@ export namespace ListTagsForResourceRequest { }); } -/** - * - */ export interface ListTagsForResourceResponse { /** *

                        A collection of labels, in the form of key:value pairs, that apply to this @@ -3872,7 +3853,7 @@ export namespace ListTagsForResourceResponse { } /** - *

                        + *

                        A new studio user's membership.

                        */ export interface NewStudioMember { /** @@ -3895,9 +3876,6 @@ export namespace NewStudioMember { }); } -/** - * - */ export interface UpdateStreamingImageRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -3938,12 +3916,16 @@ export namespace UpdateStreamingImageRequest { }); } -/** - *

                        - */ export interface UpdateStreamingImageResponse { /** - *

                        + *

                        Represents a streaming image resource.

                        + *

                        Streaming images are used by studio users to select which operating system and + * software they want to use in a Nimble Studio streaming session.

                        + *

                        Amazon provides a number of streaming images that include popular 3rd-party + * software.

                        + *

                        You can create your own streaming images using an Amazon Elastic Compute Cloud (Amazon + * EC2) machine image that you create for this purpose. You can also include software that + * your users require.

                        */ streamingImage?: StreamingImage; } @@ -4048,9 +4030,6 @@ export namespace StopStreamingSessionResponse { }); } -/** - * - */ export interface UpdateStudioComponentRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -4128,9 +4107,6 @@ export namespace UpdateStudioComponentRequest { }); } -/** - * - */ export interface UpdateStudioComponentResponse { /** *

                        Information about the studio component.

                        @@ -4148,9 +4124,6 @@ export namespace UpdateStudioComponentResponse { }); } -/** - * - */ export interface PutStudioMembersRequest { /** *

                        Unique, case-sensitive identifier that you provide to ensure the idempotency of the @@ -4184,9 +4157,6 @@ export namespace PutStudioMembersRequest { }); } -/** - * - */ export interface PutStudioMembersResponse {} export namespace PutStudioMembersResponse { @@ -4221,9 +4191,6 @@ export namespace StartStudioSSOConfigurationRepairRequest { }); } -/** - * - */ export interface StartStudioSSOConfigurationRepairResponse { /** *

                        Information about a studio.

                        @@ -4241,9 +4208,6 @@ export namespace StartStudioSSOConfigurationRepairResponse { }); } -/** - * - */ export interface UpdateStudioRequest { /** *

                        The IAM role that Studio Admins will assume when logging in to the Nimble Studio @@ -4285,9 +4249,6 @@ export namespace UpdateStudioRequest { }); } -/** - * - */ export interface UpdateStudioResponse { /** *

                        Information about a studio.

                        @@ -4305,9 +4266,6 @@ export namespace UpdateStudioResponse { }); } -/** - *

                        - */ export interface TagResourceRequest { /** *

                        The Amazon Resource Name (ARN) of the resource you want to add tags to.

                        diff --git a/clients/client-nimble/src/protocols/Aws_restJson1.ts b/clients/client-nimble/src/protocols/Aws_restJson1.ts index 43b3ddeeab59..7d849f145e18 100644 --- a/clients/client-nimble/src/protocols/Aws_restJson1.ts +++ b/clients/client-nimble/src/protocols/Aws_restJson1.ts @@ -173,10 +173,13 @@ import { SharedFileSystemConfiguration, StreamConfiguration, StreamConfigurationCreate, + StreamConfigurationSessionStorage, StreamingImage, StreamingImageEncryptionConfiguration, StreamingInstanceType, StreamingSession, + StreamingSessionStorageMode, + StreamingSessionStorageRoot, StreamingSessionStream, Studio, StudioComponent, @@ -7338,6 +7341,10 @@ const serializeAws_restJson1StreamConfigurationCreate = ( input.maxStoppedSessionLengthInMinutes !== null && { maxStoppedSessionLengthInMinutes: input.maxStoppedSessionLengthInMinutes, }), + ...(input.sessionStorage !== undefined && + input.sessionStorage !== null && { + sessionStorage: serializeAws_restJson1StreamConfigurationSessionStorage(input.sessionStorage, context), + }), ...(input.streamingImageIds !== undefined && input.streamingImageIds !== null && { streamingImageIds: serializeAws_restJson1StreamingImageIdList(input.streamingImageIds, context), @@ -7345,6 +7352,18 @@ const serializeAws_restJson1StreamConfigurationCreate = ( }; }; +const serializeAws_restJson1StreamConfigurationSessionStorage = ( + input: StreamConfigurationSessionStorage, + context: __SerdeContext +): any => { + return { + ...(input.mode !== undefined && + input.mode !== null && { mode: serializeAws_restJson1StreamingSessionStorageModeList(input.mode, context) }), + ...(input.root !== undefined && + input.root !== null && { root: serializeAws_restJson1StreamingSessionStorageRoot(input.root, context) }), + }; +}; + const serializeAws_restJson1StreamingImageIdList = (input: string[], context: __SerdeContext): any => { return input .filter((e: any) => e != null) @@ -7370,6 +7389,30 @@ const serializeAws_restJson1StreamingInstanceTypeList = ( }); }; +const serializeAws_restJson1StreamingSessionStorageModeList = ( + input: (StreamingSessionStorageMode | string)[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1StreamingSessionStorageRoot = ( + input: StreamingSessionStorageRoot, + context: __SerdeContext +): any => { + return { + ...(input.linux !== undefined && input.linux !== null && { linux: input.linux }), + ...(input.windows !== undefined && input.windows !== null && { windows: input.windows }), + }; +}; + const serializeAws_restJson1StudioComponentConfiguration = ( input: StudioComponentConfiguration, context: __SerdeContext @@ -7854,6 +7897,10 @@ const deserializeAws_restJson1StreamConfiguration = (output: any, context: __Ser : undefined, maxSessionLengthInMinutes: __expectInt32(output.maxSessionLengthInMinutes), maxStoppedSessionLengthInMinutes: __expectInt32(output.maxStoppedSessionLengthInMinutes), + sessionStorage: + output.sessionStorage !== undefined && output.sessionStorage !== null + ? deserializeAws_restJson1StreamConfigurationSessionStorage(output.sessionStorage, context) + : undefined, streamingImageIds: output.streamingImageIds !== undefined && output.streamingImageIds !== null ? deserializeAws_restJson1StreamingImageIdList(output.streamingImageIds, context) @@ -7861,6 +7908,22 @@ const deserializeAws_restJson1StreamConfiguration = (output: any, context: __Ser } as any; }; +const deserializeAws_restJson1StreamConfigurationSessionStorage = ( + output: any, + context: __SerdeContext +): StreamConfigurationSessionStorage => { + return { + mode: + output.mode !== undefined && output.mode !== null + ? deserializeAws_restJson1StreamingSessionStorageModeList(output.mode, context) + : undefined, + root: + output.root !== undefined && output.root !== null + ? deserializeAws_restJson1StreamingSessionStorageRoot(output.root, context) + : undefined, + } as any; +}; + const deserializeAws_restJson1StreamingImage = (output: any, context: __SerdeContext): StreamingImage => { return { arn: __expectString(output.arn), @@ -7991,6 +8054,30 @@ const deserializeAws_restJson1StreamingSessionList = (output: any, context: __Se }); }; +const deserializeAws_restJson1StreamingSessionStorageModeList = ( + output: any, + context: __SerdeContext +): (StreamingSessionStorageMode | string)[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + +const deserializeAws_restJson1StreamingSessionStorageRoot = ( + output: any, + context: __SerdeContext +): StreamingSessionStorageRoot => { + return { + linux: __expectString(output.linux), + windows: __expectString(output.windows), + } as any; +}; + const deserializeAws_restJson1StreamingSessionStream = ( output: any, context: __SerdeContext diff --git a/clients/client-opensearch/src/endpoints.ts b/clients/client-opensearch/src/endpoints.ts index c1f5bfbc7c09..25ccc5c7e2ae 100644 --- a/clients/client-opensearch/src/endpoints.ts +++ b/clients/client-opensearch/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-opsworks/src/endpoints.ts b/clients/client-opsworks/src/endpoints.ts index 6efa02edaf99..dec329b69157 100644 --- a/clients/client-opsworks/src/endpoints.ts +++ b/clients/client-opsworks/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-opsworkscm/src/endpoints.ts b/clients/client-opsworkscm/src/endpoints.ts index 3be03bf78587..94b589f6509f 100644 --- a/clients/client-opsworkscm/src/endpoints.ts +++ b/clients/client-opsworkscm/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-organizations/src/endpoints.ts b/clients/client-organizations/src/endpoints.ts index f54086b9fde2..0af63756c976 100644 --- a/clients/client-organizations/src/endpoints.ts +++ b/clients/client-organizations/src/endpoints.ts @@ -50,6 +50,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-outposts/src/Outposts.ts b/clients/client-outposts/src/Outposts.ts index c2f930340a41..09919b62e61a 100644 --- a/clients/client-outposts/src/Outposts.ts +++ b/clients/client-outposts/src/Outposts.ts @@ -55,6 +55,11 @@ import { UntagResourceCommandInput, UntagResourceCommandOutput, } from "./commands/UntagResourceCommand"; +import { + UpdateOutpostCommand, + UpdateOutpostCommandInput, + UpdateOutpostCommandOutput, +} from "./commands/UpdateOutpostCommand"; import { UpdateSiteAddressCommand, UpdateSiteAddressCommandInput, @@ -640,6 +645,40 @@ export class Outposts extends OutpostsClient { } } + /** + *

                        + * Updates an Outpost. + *

                        + */ + public updateOutpost( + args: UpdateOutpostCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateOutpost( + args: UpdateOutpostCommandInput, + cb: (err: any, data?: UpdateOutpostCommandOutput) => void + ): void; + public updateOutpost( + args: UpdateOutpostCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateOutpostCommandOutput) => void + ): void; + public updateOutpost( + args: UpdateOutpostCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateOutpostCommandOutput) => void), + cb?: (err: any, data?: UpdateOutpostCommandOutput) => void + ): Promise | void { + const command = new UpdateOutpostCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        * Updates the site. diff --git a/clients/client-outposts/src/OutpostsClient.ts b/clients/client-outposts/src/OutpostsClient.ts index cae9dd100872..fae518e6dbdc 100644 --- a/clients/client-outposts/src/OutpostsClient.ts +++ b/clients/client-outposts/src/OutpostsClient.ts @@ -74,6 +74,7 @@ import { } from "./commands/ListTagsForResourceCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; +import { UpdateOutpostCommandInput, UpdateOutpostCommandOutput } from "./commands/UpdateOutpostCommand"; import { UpdateSiteAddressCommandInput, UpdateSiteAddressCommandOutput } from "./commands/UpdateSiteAddressCommand"; import { UpdateSiteCommandInput, UpdateSiteCommandOutput } from "./commands/UpdateSiteCommand"; import { @@ -102,6 +103,7 @@ export type ServiceInputTypes = | ListTagsForResourceCommandInput | TagResourceCommandInput | UntagResourceCommandInput + | UpdateOutpostCommandInput | UpdateSiteAddressCommandInput | UpdateSiteCommandInput | UpdateSiteRackPhysicalPropertiesCommandInput; @@ -126,6 +128,7 @@ export type ServiceOutputTypes = | ListTagsForResourceCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput + | UpdateOutpostCommandOutput | UpdateSiteAddressCommandOutput | UpdateSiteCommandOutput | UpdateSiteRackPhysicalPropertiesCommandOutput; diff --git a/clients/client-outposts/src/commands/UpdateOutpostCommand.ts b/clients/client-outposts/src/commands/UpdateOutpostCommand.ts new file mode 100644 index 000000000000..291e3bd5c79c --- /dev/null +++ b/clients/client-outposts/src/commands/UpdateOutpostCommand.ts @@ -0,0 +1,97 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { UpdateOutpostInput, UpdateOutpostOutput } from "../models/models_0"; +import { OutpostsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../OutpostsClient"; +import { + deserializeAws_restJson1UpdateOutpostCommand, + serializeAws_restJson1UpdateOutpostCommand, +} from "../protocols/Aws_restJson1"; + +export interface UpdateOutpostCommandInput extends UpdateOutpostInput {} +export interface UpdateOutpostCommandOutput extends UpdateOutpostOutput, __MetadataBearer {} + +/** + *

                        + * Updates an Outpost. + *

                        + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { OutpostsClient, UpdateOutpostCommand } from "@aws-sdk/client-outposts"; // ES Modules import + * // const { OutpostsClient, UpdateOutpostCommand } = require("@aws-sdk/client-outposts"); // CommonJS import + * const client = new OutpostsClient(config); + * const command = new UpdateOutpostCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateOutpostCommandInput} for command's `input` shape. + * @see {@link UpdateOutpostCommandOutput} for command's `response` shape. + * @see {@link OutpostsClientResolvedConfig | config} for OutpostsClient's `config` shape. + * + */ +export class UpdateOutpostCommand extends $Command< + UpdateOutpostCommandInput, + UpdateOutpostCommandOutput, + OutpostsClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateOutpostCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: OutpostsClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "OutpostsClient"; + const commandName = "UpdateOutpostCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateOutpostInput.filterSensitiveLog, + outputFilterSensitiveLog: UpdateOutpostOutput.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateOutpostCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UpdateOutpostCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UpdateOutpostCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-outposts/src/commands/index.ts b/clients/client-outposts/src/commands/index.ts index 2f8a017cef98..3ca627eec6ef 100644 --- a/clients/client-outposts/src/commands/index.ts +++ b/clients/client-outposts/src/commands/index.ts @@ -17,6 +17,7 @@ export * from "./ListSitesCommand"; export * from "./ListTagsForResourceCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; +export * from "./UpdateOutpostCommand"; export * from "./UpdateSiteAddressCommand"; export * from "./UpdateSiteCommand"; export * from "./UpdateSiteRackPhysicalPropertiesCommand"; diff --git a/clients/client-outposts/src/endpoints.ts b/clients/client-outposts/src/endpoints.ts index feec77f08956..43c905928145 100644 --- a/clients/client-outposts/src/endpoints.ts +++ b/clients/client-outposts/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-outposts/src/models/models_0.ts b/clients/client-outposts/src/models/models_0.ts index 1ce743678c70..e4e5c9f733cb 100644 --- a/clients/client-outposts/src/models/models_0.ts +++ b/clients/client-outposts/src/models/models_0.ts @@ -453,7 +453,9 @@ export enum OrderStatus { */ export interface Order { /** - *

                        The ID of the Outpost in the order.

                        + *

                        + * The ID of the Outpost in the order. + *

                        */ OutpostId?: string; @@ -576,7 +578,9 @@ export interface CreateOutpostInput { Description?: string; /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; @@ -617,7 +621,9 @@ export namespace CreateOutpostInput { */ export interface Outpost { /** - *

                        The ID of the Outpost.

                        + *

                        + * The ID of the Outpost. + *

                        */ OutpostId?: string; @@ -632,7 +638,9 @@ export interface Outpost { OutpostArn?: string; /** - *

                        The ID of the site.

                        + *

                        + * The ID of the site. + *

                        */ SiteId?: string; @@ -909,7 +917,9 @@ export namespace CreateSiteInput { */ export interface Site { /** - *

                        The ID of the site.

                        + *

                        + * The ID of the site. + *

                        */ SiteId?: string; @@ -1000,7 +1010,7 @@ export namespace CreateSiteOutput { export interface DeleteOutpostInput { /** *

                        - * The ID of the Outpost. + * The ID or the Amazon Resource Name (ARN) of the Outpost. *

                        */ OutpostId: string | undefined; @@ -1028,7 +1038,9 @@ export namespace DeleteOutpostOutput { export interface DeleteSiteInput { /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; } @@ -1120,7 +1132,7 @@ export namespace GetOrderOutput { export interface GetOutpostInput { /** *

                        - * The ID of the Outpost. + * The ID or the Amazon Resource Name (ARN) of the Outpost. *

                        */ OutpostId: string | undefined; @@ -1154,7 +1166,7 @@ export namespace GetOutpostOutput { export interface GetOutpostInstanceTypesInput { /** *

                        - * The ID of the Outpost. + * The ID or the Amazon Resource Name (ARN) of the Outpost. *

                        */ OutpostId: string | undefined; @@ -1233,7 +1245,9 @@ export namespace GetOutpostInstanceTypesOutput { export interface GetSiteInput { /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; } @@ -1265,7 +1279,9 @@ export namespace GetSiteOutput { export interface GetSiteAddressInput { /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; @@ -1286,7 +1302,9 @@ export namespace GetSiteAddressInput { export interface GetSiteAddressOutput { /** - *

                        The ID of the site.

                        + *

                        + * The ID of the site. + *

                        */ SiteId?: string; @@ -1741,9 +1759,62 @@ export namespace UntagResourceResponse { }); } +export interface UpdateOutpostInput { + /** + *

                        + * The ID or the Amazon Resource Name (ARN) of the Outpost. + *

                        + */ + OutpostId: string | undefined; + + /** + *

                        The name of the Outpost.

                        + */ + Name?: string; + + /** + *

                        The description of the Outpost.

                        + */ + Description?: string; + + /** + *

                        + * The type of hardware for this Outpost. + *

                        + */ + SupportedHardwareType?: SupportedHardwareType | string; +} + +export namespace UpdateOutpostInput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateOutpostInput): any => ({ + ...obj, + }); +} + +export interface UpdateOutpostOutput { + /** + *

                        Information about an Outpost.

                        + */ + Outpost?: Outpost; +} + +export namespace UpdateOutpostOutput { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UpdateOutpostOutput): any => ({ + ...obj, + }); +} + export interface UpdateSiteInput { /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; @@ -1792,7 +1863,9 @@ export namespace UpdateSiteOutput { export interface UpdateSiteAddressInput { /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; @@ -1847,7 +1920,9 @@ export namespace UpdateSiteAddressOutput { export interface UpdateSiteRackPhysicalPropertiesInput { /** - *

                        The ID of the site.

                        + *

                        + * The ID or the Amazon Resource Name (ARN) of the site. + *

                        */ SiteId: string | undefined; diff --git a/clients/client-outposts/src/protocols/Aws_restJson1.ts b/clients/client-outposts/src/protocols/Aws_restJson1.ts index 7ebd660f8eea..570f3febecdd 100644 --- a/clients/client-outposts/src/protocols/Aws_restJson1.ts +++ b/clients/client-outposts/src/protocols/Aws_restJson1.ts @@ -42,6 +42,7 @@ import { } from "../commands/ListTagsForResourceCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; +import { UpdateOutpostCommandInput, UpdateOutpostCommandOutput } from "../commands/UpdateOutpostCommand"; import { UpdateSiteAddressCommandInput, UpdateSiteAddressCommandOutput } from "../commands/UpdateSiteAddressCommand"; import { UpdateSiteCommandInput, UpdateSiteCommandOutput } from "../commands/UpdateSiteCommand"; import { @@ -644,6 +645,42 @@ export const serializeAws_restJson1UntagResourceCommand = async ( }); }; +export const serializeAws_restJson1UpdateOutpostCommand = async ( + input: UpdateOutpostCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/outposts/{OutpostId}"; + if (input.OutpostId !== undefined) { + const labelValue: string = input.OutpostId; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: OutpostId."); + } + resolvedPath = resolvedPath.replace("{OutpostId}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: OutpostId."); + } + let body: any; + body = JSON.stringify({ + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), + ...(input.SupportedHardwareType !== undefined && + input.SupportedHardwareType !== null && { SupportedHardwareType: input.SupportedHardwareType }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PATCH", + headers, + path: resolvedPath, + body, + }); +}; + export const serializeAws_restJson1UpdateSiteCommand = async ( input: UpdateSiteCommandInput, context: __SerdeContext @@ -2277,6 +2314,93 @@ const deserializeAws_restJson1UntagResourceCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1UpdateOutpostCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UpdateOutpostCommandError(output, context); + } + const contents: UpdateOutpostCommandOutput = { + $metadata: deserializeMetadata(output), + Outpost: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Outpost !== undefined && data.Outpost !== null) { + contents.Outpost = deserializeAws_restJson1Outpost(data.Outpost, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UpdateOutpostCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.outposts#AccessDeniedException": + response = { + ...(await deserializeAws_restJson1AccessDeniedExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ConflictException": + case "com.amazonaws.outposts#ConflictException": + response = { + ...(await deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InternalServerException": + case "com.amazonaws.outposts#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "NotFoundException": + case "com.amazonaws.outposts#NotFoundException": + response = { + ...(await deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.outposts#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1UpdateSiteCommand = async ( output: __HttpResponse, context: __SerdeContext diff --git a/clients/client-panorama/src/endpoints.ts b/clients/client-panorama/src/endpoints.ts index c3fe44c37793..db866c97679a 100644 --- a/clients/client-panorama/src/endpoints.ts +++ b/clients/client-panorama/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-personalize-events/src/endpoints.ts b/clients/client-personalize-events/src/endpoints.ts index 436c411912d3..6525780dd66f 100644 --- a/clients/client-personalize-events/src/endpoints.ts +++ b/clients/client-personalize-events/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-personalize-runtime/src/endpoints.ts b/clients/client-personalize-runtime/src/endpoints.ts index 0c3db852599f..83518c3c0e26 100644 --- a/clients/client-personalize-runtime/src/endpoints.ts +++ b/clients/client-personalize-runtime/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-personalize/src/endpoints.ts b/clients/client-personalize/src/endpoints.ts index 84d5bfe5f69c..54a7b327e378 100644 --- a/clients/client-personalize/src/endpoints.ts +++ b/clients/client-personalize/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-pi/src/endpoints.ts b/clients/client-pi/src/endpoints.ts index 371d123e70fb..5c981198a44c 100644 --- a/clients/client-pi/src/endpoints.ts +++ b/clients/client-pi/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-pinpoint-email/src/endpoints.ts b/clients/client-pinpoint-email/src/endpoints.ts index 536775cc5e69..c5137be6080b 100644 --- a/clients/client-pinpoint-email/src/endpoints.ts +++ b/clients/client-pinpoint-email/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-pinpoint-sms-voice/src/endpoints.ts b/clients/client-pinpoint-sms-voice/src/endpoints.ts index a16c50b6ad83..6ef1a143c5e9 100644 --- a/clients/client-pinpoint-sms-voice/src/endpoints.ts +++ b/clients/client-pinpoint-sms-voice/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-pinpoint/src/endpoints.ts b/clients/client-pinpoint/src/endpoints.ts index 27727d884d1d..59bc5f4eb8d2 100644 --- a/clients/client-pinpoint/src/endpoints.ts +++ b/clients/client-pinpoint/src/endpoints.ts @@ -54,6 +54,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-polly/src/endpoints.ts b/clients/client-polly/src/endpoints.ts index 85ce4a68aef9..63a44cb2cfeb 100644 --- a/clients/client-polly/src/endpoints.ts +++ b/clients/client-polly/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-pricing/src/endpoints.ts b/clients/client-pricing/src/endpoints.ts index c73a771ea592..fbad9b23834d 100644 --- a/clients/client-pricing/src/endpoints.ts +++ b/clients/client-pricing/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-proton/src/endpoints.ts b/clients/client-proton/src/endpoints.ts index 1cd6609890f0..5451a7b18815 100644 --- a/clients/client-proton/src/endpoints.ts +++ b/clients/client-proton/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-qldb-session/src/endpoints.ts b/clients/client-qldb-session/src/endpoints.ts index 6106fb852084..b02f6238de87 100644 --- a/clients/client-qldb-session/src/endpoints.ts +++ b/clients/client-qldb-session/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-qldb/src/QLDB.ts b/clients/client-qldb/src/QLDB.ts index 1ea76f273881..2fb63a24dab3 100644 --- a/clients/client-qldb/src/QLDB.ts +++ b/clients/client-qldb/src/QLDB.ts @@ -123,7 +123,7 @@ export class QLDB extends QLDBClient { } /** - *

                        Creates a new ledger in your account in the current Region.

                        + *

                        Creates a new ledger in your Amazon Web Services account in the current Region.

                        */ public createLedger( args: CreateLedgerCommandInput, @@ -294,7 +294,14 @@ export class QLDB extends QLDBClient { /** *

                        Exports journal contents within a date and time range from a ledger into a specified - * Amazon Simple Storage Service (Amazon S3) bucket. The data is written as files in Amazon Ion format.

                        + * Amazon Simple Storage Service (Amazon S3) bucket. A journal export job can write the data objects in either the text + * or binary representation of Amazon Ion format, or in JSON Lines text + * format.

                        + *

                        In JSON Lines format, each journal block in the exported data object is a valid JSON + * object that is delimited by a newline. You can use this format to easily integrate JSON + * exports with analytics tools such as Glue and Amazon Athena + * because these services can parse newline-delimited JSON automatically. For more information + * about the format, see JSON Lines.

                        *

                        If the ledger with the given Name doesn't exist, then throws * ResourceNotFoundException.

                        *

                        If the ledger with the given Name is in CREATING status, then @@ -463,7 +470,7 @@ export class QLDB extends QLDBClient { /** *

                        Returns an array of journal export job descriptions for all ledgers that are associated - * with the current account and Region.

                        + * with the current Amazon Web Services account and Region.

                        *

                        This action returns a maximum of MaxResults items, and is paginated so that * you can retrieve all the items by calling ListJournalS3Exports multiple * times.

                        @@ -537,7 +544,7 @@ export class QLDB extends QLDBClient { } /** - *

                        Returns an array of ledger summaries that are associated with the current account + *

                        Returns an array of ledger summaries that are associated with the current Amazon Web Services account * and Region.

                        *

                        This action returns a maximum of 100 items and is paginated so that you can * retrieve all the items by calling ListLedgers multiple times.

                        diff --git a/clients/client-qldb/src/commands/CreateLedgerCommand.ts b/clients/client-qldb/src/commands/CreateLedgerCommand.ts index 53543f7afc6c..b50d41412459 100644 --- a/clients/client-qldb/src/commands/CreateLedgerCommand.ts +++ b/clients/client-qldb/src/commands/CreateLedgerCommand.ts @@ -22,7 +22,7 @@ export interface CreateLedgerCommandInput extends CreateLedgerRequest {} export interface CreateLedgerCommandOutput extends CreateLedgerResponse, __MetadataBearer {} /** - *

                        Creates a new ledger in your account in the current Region.

                        + *

                        Creates a new ledger in your Amazon Web Services account in the current Region.

                        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-qldb/src/commands/ExportJournalToS3Command.ts b/clients/client-qldb/src/commands/ExportJournalToS3Command.ts index f7ac32f8508d..9a3274bc8031 100644 --- a/clients/client-qldb/src/commands/ExportJournalToS3Command.ts +++ b/clients/client-qldb/src/commands/ExportJournalToS3Command.ts @@ -23,7 +23,14 @@ export interface ExportJournalToS3CommandOutput extends ExportJournalToS3Respons /** *

                        Exports journal contents within a date and time range from a ledger into a specified - * Amazon Simple Storage Service (Amazon S3) bucket. The data is written as files in Amazon Ion format.

                        + * Amazon Simple Storage Service (Amazon S3) bucket. A journal export job can write the data objects in either the text + * or binary representation of Amazon Ion format, or in JSON Lines text + * format.

                        + *

                        In JSON Lines format, each journal block in the exported data object is a valid JSON + * object that is delimited by a newline. You can use this format to easily integrate JSON + * exports with analytics tools such as Glue and Amazon Athena + * because these services can parse newline-delimited JSON automatically. For more information + * about the format, see JSON Lines.

                        *

                        If the ledger with the given Name doesn't exist, then throws * ResourceNotFoundException.

                        *

                        If the ledger with the given Name is in CREATING status, then diff --git a/clients/client-qldb/src/commands/ListJournalS3ExportsCommand.ts b/clients/client-qldb/src/commands/ListJournalS3ExportsCommand.ts index a118c40bb213..28cf6e7a3344 100644 --- a/clients/client-qldb/src/commands/ListJournalS3ExportsCommand.ts +++ b/clients/client-qldb/src/commands/ListJournalS3ExportsCommand.ts @@ -23,7 +23,7 @@ export interface ListJournalS3ExportsCommandOutput extends ListJournalS3ExportsR /** *

                        Returns an array of journal export job descriptions for all ledgers that are associated - * with the current account and Region.

                        + * with the current Amazon Web Services account and Region.

                        *

                        This action returns a maximum of MaxResults items, and is paginated so that * you can retrieve all the items by calling ListJournalS3Exports multiple * times.

                        diff --git a/clients/client-qldb/src/commands/ListLedgersCommand.ts b/clients/client-qldb/src/commands/ListLedgersCommand.ts index 79636cf5f9d5..ef388f04e873 100644 --- a/clients/client-qldb/src/commands/ListLedgersCommand.ts +++ b/clients/client-qldb/src/commands/ListLedgersCommand.ts @@ -22,7 +22,7 @@ export interface ListLedgersCommandInput extends ListLedgersRequest {} export interface ListLedgersCommandOutput extends ListLedgersResponse, __MetadataBearer {} /** - *

                        Returns an array of ledger summaries that are associated with the current account + *

                        Returns an array of ledger summaries that are associated with the current Amazon Web Services account * and Region.

                        *

                        This action returns a maximum of 100 items and is paginated so that you can * retrieve all the items by calling ListLedgers multiple times.

                        diff --git a/clients/client-qldb/src/endpoints.ts b/clients/client-qldb/src/endpoints.ts index 3346ab0776ed..7b47ba088157 100644 --- a/clients/client-qldb/src/endpoints.ts +++ b/clients/client-qldb/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-qldb/src/models/models_0.ts b/clients/client-qldb/src/models/models_0.ts index eb99a70bda3a..b5158a6115fb 100644 --- a/clients/client-qldb/src/models/models_0.ts +++ b/clients/client-qldb/src/models/models_0.ts @@ -122,8 +122,8 @@ export enum PermissionsMode { export interface CreateLedgerRequest { /** - *

                        The name of the ledger that you want to create. The name must be unique among all of - * the ledgers in your account in the current Region.

                        + *

                        The name of the ledger that you want to create. The name must be unique among all of the + * ledgers in your Amazon Web Services account in the current Region.

                        *

                        Naming constraints for ledger names are defined in Quotas in Amazon QLDB * in the Amazon QLDB Developer Guide.

                        */ @@ -203,7 +203,7 @@ export interface CreateLedgerRequest { *
                      *

                      To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name * (ARN), alias name, or alias ARN. When using an alias name, prefix it with - * "alias/". To specify a key in a different account, you must use the key + * "alias/". To specify a key in a different Amazon Web Services account, you must use the key * ARN or alias ARN.

                      *

                      For example:

                      *
                        @@ -574,6 +574,12 @@ export namespace DescribeJournalS3ExportRequest { }); } +export enum OutputFormat { + ION_BINARY = "ION_BINARY", + ION_TEXT = "ION_TEXT", + JSON = "JSON", +} + export enum S3ObjectEncryptionType { NO_ENCRYPTION = "NO_ENCRYPTION", SSE_KMS = "SSE_KMS", @@ -594,8 +600,8 @@ export interface S3EncryptionConfiguration { ObjectEncryptionType: S3ObjectEncryptionType | string | undefined; /** - *

                        The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) in Key Management Service - * (KMS). Amazon S3 does not support asymmetric CMKs.

                        + *

                        The Amazon Resource Name (ARN) of a symmetric key in Key Management Service (KMS). Amazon S3 does not + * support asymmetric KMS keys.

                        *

                        You must provide a KmsKeyArn if you specify SSE_KMS as the * ObjectEncryptionType.

                        *

                        @@ -703,13 +709,13 @@ export interface JournalS3ExportDescription { Status: ExportStatus | string | undefined; /** - *

                        The inclusive start date and time for the range of journal contents that are specified + *

                        The inclusive start date and time for the range of journal contents that was specified * in the original export request.

                        */ InclusiveStartTime: Date | undefined; /** - *

                        The exclusive end date and time for the range of journal contents that are specified in + *

                        The exclusive end date and time for the range of journal contents that was specified in * the original export request.

                        */ ExclusiveEndTime: Date | undefined; @@ -728,12 +734,17 @@ export interface JournalS3ExportDescription { *

                        Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.

                        * *
                      • - *

                        (Optional) Use your customer master key (CMK) in Key Management Service (KMS) for server-side + *

                        (Optional) Use your customer managed key in Key Management Service (KMS) for server-side * encryption of your exported data.

                        *
                      • *
                      */ RoleArn: string | undefined; + + /** + *

                      The output format of the exported journal data.

                      + */ + OutputFormat?: OutputFormat | string; } export namespace JournalS3ExportDescription { @@ -943,12 +954,21 @@ export interface ExportJournalToS3Request { *

                      Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.

                      *
                    • *
                    • - *

                      (Optional) Use your customer master key (CMK) in Key Management Service (KMS) for server-side + *

                      (Optional) Use your customer managed key in Key Management Service (KMS) for server-side * encryption of your exported data.

                      *
                    • *
                    + *

                    To pass a role to QLDB when requesting a journal export, you must have permissions to + * perform the iam:PassRole action on the IAM role resource. This is required for + * all journal export requests.

                    */ RoleArn: string | undefined; + + /** + *

                    The output format of your exported journal data. If this parameter is not specified, the + * exported data defaults to ION_TEXT format.

                    + */ + OutputFormat?: OutputFormat | string; } export namespace ExportJournalToS3Request { @@ -1253,7 +1273,7 @@ export namespace ListJournalS3ExportsRequest { export interface ListJournalS3ExportsResponse { /** *

                    The array of journal export job descriptions for all ledgers that are associated with - * the current account and Region.

                    + * the current Amazon Web Services account and Region.

                    */ JournalS3Exports?: JournalS3ExportDescription[]; @@ -1403,7 +1423,7 @@ export namespace LedgerSummary { export interface ListLedgersResponse { /** - *

                    The array of ledger summaries that are associated with the current account and + *

                    The array of ledger summaries that are associated with the current Amazon Web Services account and * Region.

                    */ Ledgers?: LedgerSummary[]; @@ -1478,6 +1498,9 @@ export interface StreamJournalToKinesisRequest { /** *

                    The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a * journal stream to write data records to a Kinesis Data Streams resource.

                    + *

                    To pass a role to QLDB when requesting a journal stream, you must have permissions to + * perform the iam:PassRole action on the IAM role resource. This is required for + * all journal stream requests.

                    */ RoleArn: string | undefined; @@ -1662,7 +1685,7 @@ export interface UpdateLedgerRequest { *
                  *

                  To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name * (ARN), alias name, or alias ARN. When using an alias name, prefix it with - * "alias/". To specify a key in a different account, you must use the key + * "alias/". To specify a key in a different Amazon Web Services account, you must use the key * ARN or alias ARN.

                  *

                  For example:

                  *
                    diff --git a/clients/client-qldb/src/protocols/Aws_restJson1.ts b/clients/client-qldb/src/protocols/Aws_restJson1.ts index 69a0c088826a..ab3701f8a9f2 100644 --- a/clients/client-qldb/src/protocols/Aws_restJson1.ts +++ b/clients/client-qldb/src/protocols/Aws_restJson1.ts @@ -310,6 +310,7 @@ export const serializeAws_restJson1ExportJournalToS3Command = async ( input.InclusiveStartTime !== null && { InclusiveStartTime: Math.round(input.InclusiveStartTime.getTime() / 1000), }), + ...(input.OutputFormat !== undefined && input.OutputFormat !== null && { OutputFormat: input.OutputFormat }), ...(input.RoleArn !== undefined && input.RoleArn !== null && { RoleArn: input.RoleArn }), ...(input.S3ExportConfiguration !== undefined && input.S3ExportConfiguration !== null && { @@ -2406,6 +2407,7 @@ const deserializeAws_restJson1JournalS3ExportDescription = ( ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.InclusiveStartTime))) : undefined, LedgerName: __expectString(output.LedgerName), + OutputFormat: __expectString(output.OutputFormat), RoleArn: __expectString(output.RoleArn), S3ExportConfiguration: output.S3ExportConfiguration !== undefined && output.S3ExportConfiguration !== null diff --git a/clients/client-quicksight/src/endpoints.ts b/clients/client-quicksight/src/endpoints.ts index ced789844a9d..07cf6c37fcad 100644 --- a/clients/client-quicksight/src/endpoints.ts +++ b/clients/client-quicksight/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "api", "ca-central-1", "eu-central-1", diff --git a/clients/client-ram/README.md b/clients/client-ram/README.md index 51d8a00f640e..1f13772be8ba 100644 --- a/clients/client-ram/README.md +++ b/clients/client-ram/README.md @@ -9,14 +9,13 @@ AWS SDK for JavaScript RAM Client for Node.js, Browser and React Native.

                    This is the Resource Access Manager API Reference. This documentation provides descriptions and syntax for each of the actions and data types in RAM. RAM is a -service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts and -within your organization or organizational units (OUs) in Organizations. For supported -resource types, you can also share resources with IAM roles and IAM users. If you have -multiple Amazon Web Services accounts, you can use RAM to share those resources with other -accounts.

                    +service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts. If you +have multiple Amazon Web Services accounts, you can use RAM to share those resources with other +accounts. If you use Organizations to manage your accounts, then you share your resources +with your organization or organizational units (OUs). For supported resource types, you +can also share resources with individual Identity and Access Management (IAM) roles an users.

                    To learn more about RAM, see the following resources:

                    -
                    • diff --git a/clients/client-ram/src/RAM.ts b/clients/client-ram/src/RAM.ts index b302a3e526eb..b679dae9ebb3 100644 --- a/clients/client-ram/src/RAM.ts +++ b/clients/client-ram/src/RAM.ts @@ -121,14 +121,13 @@ import { RAMClient } from "./RAMClient"; /** *

                      This is the Resource Access Manager API Reference. This documentation provides * descriptions and syntax for each of the actions and data types in RAM. RAM is a - * service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts and - * within your organization or organizational units (OUs) in Organizations. For supported - * resource types, you can also share resources with IAM roles and IAM users. If you have - * multiple Amazon Web Services accounts, you can use RAM to share those resources with other - * accounts.

                      + * service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts. If you + * have multiple Amazon Web Services accounts, you can use RAM to share those resources with other + * accounts. If you use Organizations to manage your accounts, then you share your resources + * with your organization or organizational units (OUs). For supported resource types, you + * can also share resources with individual Identity and Access Management (IAM) roles an users.

                      * *

                      To learn more about RAM, see the following resources:

                      - * *
                        *
                      • *

                        @@ -145,7 +144,9 @@ import { RAMClient } from "./RAMClient"; */ export class RAM extends RAMClient { /** - *

                        Accepts an invitation to a resource share from another Amazon Web Services account.

                        + *

                        Accepts an invitation to a resource share from another Amazon Web Services account. After you accept the + * invitation, the resources included in the resource share are available to interact with in the + * relevant Amazon Web Services Management Consoles and tools.

                        */ public acceptResourceShareInvitation( args: AcceptResourceShareInvitationCommandInput, @@ -177,7 +178,9 @@ export class RAM extends RAMClient { } /** - *

                        Associates the specified resource share with the specified principals and resources.

                        + *

                        Adds the specified list of principals and list of resources to a resource share. Principals that + * already have access to this resource share immediately receive access to the added resources. + * Newly added principals immediately receive access to the resources shared in this resource share.

                        */ public associateResourceShare( args: AssociateResourceShareCommandInput, @@ -209,7 +212,10 @@ export class RAM extends RAMClient { } /** - *

                        Associates a permission with a resource share.

                        + *

                        Adds or replaces the RAM permission for a resource type included in a resource share. You can + * have exactly one permission associated with each resource type in the resource share. You can add + * a new RAM permission only if there are currently no resources of that resource type + * currently in the resource share.

                        */ public associateResourceSharePermission( args: AssociateResourceSharePermissionCommandInput, @@ -241,9 +247,9 @@ export class RAM extends RAMClient { } /** - *

                        Creates a resource share. You must provide a list of the Amazon Resource Names (ARNs) for the - * resources you want to share. You must also specify who you want to share the resources - * with, and the permissions that you grant them.

                        + *

                        Creates a resource share. You can provide a list of the Amazon Resource Names (ARNs) for the resources that you + * want to share, a list of principals you want to share the resources with, and the + * permissions to grant those principals.

                        * *

                        Sharing a resource makes it available for use by principals outside of the * Amazon Web Services account that created the resource. Sharing doesn't change any permissions or @@ -280,7 +286,9 @@ export class RAM extends RAMClient { } /** - *

                        Deletes the specified resource share.

                        + *

                        Deletes the specified resource share. This doesn't delete any of the resources that were + * associated with the resource share; it only stops the sharing of those resources outside of the + * Amazon Web Services account that created them.

                        */ public deleteResourceShare( args: DeleteResourceShareCommandInput, @@ -344,7 +352,9 @@ export class RAM extends RAMClient { } /** - *

                        Disassociates an RAM permission from a resource share.

                        + *

                        Disassociates an RAM permission from a resource share. Permission changes take effect + * immediately. You can remove a RAM permission from a resource share only if there are currently + * no resources of the relevant resource type currently attached to the resource share.

                        */ public disassociateResourceSharePermission( args: DisassociateResourceSharePermissionCommandInput, @@ -376,8 +386,15 @@ export class RAM extends RAMClient { } /** - *

                        Enables resource sharing within your organization in Organizations.

                        - *

                        The caller must be the master account for the organization.

                        + *

                        Enables resource sharing within your organization in Organizations. Calling this operation + * enables RAM to retrieve information about the organization and its structure. This + * lets you share resources with all of the accounts in an organization by specifying the + * organization's ID, or all of the accounts in an organizational unit (OU) by specifying + * the OU's ID. Until you enable sharing within the organization, you can specify only + * individual Amazon Web Services accounts, or for supported resource types, IAM users and + * roles.

                        + *

                        You must call this operation from an IAM user or role in the organization's + * management account.

                        */ public enableSharingWithAwsOrganization( args: EnableSharingWithAwsOrganizationCommandInput, @@ -441,7 +458,8 @@ export class RAM extends RAMClient { } /** - *

                        Gets the policies for the specified resources that you own and have shared.

                        + *

                        Retrieves the resource policies for the specified resources that you own and have + * shared.

                        */ public getResourcePolicies( args: GetResourcePoliciesCommandInput, @@ -473,7 +491,7 @@ export class RAM extends RAMClient { } /** - *

                        Gets the resources or principals for the resource shares that you own.

                        + *

                        Retrieves the resource and principal associations for resource shares that you own.

                        */ public getResourceShareAssociations( args: GetResourceShareAssociationsCommandInput, @@ -505,7 +523,7 @@ export class RAM extends RAMClient { } /** - *

                        Gets the invitations that you have received for resource shares.

                        + *

                        Retrieves details about invitations that you have received for resource shares.

                        */ public getResourceShareInvitations( args: GetResourceShareInvitationsCommandInput, @@ -537,7 +555,7 @@ export class RAM extends RAMClient { } /** - *

                        Gets the resource shares that you own or the resource shares that are shared with you.

                        + *

                        Retrieves details about the resource shares that you own or that are shared with you.

                        */ public getResourceShares( args: GetResourceSharesCommandInput, @@ -569,8 +587,9 @@ export class RAM extends RAMClient { } /** - *

                        Lists the resources in a resource share that is shared with you but that the invitation is still - * pending for.

                        + *

                        Lists the resources in a resource share that is shared with you but for which the invitation is + * still PENDING. That means that you haven't accepted or rejected the + * invitation and the invitation hasn't expired.

                        */ public listPendingInvitationResources( args: ListPendingInvitationResourcesCommandInput, @@ -602,7 +621,8 @@ export class RAM extends RAMClient { } /** - *

                        Lists the RAM permissions.

                        + *

                        Retrieves a list of available RAM permissions that you can use for the supported + * resource types.

                        */ public listPermissions( args: ListPermissionsCommandInput, @@ -634,7 +654,7 @@ export class RAM extends RAMClient { } /** - *

                        Lists the principals that you have shared resources with or that have shared resources + *

                        Lists the principals that you are sharing resources with or that are sharing resources * with you.

                        */ public listPrincipals( @@ -732,7 +752,7 @@ export class RAM extends RAMClient { } /** - *

                        Lists the shareable resource types supported by RAM.

                        + *

                        Lists the resource types that can be shared by RAM.

                        */ public listResourceTypes( args: ListResourceTypesCommandInput, @@ -764,19 +784,12 @@ export class RAM extends RAMClient { } /** - *

                        Resource shares that were created by attaching a policy to a resource are visible only - * to the resource share owner, and the resource share cannot be modified in RAM.

                        - * - *

                        Use this API action to promote the resource share. When you promote the resource - * share, it becomes:

                        - *
                          - *
                        • - *

                          Visible to all principals that it is shared with.

                          - *
                        • - *
                        • - *

                          Modifiable in RAM.

                          - *
                        • - *
                        + *

                        When you attach a resource-based permission policy to a resource, it automatically + * creates a resource share. However, resource shares created this way are visible only to the resource share + * owner, and the resource share can't be modified in RAM.

                        + *

                        You can use this operation to promote the resource share to a full RAM resource share. When you promote + * a resource share, you can then manage the resource share in RAM and it becomes visible to all of the + * principals you shared it with.

                        */ public promoteResourceShareCreatedFromPolicy( args: PromoteResourceShareCreatedFromPolicyCommandInput, @@ -842,7 +855,8 @@ export class RAM extends RAMClient { } /** - *

                        Adds the specified tags to the specified resource share that you own.

                        + *

                        Adds the specified tag keys and values to the specified resource share. The tags are attached + * only to the resource share, not to the resources that are in the resource share.

                        */ public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; @@ -868,7 +882,7 @@ export class RAM extends RAMClient { } /** - *

                        Removes the specified tags from the specified resource share that you own.

                        + *

                        Removes the specified tag key and value pairs from the specified resource share.

                        */ public untagResource( args: UntagResourceCommandInput, @@ -900,7 +914,7 @@ export class RAM extends RAMClient { } /** - *

                        Updates the specified resource share that you own.

                        + *

                        Modifies some of the properties of the specified resource share.

                        */ public updateResourceShare( args: UpdateResourceShareCommandInput, diff --git a/clients/client-ram/src/RAMClient.ts b/clients/client-ram/src/RAMClient.ts index 481b2ae7b070..e46ac4581974 100644 --- a/clients/client-ram/src/RAMClient.ts +++ b/clients/client-ram/src/RAMClient.ts @@ -326,14 +326,13 @@ export interface RAMClientResolvedConfig extends RAMClientResolvedConfigType {} /** *

                        This is the Resource Access Manager API Reference. This documentation provides * descriptions and syntax for each of the actions and data types in RAM. RAM is a - * service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts and - * within your organization or organizational units (OUs) in Organizations. For supported - * resource types, you can also share resources with IAM roles and IAM users. If you have - * multiple Amazon Web Services accounts, you can use RAM to share those resources with other - * accounts.

                        + * service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts. If you + * have multiple Amazon Web Services accounts, you can use RAM to share those resources with other + * accounts. If you use Organizations to manage your accounts, then you share your resources + * with your organization or organizational units (OUs). For supported resource types, you + * can also share resources with individual Identity and Access Management (IAM) roles an users.

                        * *

                        To learn more about RAM, see the following resources:

                        - * *
                          *
                        • *

                          diff --git a/clients/client-ram/src/commands/AcceptResourceShareInvitationCommand.ts b/clients/client-ram/src/commands/AcceptResourceShareInvitationCommand.ts index 2ba585ac7164..6a0294307976 100644 --- a/clients/client-ram/src/commands/AcceptResourceShareInvitationCommand.ts +++ b/clients/client-ram/src/commands/AcceptResourceShareInvitationCommand.ts @@ -24,7 +24,9 @@ export interface AcceptResourceShareInvitationCommandOutput __MetadataBearer {} /** - *

                          Accepts an invitation to a resource share from another Amazon Web Services account.

                          + *

                          Accepts an invitation to a resource share from another Amazon Web Services account. After you accept the + * invitation, the resources included in the resource share are available to interact with in the + * relevant Amazon Web Services Management Consoles and tools.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/AssociateResourceShareCommand.ts b/clients/client-ram/src/commands/AssociateResourceShareCommand.ts index 6b142bc3d533..233882a138e7 100644 --- a/clients/client-ram/src/commands/AssociateResourceShareCommand.ts +++ b/clients/client-ram/src/commands/AssociateResourceShareCommand.ts @@ -22,7 +22,9 @@ export interface AssociateResourceShareCommandInput extends AssociateResourceSha export interface AssociateResourceShareCommandOutput extends AssociateResourceShareResponse, __MetadataBearer {} /** - *

                          Associates the specified resource share with the specified principals and resources.

                          + *

                          Adds the specified list of principals and list of resources to a resource share. Principals that + * already have access to this resource share immediately receive access to the added resources. + * Newly added principals immediately receive access to the resources shared in this resource share.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/AssociateResourceSharePermissionCommand.ts b/clients/client-ram/src/commands/AssociateResourceSharePermissionCommand.ts index f36c2a1a2612..eb537b5e239d 100644 --- a/clients/client-ram/src/commands/AssociateResourceSharePermissionCommand.ts +++ b/clients/client-ram/src/commands/AssociateResourceSharePermissionCommand.ts @@ -24,7 +24,10 @@ export interface AssociateResourceSharePermissionCommandOutput __MetadataBearer {} /** - *

                          Associates a permission with a resource share.

                          + *

                          Adds or replaces the RAM permission for a resource type included in a resource share. You can + * have exactly one permission associated with each resource type in the resource share. You can add + * a new RAM permission only if there are currently no resources of that resource type + * currently in the resource share.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/CreateResourceShareCommand.ts b/clients/client-ram/src/commands/CreateResourceShareCommand.ts index 5ffc2d3a0ade..6e31f72a7842 100644 --- a/clients/client-ram/src/commands/CreateResourceShareCommand.ts +++ b/clients/client-ram/src/commands/CreateResourceShareCommand.ts @@ -22,9 +22,9 @@ export interface CreateResourceShareCommandInput extends CreateResourceShareRequ export interface CreateResourceShareCommandOutput extends CreateResourceShareResponse, __MetadataBearer {} /** - *

                          Creates a resource share. You must provide a list of the Amazon Resource Names (ARNs) for the - * resources you want to share. You must also specify who you want to share the resources - * with, and the permissions that you grant them.

                          + *

                          Creates a resource share. You can provide a list of the Amazon Resource Names (ARNs) for the resources that you + * want to share, a list of principals you want to share the resources with, and the + * permissions to grant those principals.

                          * *

                          Sharing a resource makes it available for use by principals outside of the * Amazon Web Services account that created the resource. Sharing doesn't change any permissions or diff --git a/clients/client-ram/src/commands/DeleteResourceShareCommand.ts b/clients/client-ram/src/commands/DeleteResourceShareCommand.ts index abf499fadf98..be0e803f52f0 100644 --- a/clients/client-ram/src/commands/DeleteResourceShareCommand.ts +++ b/clients/client-ram/src/commands/DeleteResourceShareCommand.ts @@ -22,7 +22,9 @@ export interface DeleteResourceShareCommandInput extends DeleteResourceShareRequ export interface DeleteResourceShareCommandOutput extends DeleteResourceShareResponse, __MetadataBearer {} /** - *

                          Deletes the specified resource share.

                          + *

                          Deletes the specified resource share. This doesn't delete any of the resources that were + * associated with the resource share; it only stops the sharing of those resources outside of the + * Amazon Web Services account that created them.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/DisassociateResourceSharePermissionCommand.ts b/clients/client-ram/src/commands/DisassociateResourceSharePermissionCommand.ts index c0706e2e4c7e..f1c04fe6d3b4 100644 --- a/clients/client-ram/src/commands/DisassociateResourceSharePermissionCommand.ts +++ b/clients/client-ram/src/commands/DisassociateResourceSharePermissionCommand.ts @@ -27,7 +27,9 @@ export interface DisassociateResourceSharePermissionCommandOutput __MetadataBearer {} /** - *

                          Disassociates an RAM permission from a resource share.

                          + *

                          Disassociates an RAM permission from a resource share. Permission changes take effect + * immediately. You can remove a RAM permission from a resource share only if there are currently + * no resources of the relevant resource type currently attached to the resource share.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/EnableSharingWithAwsOrganizationCommand.ts b/clients/client-ram/src/commands/EnableSharingWithAwsOrganizationCommand.ts index 2f50ba49d029..358a5428790c 100644 --- a/clients/client-ram/src/commands/EnableSharingWithAwsOrganizationCommand.ts +++ b/clients/client-ram/src/commands/EnableSharingWithAwsOrganizationCommand.ts @@ -24,8 +24,15 @@ export interface EnableSharingWithAwsOrganizationCommandOutput __MetadataBearer {} /** - *

                          Enables resource sharing within your organization in Organizations.

                          - *

                          The caller must be the master account for the organization.

                          + *

                          Enables resource sharing within your organization in Organizations. Calling this operation + * enables RAM to retrieve information about the organization and its structure. This + * lets you share resources with all of the accounts in an organization by specifying the + * organization's ID, or all of the accounts in an organizational unit (OU) by specifying + * the OU's ID. Until you enable sharing within the organization, you can specify only + * individual Amazon Web Services accounts, or for supported resource types, IAM users and + * roles.

                          + *

                          You must call this operation from an IAM user or role in the organization's + * management account.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/GetResourcePoliciesCommand.ts b/clients/client-ram/src/commands/GetResourcePoliciesCommand.ts index 86fad554b856..20a8a3f6d3e9 100644 --- a/clients/client-ram/src/commands/GetResourcePoliciesCommand.ts +++ b/clients/client-ram/src/commands/GetResourcePoliciesCommand.ts @@ -22,7 +22,8 @@ export interface GetResourcePoliciesCommandInput extends GetResourcePoliciesRequ export interface GetResourcePoliciesCommandOutput extends GetResourcePoliciesResponse, __MetadataBearer {} /** - *

                          Gets the policies for the specified resources that you own and have shared.

                          + *

                          Retrieves the resource policies for the specified resources that you own and have + * shared.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/GetResourceShareAssociationsCommand.ts b/clients/client-ram/src/commands/GetResourceShareAssociationsCommand.ts index 929a011f7352..912651ef5a0d 100644 --- a/clients/client-ram/src/commands/GetResourceShareAssociationsCommand.ts +++ b/clients/client-ram/src/commands/GetResourceShareAssociationsCommand.ts @@ -24,7 +24,7 @@ export interface GetResourceShareAssociationsCommandOutput __MetadataBearer {} /** - *

                          Gets the resources or principals for the resource shares that you own.

                          + *

                          Retrieves the resource and principal associations for resource shares that you own.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/GetResourceShareInvitationsCommand.ts b/clients/client-ram/src/commands/GetResourceShareInvitationsCommand.ts index 6d86bb084d05..ee559f98620a 100644 --- a/clients/client-ram/src/commands/GetResourceShareInvitationsCommand.ts +++ b/clients/client-ram/src/commands/GetResourceShareInvitationsCommand.ts @@ -24,7 +24,7 @@ export interface GetResourceShareInvitationsCommandOutput __MetadataBearer {} /** - *

                          Gets the invitations that you have received for resource shares.

                          + *

                          Retrieves details about invitations that you have received for resource shares.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/GetResourceSharesCommand.ts b/clients/client-ram/src/commands/GetResourceSharesCommand.ts index f51a60982a72..4c2fe0808f16 100644 --- a/clients/client-ram/src/commands/GetResourceSharesCommand.ts +++ b/clients/client-ram/src/commands/GetResourceSharesCommand.ts @@ -22,7 +22,7 @@ export interface GetResourceSharesCommandInput extends GetResourceSharesRequest export interface GetResourceSharesCommandOutput extends GetResourceSharesResponse, __MetadataBearer {} /** - *

                          Gets the resource shares that you own or the resource shares that are shared with you.

                          + *

                          Retrieves details about the resource shares that you own or that are shared with you.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/ListPendingInvitationResourcesCommand.ts b/clients/client-ram/src/commands/ListPendingInvitationResourcesCommand.ts index 56df92fb33d0..e4ae02ccb0a4 100644 --- a/clients/client-ram/src/commands/ListPendingInvitationResourcesCommand.ts +++ b/clients/client-ram/src/commands/ListPendingInvitationResourcesCommand.ts @@ -24,8 +24,9 @@ export interface ListPendingInvitationResourcesCommandOutput __MetadataBearer {} /** - *

                          Lists the resources in a resource share that is shared with you but that the invitation is still - * pending for.

                          + *

                          Lists the resources in a resource share that is shared with you but for which the invitation is + * still PENDING. That means that you haven't accepted or rejected the + * invitation and the invitation hasn't expired.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/ListPermissionsCommand.ts b/clients/client-ram/src/commands/ListPermissionsCommand.ts index 4cae4c8bac8b..3bcce2ae6af6 100644 --- a/clients/client-ram/src/commands/ListPermissionsCommand.ts +++ b/clients/client-ram/src/commands/ListPermissionsCommand.ts @@ -22,7 +22,8 @@ export interface ListPermissionsCommandInput extends ListPermissionsRequest {} export interface ListPermissionsCommandOutput extends ListPermissionsResponse, __MetadataBearer {} /** - *

                          Lists the RAM permissions.

                          + *

                          Retrieves a list of available RAM permissions that you can use for the supported + * resource types.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/ListPrincipalsCommand.ts b/clients/client-ram/src/commands/ListPrincipalsCommand.ts index e695b7d78d19..4265779bc569 100644 --- a/clients/client-ram/src/commands/ListPrincipalsCommand.ts +++ b/clients/client-ram/src/commands/ListPrincipalsCommand.ts @@ -22,7 +22,7 @@ export interface ListPrincipalsCommandInput extends ListPrincipalsRequest {} export interface ListPrincipalsCommandOutput extends ListPrincipalsResponse, __MetadataBearer {} /** - *

                          Lists the principals that you have shared resources with or that have shared resources + *

                          Lists the principals that you are sharing resources with or that are sharing resources * with you.

                          * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-ram/src/commands/ListResourceTypesCommand.ts b/clients/client-ram/src/commands/ListResourceTypesCommand.ts index 4f8130726b47..80e9c7ee1e52 100644 --- a/clients/client-ram/src/commands/ListResourceTypesCommand.ts +++ b/clients/client-ram/src/commands/ListResourceTypesCommand.ts @@ -22,7 +22,7 @@ export interface ListResourceTypesCommandInput extends ListResourceTypesRequest export interface ListResourceTypesCommandOutput extends ListResourceTypesResponse, __MetadataBearer {} /** - *

                          Lists the shareable resource types supported by RAM.

                          + *

                          Lists the resource types that can be shared by RAM.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/PromoteResourceShareCreatedFromPolicyCommand.ts b/clients/client-ram/src/commands/PromoteResourceShareCreatedFromPolicyCommand.ts index bd2b040f5f4d..30e543e6e953 100644 --- a/clients/client-ram/src/commands/PromoteResourceShareCreatedFromPolicyCommand.ts +++ b/clients/client-ram/src/commands/PromoteResourceShareCreatedFromPolicyCommand.ts @@ -28,19 +28,12 @@ export interface PromoteResourceShareCreatedFromPolicyCommandOutput __MetadataBearer {} /** - *

                          Resource shares that were created by attaching a policy to a resource are visible only - * to the resource share owner, and the resource share cannot be modified in RAM.

                          - * - *

                          Use this API action to promote the resource share. When you promote the resource - * share, it becomes:

                          - *
                            - *
                          • - *

                            Visible to all principals that it is shared with.

                            - *
                          • - *
                          • - *

                            Modifiable in RAM.

                            - *
                          • - *
                          + *

                          When you attach a resource-based permission policy to a resource, it automatically + * creates a resource share. However, resource shares created this way are visible only to the resource share + * owner, and the resource share can't be modified in RAM.

                          + *

                          You can use this operation to promote the resource share to a full RAM resource share. When you promote + * a resource share, you can then manage the resource share in RAM and it becomes visible to all of the + * principals you shared it with.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/TagResourceCommand.ts b/clients/client-ram/src/commands/TagResourceCommand.ts index da20b84cc4ef..27f1e2e37cee 100644 --- a/clients/client-ram/src/commands/TagResourceCommand.ts +++ b/clients/client-ram/src/commands/TagResourceCommand.ts @@ -22,7 +22,8 @@ export interface TagResourceCommandInput extends TagResourceRequest {} export interface TagResourceCommandOutput extends TagResourceResponse, __MetadataBearer {} /** - *

                          Adds the specified tags to the specified resource share that you own.

                          + *

                          Adds the specified tag keys and values to the specified resource share. The tags are attached + * only to the resource share, not to the resources that are in the resource share.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/UntagResourceCommand.ts b/clients/client-ram/src/commands/UntagResourceCommand.ts index af6547822027..227028ffb34c 100644 --- a/clients/client-ram/src/commands/UntagResourceCommand.ts +++ b/clients/client-ram/src/commands/UntagResourceCommand.ts @@ -22,7 +22,7 @@ export interface UntagResourceCommandInput extends UntagResourceRequest {} export interface UntagResourceCommandOutput extends UntagResourceResponse, __MetadataBearer {} /** - *

                          Removes the specified tags from the specified resource share that you own.

                          + *

                          Removes the specified tag key and value pairs from the specified resource share.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/commands/UpdateResourceShareCommand.ts b/clients/client-ram/src/commands/UpdateResourceShareCommand.ts index ff3f0956f8c9..f1216c67383a 100644 --- a/clients/client-ram/src/commands/UpdateResourceShareCommand.ts +++ b/clients/client-ram/src/commands/UpdateResourceShareCommand.ts @@ -22,7 +22,7 @@ export interface UpdateResourceShareCommandInput extends UpdateResourceShareRequ export interface UpdateResourceShareCommandOutput extends UpdateResourceShareResponse, __MetadataBearer {} /** - *

                          Updates the specified resource share that you own.

                          + *

                          Modifies some of the properties of the specified resource share.

                          * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-ram/src/endpoints.ts b/clients/client-ram/src/endpoints.ts index a8e1f7e2f310..05c7726609ff 100644 --- a/clients/client-ram/src/endpoints.ts +++ b/clients/client-ram/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ram/src/models/models_0.ts b/clients/client-ram/src/models/models_0.ts index b1c6dba43ed7..e4e6110c2c4e 100644 --- a/clients/client-ram/src/models/models_0.ts +++ b/clients/client-ram/src/models/models_0.ts @@ -2,12 +2,19 @@ import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException export interface AcceptResourceShareInvitationRequest { /** - *

                          The Amazon Resource Name (ARN) of the invitation.

                          + *

                          The Amazon Resoure Name (ARN) of the invitation that you want to accept.

                          */ resourceShareInvitationArn: string | undefined; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                          + *

                          If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                          */ clientToken?: string; } @@ -31,11 +38,11 @@ export type ResourceShareAssociationStatus = | "FAILED"; /** - *

                          Describes an association with a resource share.

                          + *

                          Describes an association with a resource share and either a principal or a resource.

                          */ export interface ResourceShareAssociation { /** - *

                          The Amazon Resource Name (ARN) of the resource share.

                          + *

                          The Amazon Resoure Name (ARN) of the resource share.

                          */ resourceShareArn?: string; @@ -45,35 +52,42 @@ export interface ResourceShareAssociation { resourceShareName?: string; /** - *

                          The associated entity. For resource associations, this is the Amazon Resource Name - * (ARN) of the resource. For principal associations, this is one of the following:

                          + *

                          The associated entity. This can be either of the following:

                          *
                            *
                          • - *

                            An Amazon Web Services account ID

                            + *

                            For a resource association, this is the Amazon Resoure Name (ARN) of the resource.

                            *
                          • *
                          • - *

                            An ARN of an organization in Organizations

                            - *
                          • - *
                          • - *

                            An ARN of an organizational unit (OU) in Organizations

                            - *
                          • - *
                          • - *

                            An ARN of an IAM role

                            - *
                          • - *
                          • - *

                            An ARN of an IAM user

                            + *

                            For principal associations, this is one of the following:

                            + *
                              + *
                            • + *

                              The ID of an Amazon Web Services account

                              + *
                            • + *
                            • + *

                              The Amazon Resoure Name (ARN) of an organization in Organizations

                              + *
                            • + *
                            • + *

                              The ARN of an organizational unit (OU) in Organizations

                              + *
                            • + *
                            • + *

                              The ARN of an IAM role

                              + *
                            • + *
                            • + *

                              The ARN of an IAM user

                              + *
                            • + *
                            *
                          • *
                          */ associatedEntity?: string; /** - *

                          The association type.

                          + *

                          The type of entity included in this association.

                          */ associationType?: ResourceShareAssociationType | string; /** - *

                          The status of the association.

                          + *

                          The current status of the association.

                          */ status?: ResourceShareAssociationStatus | string; @@ -83,12 +97,12 @@ export interface ResourceShareAssociation { statusMessage?: string; /** - *

                          The time when the association was created.

                          + *

                          The date and time when the association was created.

                          */ creationTime?: Date; /** - *

                          The time when the association was last updated.

                          + *

                          The date and time when the association was last updated.

                          */ lastUpdatedTime?: Date; @@ -111,11 +125,11 @@ export namespace ResourceShareAssociation { export type ResourceShareInvitationStatus = "ACCEPTED" | "EXPIRED" | "PENDING" | "REJECTED"; /** - *

                          Describes an invitation to join a resource share.

                          + *

                          Describes an invitation for an Amazon Web Services account to join a resource share.

                          */ export interface ResourceShareInvitation { /** - *

                          The Amazon Resource Name (ARN) of the invitation.

                          + *

                          The Amazon Resoure Name (ARN) of the invitation.

                          */ resourceShareInvitationArn?: string; @@ -125,7 +139,7 @@ export interface ResourceShareInvitation { resourceShareName?: string; /** - *

                          The Amazon Resource Name (ARN) of the resource share.

                          + *

                          The Amazon Resoure Name (ARN) of the resource share

                          */ resourceShareArn?: string; @@ -145,21 +159,19 @@ export interface ResourceShareInvitation { invitationTimestamp?: Date; /** - *

                          The status of the invitation.

                          + *

                          The current status of the invitation.

                          */ status?: ResourceShareInvitationStatus | string; /** * @deprecated * - *

                          To view the resources associated with a pending resource share invitation, use - * ListPendingInvitationResources.

                          + *

                          To view the resources associated with a pending resource share invitation, use ListPendingInvitationResources.

                          */ resourceShareAssociations?: ResourceShareAssociation[]; /** - *

                          The Amazon Resource Name (ARN) of the IAM user or IAM role that received the - * invitation.

                          + *

                          The Amazon Resoure Name (ARN) of the IAM user or role that received the invitation.

                          */ receiverArn?: string; } @@ -175,12 +187,15 @@ export namespace ResourceShareInvitation { export interface AcceptResourceShareInvitationResponse { /** - *

                          Information about the invitation.

                          + *

                          An object that contains information about the specified invitation.

                          */ resourceShareInvitation?: ResourceShareInvitation; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                          */ clientToken?: string; } @@ -195,8 +210,9 @@ export namespace AcceptResourceShareInvitationResponse { } /** - *

                          A client token input parameter was reused with an operation, but at least one of the - * other input parameters is different from the previous call to the operation.

                          + *

                          The client token input parameter was matched one used with a previous call to the + * operation, but at least one of the other input parameters is different from the previous + * call.

                          */ export interface IdempotentParameterMismatchException extends __SmithyException, $MetadataBearer { name: "IdempotentParameterMismatchException"; @@ -214,7 +230,7 @@ export namespace IdempotentParameterMismatchException { } /** - *

                          A client token is not valid.

                          + *

                          The client token is not valid.

                          */ export interface InvalidClientTokenException extends __SmithyException, $MetadataBearer { name: "InvalidClientTokenException"; @@ -268,7 +284,7 @@ export namespace OperationNotPermittedException { } /** - *

                          The invitation was already accepted.

                          + *

                          The specified invitation was already accepted.

                          */ export interface ResourceShareInvitationAlreadyAcceptedException extends __SmithyException, $MetadataBearer { name: "ResourceShareInvitationAlreadyAcceptedException"; @@ -286,7 +302,7 @@ export namespace ResourceShareInvitationAlreadyAcceptedException { } /** - *

                          The invitation was already rejected.

                          + *

                          The specified invitation was already rejected.

                          */ export interface ResourceShareInvitationAlreadyRejectedException extends __SmithyException, $MetadataBearer { name: "ResourceShareInvitationAlreadyRejectedException"; @@ -304,7 +320,7 @@ export namespace ResourceShareInvitationAlreadyRejectedException { } /** - *

                          The Amazon Resource Name (ARN) for an invitation was not found.

                          + *

                          The specified Amazon Resource Name (ARN) for an invitation was not found.

                          */ export interface ResourceShareInvitationArnNotFoundException extends __SmithyException, $MetadataBearer { name: "ResourceShareInvitationArnNotFoundException"; @@ -322,7 +338,7 @@ export namespace ResourceShareInvitationArnNotFoundException { } /** - *

                          The invitation is expired.

                          + *

                          The specified invitation is expired.

                          */ export interface ResourceShareInvitationExpiredException extends __SmithyException, $MetadataBearer { name: "ResourceShareInvitationExpiredException"; @@ -377,44 +393,66 @@ export namespace ServiceUnavailableException { export interface AssociateResourceShareRequest { /** - *

                          The Amazon Resource Name (ARN) of the resource share.

                          + *

                          Specifies the Amazon Resoure Name (ARN) of the resource share that you want to add principals or resources + * to.

                          */ resourceShareArn: string | undefined; /** - *

                          The Amazon Resource Names (ARNs) of the resources.

                          + *

                          Specifies a list of Amazon Resource Names (ARNs) of the resources that you want to share. This can be + * null if you want to add only principals.

                          */ resourceArns?: string[]; /** - *

                          The principals to associate with the resource share. The possible values are:

                          + *

                          Specifies a list of principals to whom you want to the resource share. This can be + * null if you want to add only resources.

                          + *

                          What the principals can do with the resources in the share is determined by the RAM + * permissions that you associate with the resource share. See AssociateResourceSharePermission.

                          + *

                          You can include the following values:

                          *
                            *
                          • - *

                            An Amazon Web Services account ID

                            + *

                            An Amazon Web Services account ID, for example: 123456789012 + *

                            *
                          • *
                          • - *

                            An Amazon Resource Name (ARN) of an organization in Organizations

                            + *

                            An Amazon Resoure Name (ARN) of an organization in Organizations, for example: + * organizations::123456789012:organization/o-exampleorgid + *

                            *
                          • *
                          • - *

                            An ARN of an organizational unit (OU) in Organizations

                            + *

                            An ARN of an organizational unit (OU) in Organizations, for example: + * organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123 + *

                            *
                          • *
                          • - *

                            An ARN of an IAM role

                            + *

                            An ARN of an IAM role, for example: + * iam::123456789012:role/rolename + *

                            *
                          • *
                          • - *

                            An ARN of an IAM user

                            + *

                            An ARN of an IAM user, for example: + * iam::123456789012user/username + *

                            *
                          • *
                          * - *

                          Not all resource types can be shared with IAM roles and IAM users. For more - * information, see Sharing with IAM roles and IAM users in the Resource Access Manager User + *

                          Not all resource types can be shared with IAM roles and users. + * For more information, see Sharing with IAM roles and users in the Resource Access Manager User * Guide.

                          - *
                          + *
                          */ principals?: string[]; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                          + *

                          If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                          */ clientToken?: string; } @@ -430,12 +468,15 @@ export namespace AssociateResourceShareRequest { export interface AssociateResourceShareResponse { /** - *

                          Information about the associations.

                          + *

                          An array of objects that contain information about the associations.

                          */ resourceShareAssociations?: ResourceShareAssociation[]; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                          */ clientToken?: string; } @@ -486,7 +527,7 @@ export namespace InvalidStateTransitionException { } /** - *

                          The requested resource share exceeds the limit for your account.

                          + *

                          This request would exceed the limit for resource shares for your account.

                          */ export interface ResourceShareLimitExceededException extends __SmithyException, $MetadataBearer { name: "ResourceShareLimitExceededException"; @@ -503,6 +544,25 @@ export namespace ResourceShareLimitExceededException { }); } +/** + *

                          You exceeded the rate at which you are allowed to perform this operation. Please try + * again later.

                          + */ +export interface ThrottlingException extends __SmithyException, $MetadataBearer { + name: "ThrottlingException"; + $fault: "client"; + message: string | undefined; +} + +export namespace ThrottlingException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ThrottlingException): any => ({ + ...obj, + }); +} + /** *

                          A specified resource was not found.

                          */ @@ -523,30 +583,47 @@ export namespace UnknownResourceException { export interface AssociateResourceSharePermissionRequest { /** - *

                          The Amazon Resource Name (ARN) of the resource share.

                          + *

                          Specifies the Amazon Resoure Name (ARN) of the resource share to which you want to add or replace + * permissions.

                          */ resourceShareArn: string | undefined; /** - *

                          The Amazon Resource Name (ARN) of the RAM permission to associate with the - * resource share.

                          + *

                          Specifies the Amazon Resoure Name (ARN) of the RAM permission to associate with the resource share. + * To find the ARN for a permission, use either the ListPermissions operation or go to the Permissions library page in the RAM console and + * then choose the name of the permission. The ARN is displayed on the detail page.

                          */ permissionArn: string | undefined; /** - *

                          Indicates whether the permission should replace the permissions that are currently - * associated with the resource share. Use true to replace the current permissions. Use - * false to add the permission to the current permission.

                          + *

                          Specifies whether the specified permission should replace or add to the existing + * permission associated with the resource share. Use true to replace the current + * permissions. Use false to add the permission to the current permission. The + * default value is false.

                          + * + *

                          A resource share can have only one permission per resource type. If a resource share already has a + * permission for the specified resource type and you don't set replace to + * true then the operation returns an error. This helps prevent + * accidental overwriting of a permission.

                          + *
                          */ replace?: boolean; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                          + *

                          If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                          */ clientToken?: string; /** - *

                          The version of the RAM permissions to associate with the resource share.

                          + *

                          Specifies the version of the RAM permission to associate with the resource share. If you don't + * specify this parameter, the operation uses the version designated as the default.

                          */ permissionVersion?: number; } @@ -562,12 +639,16 @@ export namespace AssociateResourceSharePermissionRequest { export interface AssociateResourceSharePermissionResponse { /** - *

                          Indicates whether the request succeeded.

                          + *

                          A return value of true indicates that the request succeeded. + * A value of false indicates that the request failed.

                          */ returnValue?: boolean; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                          */ clientToken?: string; } @@ -582,16 +663,23 @@ export namespace AssociateResourceSharePermissionResponse { } /** - *

                          Information about a tag.

                          + *

                          A structure containing a tag. A tag is metadata that you can attach to your resources + * to help organize and categorize them. You can also use them to help you secure your + * resources. For more information, see Controlling access to Amazon Web Services resources + * using tags.

                          + *

                          For more information about tags, see Tagging Amazon Web Services resources in the + * Amazon Web Services General Reference Guide.

                          */ export interface Tag { /** - *

                          The key of the tag.

                          + *

                          The key, or name, attached to the tag. Every tag must have a key. Key names are case + * sensitive.

                          */ key?: string; /** - *

                          The value of the tag.

                          + *

                          The string value attached to the tag. The value can be an empty string. Key values are + * case sensitive.

                          */ value?: string; } @@ -607,63 +695,85 @@ export namespace Tag { export interface CreateResourceShareRequest { /** - *

                          The name of the resource share.

                          + *

                          Specifies the name of the resource share.

                          */ name: string | undefined; /** - *

                          The ARNs of the resources to associate with the resource share.

                          + *

                          Specifies a list of one or more ARNs of the resources to associate with the + * resource share.

                          */ resourceArns?: string[]; /** - *

                          The principals to associate with the resource share. The possible values are:

                          + *

                          Specifies a list of one or more principals to associate with the resource share.

                          + *

                          You can include the following values:

                          *
                            *
                          • - *

                            An Amazon Web Services account ID

                            + *

                            An Amazon Web Services account ID, for example: 123456789012 + *

                            *
                          • *
                          • - *

                            An Amazon Resource Name (ARN) of an organization in Organizations

                            + *

                            An Amazon Resoure Name (ARN) of an organization in Organizations, for example: + * organizations::123456789012:organization/o-exampleorgid + *

                            *
                          • *
                          • - *

                            An ARN of an organizational unit (OU) in Organizations

                            + *

                            An ARN of an organizational unit (OU) in Organizations, for example: + * organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123 + *

                            *
                          • *
                          • - *

                            An ARN of an IAM role

                            + *

                            An ARN of an IAM role, for example: + * iam::123456789012:role/rolename + *

                            *
                          • *
                          • - *

                            An ARN of an IAM user

                            + *

                            An ARN of an IAM user, for example: + * iam::123456789012user/username + *

                            *
                          • *
                          * - *

                          Not all resource types can be shared with IAM roles and IAM users. For more - * information, see Sharing with IAM roles and IAM users in the Resource Access Manager User + *

                          Not all resource types can be shared with IAM roles and users. + * For more information, see Sharing with IAM roles and users in the Resource Access Manager User * Guide.

                          - *
                          + * */ principals?: string[]; /** - *

                          One or more tags.

                          + *

                          Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to + * the resources associated with the resource share.

                          */ tags?: Tag[]; /** - *

                          Indicates whether principals outside your organization in Organizations can be associated - * with a resource share.

                          + *

                          Specifies whether principals outside your organization in Organizations can be associated + * with a resource share. A value of true lets you share with individual Amazon Web Services accounts + * that are not in your organization. A value of false + * only has meaning if your account is a member of an Amazon Web Services Organization. The default value + * is true.

                          */ allowExternalPrincipals?: boolean; /** - *

                          A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                          + *

                          Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                          + *

                          If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                          */ clientToken?: string; /** - *

                          The Amazon Resource Names (ARNs) of the permissions to associate with the resource share. If you - * do not specify an ARN for the permission, RAM automatically attaches the default - * version of the permission for each resource type. Only one permission can be associated - * with each resource type in a resource share.

                          + *

                          Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do + * not specify an ARN for the permission, RAM automatically attaches the default version + * of the permission for each resource type. You can associate only one permission with + * each resource type included in the resource share.

                          */ permissionArns?: string[]; } @@ -682,11 +792,11 @@ export type ResourceShareFeatureSet = "CREATED_FROM_POLICY" | "PROMOTING_TO_STAN export type ResourceShareStatus = "ACTIVE" | "DELETED" | "DELETING" | "FAILED" | "PENDING"; /** - *

                          Describes a resource share.

                          + *

                          Describes a resource share in RAM.

                          */ export interface ResourceShare { /** - *

                          The Amazon Resource Name (ARN) of the resource share.

                          + *

                          The Amazon Resoure Name (ARN) of the resource share

                          */ resourceShareArn?: string; @@ -707,7 +817,7 @@ export interface ResourceShare { allowExternalPrincipals?: boolean; /** - *

                          The status of the resource share.

                          + *

                          The current status of the resource share.

                          */ status?: ResourceShareStatus | string; @@ -717,17 +827,17 @@ export interface ResourceShare { statusMessage?: string; /** - *

                          The tags for the resource share.

                          + *

                          The tag key and value pairs attached to the resource share.

                          */ tags?: Tag[]; /** - *

                          The time when the resource share was created.

                          + *

                          The date and time when the resource share was created.

                          */ creationTime?: Date; /** - *

                          The time when the resource share was last updated.

                          + *

                          The date and time when the resource share was last updated.

                          */ lastUpdatedTime?: Date; @@ -737,9 +847,9 @@ export interface ResourceShare { *
                        • *

                          * CREATED_FROM_POLICY - Indicates that the resource share was created from an - * Amazon Web Services Identity and Access Management (Amazon Web Services IAM) policy attached to a resource. - * These resource shares are visible only to the Amazon Web Services account that created it. They cannot - * be modified in RAM.

                          + * Identity and Access Management (IAM) resource-based permission policy attached to the resource. + * This type of resource share is visible only to the Amazon Web Services account that created it. You + * can't modify it in RAM unless you promote it. For more information, see PromoteResourceShareCreatedFromPolicy.

                          *
                        • *
                        • *

                          @@ -749,8 +859,8 @@ export interface ResourceShare { *

                        • *

                          * STANDARD - Indicates that the resource share was created in RAM using the - * console or APIs. These resource shares are visible to all principals. They can - * be modified in RAM.

                          + * console or APIs. These resource shares are visible to all principals you share the resource share + * with. You can modify these resource shares in RAM using the console or APIs.

                          *
                        • *
                        */ @@ -768,12 +878,15 @@ export namespace ResourceShare { export interface CreateResourceShareResponse { /** - *

                        Information about the resource share.

                        + *

                        An object with information about the new resource share.

                        */ resourceShare?: ResourceShare; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                        */ clientToken?: string; } @@ -788,7 +901,7 @@ export namespace CreateResourceShareResponse { } /** - *

                        The specified tag is a reserved word and cannot be used.

                        + *

                        The specified tag key is a reserved word and can't be used.

                        */ export interface TagPolicyViolationException extends __SmithyException, $MetadataBearer { name: "TagPolicyViolationException"; @@ -807,12 +920,19 @@ export namespace TagPolicyViolationException { export interface DeleteResourceShareRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource share to delete.

                        */ resourceShareArn: string | undefined; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                        + *

                        If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                        */ clientToken?: string; } @@ -828,12 +948,16 @@ export namespace DeleteResourceShareRequest { export interface DeleteResourceShareResponse { /** - *

                        Indicates whether the request succeeded.

                        + *

                        A return value of true indicates that the request succeeded. + * A value of false indicates that the request failed.

                        */ returnValue?: boolean; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                        */ clientToken?: string; } @@ -849,22 +973,64 @@ export namespace DeleteResourceShareResponse { export interface DisassociateResourceShareRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        Specifies Amazon Resoure Name (ARN) of the resource share that you want to remove resources from.

                        */ resourceShareArn: string | undefined; /** - *

                        The Amazon Resource Names (ARNs) of the resources.

                        + *

                        Specifies a list of Amazon Resource Names (ARNs) for one or more resources that you want to remove from + * the resource share. After the operation runs, these resources are no longer shared with principals + * outside of the Amazon Web Services account that created the resources.

                        */ resourceArns?: string[]; /** - *

                        The principals.

                        + *

                        Specifies a list of one or more principals that no longer are to have access to the + * resources in this resource share.

                        + *

                        You can include the following values:

                        + *
                          + *
                        • + *

                          An Amazon Web Services account ID, for example: 123456789012 + *

                          + *
                        • + *
                        • + *

                          An Amazon Resoure Name (ARN) of an organization in Organizations, for example: + * organizations::123456789012:organization/o-exampleorgid + *

                          + *
                        • + *
                        • + *

                          An ARN of an organizational unit (OU) in Organizations, for example: + * organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123 + *

                          + *
                        • + *
                        • + *

                          An ARN of an IAM role, for example: + * iam::123456789012:role/rolename + *

                          + *
                        • + *
                        • + *

                          An ARN of an IAM user, for example: + * iam::123456789012user/username + *

                          + *
                        • + *
                        + * + *

                        Not all resource types can be shared with IAM roles and users. + * For more information, see Sharing with IAM roles and users in the Resource Access Manager User + * Guide.

                        + *
                        */ principals?: string[]; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                        + *

                        If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                        */ clientToken?: string; } @@ -880,12 +1046,16 @@ export namespace DisassociateResourceShareRequest { export interface DisassociateResourceShareResponse { /** - *

                        Information about the associations.

                        + *

                        An array of objects that contain information about the updated associations for this + * resource share.

                        */ resourceShareAssociations?: ResourceShareAssociation[]; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                        */ clientToken?: string; } @@ -901,17 +1071,25 @@ export namespace DisassociateResourceShareResponse { export interface DisassociateResourceSharePermissionRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        The Amazon Resoure Name (ARN) of the resource share from which you want to disassociate a permission.

                        */ resourceShareArn: string | undefined; /** - *

                        The Amazon Resource Name (ARN) of the permission to disassociate from the resource share.

                        + *

                        The Amazon Resoure Name (ARN) of the permission to disassociate from the resource share. Changes to permissions + * take effect immediately.

                        */ permissionArn: string | undefined; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                        + *

                        If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                        */ clientToken?: string; } @@ -927,12 +1105,16 @@ export namespace DisassociateResourceSharePermissionRequest { export interface DisassociateResourceSharePermissionResponse { /** - *

                        Indicates whether the request succeeded.

                        + *

                        A return value of true indicates that the request succeeded. + * A value of false indicates that the request failed.

                        */ returnValue?: boolean; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                        */ clientToken?: string; } @@ -959,7 +1141,8 @@ export namespace EnableSharingWithAwsOrganizationRequest { export interface EnableSharingWithAwsOrganizationResponse { /** - *

                        Indicates whether the request succeeded.

                        + *

                        A return value of true indicates that the request succeeded. + * A value of false indicates that the request failed.

                        */ returnValue?: boolean; } @@ -975,12 +1158,15 @@ export namespace EnableSharingWithAwsOrganizationResponse { export interface GetPermissionRequest { /** - *

                        The Amazon Resource Name (ARN) of the permission.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the permission whose contents you want to retrieve. + * To find the ARN for a permission, use either the ListPermissions operation or go to the Permissions library page in the RAM console and + * then choose the name of the permission. The ARN is displayed on the detail page.

                        */ permissionArn: string | undefined; /** - *

                        The identifier for the version of the permission.

                        + *

                        Specifies identifier for the version of the RAM permission to retrieve. If you don't + * specify this parameter, the operation retrieves the default version.

                        */ permissionVersion?: number; } @@ -999,35 +1185,35 @@ export namespace GetPermissionRequest { */ export interface ResourceSharePermissionDetail { /** - *

                        The Amazon Resource Name (ARN) of the permission.

                        + *

                        The Amazon Resoure Name (ARN) of this RAM permission.

                        */ arn?: string; /** - *

                        The identifier for the version of the permission.

                        + *

                        The version of the permission represented in this structure.

                        */ version?: string; /** - *

                        Specifies whether the version of the permission is set to the default version for this - * permission.

                        + *

                        Specifies whether the version of the permission represented in this structure is the + * default version for this permission.

                        */ defaultVersion?: boolean; /** - *

                        The name of the permission.

                        + *

                        The name of this permission.

                        */ name?: string; /** - *

                        The resource type to which the permission applies.

                        + *

                        The resource type to which this permission applies.

                        */ resourceType?: string; /** *

                        The permission's effect and actions in JSON format. The effect indicates - * whether the actions are allowed or denied. The actions list the API actions - * to which the principal is granted or denied access.

                        + * whether the specified actions are allowed or denied. The actions list the + * operations to which the principal is granted or denied access.

                        */ permission?: string; @@ -1042,8 +1228,8 @@ export interface ResourceSharePermissionDetail { lastUpdatedTime?: Date; /** - *

                        Specifies whether the version of the permission is set to the default version for this - * resource type.

                        + *

                        Specifies whether the version of the permission represented in this structure is the + * default version for all resources of this resource type.

                        */ isResourceTypeDefault?: boolean; } @@ -1059,7 +1245,7 @@ export namespace ResourceSharePermissionDetail { export interface GetPermissionResponse { /** - *

                        Information about the permission.

                        + *

                        An object that contains information about the permission.

                        */ permission?: ResourceSharePermissionDetail; } @@ -1075,23 +1261,34 @@ export namespace GetPermissionResponse { export interface GetResourcePoliciesRequest { /** - *

                        The Amazon Resource Names (ARNs) of the resources.

                        + *

                        Specifies the Amazon Resource Names (ARNs) of the resources whose policies you want to retrieve.

                        */ resourceArns: string[] | undefined; /** - *

                        The principal.

                        + *

                        Specifies the principal.

                        */ principal?: string; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; } @@ -1107,12 +1304,16 @@ export namespace GetResourcePoliciesRequest { export interface GetResourcePoliciesResponse { /** - *

                        A key policy document, in JSON format.

                        + *

                        An array of resource policy documents in JSON format.

                        */ policies?: string[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1127,7 +1328,7 @@ export namespace GetResourcePoliciesResponse { } /** - *

                        The specified value for NextToken is not valid.

                        + *

                        The specified value for NextToken is not valid.

                        */ export interface InvalidNextTokenException extends __SmithyException, $MetadataBearer { name: "InvalidNextTokenException"; @@ -1145,7 +1346,7 @@ export namespace InvalidNextTokenException { } /** - *

                        An Amazon Resource Name (ARN) was not found.

                        + *

                        The specified Amazon Resource Name (ARN) was not found.

                        */ export interface ResourceArnNotFoundException extends __SmithyException, $MetadataBearer { name: "ResourceArnNotFoundException"; @@ -1164,42 +1365,69 @@ export namespace ResourceArnNotFoundException { export interface GetResourceShareAssociationsRequest { /** - *

                        The association type. Specify PRINCIPAL to list the principals that are - * associated with the specified resource share. Specify RESOURCE to list the resources - * that are associated with the specified resource share.

                        + *

                        Specifies whether you want to retrieve the associations that involve a specified + * resource or principal.

                        + *
                          + *
                        • + *

                          + * PRINCIPAL – list the principals that are associated with + * the specified resource share.

                          + *
                        • + *
                        • + *

                          + * RESOURCE – list the resources that are associated with the + * specified resource share.

                          + *
                        • + *
                        */ associationType: ResourceShareAssociationType | string | undefined; /** - *

                        The Amazon Resource Names (ARN) of the resource shares.

                        + *

                        Specifies a list of Amazon Resource Names (ARNs) of the resource share whose associations you want to + * retrieve.

                        */ resourceShareArns?: string[]; /** - *

                        The Amazon Resource Name (ARN) of the resource. You cannot specify this parameter if - * the association type is PRINCIPAL.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource whose resource shares you want to retrieve.

                        + *

                        You cannot specify this parameter if the association type is + * PRINCIPAL.

                        */ resourceArn?: string; /** - *

                        The principal. You cannot specify this parameter if the association type is - * RESOURCE.

                        + *

                        Specifies the ID of the principal whose resource shares you want to retrieve. This can be an + * Amazon Web Services account ID, an organization ID, an organizational unit ID, or the Amazon Resoure Name (ARN) of an + * individual IAM user or role.

                        + *

                        You cannot specify this parameter if the association type is + * RESOURCE.

                        */ principal?: string; /** - *

                        The association status.

                        + *

                        Specifies that you want to retrieve only associations with this status.

                        */ associationStatus?: ResourceShareAssociationStatus | string; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; } @@ -1215,12 +1443,16 @@ export namespace GetResourceShareAssociationsRequest { export interface GetResourceShareAssociationsResponse { /** - *

                        Information about the associations.

                        + *

                        An array of objects that contain the details about the associations.

                        */ resourceShareAssociations?: ResourceShareAssociation[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1236,23 +1468,36 @@ export namespace GetResourceShareAssociationsResponse { export interface GetResourceShareInvitationsRequest { /** - *

                        The Amazon Resource Names (ARN) of the invitations.

                        + *

                        Specifies the Amazon Resource Names (ARNs) of the resource share invitations you want information about.

                        */ resourceShareInvitationArns?: string[]; /** - *

                        The Amazon Resource Names (ARN) of the resource shares.

                        + *

                        Specifies that you want details about invitations only for the resource shares described by this + * list of Amazon Resource Names (ARNs) + *

                        */ resourceShareArns?: string[]; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; } @@ -1268,12 +1513,16 @@ export namespace GetResourceShareInvitationsRequest { export interface GetResourceShareInvitationsResponse { /** - *

                        Information about the invitations.

                        + *

                        An array of objects that contain the details about the invitations.

                        */ resourceShareInvitations?: ResourceShareInvitation[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1288,7 +1537,7 @@ export namespace GetResourceShareInvitationsResponse { } /** - *

                        The specified value for MaxResults is not valid.

                        + *

                        The specified value for MaxResults is not valid.

                        */ export interface InvalidMaxResultsException extends __SmithyException, $MetadataBearer { name: "InvalidMaxResultsException"; @@ -1311,16 +1560,18 @@ export enum ResourceOwner { } /** - *

                        Used to filter information based on tags.

                        + *

                        A tag key and optional list of possible values that you can use to filter results for + * tagged resources.

                        */ export interface TagFilter { /** - *

                        The tag key.

                        + *

                        The tag key. This must have a valid string value and can't be empty.

                        */ tagKey?: string; /** - *

                        The tag values.

                        + *

                        A list of zero or more tag values. If no values are provided, then the filter matches + * any tag with the specified key, regardless of its value.

                        */ tagValues?: string[]; } @@ -1336,44 +1587,75 @@ export namespace TagFilter { export interface GetResourceSharesRequest { /** - *

                        The Amazon Resource Names (ARNs) of the resource shares.

                        + *

                        Specifies the Amazon Resource Names (ARNs) of individual resource shares that you want information about.

                        */ resourceShareArns?: string[]; /** - *

                        The status of the resource share.

                        + *

                        Specifies that you want to retrieve details of only those resource shares that have this + * status.

                        */ resourceShareStatus?: ResourceShareStatus | string; /** - *

                        The type of owner.

                        + *

                        Specifies that you want to retrieve details of only those resource shares that match the + * following:

                        + *
                          + *
                        • + *

                          + * + * SELF + * – resources that you + * are sharing

                          + *
                        • + *
                        • + *

                          + * + * OTHER-ACCOUNTS + * – + * resources that other accounts share with you

                          + *
                        • + *
                        */ resourceOwner: ResourceOwner | string | undefined; /** - *

                        The name of the resource share.

                        + *

                        Specifies the name of an individual resource share that you want to retrieve details + * about.

                        */ name?: string; /** - *

                        One or more tag filters.

                        + *

                        Specifies that you want to retrieve details of only those resource shares that match the + * specified tag keys and values.

                        */ tagFilters?: TagFilter[]; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; /** - *

                        The Amazon Resource Name (ARN) of the RAM permission that is associated with the - * resource share.

                        + *

                        Specifies that you want to retrieve details of only those resource shares that use the RAM + * permission with this Amazon Resoure Name (ARN).

                        */ permissionArn?: string; } @@ -1389,12 +1671,16 @@ export namespace GetResourceSharesRequest { export interface GetResourceSharesResponse { /** - *

                        Information about the resource shares.

                        + *

                        An array of objects that contain the information about the resource shares.

                        */ resourceShares?: ResourceShare[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1408,22 +1694,63 @@ export namespace GetResourceSharesResponse { }); } +export enum ResourceRegionScopeFilter { + ALL = "ALL", + GLOBAL = "GLOBAL", + REGIONAL = "REGIONAL", +} + export interface ListPendingInvitationResourcesRequest { /** - *

                        The Amazon Resource Name (ARN) of the invitation.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the invitation. You can use GetResourceShareInvitations to find the ARN of the invitation.

                        */ resourceShareInvitationArn: string | undefined; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; + + /** + *

                        Specifies that you want the results to include only + * resources that have the specified scope.

                        + *
                          + *
                        • + *

                          + * ALL – the results include both global and + * regional resources or resource types.

                          + *
                        • + *
                        • + *

                          + * GLOBAL – the results include only global + * resources or resource types.

                          + *
                        • + *
                        • + *

                          + * REGIONAL – the results include only regional + * resources or resource types.

                          + *
                        • + *
                        + *

                        The default value is ALL.

                        + */ + resourceRegionScope?: ResourceRegionScopeFilter | string; } export namespace ListPendingInvitationResourcesRequest { @@ -1435,35 +1762,42 @@ export namespace ListPendingInvitationResourcesRequest { }); } +export enum ResourceRegionScope { + GLOBAL = "GLOBAL", + REGIONAL = "REGIONAL", +} + export type ResourceStatus = "AVAILABLE" | "LIMIT_EXCEEDED" | "PENDING" | "UNAVAILABLE" | "ZONAL_RESOURCE_INACCESSIBLE"; /** - *

                        Describes a resource associated with a resource share.

                        + *

                        Describes a resource associated with a resource share in RAM.

                        */ export interface Resource { /** - *

                        The Amazon Resource Name (ARN) of the resource.

                        + *

                        The Amazon Resoure Name (ARN) of the resource.

                        */ arn?: string; /** - *

                        The resource type.

                        + *

                        The resource type. This takes the form of: + * service-code:resource-code + *

                        */ type?: string; /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        The Amazon Resoure Name (ARN) of the resource share this resource is associated with.

                        */ resourceShareArn?: string; /** - *

                        The Amazon Resource Name (ARN) of the resource group. This value is returned only if - * the resource is a resource group.

                        + *

                        The Amazon Resoure Name (ARN) of the resource group. This value is available only if the resource is + * part of a resource group.

                        */ resourceGroupArn?: string; /** - *

                        The status of the resource.

                        + *

                        The current status of the resource.

                        */ status?: ResourceStatus | string; @@ -1473,14 +1807,32 @@ export interface Resource { statusMessage?: string; /** - *

                        The time when the resource was associated with the resource share.

                        + *

                        The date and time when the resource was associated with the resource share.

                        */ creationTime?: Date; /** - *

                        The time when the association was last updated.

                        + *

                        The date an time when the association was last updated.

                        */ lastUpdatedTime?: Date; + + /** + *

                        Specifies the scope of visibility of this resource:

                        + *
                          + *
                        • + *

                          + * REGIONAL – The resource can be + * accessed only by using requests that target the Amazon Web Services Region in which the + * resource exists.

                          + *
                        • + *
                        • + *

                          + * GLOBAL – The resource can be accessed + * from any Amazon Web Services Region.

                          + *
                        • + *
                        + */ + resourceRegionScope?: ResourceRegionScope | string; } export namespace Resource { @@ -1494,12 +1846,17 @@ export namespace Resource { export interface ListPendingInvitationResourcesResponse { /** - *

                        Information about the resources included the resource share.

                        + *

                        An array of objects that contain the information about the resources included the + * specified resource share.

                        */ resources?: Resource[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1533,19 +1890,32 @@ export namespace MissingRequiredParameterException { export interface ListPermissionsRequest { /** - *

                        Specifies the resource type for which to list permissions. For example, to list only - * permissions that apply to EC2 subnets, specify ec2:Subnet.

                        + *

                        Specifies that you want to list permissions for only the specified resource type. For + * example, to list only permissions that apply to EC2 subnets, specify + * ec2:Subnet. You can use the ListResourceTypes + * operation to get the specific string required.

                        */ resourceType?: string; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; } @@ -1560,32 +1930,33 @@ export namespace ListPermissionsRequest { } /** - *

                        Information about a permission that is associated with a resource share.

                        + *

                        Information about an RAM permission that is associated with a resource share and any of its + * resources of a specified type.

                        */ export interface ResourceSharePermissionSummary { /** - *

                        The Amazon Resource Name (ARN) of the permission.

                        + *

                        The Amazon Resoure Name (ARN) of the permission you want information about.

                        */ arn?: string; /** - *

                        The identifier for the version of the permission.

                        + *

                        The version of the permission represented in this structure.

                        */ version?: string; /** - *

                        Specifies whether the version of the permission is set to the default version for this - * permission.

                        + *

                        Specifies whether the version of the permission represented in this structure is the + * default version for this permission.

                        */ defaultVersion?: boolean; /** - *

                        The name of the permission.

                        + *

                        The name of this permission.

                        */ name?: string; /** - *

                        The type of resource to which the permission applies.

                        + *

                        The type of resource to which this permission applies.

                        */ resourceType?: string; @@ -1605,8 +1976,8 @@ export interface ResourceSharePermissionSummary { lastUpdatedTime?: Date; /** - *

                        Specifies whether the version of the permission is set to the default version for this - * resource type.

                        + *

                        Specifies whether the version of the permission represented in this structure is the + * default version for all resources of this resource type.

                        */ isResourceTypeDefault?: boolean; } @@ -1622,12 +1993,16 @@ export namespace ResourceSharePermissionSummary { export interface ListPermissionsResponse { /** - *

                        Information about the permissions.

                        + *

                        An array of objects with information about the permissions.

                        */ permissions?: ResourceSharePermissionSummary[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1643,40 +2018,102 @@ export namespace ListPermissionsResponse { export interface ListPrincipalsRequest { /** - *

                        The type of owner.

                        + *

                        Specifies that you want to list information for only resource shares that match the + * following:

                        + *
                          + *
                        • + *

                          + * + * SELF + * – resources that you + * are sharing

                          + *
                        • + *
                        • + *

                          + * + * OTHER-ACCOUNTS + * – + * resources that other accounts share with you

                          + *
                        • + *
                        */ resourceOwner: ResourceOwner | string | undefined; /** - *

                        The Amazon Resource Name (ARN) of the resource.

                        + *

                        Specifies that you want to list principal information for the resource share with the specified + * Amazon Resoure Name (ARN).

                        */ resourceArn?: string; /** - *

                        The principals.

                        + *

                        Specifies that you want to list information for only the listed principals.

                        + *

                        You can include the following values:

                        + *
                          + *
                        • + *

                          An Amazon Web Services account ID, for example: 123456789012 + *

                          + *
                        • + *
                        • + *

                          An Amazon Resoure Name (ARN) of an organization in Organizations, for example: + * organizations::123456789012:organization/o-exampleorgid + *

                          + *
                        • + *
                        • + *

                          An ARN of an organizational unit (OU) in Organizations, for example: + * organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123 + *

                          + *
                        • + *
                        • + *

                          An ARN of an IAM role, for example: + * iam::123456789012:role/rolename + *

                          + *
                        • + *
                        • + *

                          An ARN of an IAM user, for example: + * iam::123456789012user/username + *

                          + *
                        • + *
                        + * + *

                        Not all resource types can be shared with IAM roles and users. + * For more information, see Sharing with IAM roles and users in the Resource Access Manager User + * Guide.

                        + *
                        */ principals?: string[]; /** - *

                        The resource type.

                        - *

                        Valid values: acm-pca:CertificateAuthority | appmesh:Mesh | codebuild:Project | codebuild:ReportGroup | ec2:CapacityReservation | ec2:DedicatedHost | ec2:LocalGatewayRouteTable | ec2:PrefixList | ec2:Subnet | ec2:TrafficMirrorTarget | ec2:TransitGateway | imagebuilder:Component | imagebuilder:Image | imagebuilder:ImageRecipe | imagebuilder:ContainerRecipe | glue:Catalog | glue:Database | glue:Table | license-manager:LicenseConfiguration I network-firewall:FirewallPolicy | network-firewall:StatefulRuleGroup | network-firewall:StatelessRuleGroup | outposts:Outpost | resource-groups:Group | rds:Cluster | route53resolver:FirewallRuleGroup |route53resolver:ResolverQueryLogConfig | route53resolver:ResolverRule | s3-outposts:Outpost | ssm-contacts:Contact | ssm-incidents:ResponsePlan - *

                        + *

                        Specifies that you want to list information for only principals associated with resource shares + * that include the specified resource type.

                        + *

                        For a list of valid values, query the ListResourceTypes operation.

                        */ resourceType?: string; /** - *

                        The Amazon Resource Names (ARN) of the resource shares.

                        + *

                        Specifies that you want to list information for only principals associated with the + * resource shares specified by a list the Amazon Resource Names (ARNs).

                        */ resourceShareArns?: string[]; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; } @@ -1700,17 +2137,17 @@ export interface Principal { id?: string; /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        The Amazon Resoure Name (ARN) of a resource share the principal is associated with.

                        */ resourceShareArn?: string; /** - *

                        The time when the principal was associated with the resource share.

                        + *

                        The date and time when the principal was associated with the resource share.

                        */ creationTime?: Date; /** - *

                        The time when the association was last updated.

                        + *

                        The date and time when the association was last updated.

                        */ lastUpdatedTime?: Date; @@ -1732,12 +2169,16 @@ export namespace Principal { export interface ListPrincipalsResponse { /** - *

                        The principals.

                        + *

                        An array of objects that contain the details about the principals.

                        */ principals?: Principal[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1771,42 +2212,96 @@ export namespace InvalidResourceTypeException { export interface ListResourcesRequest { /** - *

                        The type of owner.

                        + *

                        Specifies that you want to list only the resource shares that match the following:

                        + *
                          + *
                        • + *

                          + * + * SELF + * – resources that you + * are sharing

                          + *
                        • + *
                        • + *

                          + * + * OTHER-ACCOUNTS + * – + * resources that other accounts share with you

                          + *
                        • + *
                        */ resourceOwner: ResourceOwner | string | undefined; /** - *

                        The principal.

                        + *

                        Specifies that you want to list only the resource shares that are associated with the specified + * principal.

                        */ principal?: string; /** - *

                        The resource type.

                        - *

                        Valid values: acm-pca:CertificateAuthority | appmesh:Mesh | codebuild:Project | codebuild:ReportGroup | ec2:CapacityReservation | ec2:DedicatedHost | ec2:LocalGatewayRouteTable | ec2:PrefixList | ec2:Subnet | ec2:TrafficMirrorTarget | ec2:TransitGateway | imagebuilder:Component | imagebuilder:Image | imagebuilder:ImageRecipe | imagebuilder:ContainerRecipe | glue:Catalog | glue:Database | glue:Table | license-manager:LicenseConfiguration I network-firewall:FirewallPolicy | network-firewall:StatefulRuleGroup | network-firewall:StatelessRuleGroup | outposts:Outpost | resource-groups:Group | rds:Cluster | route53resolver:FirewallRuleGroup |route53resolver:ResolverQueryLogConfig | route53resolver:ResolverRule | s3-outposts:Outpost | ssm-contacts:Contact | ssm-incidents:ResponsePlan - *

                        + *

                        Specifies that you want to list only the resource shares that include resources of the specified + * resource type.

                        + *

                        For valid values, query the ListResourceTypes operation.

                        */ resourceType?: string; /** - *

                        The Amazon Resource Names (ARNs) of the resources.

                        + *

                        Specifies that you want to list only the resource shares that include resources with the + * specified Amazon Resource Names (ARNs).

                        */ resourceArns?: string[]; /** - *

                        The Amazon Resource Names (ARN) of the resource shares.

                        + *

                        Specifies that you want to list only resources in the resource shares identified by the + * specified Amazon Resource Names (ARNs).

                        */ resourceShareArns?: string[]; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; + + /** + *

                        Specifies that you want the results to include only + * resources that have the specified scope.

                        + *
                          + *
                        • + *

                          + * ALL – the results include both global and + * regional resources or resource types.

                          + *
                        • + *
                        • + *

                          + * GLOBAL – the results include only global + * resources or resource types.

                          + *
                        • + *
                        • + *

                          + * REGIONAL – the results include only regional + * resources or resource types.

                          + *
                        • + *
                        + *

                        The default value is ALL.

                        + */ + resourceRegionScope?: ResourceRegionScopeFilter | string; } export namespace ListResourcesRequest { @@ -1820,12 +2315,16 @@ export namespace ListResourcesRequest { export interface ListResourcesResponse { /** - *

                        Information about the resources.

                        + *

                        An array of objects that contain information about the resources.

                        */ resources?: Resource[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1841,18 +2340,30 @@ export namespace ListResourcesResponse { export interface ListResourceSharePermissionsRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource share for which you want to retrieve the associated + * permissions.

                        */ resourceShareArn: string | undefined; /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; } @@ -1868,12 +2379,16 @@ export namespace ListResourceSharePermissionsRequest { export interface ListResourceSharePermissionsResponse { /** - *

                        The permissions associated with the resource share.

                        + *

                        An array of objects that describe the permissions associated with the resource share.

                        */ permissions?: ResourceSharePermissionSummary[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1889,15 +2404,50 @@ export namespace ListResourceSharePermissionsResponse { export interface ListResourceTypesRequest { /** - *

                        The token for the next page of results.

                        + *

                        Specifies that you want to receive the next page of results. Valid + * only if you received a NextToken response in the previous request. If you + * did, it indicates that more output is available. Set this parameter to the value + * provided by the previous call's NextToken response to request the + * next page of results.

                        */ nextToken?: string; /** - *

                        The maximum number of results to return with a single call. - * To retrieve the remaining results, make another call with the returned nextToken value.

                        + *

                        Specifies the total number of results that you want included on each page + * of the response. If you do not include this parameter, it defaults to a value that is + * specific to the operation. If additional items exist beyond the number you specify, the + * NextToken response element is returned with a value (not null). + * Include the specified value as the NextToken request parameter in the next + * call to the operation to get the next part of the results. Note that the service might + * return fewer results than the maximum even when there are more results available. You + * should check NextToken after every operation to ensure that you receive all + * of the results.

                        */ maxResults?: number; + + /** + *

                        Specifies that you want the results to include only + * resources that have the specified scope.

                        + *
                          + *
                        • + *

                          + * ALL – the results include both global and + * regional resources or resource types.

                          + *
                        • + *
                        • + *

                          + * GLOBAL – the results include only global + * resources or resource types.

                          + *
                        • + *
                        • + *

                          + * REGIONAL – the results include only regional + * resources or resource types.

                          + *
                        • + *
                        + *

                        The default value is ALL.

                        + */ + resourceRegionScope?: ResourceRegionScopeFilter | string; } export namespace ListResourceTypesRequest { @@ -1910,19 +2460,37 @@ export namespace ListResourceTypesRequest { } /** - *

                        Information about the shareable resource types and the Amazon Web Services services to which they - * belong.

                        + *

                        Information about a shareable resource type and the Amazon Web Services service to which resources + * of that type belong.

                        */ export interface ServiceNameAndResourceType { /** - *

                        The shareable resource types.

                        + *

                        The type of the resource.

                        */ resourceType?: string; /** - *

                        The name of the Amazon Web Services services to which the resources belong.

                        + *

                        The name of the Amazon Web Services service to which resources of this type belong.

                        */ serviceName?: string; + + /** + *

                        Specifies the scope of visibility of resources of this type:

                        + *
                          + *
                        • + *

                          + * REGIONAL – The resource can be + * accessed only by using requests that target the Amazon Web Services Region in which the + * resource exists.

                          + *
                        • + *
                        • + *

                          + * GLOBAL – The resource can be accessed + * from any Amazon Web Services Region.

                          + *
                        • + *
                        + */ + resourceRegionScope?: ResourceRegionScope | string; } export namespace ServiceNameAndResourceType { @@ -1936,12 +2504,17 @@ export namespace ServiceNameAndResourceType { export interface ListResourceTypesResponse { /** - *

                        The shareable resource types supported by RAM.

                        + *

                        An array of objects that contain information about the resource types that can be + * shared using RAM.

                        */ resourceTypes?: ServiceNameAndResourceType[]; /** - *

                        The token to use to retrieve the next page of results. This value is null when there are no more results to return.

                        + *

                        If present, this value indicates that more output is available than + * is included in the current response. Use this value in the NextToken + * request parameter in a subsequent call to the operation to get the next part of the + * output. You should repeat this until the NextToken response element comes + * back as null. This indicates that this is the last page of results.

                        */ nextToken?: string; } @@ -1957,7 +2530,7 @@ export namespace ListResourceTypesResponse { export interface PromoteResourceShareCreatedFromPolicyRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share to promote.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource share to promote.

                        */ resourceShareArn: string | undefined; } @@ -1973,7 +2546,8 @@ export namespace PromoteResourceShareCreatedFromPolicyRequest { export interface PromoteResourceShareCreatedFromPolicyResponse { /** - *

                        Indicates whether the request succeeded.

                        + *

                        A return value of true indicates that the request succeeded. + * A value of false indicates that the request failed.

                        */ returnValue?: boolean; } @@ -1989,12 +2563,19 @@ export namespace PromoteResourceShareCreatedFromPolicyResponse { export interface RejectResourceShareInvitationRequest { /** - *

                        The Amazon Resource Name (ARN) of the invitation.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the invitation that you want to reject.

                        */ resourceShareInvitationArn: string | undefined; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                        + *

                        If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                        */ clientToken?: string; } @@ -2010,12 +2591,15 @@ export namespace RejectResourceShareInvitationRequest { export interface RejectResourceShareInvitationResponse { /** - *

                        Information about the invitation.

                        + *

                        An object that contains the details about the rejected invitation.

                        */ resourceShareInvitation?: ResourceShareInvitation; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                        */ clientToken?: string; } @@ -2030,7 +2614,7 @@ export namespace RejectResourceShareInvitationResponse { } /** - *

                        The requested tags exceed the limit for your account.

                        + *

                        This request would exceed the limit for tags for your account.

                        */ export interface TagLimitExceededException extends __SmithyException, $MetadataBearer { name: "TagLimitExceededException"; @@ -2049,12 +2633,13 @@ export namespace TagLimitExceededException { export interface TagResourceRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource share that you want to add tags to.

                        */ resourceShareArn: string | undefined; /** - *

                        One or more tags.

                        + *

                        A list of one or more tag key and value pairs. The tag key must be present and not be + * an empty string. The tag value must be present but can be an empty string.

                        */ tags: Tag[] | undefined; } @@ -2081,12 +2666,13 @@ export namespace TagResourceResponse { export interface UntagResourceRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource share that you want to remove tags from. The tags are + * removed from the resource share, not the resources in the resource share.

                        */ resourceShareArn: string | undefined; /** - *

                        The tag keys of the tags to remove.

                        + *

                        Specifies a list of one or more tag keys that you want to remove.

                        */ tagKeys: string[] | undefined; } @@ -2113,23 +2699,30 @@ export namespace UntagResourceResponse { export interface UpdateResourceShareRequest { /** - *

                        The Amazon Resource Name (ARN) of the resource share.

                        + *

                        Specifies the Amazon Resoure Name (ARN) of the resource share that you want to modify.

                        */ resourceShareArn: string | undefined; /** - *

                        The name of the resource share.

                        + *

                        If specified, the new name that you want to attach to the resource share.

                        */ name?: string; /** - *

                        Indicates whether principals outside your organization in Organizations can be associated + *

                        Specifies whether principals outside your organization in Organizations can be associated * with a resource share.

                        */ allowExternalPrincipals?: boolean; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        Specifies a unique, case-sensitive identifier that you provide to + * ensure the idempotency of the request. This lets you safely retry the request without + * accidentally performing the same operation a second time. Passing the same value to a + * later call to an operation requires that you also pass the same value for all other + * parameters. We recommend that you use a UUID type of + * value..

                        + *

                        If you don't provide this value, then Amazon Web Services generates a random one for + * you.

                        */ clientToken?: string; } @@ -2150,7 +2743,10 @@ export interface UpdateResourceShareResponse { resourceShare?: ResourceShare; /** - *

                        A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

                        + *

                        The idempotency identifier associated with this request. If you + * want to repeat the same operation in an idempotent manner then you must include this + * value in the clientToken request parameter of that later call. All other + * parameters must also have the same values that you used in the first call.

                        */ clientToken?: string; } diff --git a/clients/client-ram/src/protocols/Aws_restJson1.ts b/clients/client-ram/src/protocols/Aws_restJson1.ts index cd884d3ea77a..c2187259cd2a 100644 --- a/clients/client-ram/src/protocols/Aws_restJson1.ts +++ b/clients/client-ram/src/protocols/Aws_restJson1.ts @@ -119,6 +119,7 @@ import { TagFilter, TagLimitExceededException, TagPolicyViolationException, + ThrottlingException, UnknownResourceException, } from "../models/models_0"; @@ -545,6 +546,8 @@ export const serializeAws_restJson1ListPendingInvitationResourcesCommand = async body = JSON.stringify({ ...(input.maxResults !== undefined && input.maxResults !== null && { maxResults: input.maxResults }), ...(input.nextToken !== undefined && input.nextToken !== null && { nextToken: input.nextToken }), + ...(input.resourceRegionScope !== undefined && + input.resourceRegionScope !== null && { resourceRegionScope: input.resourceRegionScope }), ...(input.resourceShareInvitationArn !== undefined && input.resourceShareInvitationArn !== null && { resourceShareInvitationArn: input.resourceShareInvitationArn }), }); @@ -640,6 +643,8 @@ export const serializeAws_restJson1ListResourcesCommand = async ( resourceArns: serializeAws_restJson1ResourceArnList(input.resourceArns, context), }), ...(input.resourceOwner !== undefined && input.resourceOwner !== null && { resourceOwner: input.resourceOwner }), + ...(input.resourceRegionScope !== undefined && + input.resourceRegionScope !== null && { resourceRegionScope: input.resourceRegionScope }), ...(input.resourceShareArns !== undefined && input.resourceShareArns !== null && { resourceShareArns: serializeAws_restJson1ResourceShareArnList(input.resourceShareArns, context), @@ -698,6 +703,8 @@ export const serializeAws_restJson1ListResourceTypesCommand = async ( body = JSON.stringify({ ...(input.maxResults !== undefined && input.maxResults !== null && { maxResults: input.maxResults }), ...(input.nextToken !== undefined && input.nextToken !== null && { nextToken: input.nextToken }), + ...(input.resourceRegionScope !== undefined && + input.resourceRegionScope !== null && { resourceRegionScope: input.resourceRegionScope }), }); return new __HttpRequest({ protocol, @@ -1093,6 +1100,14 @@ const deserializeAws_restJson1AssociateResourceShareCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "ThrottlingException": + case "com.amazonaws.ram#ThrottlingException": + response = { + ...(await deserializeAws_restJson1ThrottlingExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; case "UnknownResourceException": case "com.amazonaws.ram#UnknownResourceException": response = { @@ -3829,6 +3844,23 @@ const deserializeAws_restJson1TagPolicyViolationExceptionResponse = async ( return contents; }; +const deserializeAws_restJson1ThrottlingExceptionResponse = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const contents: ThrottlingException = { + name: "ThrottlingException", + $fault: "client", + $metadata: deserializeMetadata(parsedOutput), + message: undefined, + }; + const data: any = parsedOutput.body; + if (data.message !== undefined && data.message !== null) { + contents.message = __expectString(data.message); + } + return contents; +}; + const deserializeAws_restJson1UnknownResourceExceptionResponse = async ( parsedOutput: any, context: __SerdeContext @@ -4010,6 +4042,7 @@ const deserializeAws_restJson1Resource = (output: any, context: __SerdeContext): ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.lastUpdatedTime))) : undefined, resourceGroupArn: __expectString(output.resourceGroupArn), + resourceRegionScope: __expectString(output.resourceRegionScope), resourceShareArn: __expectString(output.resourceShareArn), status: __expectString(output.status), statusMessage: __expectString(output.statusMessage), @@ -4202,6 +4235,7 @@ const deserializeAws_restJson1ServiceNameAndResourceType = ( context: __SerdeContext ): ServiceNameAndResourceType => { return { + resourceRegionScope: __expectString(output.resourceRegionScope), resourceType: __expectString(output.resourceType), serviceName: __expectString(output.serviceName), } as any; diff --git a/clients/client-rbin/src/endpoints.ts b/clients/client-rbin/src/endpoints.ts index 1ffa0a4e5702..058519c098dc 100644 --- a/clients/client-rbin/src/endpoints.ts +++ b/clients/client-rbin/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-rds-data/src/endpoints.ts b/clients/client-rds-data/src/endpoints.ts index 227574f55804..63008281f4eb 100644 --- a/clients/client-rds-data/src/endpoints.ts +++ b/clients/client-rds-data/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-rds/src/endpoints.ts b/clients/client-rds/src/endpoints.ts index 473f6379e56b..57efad1a73d4 100644 --- a/clients/client-rds/src/endpoints.ts +++ b/clients/client-rds/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-redshift-data/src/endpoints.ts b/clients/client-redshift-data/src/endpoints.ts index 17091a892e80..8af26d8cb214 100644 --- a/clients/client-redshift-data/src/endpoints.ts +++ b/clients/client-redshift-data/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-redshift/src/Redshift.ts b/clients/client-redshift/src/Redshift.ts index 80e29da32142..14f2ae4c2c68 100644 --- a/clients/client-redshift/src/Redshift.ts +++ b/clients/client-redshift/src/Redshift.ts @@ -750,7 +750,7 @@ export class Redshift extends RedshiftClient { /** *

                        From a data producer account, authorizes the sharing of a datashare with one or more - * consumer accounts. To authorize a datashare for a data consumer, the producer account + * consumer accounts or managing entities. To authorize a datashare for a data consumer, the producer account * must have the correct access privileges.

                        */ public authorizeDataShare( diff --git a/clients/client-redshift/src/commands/AuthorizeDataShareCommand.ts b/clients/client-redshift/src/commands/AuthorizeDataShareCommand.ts index 0084f0a4e9f9..1442626da1ca 100644 --- a/clients/client-redshift/src/commands/AuthorizeDataShareCommand.ts +++ b/clients/client-redshift/src/commands/AuthorizeDataShareCommand.ts @@ -23,7 +23,7 @@ export interface AuthorizeDataShareCommandOutput extends DataShare, __MetadataBe /** *

                        From a data producer account, authorizes the sharing of a datashare with one or more - * consumer accounts. To authorize a datashare for a data consumer, the producer account + * consumer accounts or managing entities. To authorize a datashare for a data consumer, the producer account * must have the correct access privileges.

                        * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-redshift/src/endpoints.ts b/clients/client-redshift/src/endpoints.ts index 49a0df460c37..d225784ea2d5 100644 --- a/clients/client-redshift/src/endpoints.ts +++ b/clients/client-redshift/src/endpoints.ts @@ -93,6 +93,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-redshift/src/models/models_0.ts b/clients/client-redshift/src/models/models_0.ts index 612d5aaf89e6..033cfe4ab1c3 100644 --- a/clients/client-redshift/src/models/models_0.ts +++ b/clients/client-redshift/src/models/models_0.ts @@ -683,6 +683,11 @@ export interface DataShare { *

                        A value that specifies when the datashare has an association between a producer and data consumers.

                        */ DataShareAssociations?: DataShareAssociation[]; + + /** + *

                        The identifier of a datashare to show its managing entity.

                        + */ + ManagedBy?: string; } export namespace DataShare { @@ -1126,7 +1131,7 @@ export interface AuthorizeDataShareMessage { DataShareArn: string | undefined; /** - *

                        The identifier of the data consumer that is authorized to access the datashare. This identifier is an Amazon Web Services account ID.

                        + *

                        The identifier of the data consumer that is authorized to access the datashare. This identifier is an Amazon Web Services account ID or a keyword, such as ADX.

                        */ ConsumerIdentifier: string | undefined; } @@ -6843,7 +6848,7 @@ export interface DeauthorizeDataShareMessage { /** *

                        The identifier of the data consumer that is to have authorization removed from the datashare. - * This identifier is an Amazon Web Services account ID.

                        + * This identifier is an Amazon Web Services account ID or a keyword, such as ADX.

                        */ ConsumerIdentifier: string | undefined; } diff --git a/clients/client-redshift/src/protocols/Aws_query.ts b/clients/client-redshift/src/protocols/Aws_query.ts index 06668bbb7187..8073548b6447 100644 --- a/clients/client-redshift/src/protocols/Aws_query.ts +++ b/clients/client-redshift/src/protocols/Aws_query.ts @@ -18369,6 +18369,7 @@ const deserializeAws_queryDataShare = (output: any, context: __SerdeContext): Da ProducerArn: undefined, AllowPubliclyAccessibleConsumers: undefined, DataShareAssociations: undefined, + ManagedBy: undefined, }; if (output["DataShareArn"] !== undefined) { contents.DataShareArn = __expectString(output["DataShareArn"]); @@ -18388,6 +18389,9 @@ const deserializeAws_queryDataShare = (output: any, context: __SerdeContext): Da context ); } + if (output["ManagedBy"] !== undefined) { + contents.ManagedBy = __expectString(output["ManagedBy"]); + } return contents; }; diff --git a/clients/client-rekognition/src/Rekognition.ts b/clients/client-rekognition/src/Rekognition.ts index aed3d3dfb249..0aa8638a87f6 100644 --- a/clients/client-rekognition/src/Rekognition.ts +++ b/clients/client-rekognition/src/Rekognition.ts @@ -296,7 +296,7 @@ export class Rekognition extends RekognitionClient { * supported. The image must be formatted as a PNG or JPEG file.

                        *

                        In response, the operation returns an array of face matches ordered by similarity score * in descending order. For each face match, the response provides a bounding box of the face, - * facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and + * facial landmarks, pose details (pitch, roll, and yaw), quality (brightness and sharpness), and * confidence value (indicating the level of confidence that the bounding box contains a face). * The response also provides a similarity score, which indicates how closely the faces match.

                        * @@ -1354,7 +1354,7 @@ export class Rekognition extends RekognitionClient { *

                        The DetectText operation returns text in an array of TextDetection elements, TextDetections. Each * TextDetection element provides information about a single word or line of text * that was detected in the image.

                        - *

                        A word is one or more ISO basic latin script characters that are not separated by spaces. + *

                        A word is one or more script characters that are not separated by spaces. * DetectText can detect up to 100 words in an image.

                        *

                        A line is a string of equally spaced words. A line isn't necessarily a complete * sentence. For example, a driver's license number is detected as a line. A line ends when there diff --git a/clients/client-rekognition/src/commands/CompareFacesCommand.ts b/clients/client-rekognition/src/commands/CompareFacesCommand.ts index 1a514fe4d105..b84151ed1b0b 100644 --- a/clients/client-rekognition/src/commands/CompareFacesCommand.ts +++ b/clients/client-rekognition/src/commands/CompareFacesCommand.ts @@ -49,7 +49,7 @@ export interface CompareFacesCommandOutput extends CompareFacesResponse, __Metad * supported. The image must be formatted as a PNG or JPEG file.

                        *

                        In response, the operation returns an array of face matches ordered by similarity score * in descending order. For each face match, the response provides a bounding box of the face, - * facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and + * facial landmarks, pose details (pitch, roll, and yaw), quality (brightness and sharpness), and * confidence value (indicating the level of confidence that the bounding box contains a face). * The response also provides a similarity score, which indicates how closely the faces match.

                        * diff --git a/clients/client-rekognition/src/commands/DetectTextCommand.ts b/clients/client-rekognition/src/commands/DetectTextCommand.ts index 4bc41f0a4392..5a29da268d47 100644 --- a/clients/client-rekognition/src/commands/DetectTextCommand.ts +++ b/clients/client-rekognition/src/commands/DetectTextCommand.ts @@ -30,7 +30,7 @@ export interface DetectTextCommandOutput extends DetectTextResponse, __MetadataB *

                        The DetectText operation returns text in an array of TextDetection elements, TextDetections. Each * TextDetection element provides information about a single word or line of text * that was detected in the image.

                        - *

                        A word is one or more ISO basic latin script characters that are not separated by spaces. + *

                        A word is one or more script characters that are not separated by spaces. * DetectText can detect up to 100 words in an image.

                        *

                        A line is a string of equally spaced words. A line isn't necessarily a complete * sentence. For example, a driver's license number is detected as a line. A line ends when there diff --git a/clients/client-rekognition/src/endpoints.ts b/clients/client-rekognition/src/endpoints.ts index 68c9aaa52773..60c789145bf9 100644 --- a/clients/client-rekognition/src/endpoints.ts +++ b/clients/client-rekognition/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-rekognition/src/models/models_0.ts b/clients/client-rekognition/src/models/models_0.ts index 121ece25a009..ff8154a43b99 100644 --- a/clients/client-rekognition/src/models/models_0.ts +++ b/clients/client-rekognition/src/models/models_0.ts @@ -638,10 +638,13 @@ export namespace ComparedFace { export enum KnownGenderType { Female = "Female", Male = "Male", + Nonbinary = "Nonbinary", + Unlisted = "Unlisted", } /** - *

                        The known gender identity for the celebrity that matches the provided ID.

                        + *

                        The known gender identity for the celebrity that matches the provided ID. The known + * gender identity can be Male, Female, Nonbinary, or Unlisted.

                        */ export interface KnownGender { /** @@ -692,7 +695,8 @@ export interface Celebrity { MatchConfidence?: number; /** - *

                        The known gender identity for the celebrity that matches the provided ID.

                        + *

                        The known gender identity for the celebrity that matches the provided ID. The known + * gender identity can be Male, Female, Nonbinary, or Unlisted.

                        */ KnownGender?: KnownGender; } diff --git a/clients/client-resiliencehub/src/endpoints.ts b/clients/client-resiliencehub/src/endpoints.ts index 36790e4350f6..fa0f26ad9449 100644 --- a/clients/client-resiliencehub/src/endpoints.ts +++ b/clients/client-resiliencehub/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-resource-groups-tagging-api/src/endpoints.ts b/clients/client-resource-groups-tagging-api/src/endpoints.ts index ce835a26c138..76c0e832bf42 100644 --- a/clients/client-resource-groups-tagging-api/src/endpoints.ts +++ b/clients/client-resource-groups-tagging-api/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-resource-groups/src/endpoints.ts b/clients/client-resource-groups/src/endpoints.ts index f3d776c0d410..f9101b27f2d1 100644 --- a/clients/client-resource-groups/src/endpoints.ts +++ b/clients/client-resource-groups/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-robomaker/src/endpoints.ts b/clients/client-robomaker/src/endpoints.ts index d95744c578c2..410b98e7199a 100644 --- a/clients/client-robomaker/src/endpoints.ts +++ b/clients/client-robomaker/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-route-53-domains/src/Route53Domains.ts b/clients/client-route-53-domains/src/Route53Domains.ts index ce84ffb7cdf5..04af802c727c 100644 --- a/clients/client-route-53-domains/src/Route53Domains.ts +++ b/clients/client-route-53-domains/src/Route53Domains.ts @@ -20,6 +20,11 @@ import { CheckDomainTransferabilityCommandInput, CheckDomainTransferabilityCommandOutput, } from "./commands/CheckDomainTransferabilityCommand"; +import { + DeleteDomainCommand, + DeleteDomainCommandInput, + DeleteDomainCommandOutput, +} from "./commands/DeleteDomainCommand"; import { DeleteTagsForDomainCommand, DeleteTagsForDomainCommandInput, @@ -71,6 +76,7 @@ import { ListOperationsCommandInput, ListOperationsCommandOutput, } from "./commands/ListOperationsCommand"; +import { ListPricesCommand, ListPricesCommandInput, ListPricesCommandOutput } from "./commands/ListPricesCommand"; import { ListTagsForDomainCommand, ListTagsForDomainCommandInput, @@ -135,9 +141,11 @@ import { Route53DomainsClient } from "./Route53DomainsClient"; */ export class Route53Domains extends Route53DomainsClient { /** - *

                        Accepts the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using - * TransferDomainToAnotherAwsAccount. - *

                        + *

                        Accepts the transfer of a domain from another Amazon Web Services account to the + * currentAmazon Web Services account. You initiate a transfer between Amazon Web Services accounts using TransferDomainToAnotherAwsAccount.

                        + *

                        If you use the CLI command at accept-domain-transfer-from-another-aws-account, use JSON format as input + * instead of text because otherwise CLI will throw an error from domain + * transfer input that includes single quotes.

                        * *

                        Use either * ListOperations or @@ -179,12 +187,12 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                        Cancels the transfer of a domain from the current AWS account to another AWS account. You initiate a transfer between AWS accounts using + *

                        Cancels the transfer of a domain from the current Amazon Web Services account to another Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using * TransferDomainToAnotherAwsAccount. *

                        * * - *

                        You must cancel the transfer before the other AWS account accepts the transfer using + *

                        You must cancel the transfer before the other Amazon Web Services account accepts the transfer using * AcceptDomainTransferFromAnotherAwsAccount.

                        *
                        * @@ -292,6 +300,53 @@ export class Route53Domains extends Route53DomainsClient { } } + /** + *

                        This operation deletes the specified domain. This action is permanent. For more information, + * see Deleting a domain name registration.

                        + *

                        To transfer the domain registration to another registrar, use the transfer process that’s + * provided by the registrar to which you want to transfer the registration. Otherwise, + * the following apply:

                        + *
                          + *
                        1. + *

                          You can’t get a refund for the cost of a deleted domain registration.

                          + *
                        2. + *
                        3. + *

                          The registry for the top-level domain might hold the domain name for a brief time before releasing it for other users to register (varies by registry).

                          + *
                        4. + *
                        5. + *

                          When the registration has been deleted, we'll send you a confirmation to the registrant + * contact. The email will come from + * noreply@domainnameverification.net or + * noreply@registrar.amazon.com.

                          + *
                        6. + *
                        + */ + public deleteDomain( + args: DeleteDomainCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteDomain(args: DeleteDomainCommandInput, cb: (err: any, data?: DeleteDomainCommandOutput) => void): void; + public deleteDomain( + args: DeleteDomainCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteDomainCommandOutput) => void + ): void; + public deleteDomain( + args: DeleteDomainCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteDomainCommandOutput) => void), + cb?: (err: any, data?: DeleteDomainCommandOutput) => void + ): Promise | void { + const command = new DeleteDomainCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        This operation deletes the specified tags for a domain.

                        *

                        All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

                        @@ -396,7 +451,7 @@ export class Route53Domains extends Route53DomainsClient { /** *

                        This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. - * The cost of renewing your domain registration is billed to your AWS account.

                        + * The cost of renewing your domain registration is billed to your Amazon Web Services account.

                        *

                        The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see * Domains That You Can Register with Amazon Route 53 * in the Amazon Route 53 Developer Guide. Route 53 requires that you renew before the end of the renewal period @@ -500,7 +555,7 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                        This operation returns detailed information about a specified domain that is associated with the current AWS account. + *

                        This operation returns detailed information about a specified domain that is associated with the current Amazon Web Services account. * Contact information for the domain is also returned as part of the output.

                        */ public getDomainDetail( @@ -597,7 +652,8 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                        This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

                        + *

                        This operation returns all the domain names registered with Amazon Route 53 for the current Amazon Web Services account + * if no filtering conditions are used.

                        */ public listDomains(args: ListDomainsCommandInput, options?: __HttpHandlerOptions): Promise; public listDomains(args: ListDomainsCommandInput, cb: (err: any, data?: ListDomainsCommandOutput) => void): void; @@ -625,6 +681,7 @@ export class Route53Domains extends Route53DomainsClient { /** *

                        Returns information about all of the operations that return an operation ID and that have ever been * performed on domains that were registered by the current account.

                        + *

                        This command runs only in the us-east-1 Region.

                        */ public listOperations( args: ListOperationsCommandInput, @@ -655,6 +712,49 @@ export class Route53Domains extends Route53DomainsClient { } } + /** + *

                        Lists the following prices for either all the TLDs supported by Route 53, or the specified TLD:

                        + *
                          + *
                        • + *

                          Registration

                          + *
                        • + *
                        • + *

                          Transfer

                          + *
                        • + *
                        • + *

                          Owner change

                          + *
                        • + *
                        • + *

                          Domain renewal

                          + *
                        • + *
                        • + *

                          Domain restoration

                          + *
                        • + *
                        + */ + public listPrices(args: ListPricesCommandInput, options?: __HttpHandlerOptions): Promise; + public listPrices(args: ListPricesCommandInput, cb: (err: any, data?: ListPricesCommandOutput) => void): void; + public listPrices( + args: ListPricesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListPricesCommandOutput) => void + ): void; + public listPrices( + args: ListPricesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListPricesCommandOutput) => void), + cb?: (err: any, data?: ListPricesCommandOutput) => void + ): Promise | void { + const command = new ListPricesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

                        This operation returns all of the tags that are associated with the specified domain.

                        *

                        All tag operations are eventually consistent; subsequent operations might not immediately represent all issued operations.

                        @@ -704,14 +804,17 @@ export class Route53Domains extends Route53DomainsClient { *
                      • *

                        Optionally enables privacy protection, so WHOIS queries return contact information either for Amazon Registrar * (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you don't enable privacy - * protection, WHOIS queries return the information that you entered for the registrant, admin, and tech contacts.

                        - *
                      • + * protection, WHOIS queries return the information that you entered for the administrative, registrant, and technical contacts.

                        + * + *

                        You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                        + *
                        + * *
                      • *

                        If registration is successful, returns an operation ID that you can use to track the progress and * completion of the action. If the request is not completed successfully, the domain registrant is notified by email.

                        *
                      • *
                      • - *

                        Charges your AWS account an amount based on the top-level domain. For more information, see + *

                        Charges your Amazon Web Services account an amount based on the top-level domain. For more information, see * Amazon Route 53 Pricing.

                        *
                      • *
                      @@ -746,7 +849,7 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                      Rejects the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using + *

                      Rejects the transfer of a domain from another Amazon Web Services account to the current Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using * TransferDomainToAnotherAwsAccount. *

                      * @@ -790,7 +893,7 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                      This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account.

                      + *

                      This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your Amazon Web Services account.

                      *

                      We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the * expiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see * Renewing Registration for a Domain @@ -896,7 +999,7 @@ export class Route53Domains extends Route53DomainsClient { * Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide.

                      *
                    • *
                    • - *

                      For information about how to transfer a domain from one AWS account to another, see + *

                      For information about how to transfer a domain from one Amazon Web Services account to another, see * TransferDomainToAnotherAwsAccount. *

                      *
                    • @@ -950,10 +1053,10 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                      Transfers a domain from the current AWS account to another AWS account. Note the following:

                      + *

                      Transfers a domain from the current Amazon Web Services account to another Amazon Web Services account. Note the following:

                      *
                        *
                      • - *

                        The AWS account that you're transferring the domain to must accept the transfer. If the other account + *

                        The Amazon Web Services account that you're transferring the domain to must accept the transfer. If the other account * doesn't accept the transfer within 3 days, we cancel the transfer. See * AcceptDomainTransferFromAnotherAwsAccount. *

                        @@ -971,11 +1074,11 @@ export class Route53Domains extends Route53DomainsClient { *
                      * * - *

                      When you transfer a domain from one AWS account to another, Route 53 doesn't transfer the hosted zone that is associated + *

                      When you transfer a domain from one Amazon Web Services account to another, Route 53 doesn't transfer the hosted zone that is associated * with the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, - * so transferring the hosted zone is optional. For information about transferring the hosted zone to another AWS account, see + * so transferring the hosted zone is optional. For information about transferring the hosted zone to another Amazon Web Services account, see * Migrating a Hosted Zone to a - * Different AWS Account in the Amazon Route 53 Developer Guide.

                      + * Different Amazon Web Services Account in the Amazon Route 53 Developer Guide.

                      *
                      * *

                      Use either @@ -1054,7 +1157,10 @@ export class Route53Domains extends Route53DomainsClient { *

                      This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, * contact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org * domains) or with contact information for our registrar associate, Gandi.

                      - *

                      This operation affects only the contact information for the specified contact type (registrant, administrator, or tech). + * + *

                      You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                      + * + *

                      This operation affects only the contact information for the specified contact type (administrative, registrant, or technical). * If the request succeeds, Amazon Route 53 returns an operation ID that you can use with * GetOperationDetail * to track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email.

                      @@ -1165,7 +1271,7 @@ export class Route53Domains extends Route53DomainsClient { } /** - *

                      Returns all the domain-related billing records for the current AWS account for a specified period

                      + *

                      Returns all the domain-related billing records for the current Amazon Web Services account for a specified period

                      */ public viewBilling(args: ViewBillingCommandInput, options?: __HttpHandlerOptions): Promise; public viewBilling(args: ViewBillingCommandInput, cb: (err: any, data?: ViewBillingCommandOutput) => void): void; diff --git a/clients/client-route-53-domains/src/Route53DomainsClient.ts b/clients/client-route-53-domains/src/Route53DomainsClient.ts index cb7488e2e095..2014d33cc642 100644 --- a/clients/client-route-53-domains/src/Route53DomainsClient.ts +++ b/clients/client-route-53-domains/src/Route53DomainsClient.ts @@ -65,6 +65,7 @@ import { CheckDomainTransferabilityCommandInput, CheckDomainTransferabilityCommandOutput, } from "./commands/CheckDomainTransferabilityCommand"; +import { DeleteDomainCommandInput, DeleteDomainCommandOutput } from "./commands/DeleteDomainCommand"; import { DeleteTagsForDomainCommandInput, DeleteTagsForDomainCommandOutput, @@ -97,6 +98,7 @@ import { import { GetOperationDetailCommandInput, GetOperationDetailCommandOutput } from "./commands/GetOperationDetailCommand"; import { ListDomainsCommandInput, ListDomainsCommandOutput } from "./commands/ListDomainsCommand"; import { ListOperationsCommandInput, ListOperationsCommandOutput } from "./commands/ListOperationsCommand"; +import { ListPricesCommandInput, ListPricesCommandOutput } from "./commands/ListPricesCommand"; import { ListTagsForDomainCommandInput, ListTagsForDomainCommandOutput } from "./commands/ListTagsForDomainCommand"; import { RegisterDomainCommandInput, RegisterDomainCommandOutput } from "./commands/RegisterDomainCommand"; import { @@ -141,6 +143,7 @@ export type ServiceInputTypes = | CancelDomainTransferToAnotherAwsAccountCommandInput | CheckDomainAvailabilityCommandInput | CheckDomainTransferabilityCommandInput + | DeleteDomainCommandInput | DeleteTagsForDomainCommandInput | DisableDomainAutoRenewCommandInput | DisableDomainTransferLockCommandInput @@ -152,6 +155,7 @@ export type ServiceInputTypes = | GetOperationDetailCommandInput | ListDomainsCommandInput | ListOperationsCommandInput + | ListPricesCommandInput | ListTagsForDomainCommandInput | RegisterDomainCommandInput | RejectDomainTransferFromAnotherAwsAccountCommandInput @@ -171,6 +175,7 @@ export type ServiceOutputTypes = | CancelDomainTransferToAnotherAwsAccountCommandOutput | CheckDomainAvailabilityCommandOutput | CheckDomainTransferabilityCommandOutput + | DeleteDomainCommandOutput | DeleteTagsForDomainCommandOutput | DisableDomainAutoRenewCommandOutput | DisableDomainTransferLockCommandOutput @@ -182,6 +187,7 @@ export type ServiceOutputTypes = | GetOperationDetailCommandOutput | ListDomainsCommandOutput | ListOperationsCommandOutput + | ListPricesCommandOutput | ListTagsForDomainCommandOutput | RegisterDomainCommandOutput | RejectDomainTransferFromAnotherAwsAccountCommandOutput diff --git a/clients/client-route-53-domains/src/commands/AcceptDomainTransferFromAnotherAwsAccountCommand.ts b/clients/client-route-53-domains/src/commands/AcceptDomainTransferFromAnotherAwsAccountCommand.ts index 38d6cab1c144..1e1f5349615e 100644 --- a/clients/client-route-53-domains/src/commands/AcceptDomainTransferFromAnotherAwsAccountCommand.ts +++ b/clients/client-route-53-domains/src/commands/AcceptDomainTransferFromAnotherAwsAccountCommand.ts @@ -28,9 +28,11 @@ export interface AcceptDomainTransferFromAnotherAwsAccountCommandOutput __MetadataBearer {} /** - *

                      Accepts the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using - * TransferDomainToAnotherAwsAccount. - *

                      + *

                      Accepts the transfer of a domain from another Amazon Web Services account to the + * currentAmazon Web Services account. You initiate a transfer between Amazon Web Services accounts using TransferDomainToAnotherAwsAccount.

                      + *

                      If you use the CLI command at accept-domain-transfer-from-another-aws-account, use JSON format as input + * instead of text because otherwise CLI will throw an error from domain + * transfer input that includes single quotes.

                      * *

                      Use either * ListOperations or diff --git a/clients/client-route-53-domains/src/commands/CancelDomainTransferToAnotherAwsAccountCommand.ts b/clients/client-route-53-domains/src/commands/CancelDomainTransferToAnotherAwsAccountCommand.ts index 34ae4439ba5d..bfc572f1dff5 100644 --- a/clients/client-route-53-domains/src/commands/CancelDomainTransferToAnotherAwsAccountCommand.ts +++ b/clients/client-route-53-domains/src/commands/CancelDomainTransferToAnotherAwsAccountCommand.ts @@ -28,12 +28,12 @@ export interface CancelDomainTransferToAnotherAwsAccountCommandOutput __MetadataBearer {} /** - *

                      Cancels the transfer of a domain from the current AWS account to another AWS account. You initiate a transfer between AWS accounts using + *

                      Cancels the transfer of a domain from the current Amazon Web Services account to another Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using * TransferDomainToAnotherAwsAccount. *

                      * * - *

                      You must cancel the transfer before the other AWS account accepts the transfer using + *

                      You must cancel the transfer before the other Amazon Web Services account accepts the transfer using * AcceptDomainTransferFromAnotherAwsAccount.

                      *
                      * diff --git a/clients/client-route-53-domains/src/commands/DeleteDomainCommand.ts b/clients/client-route-53-domains/src/commands/DeleteDomainCommand.ts new file mode 100644 index 000000000000..fb95468c184d --- /dev/null +++ b/clients/client-route-53-domains/src/commands/DeleteDomainCommand.ts @@ -0,0 +1,113 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteDomainRequest, DeleteDomainResponse } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteDomainCommand, + serializeAws_json1_1DeleteDomainCommand, +} from "../protocols/Aws_json1_1"; +import { Route53DomainsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53DomainsClient"; + +export interface DeleteDomainCommandInput extends DeleteDomainRequest {} +export interface DeleteDomainCommandOutput extends DeleteDomainResponse, __MetadataBearer {} + +/** + *

                      This operation deletes the specified domain. This action is permanent. For more information, + * see Deleting a domain name registration.

                      + *

                      To transfer the domain registration to another registrar, use the transfer process that’s + * provided by the registrar to which you want to transfer the registration. Otherwise, + * the following apply:

                      + *
                        + *
                      1. + *

                        You can’t get a refund for the cost of a deleted domain registration.

                        + *
                      2. + *
                      3. + *

                        The registry for the top-level domain might hold the domain name for a brief time before releasing it for other users to register (varies by registry).

                        + *
                      4. + *
                      5. + *

                        When the registration has been deleted, we'll send you a confirmation to the registrant + * contact. The email will come from + * noreply@domainnameverification.net or + * noreply@registrar.amazon.com.

                        + *
                      6. + *
                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53DomainsClient, DeleteDomainCommand } from "@aws-sdk/client-route-53-domains"; // ES Modules import + * // const { Route53DomainsClient, DeleteDomainCommand } = require("@aws-sdk/client-route-53-domains"); // CommonJS import + * const client = new Route53DomainsClient(config); + * const command = new DeleteDomainCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteDomainCommandInput} for command's `input` shape. + * @see {@link DeleteDomainCommandOutput} for command's `response` shape. + * @see {@link Route53DomainsClientResolvedConfig | config} for Route53DomainsClient's `config` shape. + * + */ +export class DeleteDomainCommand extends $Command< + DeleteDomainCommandInput, + DeleteDomainCommandOutput, + Route53DomainsClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteDomainCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53DomainsClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53DomainsClient"; + const commandName = "DeleteDomainCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteDomainRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteDomainResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteDomainCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteDomainCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteDomainCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route-53-domains/src/commands/EnableDomainAutoRenewCommand.ts b/clients/client-route-53-domains/src/commands/EnableDomainAutoRenewCommand.ts index 8cf4e7bfe11c..c57270d996a3 100644 --- a/clients/client-route-53-domains/src/commands/EnableDomainAutoRenewCommand.ts +++ b/clients/client-route-53-domains/src/commands/EnableDomainAutoRenewCommand.ts @@ -23,7 +23,7 @@ export interface EnableDomainAutoRenewCommandOutput extends EnableDomainAutoRene /** *

                      This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. - * The cost of renewing your domain registration is billed to your AWS account.

                      + * The cost of renewing your domain registration is billed to your Amazon Web Services account.

                      *

                      The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see * Domains That You Can Register with Amazon Route 53 * in the Amazon Route 53 Developer Guide. Route 53 requires that you renew before the end of the renewal period diff --git a/clients/client-route-53-domains/src/commands/GetDomainDetailCommand.ts b/clients/client-route-53-domains/src/commands/GetDomainDetailCommand.ts index 5041274cafd5..30f2f13ee458 100644 --- a/clients/client-route-53-domains/src/commands/GetDomainDetailCommand.ts +++ b/clients/client-route-53-domains/src/commands/GetDomainDetailCommand.ts @@ -22,7 +22,7 @@ export interface GetDomainDetailCommandInput extends GetDomainDetailRequest {} export interface GetDomainDetailCommandOutput extends GetDomainDetailResponse, __MetadataBearer {} /** - *

                      This operation returns detailed information about a specified domain that is associated with the current AWS account. + *

                      This operation returns detailed information about a specified domain that is associated with the current Amazon Web Services account. * Contact information for the domain is also returned as part of the output.

                      * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-route-53-domains/src/commands/ListDomainsCommand.ts b/clients/client-route-53-domains/src/commands/ListDomainsCommand.ts index 781c5dc19d25..f12b543aae10 100644 --- a/clients/client-route-53-domains/src/commands/ListDomainsCommand.ts +++ b/clients/client-route-53-domains/src/commands/ListDomainsCommand.ts @@ -22,7 +22,8 @@ export interface ListDomainsCommandInput extends ListDomainsRequest {} export interface ListDomainsCommandOutput extends ListDomainsResponse, __MetadataBearer {} /** - *

                      This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

                      + *

                      This operation returns all the domain names registered with Amazon Route 53 for the current Amazon Web Services account + * if no filtering conditions are used.

                      * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53-domains/src/commands/ListOperationsCommand.ts b/clients/client-route-53-domains/src/commands/ListOperationsCommand.ts index d4874b333a84..f02419a1d412 100644 --- a/clients/client-route-53-domains/src/commands/ListOperationsCommand.ts +++ b/clients/client-route-53-domains/src/commands/ListOperationsCommand.ts @@ -24,6 +24,7 @@ export interface ListOperationsCommandOutput extends ListOperationsResponse, __M /** *

                      Returns information about all of the operations that return an operation ID and that have ever been * performed on domains that were registered by the current account.

                      + *

                      This command runs only in the us-east-1 Region.

                      * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53-domains/src/commands/ListPricesCommand.ts b/clients/client-route-53-domains/src/commands/ListPricesCommand.ts new file mode 100644 index 000000000000..4aed41357f23 --- /dev/null +++ b/clients/client-route-53-domains/src/commands/ListPricesCommand.ts @@ -0,0 +1,112 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ListPricesRequest, ListPricesResponse } from "../models/models_0"; +import { + deserializeAws_json1_1ListPricesCommand, + serializeAws_json1_1ListPricesCommand, +} from "../protocols/Aws_json1_1"; +import { Route53DomainsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../Route53DomainsClient"; + +export interface ListPricesCommandInput extends ListPricesRequest {} +export interface ListPricesCommandOutput extends ListPricesResponse, __MetadataBearer {} + +/** + *

                      Lists the following prices for either all the TLDs supported by Route 53, or the specified TLD:

                      + *
                        + *
                      • + *

                        Registration

                        + *
                      • + *
                      • + *

                        Transfer

                        + *
                      • + *
                      • + *

                        Owner change

                        + *
                      • + *
                      • + *

                        Domain renewal

                        + *
                      • + *
                      • + *

                        Domain restoration

                        + *
                      • + *
                      + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53DomainsClient, ListPricesCommand } from "@aws-sdk/client-route-53-domains"; // ES Modules import + * // const { Route53DomainsClient, ListPricesCommand } = require("@aws-sdk/client-route-53-domains"); // CommonJS import + * const client = new Route53DomainsClient(config); + * const command = new ListPricesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListPricesCommandInput} for command's `input` shape. + * @see {@link ListPricesCommandOutput} for command's `response` shape. + * @see {@link Route53DomainsClientResolvedConfig | config} for Route53DomainsClient's `config` shape. + * + */ +export class ListPricesCommand extends $Command< + ListPricesCommandInput, + ListPricesCommandOutput, + Route53DomainsClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListPricesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53DomainsClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53DomainsClient"; + const commandName = "ListPricesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListPricesRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListPricesResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListPricesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListPricesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListPricesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route-53-domains/src/commands/RegisterDomainCommand.ts b/clients/client-route-53-domains/src/commands/RegisterDomainCommand.ts index cec5db4d9165..4a0ac4434703 100644 --- a/clients/client-route-53-domains/src/commands/RegisterDomainCommand.ts +++ b/clients/client-route-53-domains/src/commands/RegisterDomainCommand.ts @@ -37,14 +37,17 @@ export interface RegisterDomainCommandOutput extends RegisterDomainResponse, __M *
                    • *

                      Optionally enables privacy protection, so WHOIS queries return contact information either for Amazon Registrar * (for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you don't enable privacy - * protection, WHOIS queries return the information that you entered for the registrant, admin, and tech contacts.

                      - *
                    • + * protection, WHOIS queries return the information that you entered for the administrative, registrant, and technical contacts.

                      + * + *

                      You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                      + *
                      + * *
                    • *

                      If registration is successful, returns an operation ID that you can use to track the progress and * completion of the action. If the request is not completed successfully, the domain registrant is notified by email.

                      *
                    • *
                    • - *

                      Charges your AWS account an amount based on the top-level domain. For more information, see + *

                      Charges your Amazon Web Services account an amount based on the top-level domain. For more information, see * Amazon Route 53 Pricing.

                      *
                    • *
                    diff --git a/clients/client-route-53-domains/src/commands/RejectDomainTransferFromAnotherAwsAccountCommand.ts b/clients/client-route-53-domains/src/commands/RejectDomainTransferFromAnotherAwsAccountCommand.ts index 39e7e3283065..b0bdcc76c66b 100644 --- a/clients/client-route-53-domains/src/commands/RejectDomainTransferFromAnotherAwsAccountCommand.ts +++ b/clients/client-route-53-domains/src/commands/RejectDomainTransferFromAnotherAwsAccountCommand.ts @@ -28,7 +28,7 @@ export interface RejectDomainTransferFromAnotherAwsAccountCommandOutput __MetadataBearer {} /** - *

                    Rejects the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using + *

                    Rejects the transfer of a domain from another Amazon Web Services account to the current Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using * TransferDomainToAnotherAwsAccount. *

                    * diff --git a/clients/client-route-53-domains/src/commands/RenewDomainCommand.ts b/clients/client-route-53-domains/src/commands/RenewDomainCommand.ts index de5befce8feb..313f85804eda 100644 --- a/clients/client-route-53-domains/src/commands/RenewDomainCommand.ts +++ b/clients/client-route-53-domains/src/commands/RenewDomainCommand.ts @@ -22,7 +22,7 @@ export interface RenewDomainCommandInput extends RenewDomainRequest {} export interface RenewDomainCommandOutput extends RenewDomainResponse, __MetadataBearer {} /** - *

                    This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account.

                    + *

                    This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your Amazon Web Services account.

                    *

                    We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the * expiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see * Renewing Registration for a Domain diff --git a/clients/client-route-53-domains/src/commands/TransferDomainCommand.ts b/clients/client-route-53-domains/src/commands/TransferDomainCommand.ts index fdeea4441b70..96e9cc4bd8e4 100644 --- a/clients/client-route-53-domains/src/commands/TransferDomainCommand.ts +++ b/clients/client-route-53-domains/src/commands/TransferDomainCommand.ts @@ -33,7 +33,7 @@ export interface TransferDomainCommandOutput extends TransferDomainResponse, __M * Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide.

                    * *
                  • - *

                    For information about how to transfer a domain from one AWS account to another, see + *

                    For information about how to transfer a domain from one Amazon Web Services account to another, see * TransferDomainToAnotherAwsAccount. *

                    *
                  • diff --git a/clients/client-route-53-domains/src/commands/TransferDomainToAnotherAwsAccountCommand.ts b/clients/client-route-53-domains/src/commands/TransferDomainToAnotherAwsAccountCommand.ts index 1c2bed305337..7d75bfee26d1 100644 --- a/clients/client-route-53-domains/src/commands/TransferDomainToAnotherAwsAccountCommand.ts +++ b/clients/client-route-53-domains/src/commands/TransferDomainToAnotherAwsAccountCommand.ts @@ -27,10 +27,10 @@ export interface TransferDomainToAnotherAwsAccountCommandOutput __MetadataBearer {} /** - *

                    Transfers a domain from the current AWS account to another AWS account. Note the following:

                    + *

                    Transfers a domain from the current Amazon Web Services account to another Amazon Web Services account. Note the following:

                    *
                      *
                    • - *

                      The AWS account that you're transferring the domain to must accept the transfer. If the other account + *

                      The Amazon Web Services account that you're transferring the domain to must accept the transfer. If the other account * doesn't accept the transfer within 3 days, we cancel the transfer. See * AcceptDomainTransferFromAnotherAwsAccount. *

                      @@ -48,11 +48,11 @@ export interface TransferDomainToAnotherAwsAccountCommandOutput *
                    * * - *

                    When you transfer a domain from one AWS account to another, Route 53 doesn't transfer the hosted zone that is associated + *

                    When you transfer a domain from one Amazon Web Services account to another, Route 53 doesn't transfer the hosted zone that is associated * with the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, - * so transferring the hosted zone is optional. For information about transferring the hosted zone to another AWS account, see + * so transferring the hosted zone is optional. For information about transferring the hosted zone to another Amazon Web Services account, see * Migrating a Hosted Zone to a - * Different AWS Account in the Amazon Route 53 Developer Guide.

                    + * Different Amazon Web Services Account in the Amazon Route 53 Developer Guide.

                    *
                    * *

                    Use either diff --git a/clients/client-route-53-domains/src/commands/UpdateDomainContactPrivacyCommand.ts b/clients/client-route-53-domains/src/commands/UpdateDomainContactPrivacyCommand.ts index e4dd77aa46dd..1d01157d51eb 100644 --- a/clients/client-route-53-domains/src/commands/UpdateDomainContactPrivacyCommand.ts +++ b/clients/client-route-53-domains/src/commands/UpdateDomainContactPrivacyCommand.ts @@ -25,7 +25,10 @@ export interface UpdateDomainContactPrivacyCommandOutput extends UpdateDomainCon *

                    This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, * contact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org * domains) or with contact information for our registrar associate, Gandi.

                    - *

                    This operation affects only the contact information for the specified contact type (registrant, administrator, or tech). + * + *

                    You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                    + * + *

                    This operation affects only the contact information for the specified contact type (administrative, registrant, or technical). * If the request succeeds, Amazon Route 53 returns an operation ID that you can use with * GetOperationDetail * to track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email.

                    diff --git a/clients/client-route-53-domains/src/commands/ViewBillingCommand.ts b/clients/client-route-53-domains/src/commands/ViewBillingCommand.ts index d3ed18cbb390..831e1b09694d 100644 --- a/clients/client-route-53-domains/src/commands/ViewBillingCommand.ts +++ b/clients/client-route-53-domains/src/commands/ViewBillingCommand.ts @@ -22,7 +22,7 @@ export interface ViewBillingCommandInput extends ViewBillingRequest {} export interface ViewBillingCommandOutput extends ViewBillingResponse, __MetadataBearer {} /** - *

                    Returns all the domain-related billing records for the current AWS account for a specified period

                    + *

                    Returns all the domain-related billing records for the current Amazon Web Services account for a specified period

                    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53-domains/src/commands/index.ts b/clients/client-route-53-domains/src/commands/index.ts index 5cbd3b9c45b4..c76b71822776 100644 --- a/clients/client-route-53-domains/src/commands/index.ts +++ b/clients/client-route-53-domains/src/commands/index.ts @@ -2,6 +2,7 @@ export * from "./AcceptDomainTransferFromAnotherAwsAccountCommand"; export * from "./CancelDomainTransferToAnotherAwsAccountCommand"; export * from "./CheckDomainAvailabilityCommand"; export * from "./CheckDomainTransferabilityCommand"; +export * from "./DeleteDomainCommand"; export * from "./DeleteTagsForDomainCommand"; export * from "./DisableDomainAutoRenewCommand"; export * from "./DisableDomainTransferLockCommand"; @@ -13,6 +14,7 @@ export * from "./GetDomainSuggestionsCommand"; export * from "./GetOperationDetailCommand"; export * from "./ListDomainsCommand"; export * from "./ListOperationsCommand"; +export * from "./ListPricesCommand"; export * from "./ListTagsForDomainCommand"; export * from "./RegisterDomainCommand"; export * from "./RejectDomainTransferFromAnotherAwsAccountCommand"; diff --git a/clients/client-route-53-domains/src/endpoints.ts b/clients/client-route-53-domains/src/endpoints.ts index ad74d73d71a1..893745700998 100644 --- a/clients/client-route-53-domains/src/endpoints.ts +++ b/clients/client-route-53-domains/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-route-53-domains/src/models/models_0.ts b/clients/client-route-53-domains/src/models/models_0.ts index 0b5aad99f706..df7e56e47185 100644 --- a/clients/client-route-53-domains/src/models/models_0.ts +++ b/clients/client-route-53-domains/src/models/models_0.ts @@ -6,7 +6,7 @@ import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException */ export interface AcceptDomainTransferFromAnotherAwsAccountRequest { /** - *

                    The name of the domain that was specified when another AWS account submitted a + *

                    The name of the domain that was specified when another Amazon Web Services account submitted a * TransferDomainToAnotherAwsAccount * request. *

                    @@ -117,6 +117,27 @@ export namespace OperationLimitExceeded { }); } +/** + *

                    Amazon Route 53 does not support this top-level domain (TLD).

                    + */ +export interface UnsupportedTLD extends __SmithyException, $MetadataBearer { + name: "UnsupportedTLD"; + $fault: "client"; + /** + *

                    Amazon Route 53 does not support this top-level domain (TLD).

                    + */ + message?: string; +} + +export namespace UnsupportedTLD { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UnsupportedTLD): any => ({ + ...obj, + }); +} + export enum OperationType { ADD_DNSSEC = "ADD_DNSSEC", CHANGE_DOMAIN_OWNER = "CHANGE_DOMAIN_OWNER", @@ -187,7 +208,7 @@ export namespace BillingRecord { */ export interface CancelDomainTransferToAnotherAwsAccountRequest { /** - *

                    The name of the domain for which you want to cancel the transfer to another AWS account.

                    + *

                    The name of the domain for which you want to cancel the transfer to another Amazon Web Services account.

                    */ DomainName: string | undefined; } @@ -344,27 +365,6 @@ export namespace CheckDomainAvailabilityResponse { }); } -/** - *

                    Amazon Route 53 does not support this top-level domain (TLD).

                    - */ -export interface UnsupportedTLD extends __SmithyException, $MetadataBearer { - name: "UnsupportedTLD"; - $fault: "client"; - /** - *

                    Amazon Route 53 does not support this top-level domain (TLD).

                    - */ - message?: string; -} - -export namespace UnsupportedTLD { - /** - * @internal - */ - export const filterSensitiveLog = (obj: UnsupportedTLD): any => ({ - ...obj, - }); -} - /** *

                    The CheckDomainTransferability request contains the following elements.

                    */ @@ -475,6 +475,7 @@ export namespace CheckDomainTransferabilityResponse { export type ContactType = "ASSOCIATION" | "COMPANY" | "PERSON" | "PUBLIC_BODY" | "RESELLER"; export type CountryCode = + | "AC" | "AD" | "AE" | "AF" @@ -490,6 +491,7 @@ export type CountryCode = | "AT" | "AU" | "AW" + | "AX" | "AZ" | "BA" | "BB" @@ -504,9 +506,11 @@ export type CountryCode = | "BM" | "BN" | "BO" + | "BQ" | "BR" | "BS" | "BT" + | "BV" | "BW" | "BY" | "BZ" @@ -525,6 +529,7 @@ export type CountryCode = | "CR" | "CU" | "CV" + | "CW" | "CX" | "CY" | "CZ" @@ -537,6 +542,7 @@ export type CountryCode = | "EC" | "EE" | "EG" + | "EH" | "ER" | "ES" | "ET" @@ -550,18 +556,23 @@ export type CountryCode = | "GB" | "GD" | "GE" + | "GF" + | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" + | "GP" | "GQ" | "GR" + | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" + | "HM" | "HN" | "HR" | "HT" @@ -571,10 +582,12 @@ export type CountryCode = | "IL" | "IM" | "IN" + | "IO" | "IQ" | "IR" | "IS" | "IT" + | "JE" | "JM" | "JO" | "JP" @@ -613,6 +626,7 @@ export type CountryCode = | "MN" | "MO" | "MP" + | "MQ" | "MR" | "MS" | "MT" @@ -625,6 +639,7 @@ export type CountryCode = | "NA" | "NC" | "NE" + | "NF" | "NG" | "NI" | "NL" @@ -644,10 +659,12 @@ export type CountryCode = | "PM" | "PN" | "PR" + | "PS" | "PT" | "PW" | "PY" | "QA" + | "RE" | "RO" | "RS" | "RU" @@ -660,18 +677,22 @@ export type CountryCode = | "SG" | "SH" | "SI" + | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" + | "SS" | "ST" | "SV" + | "SX" | "SY" | "SZ" | "TC" | "TD" + | "TF" | "TG" | "TH" | "TJ" @@ -680,6 +701,7 @@ export type CountryCode = | "TM" | "TN" | "TO" + | "TP" | "TR" | "TT" | "TV" @@ -722,6 +744,7 @@ export enum ExtraParamName { ES_IDENTIFICATION = "ES_IDENTIFICATION", ES_IDENTIFICATION_TYPE = "ES_IDENTIFICATION_TYPE", ES_LEGAL_FORM = "ES_LEGAL_FORM", + EU_COUNTRY_OF_CITIZENSHIP = "EU_COUNTRY_OF_CITIZENSHIP", FI_BUSINESS_NUMBER = "FI_BUSINESS_NUMBER", FI_NATIONALITY = "FI_NATIONALITY", FI_ORGANIZATION_TYPE = "FI_ORGANIZATION_TYPE", @@ -982,19 +1005,64 @@ export interface ExtraParam { *

                    * ES_IDENTIFICATION *

                    - *

                    Specify the applicable value:

                    + *

                    The value of ES_IDENTIFICATION depends on the following values:

                    *
                      *
                    • - *

                      - * For contacts inside Spain: Enter your passport ID.

                      + *

                      The value of ES_LEGAL_FORM + *

                      *
                    • *
                    • - *

                      - * For contacts outside of Spain: Enter the VAT identification number - * for the company.

                      - * - *

                      For .es domains, the value of ContactType must be PERSON.

                      - *
                      + *

                      The value of ES_IDENTIFICATION_TYPE + *

                      + *
                    • + *
                    + * + *

                    + * If ES_LEGAL_FORM is any value other than INDIVIDUAL: + *

                    + *
                      + *
                    • + *

                      Specify 1 letter + 8 numbers (CIF [Certificado de Identificación Fiscal])

                      + *
                    • + *
                    • + *

                      Example: B12345678

                      + *
                    • + *
                    + * + *

                    + * If ES_LEGAL_FORM is INDIVIDUAL, the value that you specify for + * ES_IDENTIFICATION depends on the value of ES_IDENTIFICATION_TYPE: + *

                    + *
                      + *
                    • + *

                      If ES_IDENTIFICATION_TYPE is DNI_AND_NIF (for Spanish contacts):

                      + *
                        + *
                      • + *

                        Specify 8 numbers + 1 letter (DNI [Documento Nacional de Identidad], NIF [Número de Identificación Fiscal])

                        + *
                      • + *
                      • + *

                        Example: 12345678M

                        + *
                      • + *
                      + *
                    • + *
                    • + *

                      If ES_IDENTIFICATION_TYPE is NIE (for foreigners with legal residence):

                      + *
                        + *
                      • + *

                        Specify 1 letter + 7 numbers + 1 letter ( NIE [Número de Identidad de Extranjero])

                        + *
                      • + *
                      • + *

                        Example: Y1234567X

                        + *
                      • + *
                      + *
                    • + *
                    • + *

                      If ES_IDENTIFICATION_TYPE is OTHER (for contacts outside of Spain):

                      + *
                        + *
                      • + *

                        Specify a passport number, drivers license number, or national identity card number

                        + *
                      • + *
                      *
                    • *
                    * @@ -1219,6 +1287,16 @@ export interface ExtraParam { * *
                  * + *
                  .eu
                  + *
                  + *
                    + *
                  • + *

                    + * EU_COUNTRY_OF_CITIZENSHIP + *

                    + *
                  • + *
                  + *
                  *
                  .fi
                  *
                  *
                    @@ -1523,6 +1601,7 @@ export namespace ExtraParam { */ export const filterSensitiveLog = (obj: ExtraParam): any => ({ ...obj, + ...(obj.Value && { Value: SENSITIVE_STRING }), }); } @@ -1555,8 +1634,7 @@ export interface ContactDetail { *

                    * *
                  • - *

                    For .es domains, if you specify PERSON, you must specify INDIVIDUAL - * for the value of ES_LEGAL_FORM.

                    + *

                    For .es domains, the value of ContactType must be PERSON for all three contacts.

                    *
                  • *
                  */ @@ -1628,6 +1706,82 @@ export namespace ContactDetail { */ export const filterSensitiveLog = (obj: ContactDetail): any => ({ ...obj, + ...(obj.ExtraParams && { ExtraParams: obj.ExtraParams.map((item) => ExtraParam.filterSensitiveLog(item)) }), + }); +} + +export interface DeleteDomainRequest { + /** + *

                  Name of the domain to be deleted.

                  + */ + DomainName: string | undefined; +} + +export namespace DeleteDomainRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteDomainRequest): any => ({ + ...obj, + }); +} + +export interface DeleteDomainResponse { + /** + *

                  Identifier for tracking the progress of the request. + * To query the operation status, use GetOperationDetail.

                  + */ + OperationId?: string; +} + +export namespace DeleteDomainResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteDomainResponse): any => ({ + ...obj, + }); +} + +/** + *

                  The request is already in progress for the domain.

                  + */ +export interface DuplicateRequest extends __SmithyException, $MetadataBearer { + name: "DuplicateRequest"; + $fault: "client"; + /** + *

                  The request is already in progress for the domain.

                  + */ + message?: string; +} + +export namespace DuplicateRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DuplicateRequest): any => ({ + ...obj, + }); +} + +/** + *

                  The top-level domain does not support this operation.

                  + */ +export interface TLDRulesViolation extends __SmithyException, $MetadataBearer { + name: "TLDRulesViolation"; + $fault: "client"; + /** + *

                  The top-level domain does not support this operation.

                  + */ + message?: string; +} + +export namespace TLDRulesViolation { + /** + * @internal + */ + export const filterSensitiveLog = (obj: TLDRulesViolation): any => ({ + ...obj, }); } @@ -1733,43 +1887,69 @@ export namespace DisableDomainTransferLockResponse { } /** - *

                  The request is already in progress for the domain.

                  + *

                  Currency-specific price information.

                  */ -export interface DuplicateRequest extends __SmithyException, $MetadataBearer { - name: "DuplicateRequest"; - $fault: "client"; +export interface PriceWithCurrency { /** - *

                  The request is already in progress for the domain.

                  + *

                  The price of a domain, in a specific currency.

                  */ - message?: string; + Price: number | undefined; + + /** + *

                  The currency specifier.

                  + */ + Currency: string | undefined; } -export namespace DuplicateRequest { +export namespace PriceWithCurrency { /** * @internal */ - export const filterSensitiveLog = (obj: DuplicateRequest): any => ({ + export const filterSensitiveLog = (obj: PriceWithCurrency): any => ({ ...obj, }); } /** - *

                  The top-level domain does not support this operation.

                  + *

                  Information about the domain price associated with a TLD.

                  */ -export interface TLDRulesViolation extends __SmithyException, $MetadataBearer { - name: "TLDRulesViolation"; - $fault: "client"; +export interface DomainPrice { /** - *

                  The top-level domain does not support this operation.

                  + *

                  The name of the TLD for which the prices apply.

                  */ - message?: string; + Name?: string; + + /** + *

                  The price for domain registration with Route 53.

                  + */ + RegistrationPrice?: PriceWithCurrency; + + /** + *

                  The price for transferring the domain registration to Route 53.

                  + */ + TransferPrice?: PriceWithCurrency; + + /** + *

                  The price for renewing domain registration with Route 53.

                  + */ + RenewalPrice?: PriceWithCurrency; + + /** + *

                  The price for changing domain ownership.

                  + */ + ChangeOwnershipPrice?: PriceWithCurrency; + + /** + *

                  The price for restoring the domain with Route 53.

                  + */ + RestorationPrice?: PriceWithCurrency; } -export namespace TLDRulesViolation { +export namespace DomainPrice { /** * @internal */ - export const filterSensitiveLog = (obj: TLDRulesViolation): any => ({ + export const filterSensitiveLog = (obj: DomainPrice): any => ({ ...obj, }); } @@ -1942,6 +2122,61 @@ export namespace EnableDomainTransferLockResponse { }); } +export enum ListDomainsAttributeName { + DomainName = "DomainName", + Expiry = "Expiry", +} + +export enum Operator { + BEGINS_WITH = "BEGINS_WITH", + GE = "GE", + LE = "LE", +} + +/** + *

                  Information for the filtering of a list of domains returned by + * ListDomains.

                  + */ +export interface FilterCondition { + /** + *

                  Name of the field which should be used for filtering the list of domains.

                  + */ + Name: ListDomainsAttributeName | string | undefined; + + /** + *

                  The operator values for filtering domain names. The values can be:

                  + *
                    + *
                  • + *

                    + * LE: Less than, or equal to

                    + *
                  • + *
                  • + *

                    + * GE: Greater than, or equal to

                    + *
                  • + *
                  • + *

                    + * BEGINS_WITH: Begins with

                    + *
                  • + *
                  + */ + Operator: Operator | string | undefined; + + /** + *

                  An array of strings presenting values to compare. Only 1 item in the list is currently supported.

                  + */ + Values: string[] | undefined; +} + +export namespace FilterCondition { + /** + * @internal + */ + export const filterSensitiveLog = (obj: FilterCondition): any => ({ + ...obj, + }); +} + export interface GetContactReachabilityStatusRequest { /** *

                  The name of the domain for which you want to know whether the registrant contact has confirmed that the email address is valid.

                  @@ -2056,7 +2291,8 @@ export interface GetDomainDetailResponse { DomainName: string | undefined; /** - *

                  The name of the domain.

                  + *

                  The + * name of the domain.

                  */ Nameservers: Nameserver[] | undefined; @@ -2081,9 +2317,10 @@ export interface GetDomainDetailResponse { TechContact: ContactDetail | undefined; /** - *

                  Specifies whether contact information is concealed from WHOIS queries. If the value is true, - * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) - * or for our registrar associate, Gandi (for all other TLDs). If the value is false, + *

                  Specifies whether contact information is concealed from WHOIS + * queries. If the value is true, WHOIS ("who is") queries return contact + * information either for Amazon Registrar (for .com, .net, and .org domains) or for our + * registrar associate, Gandi (for all other TLDs). If the value is false, * WHOIS queries return the information that you entered for the admin contact.

                  */ AdminPrivacy?: boolean; @@ -2162,7 +2399,7 @@ export interface GetDomainDetailResponse { Reseller?: string; /** - *

                  Reserved for future use.

                  + *

                  Deprecated.

                  */ DnsSec?: string; @@ -2327,13 +2564,56 @@ export namespace GetOperationDetailResponse { }); } +export enum SortOrder { + ASC = "ASC", + DESC = "DESC", +} + +/** + *

                  Information for sorting a list of domains.

                  + */ +export interface SortCondition { + /** + *

                  Field to be used for sorting the list of domains. It can be either the name or the expiration for a domain. Note that if + * filterCondition is used in the same + * ListDomains + * call, the field used for sorting has to be the same as the field used for filtering.

                  + */ + Name: ListDomainsAttributeName | string | undefined; + + /** + *

                  The sort order for a list of domains. Either ascending (ASC) or descending (DES).

                  + */ + SortOrder: SortOrder | string | undefined; +} + +export namespace SortCondition { + /** + * @internal + */ + export const filterSensitiveLog = (obj: SortCondition): any => ({ + ...obj, + }); +} + /** *

                  The ListDomains request includes the following elements.

                  */ export interface ListDomainsRequest { + /** + *

                  A complex type that contains information about the filters applied during the ListDomains request. The filter conditions can + * include domain name and domain expiration.

                  + */ + FilterConditions?: FilterCondition[]; + + /** + *

                  A complex type that contains information about the requested ordering of domains in the returned list.

                  + */ + SortCondition?: SortCondition; + /** *

                  For an initial request for a list of domains, omit this element. If the number of domains - * that are associated with the current AWS account is greater than the value that you specified for + * that are associated with the current Amazon Web Services account is greater than the value that you specified for * MaxItems, you can use Marker to return additional domains. Get the value of * NextPageMarker from the previous response, and submit another request that includes the * value of NextPageMarker in the Marker element.

                  @@ -2362,7 +2642,7 @@ export namespace ListDomainsRequest { */ export interface ListDomainsResponse { /** - *

                  A summary of domains.

                  + *

                  A list of domains.

                  */ Domains: DomainSummary[] | undefined; @@ -2475,6 +2755,65 @@ export namespace ListOperationsResponse { }); } +export interface ListPricesRequest { + /** + *

                  The TLD for which you want to receive the pricing information. For example. + * .net.

                  + *

                  If a Tld value is not provided, a list of prices for all TLDs supported by Route 53 + * is returned.

                  + */ + Tld?: string; + + /** + *

                  For an initial request for a list of prices, omit this element. + * If the number of prices that are not yet complete is greater than the value that you specified for MaxItems, + * you can use Marker to return additional prices. Get the value of NextPageMarker from the previous response, + * and submit another request that includes the value of NextPageMarker in the Marker element.

                  + *

                  Used only for all TLDs. If you specify a TLD, don't specify a Marker.

                  + */ + Marker?: string; + + /** + *

                  Number of Prices to be returned.

                  + *

                  Used only for all TLDs. If you specify a TLD, don't specify a MaxItems.

                  + */ + MaxItems?: number; +} + +export namespace ListPricesRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListPricesRequest): any => ({ + ...obj, + }); +} + +export interface ListPricesResponse { + /** + *

                  A complex type that includes all the pricing information. If you specify a TLD, this array + * contains only the pricing for that TLD.

                  + */ + Prices: DomainPrice[] | undefined; + + /** + *

                  If there are more prices than you specified for MaxItems in the request, submit another request and include the value of + * NextPageMarker in the value of Marker.

                  + *

                  Used only for all TLDs. If you specify a TLD, don't specify a + * NextPageMarker.

                  + */ + NextPageMarker?: string; +} + +export namespace ListPricesResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListPricesResponse): any => ({ + ...obj, + }); +} + /** *

                  The ListTagsForDomainRequest includes the following elements.

                  */ @@ -2619,6 +2958,9 @@ export interface RegisterDomainRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the admin contact.

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  *

                  Default: true *

                  */ @@ -2629,6 +2971,9 @@ export interface RegisterDomainRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the registrant contact (the domain owner).

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  *

                  Default: true *

                  */ @@ -2639,6 +2984,9 @@ export interface RegisterDomainRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the technical contact.

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  *

                  Default: true *

                  */ @@ -2682,7 +3030,7 @@ export namespace RegisterDomainResponse { */ export interface RejectDomainTransferFromAnotherAwsAccountRequest { /** - *

                  The name of the domain that was specified when another AWS account submitted a + *

                  The name of the domain that was specified when another Amazon Web Services account submitted a * TransferDomainToAnotherAwsAccount * request. *

                  @@ -2930,6 +3278,9 @@ export interface TransferDomainRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the admin contact.

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  *

                  Default: true *

                  */ @@ -2940,6 +3291,9 @@ export interface TransferDomainRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the registrant contact (domain owner).

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  *

                  Default: true *

                  */ @@ -2950,6 +3304,9 @@ export interface TransferDomainRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the technical contact.

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  *

                  Default: true *

                  */ @@ -2994,12 +3351,12 @@ export namespace TransferDomainResponse { */ export interface TransferDomainToAnotherAwsAccountRequest { /** - *

                  The name of the domain that you want to transfer from the current AWS account to another account.

                  + *

                  The name of the domain that you want to transfer from the current Amazon Web Services account to another account.

                  */ DomainName: string | undefined; /** - *

                  The account ID of the AWS account that you want to transfer the domain to, for example, 111122223333.

                  + *

                  The account ID of the Amazon Web Services account that you want to transfer the domain to, for example, 111122223333.

                  */ AccountId: string | undefined; } @@ -3024,7 +3381,7 @@ export interface TransferDomainToAnotherAwsAccountResponse { OperationId?: string; /** - *

                  To finish transferring a domain to another AWS account, the account that the domain is being transferred to must submit an + *

                  To finish transferring a domain to another Amazon Web Services account, the account that the domain is being transferred to must submit an * AcceptDomainTransferFromAnotherAwsAccount * request. The request must include the value of the Password element that was returned in the * TransferDomainToAnotherAwsAccount response.

                  @@ -3112,6 +3469,9 @@ export interface UpdateDomainContactPrivacyRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the admin contact.

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  */ AdminPrivacy?: boolean; @@ -3120,6 +3480,9 @@ export interface UpdateDomainContactPrivacyRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the registrant contact (domain owner).

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  */ RegistrantPrivacy?: boolean; @@ -3128,6 +3491,9 @@ export interface UpdateDomainContactPrivacyRequest { * WHOIS ("who is") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) * or for our registrar associate, Gandi (for all other TLDs). If you specify false, * WHOIS queries return the information that you entered for the technical contact.

                  + * + *

                  You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                  + *
                  */ TechPrivacy?: boolean; } @@ -3191,6 +3557,7 @@ export namespace UpdateDomainNameserversRequest { */ export const filterSensitiveLog = (obj: UpdateDomainNameserversRequest): any => ({ ...obj, + ...(obj.FIAuthKey && { FIAuthKey: SENSITIVE_STRING }), }); } @@ -3268,7 +3635,7 @@ export interface ViewBillingRequest { /** *

                  For an initial request for a list of billing records, omit this element. If the number of billing records - * that are associated with the current AWS account during the specified period is greater than the value that + * that are associated with the current Amazon Web Services account during the specified period is greater than the value that * you specified for MaxItems, you can use Marker to return additional billing records. * Get the value of NextPageMarker from the previous response, and submit another request that includes * the value of NextPageMarker in the Marker element. diff --git a/clients/client-route-53-domains/src/pagination/ListPricesPaginator.ts b/clients/client-route-53-domains/src/pagination/ListPricesPaginator.ts new file mode 100644 index 000000000000..233d8610f313 --- /dev/null +++ b/clients/client-route-53-domains/src/pagination/ListPricesPaginator.ts @@ -0,0 +1,55 @@ +import { Paginator } from "@aws-sdk/types"; + +import { ListPricesCommand, ListPricesCommandInput, ListPricesCommandOutput } from "../commands/ListPricesCommand"; +import { Route53Domains } from "../Route53Domains"; +import { Route53DomainsClient } from "../Route53DomainsClient"; +import { Route53DomainsPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: Route53DomainsClient, + input: ListPricesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListPricesCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: Route53Domains, + input: ListPricesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listPrices(input, ...args); +}; +export async function* paginateListPrices( + config: Route53DomainsPaginationConfiguration, + input: ListPricesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.Marker + let token: typeof input.Marker | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListPricesCommandOutput; + while (hasNext) { + input.Marker = token; + input["MaxItems"] = config.pageSize; + if (config.client instanceof Route53Domains) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof Route53DomainsClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Route53Domains | Route53DomainsClient"); + } + yield page; + token = page.NextPageMarker; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-route-53-domains/src/pagination/ViewBillingPaginator.ts b/clients/client-route-53-domains/src/pagination/ViewBillingPaginator.ts new file mode 100644 index 000000000000..d56dd2e7da10 --- /dev/null +++ b/clients/client-route-53-domains/src/pagination/ViewBillingPaginator.ts @@ -0,0 +1,55 @@ +import { Paginator } from "@aws-sdk/types"; + +import { ViewBillingCommand, ViewBillingCommandInput, ViewBillingCommandOutput } from "../commands/ViewBillingCommand"; +import { Route53Domains } from "../Route53Domains"; +import { Route53DomainsClient } from "../Route53DomainsClient"; +import { Route53DomainsPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: Route53DomainsClient, + input: ViewBillingCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ViewBillingCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: Route53Domains, + input: ViewBillingCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.viewBilling(input, ...args); +}; +export async function* paginateViewBilling( + config: Route53DomainsPaginationConfiguration, + input: ViewBillingCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.Marker + let token: typeof input.Marker | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ViewBillingCommandOutput; + while (hasNext) { + input.Marker = token; + input["MaxItems"] = config.pageSize; + if (config.client instanceof Route53Domains) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof Route53DomainsClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Route53Domains | Route53DomainsClient"); + } + yield page; + token = page.NextPageMarker; + hasNext = !!token; + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-route-53-domains/src/pagination/index.ts b/clients/client-route-53-domains/src/pagination/index.ts index afa29bc8dd2e..c7cb5d1f88cb 100644 --- a/clients/client-route-53-domains/src/pagination/index.ts +++ b/clients/client-route-53-domains/src/pagination/index.ts @@ -1,3 +1,5 @@ export * from "./Interfaces"; export * from "./ListDomainsPaginator"; export * from "./ListOperationsPaginator"; +export * from "./ListPricesPaginator"; +export * from "./ViewBillingPaginator"; diff --git a/clients/client-route-53-domains/src/protocols/Aws_json1_1.ts b/clients/client-route-53-domains/src/protocols/Aws_json1_1.ts index 519843f56318..31519fee59c4 100644 --- a/clients/client-route-53-domains/src/protocols/Aws_json1_1.ts +++ b/clients/client-route-53-domains/src/protocols/Aws_json1_1.ts @@ -32,6 +32,7 @@ import { CheckDomainTransferabilityCommandInput, CheckDomainTransferabilityCommandOutput, } from "../commands/CheckDomainTransferabilityCommand"; +import { DeleteDomainCommandInput, DeleteDomainCommandOutput } from "../commands/DeleteDomainCommand"; import { DeleteTagsForDomainCommandInput, DeleteTagsForDomainCommandOutput, @@ -64,6 +65,7 @@ import { import { GetOperationDetailCommandInput, GetOperationDetailCommandOutput } from "../commands/GetOperationDetailCommand"; import { ListDomainsCommandInput, ListDomainsCommandOutput } from "../commands/ListDomainsCommand"; import { ListOperationsCommandInput, ListOperationsCommandOutput } from "../commands/ListOperationsCommand"; +import { ListPricesCommandInput, ListPricesCommandOutput } from "../commands/ListPricesCommand"; import { ListTagsForDomainCommandInput, ListTagsForDomainCommandOutput } from "../commands/ListTagsForDomainCommand"; import { RegisterDomainCommandInput, RegisterDomainCommandOutput } from "../commands/RegisterDomainCommand"; import { @@ -112,6 +114,8 @@ import { CheckDomainTransferabilityRequest, CheckDomainTransferabilityResponse, ContactDetail, + DeleteDomainRequest, + DeleteDomainResponse, DeleteTagsForDomainRequest, DeleteTagsForDomainResponse, DisableDomainAutoRenewRequest, @@ -119,6 +123,7 @@ import { DisableDomainTransferLockRequest, DisableDomainTransferLockResponse, DomainLimitExceeded, + DomainPrice, DomainSuggestion, DomainSummary, DomainTransferability, @@ -128,6 +133,7 @@ import { EnableDomainTransferLockRequest, EnableDomainTransferLockResponse, ExtraParam, + FilterCondition, GetContactReachabilityStatusRequest, GetContactReachabilityStatusResponse, GetDomainDetailRequest, @@ -141,11 +147,14 @@ import { ListDomainsResponse, ListOperationsRequest, ListOperationsResponse, + ListPricesRequest, + ListPricesResponse, ListTagsForDomainRequest, ListTagsForDomainResponse, Nameserver, OperationLimitExceeded, OperationSummary, + PriceWithCurrency, RegisterDomainRequest, RegisterDomainResponse, RejectDomainTransferFromAnotherAwsAccountRequest, @@ -156,6 +165,7 @@ import { ResendContactReachabilityEmailResponse, RetrieveDomainAuthCodeRequest, RetrieveDomainAuthCodeResponse, + SortCondition, Tag, TLDRulesViolation, TransferDomainRequest, @@ -227,6 +237,19 @@ export const serializeAws_json1_1CheckDomainTransferabilityCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteDomainCommand = async ( + input: DeleteDomainCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "Route53Domains_v20140515.DeleteDomain", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteDomainRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteTagsForDomainCommand = async ( input: DeleteTagsForDomainCommandInput, context: __SerdeContext @@ -370,6 +393,19 @@ export const serializeAws_json1_1ListOperationsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListPricesCommand = async ( + input: ListPricesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "Route53Domains_v20140515.ListPrices", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListPricesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListTagsForDomainCommand = async ( input: ListTagsForDomainCommandInput, context: __SerdeContext @@ -592,6 +628,14 @@ const deserializeAws_json1_1AcceptDomainTransferFromAnotherAwsAccountCommandErro $metadata: deserializeMetadata(output), }; break; + case "UnsupportedTLD": + case "com.amazonaws.route53domains#UnsupportedTLD": + response = { + ...(await deserializeAws_json1_1UnsupportedTLDResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -654,6 +698,14 @@ const deserializeAws_json1_1CancelDomainTransferToAnotherAwsAccountCommandError $metadata: deserializeMetadata(output), }; break; + case "UnsupportedTLD": + case "com.amazonaws.route53domains#UnsupportedTLD": + response = { + ...(await deserializeAws_json1_1UnsupportedTLDResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -795,6 +847,84 @@ const deserializeAws_json1_1CheckDomainTransferabilityCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeleteDomainCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteDomainCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DeleteDomainResponse(data, context); + const response: DeleteDomainCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteDomainCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "DuplicateRequest": + case "com.amazonaws.route53domains#DuplicateRequest": + response = { + ...(await deserializeAws_json1_1DuplicateRequestResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "InvalidInput": + case "com.amazonaws.route53domains#InvalidInput": + response = { + ...(await deserializeAws_json1_1InvalidInputResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "TLDRulesViolation": + case "com.amazonaws.route53domains#TLDRulesViolation": + response = { + ...(await deserializeAws_json1_1TLDRulesViolationResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "UnsupportedTLD": + case "com.amazonaws.route53domains#UnsupportedTLD": + response = { + ...(await deserializeAws_json1_1UnsupportedTLDResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DeleteTagsForDomainCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1525,6 +1655,68 @@ const deserializeAws_json1_1ListOperationsCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1ListPricesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListPricesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListPricesResponse(data, context); + const response: ListPricesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListPricesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidInput": + case "com.amazonaws.route53domains#InvalidInput": + response = { + ...(await deserializeAws_json1_1InvalidInputResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "UnsupportedTLD": + case "com.amazonaws.route53domains#UnsupportedTLD": + response = { + ...(await deserializeAws_json1_1UnsupportedTLDResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1ListTagsForDomainCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -1734,6 +1926,14 @@ const deserializeAws_json1_1RejectDomainTransferFromAnotherAwsAccountCommandErro $metadata: deserializeMetadata(output), }; break; + case "UnsupportedTLD": + case "com.amazonaws.route53domains#UnsupportedTLD": + response = { + ...(await deserializeAws_json1_1UnsupportedTLDResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -2116,6 +2316,14 @@ const deserializeAws_json1_1TransferDomainToAnotherAwsAccountCommandError = asyn $metadata: deserializeMetadata(output), }; break; + case "UnsupportedTLD": + case "com.amazonaws.route53domains#UnsupportedTLD": + response = { + ...(await deserializeAws_json1_1UnsupportedTLDResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.code || parsedBody.Code || errorCode; @@ -2665,6 +2873,12 @@ const serializeAws_json1_1ContactDetail = (input: ContactDetail, context: __Serd }; }; +const serializeAws_json1_1DeleteDomainRequest = (input: DeleteDomainRequest, context: __SerdeContext): any => { + return { + ...(input.DomainName !== undefined && input.DomainName !== null && { DomainName: input.DomainName }), + }; +}; + const serializeAws_json1_1DeleteTagsForDomainRequest = ( input: DeleteTagsForDomainRequest, context: __SerdeContext @@ -2730,6 +2944,26 @@ const serializeAws_json1_1ExtraParamList = (input: ExtraParam[], context: __Serd }); }; +const serializeAws_json1_1FilterCondition = (input: FilterCondition, context: __SerdeContext): any => { + return { + ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), + ...(input.Operator !== undefined && input.Operator !== null && { Operator: input.Operator }), + ...(input.Values !== undefined && + input.Values !== null && { Values: serializeAws_json1_1Values(input.Values, context) }), + }; +}; + +const serializeAws_json1_1FilterConditions = (input: FilterCondition[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_json1_1FilterCondition(entry, context); + }); +}; + const serializeAws_json1_1GetContactReachabilityStatusRequest = ( input: GetContactReachabilityStatusRequest, context: __SerdeContext @@ -2779,8 +3013,16 @@ const serializeAws_json1_1GlueIpList = (input: string[], context: __SerdeContext const serializeAws_json1_1ListDomainsRequest = (input: ListDomainsRequest, context: __SerdeContext): any => { return { + ...(input.FilterConditions !== undefined && + input.FilterConditions !== null && { + FilterConditions: serializeAws_json1_1FilterConditions(input.FilterConditions, context), + }), ...(input.Marker !== undefined && input.Marker !== null && { Marker: input.Marker }), ...(input.MaxItems !== undefined && input.MaxItems !== null && { MaxItems: input.MaxItems }), + ...(input.SortCondition !== undefined && + input.SortCondition !== null && { + SortCondition: serializeAws_json1_1SortCondition(input.SortCondition, context), + }), }; }; @@ -2793,6 +3035,14 @@ const serializeAws_json1_1ListOperationsRequest = (input: ListOperationsRequest, }; }; +const serializeAws_json1_1ListPricesRequest = (input: ListPricesRequest, context: __SerdeContext): any => { + return { + ...(input.Marker !== undefined && input.Marker !== null && { Marker: input.Marker }), + ...(input.MaxItems !== undefined && input.MaxItems !== null && { MaxItems: input.MaxItems }), + ...(input.Tld !== undefined && input.Tld !== null && { Tld: input.Tld }), + }; +}; + const serializeAws_json1_1ListTagsForDomainRequest = ( input: ListTagsForDomainRequest, context: __SerdeContext @@ -2884,6 +3134,13 @@ const serializeAws_json1_1RetrieveDomainAuthCodeRequest = ( }; }; +const serializeAws_json1_1SortCondition = (input: SortCondition, context: __SerdeContext): any => { + return { + ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), + ...(input.SortOrder !== undefined && input.SortOrder !== null && { SortOrder: input.SortOrder }), + }; +}; + const serializeAws_json1_1Tag = (input: Tag, context: __SerdeContext): any => { return { ...(input.Key !== undefined && input.Key !== null && { Key: input.Key }), @@ -3005,6 +3262,17 @@ const serializeAws_json1_1UpdateTagsForDomainRequest = ( }; }; +const serializeAws_json1_1Values = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + const serializeAws_json1_1ViewBillingRequest = (input: ViewBillingRequest, context: __SerdeContext): any => { return { ...(input.End !== undefined && input.End !== null && { End: Math.round(input.End.getTime() / 1000) }), @@ -3099,6 +3367,12 @@ const deserializeAws_json1_1ContactDetail = (output: any, context: __SerdeContex } as any; }; +const deserializeAws_json1_1DeleteDomainResponse = (output: any, context: __SerdeContext): DeleteDomainResponse => { + return { + OperationId: __expectString(output.OperationId), + } as any; +}; + const deserializeAws_json1_1DeleteTagsForDomainResponse = ( output: any, context: __SerdeContext @@ -3128,6 +3402,43 @@ const deserializeAws_json1_1DomainLimitExceeded = (output: any, context: __Serde } as any; }; +const deserializeAws_json1_1DomainPrice = (output: any, context: __SerdeContext): DomainPrice => { + return { + ChangeOwnershipPrice: + output.ChangeOwnershipPrice !== undefined && output.ChangeOwnershipPrice !== null + ? deserializeAws_json1_1PriceWithCurrency(output.ChangeOwnershipPrice, context) + : undefined, + Name: __expectString(output.Name), + RegistrationPrice: + output.RegistrationPrice !== undefined && output.RegistrationPrice !== null + ? deserializeAws_json1_1PriceWithCurrency(output.RegistrationPrice, context) + : undefined, + RenewalPrice: + output.RenewalPrice !== undefined && output.RenewalPrice !== null + ? deserializeAws_json1_1PriceWithCurrency(output.RenewalPrice, context) + : undefined, + RestorationPrice: + output.RestorationPrice !== undefined && output.RestorationPrice !== null + ? deserializeAws_json1_1PriceWithCurrency(output.RestorationPrice, context) + : undefined, + TransferPrice: + output.TransferPrice !== undefined && output.TransferPrice !== null + ? deserializeAws_json1_1PriceWithCurrency(output.TransferPrice, context) + : undefined, + } as any; +}; + +const deserializeAws_json1_1DomainPriceList = (output: any, context: __SerdeContext): DomainPrice[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1DomainPrice(entry, context); + }); +}; + const deserializeAws_json1_1DomainStatusList = (output: any, context: __SerdeContext): string[] => { return (output || []) .filter((e: any) => e != null) @@ -3355,6 +3666,16 @@ const deserializeAws_json1_1ListOperationsResponse = (output: any, context: __Se } as any; }; +const deserializeAws_json1_1ListPricesResponse = (output: any, context: __SerdeContext): ListPricesResponse => { + return { + NextPageMarker: __expectString(output.NextPageMarker), + Prices: + output.Prices !== undefined && output.Prices !== null + ? deserializeAws_json1_1DomainPriceList(output.Prices, context) + : undefined, + } as any; +}; + const deserializeAws_json1_1ListTagsForDomainResponse = ( output: any, context: __SerdeContext @@ -3417,6 +3738,13 @@ const deserializeAws_json1_1OperationSummaryList = (output: any, context: __Serd }); }; +const deserializeAws_json1_1PriceWithCurrency = (output: any, context: __SerdeContext): PriceWithCurrency => { + return { + Currency: __expectString(output.Currency), + Price: __limitedParseDouble(output.Price), + } as any; +}; + const deserializeAws_json1_1RegisterDomainResponse = (output: any, context: __SerdeContext): RegisterDomainResponse => { return { OperationId: __expectString(output.OperationId), diff --git a/clients/client-route-53/src/Route53.ts b/clients/client-route-53/src/Route53.ts index 3bdf896ebf1d..897db54a9f70 100644 --- a/clients/client-route-53/src/Route53.ts +++ b/clients/client-route-53/src/Route53.ts @@ -1227,6 +1227,10 @@ export class Route53 extends Route53Client { /** *

                  Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be * deactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

                  + *

                  You can use DeactivateKeySigningKey + * to deactivate the key before you delete it.

                  + *

                  Use GetDNSSEC to verify that the KSK is in an INACTIVE + * status.

                  */ public deleteKeySigningKey( args: DeleteKeySigningKeyCommandInput, diff --git a/clients/client-route-53/src/commands/DeleteKeySigningKeyCommand.ts b/clients/client-route-53/src/commands/DeleteKeySigningKeyCommand.ts index 6699f04a25be..5b60b8205da8 100644 --- a/clients/client-route-53/src/commands/DeleteKeySigningKeyCommand.ts +++ b/clients/client-route-53/src/commands/DeleteKeySigningKeyCommand.ts @@ -25,6 +25,10 @@ export interface DeleteKeySigningKeyCommandOutput extends DeleteKeySigningKeyRes /** *

                  Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be * deactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

                  + *

                  You can use DeactivateKeySigningKey + * to deactivate the key before you delete it.

                  + *

                  Use GetDNSSEC to verify that the KSK is in an INACTIVE + * status.

                  * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route-53/src/endpoints.ts b/clients/client-route-53/src/endpoints.ts index 0a7256a912a1..1e8931f25411 100644 --- a/clients/client-route-53/src/endpoints.ts +++ b/clients/client-route-53/src/endpoints.ts @@ -68,6 +68,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-route-53/src/models/models_0.ts b/clients/client-route-53/src/models/models_0.ts index b330603e33c7..3998da88e04d 100644 --- a/clients/client-route-53/src/models/models_0.ts +++ b/clients/client-route-53/src/models/models_0.ts @@ -265,6 +265,7 @@ export type CloudWatchRegion = | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" + | "ap-southeast-3" | "ca-central-1" | "cn-north-1" | "cn-northwest-1" @@ -281,6 +282,7 @@ export type CloudWatchRegion = | "us-gov-east-1" | "us-gov-west-1" | "us-iso-east-1" + | "us-iso-west-1" | "us-isob-east-1" | "us-west-1" | "us-west-2"; @@ -717,6 +719,7 @@ export type VPCRegion = | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" + | "ap-southeast-3" | "ca-central-1" | "cn-north-1" | "eu-central-1" @@ -732,12 +735,15 @@ export type VPCRegion = | "us-gov-east-1" | "us-gov-west-1" | "us-iso-east-1" + | "us-iso-west-1" | "us-isob-east-1" | "us-west-1" | "us-west-2"; /** *

                  (Private hosted zones only) A complex type that contains information about an Amazon VPC.

                  + *

                  If you associate a private hosted zone with an Amazon VPC when you make a CreateHostedZone request, the following parameters are also + * required.

                  */ export interface VPC { /** @@ -1063,6 +1069,7 @@ export type ResourceRecordSetRegion = | "ap-south-1" | "ap-southeast-1" | "ap-southeast-2" + | "ap-southeast-3" | "ca-central-1" | "cn-north-1" | "cn-northwest-1" @@ -2633,7 +2640,10 @@ export interface CreateHostedZoneRequest { /** *

                  (Private hosted zones only) A complex type that contains information about the Amazon VPC that you're associating with this hosted zone.

                  - *

                  You can specify only one Amazon VPC when you create a private hosted zone. To associate additional Amazon VPCs with the hosted zone, + *

                  You can specify only one Amazon VPC when you create a private hosted zone. If you are associating a VPC with a hosted zone with this request, + * the paramaters + * VPCId and VPCRegion are also required.

                  + *

                  To associate additional Amazon VPCs with the hosted zone, * use AssociateVPCWithHostedZone * after you create a hosted zone.

                  */ @@ -2949,11 +2959,11 @@ export interface CreateKeySigningKeyRequest { HostedZoneId: string | undefined; /** - *

                  The Amazon resource name (ARN) for a customer managed customer master key (CMK) in Key Management Service (KMS). + *

                  The Amazon resource name (ARN) for a customer managed key in Key Management Service (KMS). * The KeyManagementServiceArn must be unique for each key-signing key (KSK) in a single hosted zone. * To see an example of KeyManagementServiceArn that grants the correct permissions for DNSSEC, * scroll down to Example.

                  - *

                  You must configure the customer managed CMK as follows:

                  + *

                  You must configure the customer managed customer managed key as follows:

                  *
                  *
                  Status
                  *
                  @@ -2992,7 +3002,7 @@ export interface CreateKeySigningKeyRequest { *
                * * - *

                For more information about working with a customer managed CMK in KMS, see + *

                For more information about working with a customer managed key in KMS, see * Key Management Service concepts.

                */ KeyManagementServiceArn: string | undefined; @@ -3031,9 +3041,9 @@ export interface KeySigningKey { Name?: string; /** - *

                The Amazon resource name (ARN) used to identify the customer managed customer master key (CMK) in Key Management Service (KMS). + *

                The Amazon resource name (ARN) used to identify the customer managed key in Key Management Service (KMS). * The KmsArn must be unique for each key-signing key (KSK) in a single hosted zone.

                - *

                You must configure the CMK as follows:

                + *

                You must configure the customer managed key as follows:

                *
                *
                Status
                *
                @@ -3072,7 +3082,7 @@ export interface KeySigningKey { *
              * * - *

              For more information about working with the customer managed CMK in KMS, see + *

              For more information about working with the customer managed key in KMS, see * Key Management Service concepts.

              */ KmsArn?: string; @@ -3156,8 +3166,8 @@ export interface KeySigningKey { *
              ACTION_NEEDED
              *
              *

              There is a problem with the KSK that requires you to take action to resolve. - * For example, the customer managed customer master key (CMK) might have been deleted, or the - * permissions for the customer managed CMK might have been changed.

              + * For example, the customer managed key might have been deleted, or the + * permissions for the customer managed key might have been changed.

              *
              *
              INTERNAL_FAILURE
              *
              @@ -3263,7 +3273,7 @@ export namespace InvalidKeySigningKeyName { } /** - *

              You've already created a key-signing key (KSK) with this name or with the same customer managed customer master key (CMK) ARN.

              + *

              You've already created a key-signing key (KSK) with this name or with the same customer managed key ARN.

              */ export interface KeySigningKeyAlreadyExists extends __SmithyException, $MetadataBearer { name: "KeySigningKeyAlreadyExists"; @@ -5025,8 +5035,8 @@ export interface DNSSECStatus { *
              ACTION_NEEDED
              *
              *

              There is a problem with signing in the hosted zone that requires you to take action to resolve. - * For example, the customer managed customer master key (CMK) might have been deleted, or the - * permissions for the customer managed CMK might have been changed.

              + * For example, the customer managed key might have been deleted, or the + * permissions for the customer managed key might have been changed.

              *
              *
              INTERNAL_FAILURE
              *
              @@ -7798,8 +7808,8 @@ export interface UpdateHealthCheckRequest { * *
            • *

              - * LastKnownStatus: Route 53 uses the status of the health check from the last time CloudWatch had sufficient data - * to determine the alarm state. For new health checks that have no last known status, the default status for the health check is healthy.

              + * LastKnownStatus: By default, Route 53 uses the status of the health check from the last time CloudWatch had sufficient data + * to determine the alarm state. For new health checks that have no last known status, the status for the health check is healthy.

              *
            • *
            */ diff --git a/clients/client-route-53/src/protocols/Aws_restXml.ts b/clients/client-route-53/src/protocols/Aws_restXml.ts index 666f20061ee4..4862e2ba2de1 100644 --- a/clients/client-route-53/src/protocols/Aws_restXml.ts +++ b/clients/client-route-53/src/protocols/Aws_restXml.ts @@ -7669,6 +7669,14 @@ const deserializeAws_restXmlUpdateHostedZoneCommentCommandError = async ( $metadata: deserializeMetadata(output), }; break; + case "PriorRequestNotComplete": + case "com.amazonaws.route53#PriorRequestNotComplete": + response = { + ...(await deserializeAws_restXmlPriorRequestNotCompleteResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; default: const parsedBody = parsedOutput.body; errorCode = parsedBody.Error.code || parsedBody.Error.Code || errorCode; diff --git a/clients/client-route53-recovery-cluster/src/endpoints.ts b/clients/client-route53-recovery-cluster/src/endpoints.ts index 1d8fc0878259..fa3a784b1d04 100644 --- a/clients/client-route53-recovery-cluster/src/endpoints.ts +++ b/clients/client-route53-recovery-cluster/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfig.ts b/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfig.ts index 6a8abcc469a0..39c57575b78c 100644 --- a/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfig.ts +++ b/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfig.ts @@ -85,6 +85,17 @@ import { ListSafetyRulesCommandInput, ListSafetyRulesCommandOutput, } from "./commands/ListSafetyRulesCommand"; +import { + ListTagsForResourceCommand, + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { + UntagResourceCommand, + UntagResourceCommandInput, + UntagResourceCommandOutput, +} from "./commands/UntagResourceCommand"; import { UpdateControlPanelCommand, UpdateControlPanelCommandInput, @@ -107,7 +118,7 @@ import { Route53RecoveryControlConfigClient } from "./Route53RecoveryControlConf */ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigClient { /** - *

            Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the Amazon Route 53 Application Recovery Controller cluster data plane.

            + *

            Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the cluster data plane.

            */ public createCluster( args: CreateClusterCommandInput, @@ -139,7 +150,7 @@ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigCl } /** - *

            Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or AWS Region.

            + *

            Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or Amazon Web Services Region.

            */ public createControlPanel( args: CreateControlPanelCommandInput, @@ -203,7 +214,7 @@ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigCl } /** - *

            Creates a safety rule in a control panel. Safety rules let you add safeguards around enabling and disabling routing controls, to help prevent unexpected outcomes.

            There are two types of safety rules: assertion rules and gating rules.

            Assertion rule: An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            Gating rule: A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            Creates a safety rule in a control panel. Safety rules let you add safeguards around changing routing control states, and for enabling and disabling routing controls, to help prevent unexpected outcomes.

            There are two types of safety rules: assertion rules and gating rules.

            Assertion rule: An assertion rule enforces that, when you change a routing control state, that a certain criteria is met. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

            Gating rule: A gating rule lets you configure a gating routing control as an overall "on/off" switch for a group of routing controls. Or, you can configure more complex gating scenarios, for example by configuring multiple gating routing controls.

            For more information, see Safety rules in the Amazon Route 53 Application Recovery Controller Developer Guide.

            */ public createSafetyRule( args: CreateSafetyRuleCommandInput, @@ -459,7 +470,7 @@ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigCl } /** - *

            Describes the safety rules (that is, the assertion rules and gating rules) for the routing controls in a control panel.

            + *

            Returns information about a safety rule.

            */ public describeSafetyRule( args: DescribeSafetyRuleCommandInput, @@ -552,7 +563,7 @@ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigCl } /** - *

            Returns an array of control panels for a cluster.

            + *

            Returns an array of control panels in an account or in a cluster.

            */ public listControlPanels( args: ListControlPanelsCommandInput, @@ -647,6 +658,96 @@ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigCl } } + /** + *

            Lists the tags for a resource.

            + */ + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + public listTagsForResource( + args: ListTagsForResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListTagsForResourceCommandOutput) => void), + cb?: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): Promise | void { + const command = new ListTagsForResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

            Adds a tag to a resource.

            + */ + public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; + public tagResource( + args: TagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagResourceCommandOutput) => void + ): void; + public tagResource( + args: TagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: TagResourceCommandOutput) => void), + cb?: (err: any, data?: TagResourceCommandOutput) => void + ): Promise | void { + const command = new TagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

            Removes a tag from a resource.

            + */ + public untagResource( + args: UntagResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public untagResource( + args: UntagResourceCommandInput, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + public untagResource( + args: UntagResourceCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UntagResourceCommandOutput) => void), + cb?: (err: any, data?: UntagResourceCommandOutput) => void + ): Promise | void { + const command = new UntagResourceCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

            Updates a control panel. The only update you can make to a control panel is to change the name of the control panel.

            */ @@ -712,7 +813,7 @@ export class Route53RecoveryControlConfig extends Route53RecoveryControlConfigCl } /** - *

            Update a safety rule (an assertion rule or gating rule) for the routing controls in a control panel. You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new safety rule.

            + *

            Update a safety rule (an assertion rule or gating rule). You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new one.

            */ public updateSafetyRule( args: UpdateSafetyRuleCommandInput, diff --git a/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts b/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts index 624226a77d48..a782c3fd80c7 100644 --- a/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts +++ b/clients/client-route53-recovery-control-config/src/Route53RecoveryControlConfigClient.ts @@ -84,6 +84,12 @@ import { ListRoutingControlsCommandOutput, } from "./commands/ListRoutingControlsCommand"; import { ListSafetyRulesCommandInput, ListSafetyRulesCommandOutput } from "./commands/ListSafetyRulesCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateControlPanelCommandInput, UpdateControlPanelCommandOutput } from "./commands/UpdateControlPanelCommand"; import { UpdateRoutingControlCommandInput, @@ -110,6 +116,9 @@ export type ServiceInputTypes = | ListControlPanelsCommandInput | ListRoutingControlsCommandInput | ListSafetyRulesCommandInput + | ListTagsForResourceCommandInput + | TagResourceCommandInput + | UntagResourceCommandInput | UpdateControlPanelCommandInput | UpdateRoutingControlCommandInput | UpdateSafetyRuleCommandInput; @@ -132,6 +141,9 @@ export type ServiceOutputTypes = | ListControlPanelsCommandOutput | ListRoutingControlsCommandOutput | ListSafetyRulesCommandOutput + | ListTagsForResourceCommandOutput + | TagResourceCommandOutput + | UntagResourceCommandOutput | UpdateControlPanelCommandOutput | UpdateRoutingControlCommandOutput | UpdateSafetyRuleCommandOutput; diff --git a/clients/client-route53-recovery-control-config/src/commands/CreateClusterCommand.ts b/clients/client-route53-recovery-control-config/src/commands/CreateClusterCommand.ts index ca4386ad0e9d..5018554cf946 100644 --- a/clients/client-route53-recovery-control-config/src/commands/CreateClusterCommand.ts +++ b/clients/client-route53-recovery-control-config/src/commands/CreateClusterCommand.ts @@ -26,7 +26,7 @@ export interface CreateClusterCommandInput extends CreateClusterRequest {} export interface CreateClusterCommandOutput extends CreateClusterResponse, __MetadataBearer {} /** - *

            Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the Amazon Route 53 Application Recovery Controller cluster data plane.

            + *

            Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the cluster data plane.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route53-recovery-control-config/src/commands/CreateControlPanelCommand.ts b/clients/client-route53-recovery-control-config/src/commands/CreateControlPanelCommand.ts index da07e4f73a6e..11e2b074c923 100644 --- a/clients/client-route53-recovery-control-config/src/commands/CreateControlPanelCommand.ts +++ b/clients/client-route53-recovery-control-config/src/commands/CreateControlPanelCommand.ts @@ -26,7 +26,7 @@ export interface CreateControlPanelCommandInput extends CreateControlPanelReques export interface CreateControlPanelCommandOutput extends CreateControlPanelResponse, __MetadataBearer {} /** - *

            Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or AWS Region.

            + *

            Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or Amazon Web Services Region.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route53-recovery-control-config/src/commands/CreateSafetyRuleCommand.ts b/clients/client-route53-recovery-control-config/src/commands/CreateSafetyRuleCommand.ts index ff01bef3eb48..bad9a7724276 100644 --- a/clients/client-route53-recovery-control-config/src/commands/CreateSafetyRuleCommand.ts +++ b/clients/client-route53-recovery-control-config/src/commands/CreateSafetyRuleCommand.ts @@ -26,7 +26,7 @@ export interface CreateSafetyRuleCommandInput extends CreateSafetyRuleRequest {} export interface CreateSafetyRuleCommandOutput extends CreateSafetyRuleResponse, __MetadataBearer {} /** - *

            Creates a safety rule in a control panel. Safety rules let you add safeguards around enabling and disabling routing controls, to help prevent unexpected outcomes.

            There are two types of safety rules: assertion rules and gating rules.

            Assertion rule: An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            Gating rule: A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            Creates a safety rule in a control panel. Safety rules let you add safeguards around changing routing control states, and for enabling and disabling routing controls, to help prevent unexpected outcomes.

            There are two types of safety rules: assertion rules and gating rules.

            Assertion rule: An assertion rule enforces that, when you change a routing control state, that a certain criteria is met. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

            Gating rule: A gating rule lets you configure a gating routing control as an overall "on/off" switch for a group of routing controls. Or, you can configure more complex gating scenarios, for example by configuring multiple gating routing controls.

            For more information, see Safety rules in the Amazon Route 53 Application Recovery Controller Developer Guide.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route53-recovery-control-config/src/commands/DescribeSafetyRuleCommand.ts b/clients/client-route53-recovery-control-config/src/commands/DescribeSafetyRuleCommand.ts index b36cfe211609..efec0b165402 100644 --- a/clients/client-route53-recovery-control-config/src/commands/DescribeSafetyRuleCommand.ts +++ b/clients/client-route53-recovery-control-config/src/commands/DescribeSafetyRuleCommand.ts @@ -26,7 +26,7 @@ export interface DescribeSafetyRuleCommandInput extends DescribeSafetyRuleReques export interface DescribeSafetyRuleCommandOutput extends DescribeSafetyRuleResponse, __MetadataBearer {} /** - *

            Describes the safety rules (that is, the assertion rules and gating rules) for the routing controls in a control panel.

            + *

            Returns information about a safety rule.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route53-recovery-control-config/src/commands/ListControlPanelsCommand.ts b/clients/client-route53-recovery-control-config/src/commands/ListControlPanelsCommand.ts index 838159bb6f82..92d707ba0075 100644 --- a/clients/client-route53-recovery-control-config/src/commands/ListControlPanelsCommand.ts +++ b/clients/client-route53-recovery-control-config/src/commands/ListControlPanelsCommand.ts @@ -26,7 +26,7 @@ export interface ListControlPanelsCommandInput extends ListControlPanelsRequest export interface ListControlPanelsCommandOutput extends ListControlPanelsResponse, __MetadataBearer {} /** - *

            Returns an array of control panels for a cluster.

            + *

            Returns an array of control panels in an account or in a cluster.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route53-recovery-control-config/src/commands/ListTagsForResourceCommand.ts b/clients/client-route53-recovery-control-config/src/commands/ListTagsForResourceCommand.ts new file mode 100644 index 000000000000..abb6f5b0cfe7 --- /dev/null +++ b/clients/client-route53-recovery-control-config/src/commands/ListTagsForResourceCommand.ts @@ -0,0 +1,99 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { ListTagsForResourceRequest, ListTagsForResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1ListTagsForResourceCommand, + serializeAws_restJson1ListTagsForResourceCommand, +} from "../protocols/Aws_restJson1"; +import { + Route53RecoveryControlConfigClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../Route53RecoveryControlConfigClient"; + +export interface ListTagsForResourceCommandInput extends ListTagsForResourceRequest {} +export interface ListTagsForResourceCommandOutput extends ListTagsForResourceResponse, __MetadataBearer {} + +/** + *

            Lists the tags for a resource.

            + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53RecoveryControlConfigClient, ListTagsForResourceCommand } from "@aws-sdk/client-route53-recovery-control-config"; // ES Modules import + * // const { Route53RecoveryControlConfigClient, ListTagsForResourceCommand } = require("@aws-sdk/client-route53-recovery-control-config"); // CommonJS import + * const client = new Route53RecoveryControlConfigClient(config); + * const command = new ListTagsForResourceCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListTagsForResourceCommandInput} for command's `input` shape. + * @see {@link ListTagsForResourceCommandOutput} for command's `response` shape. + * @see {@link Route53RecoveryControlConfigClientResolvedConfig | config} for Route53RecoveryControlConfigClient's `config` shape. + * + */ +export class ListTagsForResourceCommand extends $Command< + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, + Route53RecoveryControlConfigClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListTagsForResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53RecoveryControlConfigClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53RecoveryControlConfigClient"; + const commandName = "ListTagsForResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListTagsForResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: ListTagsForResourceResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListTagsForResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1ListTagsForResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1ListTagsForResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53-recovery-control-config/src/commands/TagResourceCommand.ts b/clients/client-route53-recovery-control-config/src/commands/TagResourceCommand.ts new file mode 100644 index 000000000000..5e16c6e57323 --- /dev/null +++ b/clients/client-route53-recovery-control-config/src/commands/TagResourceCommand.ts @@ -0,0 +1,99 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { TagResourceRequest, TagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1TagResourceCommand, + serializeAws_restJson1TagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { + Route53RecoveryControlConfigClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../Route53RecoveryControlConfigClient"; + +export interface TagResourceCommandInput extends TagResourceRequest {} +export interface TagResourceCommandOutput extends TagResourceResponse, __MetadataBearer {} + +/** + *

            Adds a tag to a resource.

            + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53RecoveryControlConfigClient, TagResourceCommand } from "@aws-sdk/client-route53-recovery-control-config"; // ES Modules import + * // const { Route53RecoveryControlConfigClient, TagResourceCommand } = require("@aws-sdk/client-route53-recovery-control-config"); // CommonJS import + * const client = new Route53RecoveryControlConfigClient(config); + * const command = new TagResourceCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link TagResourceCommandInput} for command's `input` shape. + * @see {@link TagResourceCommandOutput} for command's `response` shape. + * @see {@link Route53RecoveryControlConfigClientResolvedConfig | config} for Route53RecoveryControlConfigClient's `config` shape. + * + */ +export class TagResourceCommand extends $Command< + TagResourceCommandInput, + TagResourceCommandOutput, + Route53RecoveryControlConfigClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: TagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53RecoveryControlConfigClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53RecoveryControlConfigClient"; + const commandName = "TagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: TagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: TagResourceResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: TagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1TagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1TagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53-recovery-control-config/src/commands/UntagResourceCommand.ts b/clients/client-route53-recovery-control-config/src/commands/UntagResourceCommand.ts new file mode 100644 index 000000000000..d376caccfbf9 --- /dev/null +++ b/clients/client-route53-recovery-control-config/src/commands/UntagResourceCommand.ts @@ -0,0 +1,99 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { UntagResourceRequest, UntagResourceResponse } from "../models/models_0"; +import { + deserializeAws_restJson1UntagResourceCommand, + serializeAws_restJson1UntagResourceCommand, +} from "../protocols/Aws_restJson1"; +import { + Route53RecoveryControlConfigClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../Route53RecoveryControlConfigClient"; + +export interface UntagResourceCommandInput extends UntagResourceRequest {} +export interface UntagResourceCommandOutput extends UntagResourceResponse, __MetadataBearer {} + +/** + *

            Removes a tag from a resource.

            + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { Route53RecoveryControlConfigClient, UntagResourceCommand } from "@aws-sdk/client-route53-recovery-control-config"; // ES Modules import + * // const { Route53RecoveryControlConfigClient, UntagResourceCommand } = require("@aws-sdk/client-route53-recovery-control-config"); // CommonJS import + * const client = new Route53RecoveryControlConfigClient(config); + * const command = new UntagResourceCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UntagResourceCommandInput} for command's `input` shape. + * @see {@link UntagResourceCommandOutput} for command's `response` shape. + * @see {@link Route53RecoveryControlConfigClientResolvedConfig | config} for Route53RecoveryControlConfigClient's `config` shape. + * + */ +export class UntagResourceCommand extends $Command< + UntagResourceCommandInput, + UntagResourceCommandOutput, + Route53RecoveryControlConfigClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UntagResourceCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: Route53RecoveryControlConfigClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "Route53RecoveryControlConfigClient"; + const commandName = "UntagResourceCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UntagResourceRequest.filterSensitiveLog, + outputFilterSensitiveLog: UntagResourceResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UntagResourceCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_restJson1UntagResourceCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_restJson1UntagResourceCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-route53-recovery-control-config/src/commands/UpdateSafetyRuleCommand.ts b/clients/client-route53-recovery-control-config/src/commands/UpdateSafetyRuleCommand.ts index 527a26c6ea97..400918768c92 100644 --- a/clients/client-route53-recovery-control-config/src/commands/UpdateSafetyRuleCommand.ts +++ b/clients/client-route53-recovery-control-config/src/commands/UpdateSafetyRuleCommand.ts @@ -26,7 +26,7 @@ export interface UpdateSafetyRuleCommandInput extends UpdateSafetyRuleRequest {} export interface UpdateSafetyRuleCommandOutput extends UpdateSafetyRuleResponse, __MetadataBearer {} /** - *

            Update a safety rule (an assertion rule or gating rule) for the routing controls in a control panel. You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new safety rule.

            + *

            Update a safety rule (an assertion rule or gating rule). You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new one.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-route53-recovery-control-config/src/commands/index.ts b/clients/client-route53-recovery-control-config/src/commands/index.ts index 163879565897..8e998ebf6834 100644 --- a/clients/client-route53-recovery-control-config/src/commands/index.ts +++ b/clients/client-route53-recovery-control-config/src/commands/index.ts @@ -15,6 +15,9 @@ export * from "./ListClustersCommand"; export * from "./ListControlPanelsCommand"; export * from "./ListRoutingControlsCommand"; export * from "./ListSafetyRulesCommand"; +export * from "./ListTagsForResourceCommand"; +export * from "./TagResourceCommand"; +export * from "./UntagResourceCommand"; export * from "./UpdateControlPanelCommand"; export * from "./UpdateRoutingControlCommand"; export * from "./UpdateSafetyRuleCommand"; diff --git a/clients/client-route53-recovery-control-config/src/endpoints.ts b/clients/client-route53-recovery-control-config/src/endpoints.ts index bcf957e5c33f..71cb00221f98 100644 --- a/clients/client-route53-recovery-control-config/src/endpoints.ts +++ b/clients/client-route53-recovery-control-config/src/endpoints.ts @@ -24,6 +24,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-route53-recovery-control-config/src/models/models_0.ts b/clients/client-route53-recovery-control-config/src/models/models_0.ts index 2135483b5d16..12e93abe809c 100644 --- a/clients/client-route53-recovery-control-config/src/models/models_0.ts +++ b/clients/client-route53-recovery-control-config/src/models/models_0.ts @@ -5,7 +5,7 @@ import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException */ export interface ClusterEndpoint { /** - *

            A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you want to set or retrieve a routing control state in the cluster.

            To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Cluster (Data Plane) Actions.

            + *

            A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you want to set or retrieve a routing control state in the cluster.

            To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions.

            */ Endpoint?: string; @@ -31,7 +31,7 @@ export enum Status { } /** - *

            A cluster is a set of five consensus-forming Regional endpoints that represent the infrastructure that hosts your routing controls. Typically, you host together on one cluster all of the routing controls for your applications.

            + *

            A set of five redundant Regional endpoints against which you can execute API calls to update or get the state of routing controls. You can host multiple control panels and routing controls on one cluster.

            */ export interface Cluster { /** @@ -40,7 +40,7 @@ export interface Cluster { ClusterArn?: string; /** - *

            Endpoints for a cluster. Specify one of these endpoints when you want to set or retrieve a routing control state in the cluster.

            To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Cluster (Data Plane) Actions.

            + *

            Endpoints for a cluster. Specify one of these endpoints when you want to set or retrieve a routing control state in the cluster.

            To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions.

            */ ClusterEndpoints?: ClusterEndpoint[]; @@ -149,7 +149,7 @@ export enum RuleType { } /** - *

            The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion controls (routing controls) that specify how many controls must be enabled after a transaction completes.

            + *

            The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion controls (routing controls) that specify how many control states must be ON after a transaction completes.

            */ export interface RuleConfig { /** @@ -178,7 +178,7 @@ export namespace RuleConfig { } /** - *

            An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            + *

            An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met. Otherwise, the change to the routing control is not accepted. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

            */ export interface AssertionRule { /** @@ -197,7 +197,7 @@ export interface AssertionRule { Name: string | undefined; /** - *

            The criteria that you set for specific assertion controls (routing controls) that designate how many controls must be enabled as the result of a transaction. For example, if you have three assertion controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion controls must be enabled, so that at least two Amazon Web Services Regions are enabled.

            + *

            The criteria that you set for specific assertion routing controls (AssertedControls) that designate how many routing control states must be ON as the result of a transaction. For example, if you have three assertion routing controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion routing control states must be ON, so that at least two Amazon Web Services Regions have traffic flowing to them.

            */ RuleConfig: RuleConfig | undefined; @@ -227,7 +227,7 @@ export namespace AssertionRule { } /** - *

            A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            A gating rule verifies that a gating routing control or set of gating rounting controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.

            For example, if you specify one gating routing control and you set the Type in the rule configuration to OR, that indicates that you must set the gating routing control to On for the rule to evaluate as true; that is, for the gating control "switch" to be "On". When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule.

            */ export interface GatingRule { /** @@ -236,17 +236,17 @@ export interface GatingRule { ControlPanelArn: string | undefined; /** - *

            The gating controls for the gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.

            + *

            An array of gating routing control Amazon Resource Names (ARNs). For a simple "on/off" switch, specify the ARN for one routing control. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed.

            */ GatingControls: string[] | undefined; /** - *

            The name for the gating rule.

            + *

            The name for the gating rule. You can use any non-white space character in the name.

            */ Name: string | undefined; /** - *

            The criteria that you set for specific gating controls (routing controls) that designates how many controls must be enabled to allow you to change (set or unset) the target controls.

            + *

            The criteria that you set for gating routing controls that designates how many of the routing control states must be ON to allow you to update target routing control states.

            */ RuleConfig: RuleConfig | undefined; @@ -261,7 +261,7 @@ export interface GatingRule { Status: Status | string | undefined; /** - *

            Routing controls that can only be set or unset if the specified RuleConfig evaluates to true for the specified GatingControls. For example, say you have three gating controls, one for each of three Amazon Web Services Regions. Now you specify ATLEAST 2 as your RuleConfig. With these settings, you can only change (set or unset) the routing controls that you have specified as TargetControls if that rule evaluates to true.

            In other words, your ability to change the routing controls that you have specified as TargetControls is gated by the rule that you set for the routing controls in GatingControls.

            + *

            An array of target routing control Amazon Resource Names (ARNs) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control. As a simple example, if you have a single gating control, it acts as an overall "on/off" switch for a set of target routing controls. You can use this to manually override automated fail over, for example.

            */ TargetControls: string[] | undefined; @@ -285,12 +285,12 @@ export namespace GatingRule { */ export interface Rule { /** - *

            An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            + *

            An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control state is not accepted. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

            */ ASSERTION?: AssertionRule; /** - *

            A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            A gating rule verifies that a gating routing control or set of gating rounting controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.

            For example, if you specify one gating routing control and you set the Type in the rule configuration to OR, that indicates that you must set the gating routing control to On for the rule to evaluate as true; that is, for the gating control "switch" to be "On". When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule.

            */ GATING?: GatingRule; } @@ -305,7 +305,7 @@ export namespace Rule { } /** - *

            403 response - AccessDeniedException. You do not have sufficient access to perform this action.

            + *

            403 response - You do not have sufficient access to perform this action.

            */ export interface AccessDeniedException extends __SmithyException, $MetadataBearer { name: "AccessDeniedException"; @@ -352,7 +352,7 @@ export namespace AssertionRuleUpdate { } /** - *

            409 response - ConflictException.

            + *

            409 response - ConflictException. You might be using a predefined variable.

            */ export interface ConflictException extends __SmithyException, $MetadataBearer { name: "ConflictException"; @@ -374,7 +374,7 @@ export namespace ConflictException { */ export interface CreateClusterRequest { /** - *

            Unique client idempotency token.

            + *

            A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

            */ ClientToken?: string; @@ -382,6 +382,11 @@ export interface CreateClusterRequest { *

            The name of the cluster.

            */ ClusterName: string | undefined; + + /** + *

            The tags associated with the cluster.

            + */ + Tags?: { [key: string]: string }; } export namespace CreateClusterRequest { @@ -428,7 +433,7 @@ export namespace InternalServerException { } /** - *

            404 response - The query string contains a syntax error or resource not found.

            + *

            404 response - MalformedQueryString. The query string contains a syntax error or resource not found..

            */ export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { name: "ResourceNotFoundException"; @@ -446,7 +451,7 @@ export namespace ResourceNotFoundException { } /** - *

            402 response

            + *

            402 response - You attempted to create more resources than the service allows based on service quotas.

            */ export interface ServiceQuotaExceededException extends __SmithyException, $MetadataBearer { name: "ServiceQuotaExceededException"; @@ -464,7 +469,7 @@ export namespace ServiceQuotaExceededException { } /** - *

            429 response - ThrottlingException.

            + *

            429 response - LimitExceededException or TooManyRequestsException.

            */ export interface ThrottlingException extends __SmithyException, $MetadataBearer { name: "ThrottlingException"; @@ -482,7 +487,7 @@ export namespace ThrottlingException { } /** - *

            400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you used parameters together incorrectly.

            + *

            400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you might have used parameters together incorrectly.

            */ export interface ValidationException extends __SmithyException, $MetadataBearer { name: "ValidationException"; @@ -504,7 +509,7 @@ export namespace ValidationException { */ export interface CreateControlPanelRequest { /** - *

            Unique client idempotency token.

            + *

            A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

            */ ClientToken?: string; @@ -517,6 +522,11 @@ export interface CreateControlPanelRequest { *

            The name of the control panel.

            */ ControlPanelName: string | undefined; + + /** + *

            The tags associated with the control panel.

            + */ + Tags?: { [key: string]: string }; } export namespace CreateControlPanelRequest { @@ -549,7 +559,7 @@ export namespace CreateControlPanelResponse { */ export interface CreateRoutingControlRequest { /** - *

            Unique client idempotency token.

            + *

            A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

            */ ClientToken?: string; @@ -614,7 +624,7 @@ export interface NewAssertionRule { Name: string | undefined; /** - *

            The criteria that you set for specific assertion controls (routing controls) that designate how many controls must be enabled as the result of a transaction. For example, if you have three assertion controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion controls must be enabled, so that at least two Amazon Web Services Regions are enabled.

            + *

            The criteria that you set for specific assertion controls (routing controls) that designate how many control states must be ON as the result of a transaction. For example, if you have three assertion controls, you might specify ATLEAST 2for your rule configuration. This means that at least two assertion controls must be ON, so that at least two Amazon Web Services Regions have traffic flowing to them.

            */ RuleConfig: RuleConfig | undefined; @@ -653,7 +663,7 @@ export interface NewGatingRule { Name: string | undefined; /** - *

            The criteria that you set for specific gating controls (routing controls) that designates how many controls must be enabled to allow you to change (set or unset) the target controls.

            + *

            The criteria that you set for specific gating controls (routing controls) that designates how many control states must be ON to allow you to change (set or unset) the target control states.

            */ RuleConfig: RuleConfig | undefined; @@ -682,19 +692,24 @@ export namespace NewGatingRule { */ export interface CreateSafetyRuleRequest { /** - *

            A new assertion rule for a control panel.

            + *

            The assertion rule requested.

            */ AssertionRule?: NewAssertionRule; /** - *

            Unique client idempotency token.

            + *

            A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

            */ ClientToken?: string; /** - *

            A new gating rule for a control panel.

            + *

            The gating rule requested.

            */ GatingRule?: NewGatingRule; + + /** + *

            The tags associated with the safety rule.

            + */ + Tags?: { [key: string]: string }; } export namespace CreateSafetyRuleRequest { @@ -708,12 +723,12 @@ export namespace CreateSafetyRuleRequest { export interface CreateSafetyRuleResponse { /** - *

            An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            + *

            The assertion rule created.

            */ AssertionRule?: AssertionRule; /** - *

            A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            The gating rule created.

            */ GatingRule?: GatingRule; } @@ -756,7 +771,7 @@ export namespace DeleteClusterResponse { export interface DeleteControlPanelRequest { /** - *

            The Amazon Resource Name (ARN) of the control panel that you're deleting.

            + *

            The Amazon Resource Name (ARN) of the control panel.

            */ ControlPanelArn: string | undefined; } @@ -810,7 +825,7 @@ export namespace DeleteRoutingControlResponse { export interface DeleteSafetyRuleRequest { /** - *

            The request body that you include when you update a safety rule.

            + *

            The ARN of the safety rule.

            */ SafetyRuleArn: string | undefined; } @@ -837,7 +852,7 @@ export namespace DeleteSafetyRuleResponse { export interface DescribeClusterRequest { /** - *

            The Amazon Resource Name (ARN) of the cluster that you're getting details for.

            + *

            The Amazon Resource Name (ARN) of the cluster.

            */ ClusterArn: string | undefined; } @@ -869,7 +884,7 @@ export namespace DescribeClusterResponse { export interface DescribeControlPanelRequest { /** - *

            The Amazon Resource Name (ARN) of the control panel that you're getting details for.

            + *

            The Amazon Resource Name (ARN) of the control panel.

            */ ControlPanelArn: string | undefined; } @@ -901,7 +916,7 @@ export namespace DescribeControlPanelResponse { export interface DescribeRoutingControlRequest { /** - *

            The Amazon Resource Name (ARN) of the routing control that you're getting details for.

            + *

            The Amazon Resource Name (ARN) of the routing control.

            */ RoutingControlArn: string | undefined; } @@ -933,7 +948,7 @@ export namespace DescribeRoutingControlResponse { export interface DescribeSafetyRuleRequest { /** - *

            The request body that you include when you update a safety rule.

            + *

            The ARN of the safety rule.

            */ SafetyRuleArn: string | undefined; } @@ -949,12 +964,12 @@ export namespace DescribeSafetyRuleRequest { export interface DescribeSafetyRuleResponse { /** - *

            An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            + *

            The assertion rule in the response.

            */ AssertionRule?: AssertionRule; /** - *

            A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            The gating rule in the response.

            */ GatingRule?: GatingRule; } @@ -973,7 +988,7 @@ export namespace DescribeSafetyRuleResponse { */ export interface GatingRuleUpdate { /** - *

            The name for the gating rule.

            + *

            The name for the gating rule. You can use any non-white space character in the name.

            */ Name: string | undefined; @@ -1009,7 +1024,7 @@ export interface ListAssociatedRoute53HealthChecksRequest { NextToken?: string; /** - *

            The Amazon Resource Name (ARN) of the routing control that you're getting details for.

            + *

            The Amazon Resource Name (ARN) of the routing control.

            */ RoutingControlArn: string | undefined; } @@ -1030,7 +1045,7 @@ export interface ListAssociatedRoute53HealthChecksResponse { HealthCheckIds?: string[]; /** - *

            The token that identifies which batch of results you want to see.

            + *

            Next token for listing health checks.

            */ NextToken?: string; } @@ -1135,7 +1150,7 @@ export namespace ListControlPanelsResponse { export interface ListRoutingControlsRequest { /** - *

            The Amazon Resource Name (ARN) of the control panel that you're getting routing control details for.

            + *

            The Amazon Resource Name (ARN) of the control panel.

            */ ControlPanelArn: string | undefined; @@ -1182,7 +1197,7 @@ export namespace ListRoutingControlsResponse { export interface ListSafetyRulesRequest { /** - *

            The Amazon Resource Name (ARN) of the control panel that you're getting details for.

            + *

            The Amazon Resource Name (ARN) of the control panel.

            */ ControlPanelArn: string | undefined; @@ -1227,6 +1242,105 @@ export namespace ListSafetyRulesResponse { }); } +export interface ListTagsForResourceRequest { + /** + *

            The Amazon Resource Name (ARN) for the resource that's tagged.

            + */ + ResourceArn: string | undefined; +} + +export namespace ListTagsForResourceRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListTagsForResourceRequest): any => ({ + ...obj, + }); +} + +export interface ListTagsForResourceResponse { + /** + *

            The tags associated with the resource.

            + */ + Tags?: { [key: string]: string }; +} + +export namespace ListTagsForResourceResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ListTagsForResourceResponse): any => ({ + ...obj, + }); +} + +/** + *

            Request of adding tag to the resource

            + */ +export interface TagResourceRequest { + /** + *

            The Amazon Resource Name (ARN) for the resource that's tagged.

            + */ + ResourceArn: string | undefined; + + /** + *

            The tags associated with the resource.

            + */ + Tags: { [key: string]: string } | undefined; +} + +export namespace TagResourceRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: TagResourceRequest): any => ({ + ...obj, + }); +} + +export interface TagResourceResponse {} + +export namespace TagResourceResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: TagResourceResponse): any => ({ + ...obj, + }); +} + +export interface UntagResourceRequest { + /** + *

            The Amazon Resource Name (ARN) for the resource that's tagged.

            + */ + ResourceArn: string | undefined; + + /** + *

            Keys for the tags to be removed.

            + */ + TagKeys: string[] | undefined; +} + +export namespace UntagResourceRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UntagResourceRequest): any => ({ + ...obj, + }); +} + +export interface UntagResourceResponse {} + +export namespace UntagResourceResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: UntagResourceResponse): any => ({ + ...obj, + }); +} + /** *

            The details of the control panel that you're updating.

            */ @@ -1307,14 +1421,17 @@ export namespace UpdateRoutingControlResponse { }); } +/** + *

            A rule that you add to Application Recovery Controller to ensure that recovery actions don't accidentally impair your application's availability.

            + */ export interface UpdateSafetyRuleRequest { /** - *

            An update to an assertion rule. You can update the name or the evaluation period (wait period). If you don't specify one of the items to update, the item is unchanged.

            + *

            The assertion rule to update.

            */ AssertionRuleUpdate?: AssertionRuleUpdate; /** - *

            Update to a gating rule. You can update the name or the evaluation period (wait period). If you don't specify one of the items to update, the item is unchanged.

            + *

            The gating rule to update.

            */ GatingRuleUpdate?: GatingRuleUpdate; } @@ -1330,12 +1447,12 @@ export namespace UpdateSafetyRuleRequest { export interface UpdateSafetyRuleResponse { /** - *

            An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

            + *

            The assertion rule updated.

            */ AssertionRule?: AssertionRule; /** - *

            A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

            + *

            The gating rule updated.

            */ GatingRule?: GatingRule; } diff --git a/clients/client-route53-recovery-control-config/src/protocols/Aws_restJson1.ts b/clients/client-route53-recovery-control-config/src/protocols/Aws_restJson1.ts index 51f94d8672b8..ff0b1538804b 100644 --- a/clients/client-route53-recovery-control-config/src/protocols/Aws_restJson1.ts +++ b/clients/client-route53-recovery-control-config/src/protocols/Aws_restJson1.ts @@ -51,6 +51,12 @@ import { ListRoutingControlsCommandOutput, } from "../commands/ListRoutingControlsCommand"; import { ListSafetyRulesCommandInput, ListSafetyRulesCommandOutput } from "../commands/ListSafetyRulesCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "../commands/ListTagsForResourceCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateControlPanelCommandInput, UpdateControlPanelCommandOutput } from "../commands/UpdateControlPanelCommand"; import { UpdateRoutingControlCommandInput, @@ -92,6 +98,8 @@ export const serializeAws_restJson1CreateClusterCommand = async ( body = JSON.stringify({ ClientToken: input.ClientToken ?? generateIdempotencyToken(), ...(input.ClusterName !== undefined && input.ClusterName !== null && { ClusterName: input.ClusterName }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1__mapOf__stringMin0Max256PatternS(input.Tags, context) }), }); return new __HttpRequest({ protocol, @@ -119,6 +127,8 @@ export const serializeAws_restJson1CreateControlPanelCommand = async ( ...(input.ClusterArn !== undefined && input.ClusterArn !== null && { ClusterArn: input.ClusterArn }), ...(input.ControlPanelName !== undefined && input.ControlPanelName !== null && { ControlPanelName: input.ControlPanelName }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1__mapOf__stringMin0Max256PatternS(input.Tags, context) }), }); return new __HttpRequest({ protocol, @@ -178,6 +188,8 @@ export const serializeAws_restJson1CreateSafetyRuleCommand = async ( ClientToken: input.ClientToken ?? generateIdempotencyToken(), ...(input.GatingRule !== undefined && input.GatingRule !== null && { GatingRule: serializeAws_restJson1NewGatingRule(input.GatingRule, context) }), + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1__mapOf__stringMin0Max256PatternS(input.Tags, context) }), }); return new __HttpRequest({ protocol, @@ -574,6 +586,100 @@ export const serializeAws_restJson1ListSafetyRulesCommand = async ( }); }; +export const serializeAws_restJson1ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); + } + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1TagResourceCommand = async ( + input: TagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); + } + let body: any; + body = JSON.stringify({ + ...(input.Tags !== undefined && + input.Tags !== null && { Tags: serializeAws_restJson1__mapOf__stringMin0Max256PatternS(input.Tags, context) }), + }); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + +export const serializeAws_restJson1UntagResourceCommand = async ( + input: UntagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/tags/{ResourceArn}"; + if (input.ResourceArn !== undefined) { + const labelValue: string = input.ResourceArn; + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: ResourceArn."); + } + resolvedPath = resolvedPath.replace("{ResourceArn}", __extendedEncodeURIComponent(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: ResourceArn."); + } + const query: any = { + ...(input.TagKeys !== undefined && { TagKeys: (input.TagKeys || []).map((_entry) => _entry as any) }), + }; + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + export const serializeAws_restJson1UpdateControlPanelCommand = async ( input: UpdateControlPanelCommandInput, context: __SerdeContext @@ -1741,7 +1847,7 @@ export const deserializeAws_restJson1ListAssociatedRoute53HealthChecksCommand = }; const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); if (data.HealthCheckIds !== undefined && data.HealthCheckIds !== null) { - contents.HealthCheckIds = deserializeAws_restJson1__listOf__string(data.HealthCheckIds, context); + contents.HealthCheckIds = deserializeAws_restJson1__listOf__stringMax36PatternS(data.HealthCheckIds, context); } if (data.NextToken !== undefined && data.NextToken !== null) { contents.NextToken = __expectString(data.NextToken); @@ -2166,6 +2272,211 @@ const deserializeAws_restJson1ListSafetyRulesCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_restJson1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1ListTagsForResourceCommandError(output, context); + } + const contents: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + Tags: undefined, + }; + const data: { [key: string]: any } = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + if (data.Tags !== undefined && data.Tags !== null) { + contents.Tags = deserializeAws_restJson1__mapOf__stringMin0Max256PatternS(data.Tags, context); + } + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.route53recoverycontrolconfig#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.route53recoverycontrolconfig#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1TagResourceCommandError(output, context); + } + const contents: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1TagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.route53recoverycontrolconfig#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.route53recoverycontrolconfig#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + +export const deserializeAws_restJson1UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return deserializeAws_restJson1UntagResourceCommandError(output, context); + } + const contents: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + }; + await collectBody(output.body, context); + return Promise.resolve(contents); +}; + +const deserializeAws_restJson1UntagResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServerException": + case "com.amazonaws.route53recoverycontrolconfig#InternalServerException": + response = { + ...(await deserializeAws_restJson1InternalServerExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException": + response = { + ...(await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ValidationException": + case "com.amazonaws.route53recoverycontrolconfig#ValidationException": + response = { + ...(await deserializeAws_restJson1ValidationExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_restJson1UpdateControlPanelCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -2550,7 +2861,10 @@ const deserializeAws_restJson1ValidationExceptionResponse = async ( return contents; }; -const serializeAws_restJson1__listOf__string = (input: string[], context: __SerdeContext): any => { +const serializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09 = ( + input: string[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { @@ -2561,6 +2875,21 @@ const serializeAws_restJson1__listOf__string = (input: string[], context: __Serd }); }; +const serializeAws_restJson1__mapOf__stringMin0Max256PatternS = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + const serializeAws_restJson1AssertionRuleUpdate = (input: AssertionRuleUpdate, context: __SerdeContext): any => { return { ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), @@ -2581,7 +2910,10 @@ const serializeAws_restJson1NewAssertionRule = (input: NewAssertionRule, context return { ...(input.AssertedControls !== undefined && input.AssertedControls !== null && { - AssertedControls: serializeAws_restJson1__listOf__string(input.AssertedControls, context), + AssertedControls: serializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09( + input.AssertedControls, + context + ), }), ...(input.ControlPanelArn !== undefined && input.ControlPanelArn !== null && { ControlPanelArn: input.ControlPanelArn }), @@ -2598,14 +2930,14 @@ const serializeAws_restJson1NewGatingRule = (input: NewGatingRule, context: __Se input.ControlPanelArn !== null && { ControlPanelArn: input.ControlPanelArn }), ...(input.GatingControls !== undefined && input.GatingControls !== null && { - GatingControls: serializeAws_restJson1__listOf__string(input.GatingControls, context), + GatingControls: serializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09(input.GatingControls, context), }), ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), ...(input.RuleConfig !== undefined && input.RuleConfig !== null && { RuleConfig: serializeAws_restJson1RuleConfig(input.RuleConfig, context) }), ...(input.TargetControls !== undefined && input.TargetControls !== null && { - TargetControls: serializeAws_restJson1__listOf__string(input.TargetControls, context), + TargetControls: serializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09(input.TargetControls, context), }), ...(input.WaitPeriodMs !== undefined && input.WaitPeriodMs !== null && { WaitPeriodMs: input.WaitPeriodMs }), }; @@ -2619,7 +2951,21 @@ const serializeAws_restJson1RuleConfig = (input: RuleConfig, context: __SerdeCon }; }; -const deserializeAws_restJson1__listOf__string = (output: any, context: __SerdeContext): string[] => { +const deserializeAws_restJson1__listOf__stringMax36PatternS = (output: any, context: __SerdeContext): string[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + +const deserializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09 = ( + output: any, + context: __SerdeContext +): string[] => { return (output || []) .filter((e: any) => e != null) .map((entry: any) => { @@ -2685,11 +3031,26 @@ const deserializeAws_restJson1__listOfRule = (output: any, context: __SerdeConte }); }; +const deserializeAws_restJson1__mapOf__stringMin0Max256PatternS = ( + output: any, + context: __SerdeContext +): { [key: string]: string } => { + return Object.entries(output).reduce((acc: { [key: string]: string }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: __expectString(value) as any, + }; + }, {}); +}; + const deserializeAws_restJson1AssertionRule = (output: any, context: __SerdeContext): AssertionRule => { return { AssertedControls: output.AssertedControls !== undefined && output.AssertedControls !== null - ? deserializeAws_restJson1__listOf__string(output.AssertedControls, context) + ? deserializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09(output.AssertedControls, context) : undefined, ControlPanelArn: __expectString(output.ControlPanelArn), Name: __expectString(output.Name), @@ -2738,7 +3099,7 @@ const deserializeAws_restJson1GatingRule = (output: any, context: __SerdeContext ControlPanelArn: __expectString(output.ControlPanelArn), GatingControls: output.GatingControls !== undefined && output.GatingControls !== null - ? deserializeAws_restJson1__listOf__string(output.GatingControls, context) + ? deserializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09(output.GatingControls, context) : undefined, Name: __expectString(output.Name), RuleConfig: @@ -2749,7 +3110,7 @@ const deserializeAws_restJson1GatingRule = (output: any, context: __SerdeContext Status: __expectString(output.Status), TargetControls: output.TargetControls !== undefined && output.TargetControls !== null - ? deserializeAws_restJson1__listOf__string(output.TargetControls, context) + ? deserializeAws_restJson1__listOf__stringMin1Max256PatternAZaZ09(output.TargetControls, context) : undefined, WaitPeriodMs: __expectInt32(output.WaitPeriodMs), } as any; diff --git a/clients/client-route53-recovery-readiness/src/endpoints.ts b/clients/client-route53-recovery-readiness/src/endpoints.ts index a2900ec2e07d..e285457bd6ab 100644 --- a/clients/client-route53-recovery-readiness/src/endpoints.ts +++ b/clients/client-route53-recovery-readiness/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-route53resolver/src/endpoints.ts b/clients/client-route53resolver/src/endpoints.ts index 8d2453406405..c964a8deef32 100644 --- a/clients/client-route53resolver/src/endpoints.ts +++ b/clients/client-route53resolver/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-rum/src/endpoints.ts b/clients/client-rum/src/endpoints.ts index eecc012244f1..0ce53463cce6 100644 --- a/clients/client-rum/src/endpoints.ts +++ b/clients/client-rum/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-s3-control/src/endpoints.ts b/clients/client-s3-control/src/endpoints.ts index 237d3e19a532..f81c6e5bf95b 100644 --- a/clients/client-s3-control/src/endpoints.ts +++ b/clients/client-s3-control/src/endpoints.ts @@ -344,6 +344,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-s3/src/endpoints.ts b/clients/client-s3/src/endpoints.ts index c0dde4763839..e48c0f2b53eb 100644 --- a/clients/client-s3/src/endpoints.ts +++ b/clients/client-s3/src/endpoints.ts @@ -98,6 +98,18 @@ const regionHash: RegionHash = { }, ], }, + "ap-southeast-3": { + variants: [ + { + hostname: "s3.ap-southeast-3.amazonaws.com", + tags: [], + }, + { + hostname: "s3.dualstack.ap-southeast-3.amazonaws.com", + tags: ["dualstack"], + }, + ], + }, "aws-global": { variants: [ { @@ -381,6 +393,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-s3outposts/src/endpoints.ts b/clients/client-s3outposts/src/endpoints.ts index ca67ababcdc2..24eca983a168 100644 --- a/clients/client-s3outposts/src/endpoints.ts +++ b/clients/client-s3outposts/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sagemaker-a2i-runtime/src/endpoints.ts b/clients/client-sagemaker-a2i-runtime/src/endpoints.ts index e39637654c81..55f7bd68ee32 100644 --- a/clients/client-sagemaker-a2i-runtime/src/endpoints.ts +++ b/clients/client-sagemaker-a2i-runtime/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sagemaker-edge/src/endpoints.ts b/clients/client-sagemaker-edge/src/endpoints.ts index cb8d9cb32d4d..4a2370ffdb1a 100644 --- a/clients/client-sagemaker-edge/src/endpoints.ts +++ b/clients/client-sagemaker-edge/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sagemaker-featurestore-runtime/src/endpoints.ts b/clients/client-sagemaker-featurestore-runtime/src/endpoints.ts index 09790640d798..5c2e7c534341 100644 --- a/clients/client-sagemaker-featurestore-runtime/src/endpoints.ts +++ b/clients/client-sagemaker-featurestore-runtime/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sagemaker-runtime/src/endpoints.ts b/clients/client-sagemaker-runtime/src/endpoints.ts index b21513ee407d..7afd5b54a8dc 100644 --- a/clients/client-sagemaker-runtime/src/endpoints.ts +++ b/clients/client-sagemaker-runtime/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sagemaker/src/endpoints.ts b/clients/client-sagemaker/src/endpoints.ts index 2414c46ddc6f..f9fdb5cba12e 100644 --- a/clients/client-sagemaker/src/endpoints.ts +++ b/clients/client-sagemaker/src/endpoints.ts @@ -75,6 +75,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sagemaker/src/models/models_0.ts b/clients/client-sagemaker/src/models/models_0.ts index e09019a23b28..d88cce2a6914 100644 --- a/clients/client-sagemaker/src/models/models_0.ts +++ b/clients/client-sagemaker/src/models/models_0.ts @@ -4503,6 +4503,13 @@ export interface AutoMLChannel { * 'y'.

            */ TargetAttributeName: string | undefined; + + /** + *

            The content type of the data from the input source. You can use + * text/csv;header=present or x-application/vnd.amazon+parquet. + * The default value is text/csv;header=present.

            + */ + ContentType?: string; } export namespace AutoMLChannel { @@ -5824,6 +5831,7 @@ export enum CompilationJobStatus { export enum TargetDevice { AISAGE = "aisage", + AMBA_CV2 = "amba_cv2", AMBA_CV22 = "amba_cv22", AMBA_CV25 = "amba_cv25", COREML = "coreml", diff --git a/clients/client-sagemaker/src/models/models_2.ts b/clients/client-sagemaker/src/models/models_2.ts index f5c98041a1d5..5bdea943b865 100644 --- a/clients/client-sagemaker/src/models/models_2.ts +++ b/clients/client-sagemaker/src/models/models_2.ts @@ -9767,6 +9767,7 @@ export interface PipelineExecutionStep { */ CacheHitResult?: CacheHitResult; + AttemptCount?: number; /** *

            The reason why the step failed execution. This is only returned if the step failed its execution.

            */ diff --git a/clients/client-sagemaker/src/protocols/Aws_json1_1.ts b/clients/client-sagemaker/src/protocols/Aws_json1_1.ts index 3501151fce50..6b0efba62362 100644 --- a/clients/client-sagemaker/src/protocols/Aws_json1_1.ts +++ b/clients/client-sagemaker/src/protocols/Aws_json1_1.ts @@ -18312,6 +18312,7 @@ const serializeAws_json1_1AutoMLChannel = (input: AutoMLChannel, context: __Serd return { ...(input.CompressionType !== undefined && input.CompressionType !== null && { CompressionType: input.CompressionType }), + ...(input.ContentType !== undefined && input.ContentType !== null && { ContentType: input.ContentType }), ...(input.DataSource !== undefined && input.DataSource !== null && { DataSource: serializeAws_json1_1AutoMLDataSource(input.DataSource, context) }), ...(input.TargetAttributeName !== undefined && @@ -26766,6 +26767,7 @@ const deserializeAws_json1_1AutoMLCandidateStep = (output: any, context: __Serde const deserializeAws_json1_1AutoMLChannel = (output: any, context: __SerdeContext): AutoMLChannel => { return { CompressionType: __expectString(output.CompressionType), + ContentType: __expectString(output.ContentType), DataSource: output.DataSource !== undefined && output.DataSource !== null ? deserializeAws_json1_1AutoMLDataSource(output.DataSource, context) @@ -34380,6 +34382,7 @@ const deserializeAws_json1_1PipelineExecution = (output: any, context: __SerdeCo const deserializeAws_json1_1PipelineExecutionStep = (output: any, context: __SerdeContext): PipelineExecutionStep => { return { + AttemptCount: __expectInt32(output.AttemptCount), CacheHitResult: output.CacheHitResult !== undefined && output.CacheHitResult !== null ? deserializeAws_json1_1CacheHitResult(output.CacheHitResult, context) diff --git a/clients/client-savingsplans/src/endpoints.ts b/clients/client-savingsplans/src/endpoints.ts index ac347911ab78..fc3f23ca86fa 100644 --- a/clients/client-savingsplans/src/endpoints.ts +++ b/clients/client-savingsplans/src/endpoints.ts @@ -24,6 +24,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-savingsplans/src/models/models_0.ts b/clients/client-savingsplans/src/models/models_0.ts index b84d336ca97d..d597b40312b4 100644 --- a/clients/client-savingsplans/src/models/models_0.ts +++ b/clients/client-savingsplans/src/models/models_0.ts @@ -8,7 +8,7 @@ export interface CreateSavingsPlanRequest { /** *

            The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more - * than three digits after the decimal point.

            + * than five digits after the decimal point.

            */ commitment: string | undefined; diff --git a/clients/client-schemas/src/endpoints.ts b/clients/client-schemas/src/endpoints.ts index 704f00230c16..9e79df95274c 100644 --- a/clients/client-schemas/src/endpoints.ts +++ b/clients/client-schemas/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-secrets-manager/README.md b/clients/client-secrets-manager/README.md index dfd994efd560..b5f20ece1eda 100644 --- a/clients/client-secrets-manager/README.md +++ b/clients/client-secrets-manager/README.md @@ -61,7 +61,7 @@ You should always submit the input as a single JSON text string.

            account and delivers log files to an Amazon S3 bucket. By using information that's collected by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services -CloudTrail, see Logging +CloudTrail, see Logging Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide. To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

            diff --git a/clients/client-secrets-manager/src/SecretsManager.ts b/clients/client-secrets-manager/src/SecretsManager.ts index aa322c500b1d..fc5d8c3590d3 100644 --- a/clients/client-secrets-manager/src/SecretsManager.ts +++ b/clients/client-secrets-manager/src/SecretsManager.ts @@ -165,65 +165,23 @@ import { SecretsManagerClient } from "./SecretsManagerClient"; * account and delivers log files to an Amazon S3 bucket. By using information that's collected * by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the * request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services - * CloudTrail, see Logging + * CloudTrail, see Logging * Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide. * To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

            */ export class SecretsManager extends SecretsManagerClient { /** - *

            Disables automatic scheduled rotation and cancels the rotation of a secret if currently in - * progress.

            - *

            To re-enable scheduled rotation, call RotateSecret with - * AutomaticallyRotateAfterDays set to a value greater than 0. This immediately - * rotates your secret and then enables the automatic schedule.

            + *

            Turns off automatic rotation, and if a rotation is currently in + * progress, cancels the rotation.

            + *

            To turn on automatic rotation again, call RotateSecret.

            * - *

            If you cancel a rotation while in progress, it can leave the VersionStage + *

            If you cancel a rotation in progress, it can leave the VersionStage * labels in an unexpected state. Depending on the step of the rotation in progress, you might * need to remove the staging label AWSPENDING from the partially created version, specified - * by the VersionId response value. You should also evaluate the partially rotated - * new version to see if it should be deleted, which you can do by removing all staging labels - * from the new version VersionStage field.

            + * by the VersionId response value. We recommend you also evaluate the partially rotated + * new version to see if it should be deleted. You can delete a version by removing all staging labels + * from it.

            *
            - *

            To successfully start a rotation, the staging label AWSPENDING must be in one of the - * following states:

            - *
              - *
            • - *

              Not attached to any version at all

              - *
            • - *
            • - *

              Attached to the same version as the staging label AWSCURRENT - *

              - *
            • - *
            - *

            If the staging label AWSPENDING attached to a different version than the version with - * AWSCURRENT then the attempt to rotate fails.

            - * - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:CancelRotateSecret

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To configure rotation for a secret or to manually trigger a rotation, use RotateSecret.

              - *
            • - *
            • - *

              To get the rotation configuration details for a secret, use DescribeSecret.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            • - *

              To list all of the versions currently associated with a secret, use ListSecretVersionIds.

              - *
            • - *
            */ public cancelRotateSecret( args: CancelRotateSecretCommandInput, @@ -255,94 +213,26 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Creates a new secret. A secret in Secrets Manager consists of both the protected secret data and the + *

            Creates a new secret. A secret is a set of credentials, such as a + * user name and password, that you store in an encrypted form in Secrets Manager. The secret also + * includes the connection information to access a database or other service, which Secrets Manager + * doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the * important information needed to manage the secret.

            - *

            Secrets Manager stores the encrypted secret data in one of a collection of "versions" - * associated with the secret. Each version contains a copy of the encrypted secret data. Each - * version is associated with one or more "staging labels" that identify where the version is in - * the rotation cycle. The SecretVersionsToStages field of the secret contains the - * mapping of staging labels to the active versions of the secret. Versions without a staging - * label are considered deprecated and not included in the list.

            - *

            You provide the secret data to be encrypted by putting text in either the - * SecretString parameter or binary data in the SecretBinary - * parameter, but not both. If you include SecretString or SecretBinary - * then Secrets Manager also creates an initial secret version and automatically attaches the staging - * label AWSCURRENT to the new version.

            - * - *
              - *
            • - *

              If you call an operation to encrypt or decrypt the SecretString - * or SecretBinary for a secret in the same account as the calling user and that - * secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default - * Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key - * doesn't already exist in your account then Secrets Manager creates it for you automatically. All - * users and roles in the same Amazon Web Services account automatically have access to use the default CMK. - * Note that if an Secrets Manager API call results in Amazon Web Services creating the account's - * Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the - * result.

              - *
            • - *
            • - *

              If the secret resides in a different Amazon Web Services account from the credentials calling an API that - * requires encryption or decryption of the secret value then you must create and use a custom - * Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials - * from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the - * secret or when you update it by including it in the KMSKeyId. If you call an - * API that must encrypt or decrypt SecretString or SecretBinary - * using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account - * access to that other account's user or role for both the kms:GenerateDataKey and - * kms:Decrypt operations.

              - *
            • - *
            - *
            - *

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:CreateSecret

              - *
            • - *
            • - *

              kms:GenerateDataKey - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt - * the secret. You do not need this permission to use the account default Amazon Web Services managed CMK - * for Secrets Manager.

              - *
            • - *
            • - *

              kms:Decrypt - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt the - * secret. You do not need this permission to use the account default Amazon Web Services managed CMK for - * Secrets Manager.

              - *
            • - *
            • - *

              secretsmanager:TagResource - needed only if you include the Tags - * parameter.

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To delete a secret, use DeleteSecret.

              - *
            • - *
            • - *

              To modify an existing secret, use UpdateSecret.

              - *
            • - *
            • - *

              To create a new version of a secret, use PutSecretValue.

              - *
            • - *
            • - *

              To retrieve the encrypted secure string and secure binary values, use GetSecretValue.

              - *
            • - *
            • - *

              To retrieve all other details for a secret, use DescribeSecret. This - * does not include the encrypted secure string and secure binary values.

              - *
            • - *
            • - *

              To retrieve the list of secret versions associated with the current secret, use DescribeSecret and examine the SecretVersionsToStages response - * value.

              - *
            • - *
            + *

            For information about creating a secret in the console, see Create a secret.

            + *

            To create a secret, you can provide the secret value to be encrypted in either the + * SecretString parameter or the SecretBinary parameter, but not both. + * If you include SecretString or SecretBinary + * then Secrets Manager creates an initial secret version and automatically attaches the staging + * label AWSCURRENT to it.

            + *

            If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key + * aws/secretsmanager. If this key + * doesn't already exist in your account, then Secrets Manager creates it for you automatically. All + * users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. + * Creating aws/secretsmanager can result in a one-time significant delay in returning the + * result.

            + *

            If the secret is in a different Amazon Web Services account from the credentials calling the API, then + * you can't use aws/secretsmanager to encrypt the secret, and you must create + * and use a customer managed KMS key.

            */ public createSecret( args: CreateSecretCommandInput, @@ -371,30 +261,8 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Deletes the resource-based permission policy attached to the secret.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:DeleteResourcePolicy

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To attach a resource policy to a secret, use PutResourcePolicy.

              - *
            • - *
            • - *

              To retrieve the current resource-based policy attached to a secret, use GetResourcePolicy.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            + *

            Deletes the resource-based permission policy attached to the secret. To attach a policy to + * a secret, use PutResourcePolicy.

            */ public deleteResourcePolicy( args: DeleteResourcePolicyCommandInput, @@ -426,52 +294,19 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Deletes an entire secret and all of the versions. You can optionally include a recovery - * window during which you can restore the secret. If you don't specify a recovery window value, - * the operation defaults to 30 days. Secrets Manager attaches a DeletionDate stamp to + *

            Deletes a secret and all of its versions. You can specify a recovery + * window during which you can restore the secret. The minimum recovery window is 7 days. + * The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to * the secret that specifies the end of the recovery window. At the end of the recovery window, * Secrets Manager deletes the secret permanently.

            + *

            For information about deleting a secret in the console, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html.

            + *

            Secrets Manager performs the permanent secret deletion at the end of the waiting period as a + * background task with low priority. There is no guarantee of a specific time after the + * recovery window for the permanent delete to occur.

            *

            At any time before recovery window ends, you can use RestoreSecret to * remove the DeletionDate and cancel the deletion of the secret.

            - *

            You cannot access the encrypted secret information in any secret scheduled for deletion. - * If you need to access that information, you must cancel the deletion with RestoreSecret and then retrieve the information.

            - * - *
              - *
            • - *

              There is no explicit operation to delete a version of a secret. Instead, remove all - * staging labels from the VersionStage field of a version. That marks the - * version as deprecated and allows Secrets Manager to delete it as needed. Versions without any - * staging labels do not show up in ListSecretVersionIds unless you - * specify IncludeDeprecated.

              - *
            • - *
            • - *

              The permanent secret deletion at the end of the waiting period is performed as a - * background task with low priority. There is no guarantee of a specific time after the - * recovery window for the actual delete operation to occur.

              - *
            • - *
            - *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:DeleteSecret

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To create a secret, use CreateSecret.

              - *
            • - *
            • - *

              To cancel deletion of a version of a secret before the recovery window has expired, - * use RestoreSecret.

              - *
            • - *
            + *

            In a secret scheduled for deletion, you cannot access the encrypted secret value. + * To access that information, first cancel the deletion with RestoreSecret and then retrieve the information.

            */ public deleteSecret( args: DeleteSecretCommandInput, @@ -500,34 +335,8 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Retrieves the details of a secret. It does not include the encrypted fields. Secrets - * Manager only returns fields populated with a value in the response.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:DescribeSecret

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To create a secret, use CreateSecret.

              - *
            • - *
            • - *

              To modify a secret, use UpdateSecret.

              - *
            • - *
            • - *

              To retrieve the encrypted secret information in a version of the secret, use GetSecretValue.

              - *
            • - *
            • - *

              To list all of the secrets in the Amazon Web Services account, use ListSecrets.

              - *
            • - *
            + *

            Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager + * only returns fields that have a value in the response.

            */ public describeSecret( args: DescribeSecretCommandInput, @@ -559,19 +368,9 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Generates a random password of the specified complexity. This operation is intended for - * use in the Lambda rotation function. Per best practice, we recommend that you specify the + *

            Generates a random password. We recommend that you specify the * maximum length and include every character type that the system you are generating a password * for can support.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:GetRandomPassword

              - *
            • - *
            */ public getRandomPassword( args: GetRandomPasswordCommandInput, @@ -603,33 +402,10 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Retrieves the JSON text of the resource-based policy document attached to the specified - * secret. The JSON request string input and response output displays formatted code - * with white space and line breaks for better readability. Submit your input as a single line - * JSON string.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:GetResourcePolicy

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To attach a resource policy to a secret, use PutResourcePolicy.

              - *
            • - *
            • - *

              To delete the resource-based policy attached to a secret, use DeleteResourcePolicy.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            + *

            Retrieves the JSON text of the resource-based policy document attached to the + * secret. For more information about permissions policies attached to a secret, see + * Permissions + * policies attached to a secret.

            */ public getResourcePolicy( args: GetResourcePolicyCommandInput, @@ -664,31 +440,10 @@ export class SecretsManager extends SecretsManagerClient { *

            Retrieves the contents of the encrypted fields SecretString or * SecretBinary from the specified version of a secret, whichever contains * content.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:GetSecretValue

              - *
            • - *
            • - *

              kms:Decrypt - required only if you use a customer-managed Amazon Web Services KMS key to encrypt the - * secret. You do not need this permission to use the account's default Amazon Web Services managed CMK for - * Secrets Manager.

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To create a new version of the secret with different encrypted information, use PutSecretValue.

              - *
            • - *
            • - *

              To retrieve the non-encrypted details for the secret, use DescribeSecret.

              - *
            • - *
            + *

            For information about retrieving the secret value in the console, see Retrieve secrets.

            + *

            To run this command, you must have secretsmanager:GetSecretValue permissions. + * If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key + * aws/secretsmanager, then you also need kms:Decrypt permissions for that key.

            */ public getSecretValue( args: GetSecretValueCommandInput, @@ -720,36 +475,17 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Lists all of the secrets that are stored by Secrets Manager in the Amazon Web Services account. To list the - * versions currently stored for a specific secret, use ListSecretVersionIds. - * The encrypted fields SecretString and SecretBinary are not included - * in the output. To get that information, call the GetSecretValue - * operation.

            - * - *

            Always check the NextToken response parameter - * when calling any of the List* operations. These operations can occasionally return - * an empty or shorter than expected list of results even when there more results become available. - * When this happens, the NextToken response parameter contains a value to pass to the - * next call to the same API to request the next part of the list.

            - *
            + *

            Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account.

            + *

            To list the versions of a secret, use ListSecretVersionIds.

            + *

            To get the secret value from SecretString or SecretBinary, + * call GetSecretValue.

            + *

            For information about finding secrets in the console, see Enhanced search capabilities + * for secrets in Secrets Manager.

            *

            * Minimum * permissions *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:ListSecrets

              - *
            • - *
            - *

            - * Related operations - *

            - * + *

            To run this command, you must have secretsmanager:ListSecrets permissions.

            */ public listSecrets(args: ListSecretsCommandInput, options?: __HttpHandlerOptions): Promise; public listSecrets(args: ListSecretsCommandInput, cb: (err: any, data?: ListSecretsCommandOutput) => void): void; @@ -775,35 +511,16 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Lists all of the versions attached to the specified secret. The output does not include - * the SecretString or SecretBinary fields. By default, the list - * includes only versions that have at least one staging label in VersionStage - * attached.

            - * - *

            Always check the NextToken response parameter - * when calling any of the List* operations. These operations can occasionally return - * an empty or shorter than expected list of results even when there more results become available. - * When this happens, the NextToken response parameter contains a value to pass to the - * next call to the same API to request the next part of the list.

            - *
            + *

            Lists the versions for a secret.

            + *

            To list the secrets in the account, use ListSecrets.

            + *

            To get the secret value from SecretString or SecretBinary, + * call GetSecretValue.

            + * *

            * Minimum * permissions *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:ListSecretVersionIds

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To list the secrets in an account, use ListSecrets.

              - *
            • - *
            + *

            To run this command, you must have secretsmanager:ListSecretVersionIds permissions.

            */ public listSecretVersionIds( args: ListSecretVersionIdsCommandInput, @@ -835,38 +552,11 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Attaches the contents of the specified resource-based permission policy to a secret. A - * resource-based policy is optional. Alternatively, you can use IAM identity-based policies - * that specify the secret's Amazon Resource Name (ARN) in the policy statement's - * Resources element. You can also use a combination of both identity-based and - * resource-based policies. The affected users and roles receive the permissions that are - * permitted by all of the relevant policies. For more information, see Using Resource-Based - * Policies for Amazon Web Services Secrets Manager. For the complete description of the Amazon Web Services policy syntax and - * grammar, see IAM JSON - * Policy Reference in the IAM User Guide.

            - *

            - * Minimum permissions + *

            Attaches a resource-based permission policy to a secret. A resource-based policy is + * optional. For more information, see Authentication and access control for Secrets Manager *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:PutResourcePolicy

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To retrieve the resource policy attached to a secret, use GetResourcePolicy.

              - *
            • - *
            • - *

              To delete the resource-based policy attached to a secret, use DeleteResourcePolicy.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            + *

            For information about attaching a policy in the console, see Attach a + * permissions policy to a secret.

            */ public putResourcePolicy( args: PutResourcePolicyCommandInput, @@ -898,95 +588,27 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Stores a new encrypted secret value in the specified secret. To do this, the operation - * creates a new version and attaches it to the secret. The version can contain a new - * SecretString value or a new SecretBinary value. You can also - * specify the staging labels that are initially attached to the new version.

            + *

            Creates a new version with a new encrypted secret value and attaches it to the secret. The + * version can contain a new SecretString value or a new SecretBinary value.

            *

            We recommend you avoid calling PutSecretValue at a sustained rate of more than * once every 10 minutes. When you update the secret value, Secrets Manager creates a new version * of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not * remove versions created less than 24 hours ago. If you call PutSecretValue more * than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach * the quota for secret versions.

            - *
              - *
            • - *

              If this operation creates the first version for the secret then Secrets Manager - * automatically attaches the staging label AWSCURRENT to the new version.

              - *
            • - *
            • - *

              If you do not specify a value for VersionStages then Secrets Manager automatically - * moves the staging label AWSCURRENT to this new version.

              - *
            • - *
            • - *

              If this operation moves the staging label AWSCURRENT from another version to this - * version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to - * the version that AWSCURRENT was removed from.

              - *
            • - *
            • - *

              This operation is idempotent. If a version with a VersionId with the same - * value as the ClientRequestToken parameter already exists and you specify the - * same secret data, the operation succeeds but does nothing. However, if the secret data is - * different, then the operation fails because you cannot modify an existing version; you can - * only create new ones.

              - *
            • - *
            - * - *
              - *
            • - *

              If you call an operation to encrypt or decrypt the SecretString - * or SecretBinary for a secret in the same account as the calling user and that - * secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default - * Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key - * doesn't already exist in your account then Secrets Manager creates it for you automatically. All - * users and roles in the same Amazon Web Services account automatically have access to use the default CMK. - * Note that if an Secrets Manager API call results in Amazon Web Services creating the account's - * Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the - * result.

              - *
            • - *
            • - *

              If the secret resides in a different Amazon Web Services account from the credentials calling an API that - * requires encryption or decryption of the secret value then you must create and use a custom - * Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials - * from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the - * secret or when you update it by including it in the KMSKeyId. If you call an - * API that must encrypt or decrypt SecretString or SecretBinary - * using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account - * access to that other account's user or role for both the kms:GenerateDataKey and - * kms:Decrypt operations.

              - *
            • - *
            - *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:PutSecretValue

              - *
            • - *
            • - *

              kms:GenerateDataKey - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt - * the secret. You do not need this permission to use the account's default Amazon Web Services managed CMK - * for Secrets Manager.

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To retrieve the encrypted value you store in the version of a secret, use GetSecretValue.

              - *
            • - *
            • - *

              To create a secret, use CreateSecret.

              - *
            • - *
            • - *

              To get the details for a secret, use DescribeSecret.

              - *
            • - *
            • - *

              To list the versions attached to a secret, use ListSecretVersionIds.

              - *
            • - *
            + *

            You can specify the staging labels to attach to the new version in VersionStages. + * If you don't include VersionStages, then Secrets Manager automatically + * moves the staging label AWSCURRENT to this version. If this operation creates + * the first version for the secret, then Secrets Manager + * automatically attaches the staging label AWSCURRENT to it .

            + *

            If this operation moves the staging label AWSCURRENT from another version to this + * version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to + * the version that AWSCURRENT was removed from.

            + *

            This operation is idempotent. If a version with a VersionId with the same + * value as the ClientRequestToken parameter already exists, and you specify the + * same secret data, the operation succeeds but does nothing. However, if the secret data is + * different, then the operation fails because you can't modify an existing version; you can + * only create new ones.

            */ public putSecretValue( args: PutSecretValueCommandInput, @@ -1018,7 +640,7 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Remove regions from replication.

            + *

            For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

            */ public removeRegionsFromReplication( args: RemoveRegionsFromReplicationCommandInput, @@ -1050,8 +672,7 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Converts an existing secret to a multi-Region secret and begins replication the secret to a - * list of new regions.

            + *

            Replicates the secret to a new Regions. See Multi-Region secrets.

            */ public replicateSecretToRegions( args: ReplicateSecretToRegionsCommandInput, @@ -1084,24 +705,7 @@ export class SecretsManager extends SecretsManagerClient { /** *

            Cancels the scheduled deletion of a secret by removing the DeletedDate time - * stamp. This makes the secret accessible to query once again.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:RestoreSecret

              - *
            • - *
            - *

            - * Related operations - *

            - * + * stamp. You can access a secret again after it has been restored.

            */ public restoreSecret( args: RestoreSecretCommandInput, @@ -1133,68 +737,25 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Configures and starts the asynchronous process of rotating this secret. If you include the - * configuration parameters, the operation sets those values for the secret and then immediately - * starts a rotation. If you do not include the configuration parameters, the operation starts a - * rotation with the values already stored in the secret. After the rotation completes, the - * protected service and its clients all use the new version of the secret.

            - *

            This required configuration information includes the ARN of an Amazon Web Services Lambda function and - * optionally, the time between scheduled rotations. The Lambda rotation function creates a new - * version of the secret and creates or updates the credentials on the protected service to - * match. After testing the new credentials, the function marks the new secret with the staging - * label AWSCURRENT so that your clients all immediately begin to use the new version. For more - * information about rotating secrets and how to configure a Lambda function to rotate the - * secrets for your protected service, see Rotating Secrets in Amazon Web Services Secrets Manager in the - * Amazon Web Services Secrets Manager User Guide.

            - *

            Secrets Manager schedules the next rotation when the previous - * one completes. Secrets Manager schedules the date by adding the rotation interval (number of days) to the - * actual date of the last rotation. The service chooses the hour within that 24-hour date window - * randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour - * and influenced by a variety of factors that help distribute load.

            - *

            The - * rotation function must end with the versions of the secret in one of two states:

            - *
              - *
            • - *

              The AWSPENDING and AWSCURRENT staging labels are attached to the same version of - * the secret, or

              - *
            • - *
            • - *

              The AWSPENDING staging label is not attached to any version of the secret.

              - *
            • - *
            + *

            Configures and starts the asynchronous process of rotating the secret.

            + *

            If you include the + * configuration parameters, the operation sets the values for the secret and then immediately + * starts a rotation. If you don't include the configuration parameters, the operation starts a + * rotation with the values already stored in the secret. For more information about rotation, + * see Rotate secrets.

            + *

            To configure rotation, you include the ARN of an Amazon Web Services Lambda function and the schedule + * for the rotation. The Lambda rotation function creates a new + * version of the secret and creates or updates the credentials on the database or service to + * match. After testing the new credentials, the function marks the new secret version with the staging + * label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more + * information, see How rotation works.

            + *

            When rotation is successful, the AWSPENDING staging label might be attached to the same + * version as the AWSCURRENT version, or it might not be attached to any version.

            *

            If the AWSPENDING staging label is present but not attached to the same version as - * AWSCURRENT then any later invocation of RotateSecret assumes that a previous + * AWSCURRENT, then any later invocation of RotateSecret assumes that a previous * rotation request is still in progress and returns an error.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:RotateSecret

              - *
            • - *
            • - *

              lambda:InvokeFunction (on the function specified in the secret's metadata)

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To list the secrets in your account, use ListSecrets.

              - *
            • - *
            • - *

              To get the details for a version of a secret, use DescribeSecret.

              - *
            • - *
            • - *

              To create a new version of a secret, use CreateSecret.

              - *
            • - *
            • - *

              To attach staging labels to or remove staging labels from a version of a secret, use - * UpdateSecretVersionStage.

              - *
            • - *
            + *

            To run this command, you must have secretsmanager:RotateSecret permissions and + * lambda:InvokeFunction permissions on the function specified in the secret's metadata.

            */ public rotateSecret( args: RotateSecretCommandInput, @@ -1223,7 +784,8 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Removes the secret from replication and promotes the secret to a regional secret in the replica Region.

            + *

            Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

            + *

            You must call this operation from the Region in which you want to promote the replica to a primary secret.

            */ public stopReplicationToReplica( args: StopReplicationToReplicaCommandInput, @@ -1255,20 +817,18 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Attaches one or more tags, each consisting of a key name and a value, to the specified - * secret. Tags are part of the secret's overall metadata, and are not associated with any - * specific version of the secret. This operation only appends tags to the existing list of tags. - * To remove tags, you must use UntagResource.

            - *

            The following basic restrictions apply to tags:

            + *

            Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the + * secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

            + *

            The following restrictions apply to tags:

            *
              *
            • - *

              Maximum number of tags per secret—50

              + *

              Maximum number of tags per secret: 50

              *
            • *
            • - *

              Maximum key length—127 Unicode characters in UTF-8

              + *

              Maximum key length: 127 Unicode characters in UTF-8

              *
            • *
            • - *

              Maximum value length—255 Unicode characters in UTF-8

              + *

              Maximum value length: 255 Unicode characters in UTF-8

              *
            • *
            • *

              Tag keys and values are case sensitive.

              @@ -1280,37 +840,18 @@ export class SecretsManager extends SecretsManagerClient { *
            • *
            • *

              If you use your tagging schema across multiple services and resources, - * remember other services might have restrictions on allowed characters. Generally + * other services might have restrictions on allowed characters. Generally * allowed characters: letters, spaces, and numbers representable in UTF-8, plus the * following special characters: + - = . _ : / @.

              *
            • *
            + * * *

            If you use tags as part of your security strategy, then adding or removing a tag can * change permissions. If successfully completing this operation would result in you losing * your permissions for this secret, then the operation is blocked and returns an Access Denied * error.

            *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:TagResource

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To remove one or more tags from the collection attached to a secret, use UntagResource.

              - *
            • - *
            • - *

              To view the list of tags attached to a secret, use DescribeSecret.

              - *
            • - *
            */ public tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; public tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; @@ -1336,7 +877,7 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Removes one or more tags from the specified secret.

            + *

            Removes specific tags from a secret.

            *

            This operation is idempotent. If a requested tag is not attached to the secret, no error * is returned and the secret metadata is unchanged.

            * @@ -1345,26 +886,6 @@ export class SecretsManager extends SecretsManagerClient { * permissions for this secret, then the operation is blocked and returns an Access Denied * error.

            *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:UntagResource

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To add one or more tags to the collection attached to a secret, use TagResource.

              - *
            • - *
            • - *

              To view the list of tags attached to a secret, use DescribeSecret.

              - *
            • - *
            */ public untagResource( args: UntagResourceCommandInput, @@ -1396,10 +917,8 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Modifies many of the details of the specified secret.

            - *

            To change the secret value, you can also use PutSecretValue.

            - *

            To change the rotation configuration of a secret, use RotateSecret - * instead.

            + *

            Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use PutSecretValue.

            + *

            To change the rotation configuration of a secret, use RotateSecret instead.

            * *

            We recommend you avoid calling UpdateSecret at a sustained rate of more than * once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version @@ -1407,85 +926,23 @@ export class SecretsManager extends SecretsManagerClient { * remove versions created less than 24 hours ago. If you update the secret value more * than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach * the quota for secret versions.

            - * - *

            The Secrets Manager console uses only the SecretString parameter and therefore limits - * you to encrypting and storing only a text string. To encrypt and store binary data as part - * of the version of a secret, you must use either the Amazon Web Services CLI or one of the Amazon Web Services - * SDKs.

            - *
            - *
              - *
            • - *

              If a version with a VersionId with the same value as the - * ClientRequestToken parameter already exists, the operation results in an - * error. You cannot modify an existing version, you can only create a new version.

              - *
            • - *
            • - *

              If you include SecretString or SecretBinary to create a new - * secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new - * version.

              - *
            • - *
            - * - *
              - *
            • - *

              If you call an operation to encrypt or decrypt the SecretString - * or SecretBinary for a secret in the same account as the calling user and that - * secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default - * Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key - * doesn't already exist in your account then Secrets Manager creates it for you automatically. All - * users and roles in the same Amazon Web Services account automatically have access to use the default CMK. - * Note that if an Secrets Manager API call results in Amazon Web Services creating the account's - * Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the - * result.

              - *
            • - *
            • - *

              If the secret resides in a different Amazon Web Services account from the credentials calling an API that - * requires encryption or decryption of the secret value then you must create and use a custom - * Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials - * from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the - * secret or when you update it by including it in the KMSKeyId. If you call an - * API that must encrypt or decrypt SecretString or SecretBinary - * using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account - * access to that other account's user or role for both the kms:GenerateDataKey and - * kms:Decrypt operations.

              - *
            • - *
            - *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:UpdateSecret

              - *
            • - *
            • - *

              kms:GenerateDataKey - needed only if you use a custom Amazon Web Services KMS key to encrypt the secret. - * You do not need this permission to use the account's Amazon Web Services managed CMK for - * Secrets Manager.

              - *
            • - *
            • - *

              kms:Decrypt - needed only if you use a custom Amazon Web Services KMS key to encrypt the secret. You do - * not need this permission to use the account's Amazon Web Services managed CMK for Secrets Manager.

              - *
            • - *
            - *

            - * Related operations - *

            - * + *

            If you include SecretString or SecretBinary to create a new + * secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new + * version.

            + *

            If you call this operation with a VersionId that matches an existing version's + * ClientRequestToken, the operation results in an error. You can't modify an existing + * version, you can only create a new version. To remove a version, remove all staging labels from it. See + * UpdateSecretVersionStage.

            + *

            If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key + * aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager + * creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access + * to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time + * significant delay in returning the result.

            + *

            If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't + * use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed key.

            + * + *

            To run this command, you must have secretsmanager:UpdateSecret permissions. If you use a + * customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions .

            */ public updateSecret( args: UpdateSecretCommandInput, @@ -1514,14 +971,13 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Modifies the staging labels attached to a version of a secret. Staging labels are used to - * track a version as it progresses through the secret rotation process. You can attach a staging - * label to only one version of a secret at a time. If a staging label to be added is already - * attached to another version, then it is moved--removed from the other version first and - * then attached to this one. For more information about staging labels, see Staging - * Labels in the Amazon Web Services Secrets Manager User Guide.

            + *

            Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to + * track a version as it progresses through the secret rotation process. Each staging label can be + * attached to only one version at a time. To add a staging label to a version when it is already + * attached to another version, Secrets Manager first removes it from the other version first and + * then attaches it to this one. For more information about versions and staging labels, see Concepts: Version.

            *

            The staging labels that you specify in the VersionStage parameter are added - * to the existing list of staging labels--they don't replace it.

            + * to the existing list of staging labels for the version.

            *

            You can move the AWSCURRENT staging label to this version by including it in this * call.

            * @@ -1530,27 +986,6 @@ export class SecretsManager extends SecretsManagerClient { * *

            If this action results in the last label being removed from a version, then the version is * considered to be 'deprecated' and can be deleted by Secrets Manager.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:UpdateSecretVersionStage

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To get the list of staging labels that are currently associated with a version of a - * secret, use - * DescribeSecret - * and examine the - * SecretVersionsToStages response value.

              - *
            • - *
            */ public updateSecretVersionStage( args: UpdateSecretVersionStageCommandInput, @@ -1582,15 +1017,13 @@ export class SecretsManager extends SecretsManagerClient { } /** - *

            Validates that the resource policy does not grant a wide range of IAM principals access to - * your secret. The JSON request string input and response output displays formatted code - * with white space and line breaks for better readability. Submit your input as a single line - * JSON string. A resource-based policy is optional for secrets.

            - *

            The API performs three checks when validating the secret:

            + *

            Validates that a resource policy does not grant a wide range of principals access to + * your secret. A resource-based policy is optional for secrets.

            + *

            The API performs three checks when validating the policy:

            *
              *
            • - *

              Sends a call to Zelkova, an automated reasoning engine, to ensure your Resource Policy does not - * allow broad access to your secret.

              + *

              Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not + * allow broad access to your secret, for example policies that use a wildcard for the principal.

              *
            • *
            • *

              Checks for correct syntax in a policy.

              @@ -1599,24 +1032,6 @@ export class SecretsManager extends SecretsManagerClient { *

              Verifies the policy does not lock out a caller.

              *
            • *
            - * - * - *

            - * Minimum Permissions - *

            - *

            You must have the permissions required to access the following APIs:

            - *
              - *
            • - *

              - * secretsmanager:PutResourcePolicy - *

              - *
            • - *
            • - *

              - * secretsmanager:ValidateResourcePolicy - *

              - *
            • - *
            */ public validateResourcePolicy( args: ValidateResourcePolicyCommandInput, diff --git a/clients/client-secrets-manager/src/SecretsManagerClient.ts b/clients/client-secrets-manager/src/SecretsManagerClient.ts index 5d3ad7ba0bff..120dc8d4f18c 100644 --- a/clients/client-secrets-manager/src/SecretsManagerClient.ts +++ b/clients/client-secrets-manager/src/SecretsManagerClient.ts @@ -351,7 +351,7 @@ export interface SecretsManagerClientResolvedConfig extends SecretsManagerClient * account and delivers log files to an Amazon S3 bucket. By using information that's collected * by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the * request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services - * CloudTrail, see Logging + * CloudTrail, see Logging * Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide. * To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

            */ diff --git a/clients/client-secrets-manager/src/commands/CancelRotateSecretCommand.ts b/clients/client-secrets-manager/src/commands/CancelRotateSecretCommand.ts index a8ac24b46212..4a00042939a2 100644 --- a/clients/client-secrets-manager/src/commands/CancelRotateSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/CancelRotateSecretCommand.ts @@ -22,59 +22,17 @@ export interface CancelRotateSecretCommandInput extends CancelRotateSecretReques export interface CancelRotateSecretCommandOutput extends CancelRotateSecretResponse, __MetadataBearer {} /** - *

            Disables automatic scheduled rotation and cancels the rotation of a secret if currently in - * progress.

            - *

            To re-enable scheduled rotation, call RotateSecret with - * AutomaticallyRotateAfterDays set to a value greater than 0. This immediately - * rotates your secret and then enables the automatic schedule.

            + *

            Turns off automatic rotation, and if a rotation is currently in + * progress, cancels the rotation.

            + *

            To turn on automatic rotation again, call RotateSecret.

            * - *

            If you cancel a rotation while in progress, it can leave the VersionStage + *

            If you cancel a rotation in progress, it can leave the VersionStage * labels in an unexpected state. Depending on the step of the rotation in progress, you might * need to remove the staging label AWSPENDING from the partially created version, specified - * by the VersionId response value. You should also evaluate the partially rotated - * new version to see if it should be deleted, which you can do by removing all staging labels - * from the new version VersionStage field.

            + * by the VersionId response value. We recommend you also evaluate the partially rotated + * new version to see if it should be deleted. You can delete a version by removing all staging labels + * from it.

            *
            - *

            To successfully start a rotation, the staging label AWSPENDING must be in one of the - * following states:

            - *
              - *
            • - *

              Not attached to any version at all

              - *
            • - *
            • - *

              Attached to the same version as the staging label AWSCURRENT - *

              - *
            • - *
            - *

            If the staging label AWSPENDING attached to a different version than the version with - * AWSCURRENT then the attempt to rotate fails.

            - * - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:CancelRotateSecret

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To configure rotation for a secret or to manually trigger a rotation, use RotateSecret.

              - *
            • - *
            • - *

              To get the rotation configuration details for a secret, use DescribeSecret.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            • - *

              To list all of the versions currently associated with a secret, use ListSecretVersionIds.

              - *
            • - *
            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/CreateSecretCommand.ts b/clients/client-secrets-manager/src/commands/CreateSecretCommand.ts index a7a4c5f38b60..ce2bb8e203c7 100644 --- a/clients/client-secrets-manager/src/commands/CreateSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/CreateSecretCommand.ts @@ -22,94 +22,26 @@ export interface CreateSecretCommandInput extends CreateSecretRequest {} export interface CreateSecretCommandOutput extends CreateSecretResponse, __MetadataBearer {} /** - *

            Creates a new secret. A secret in Secrets Manager consists of both the protected secret data and the + *

            Creates a new secret. A secret is a set of credentials, such as a + * user name and password, that you store in an encrypted form in Secrets Manager. The secret also + * includes the connection information to access a database or other service, which Secrets Manager + * doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the * important information needed to manage the secret.

            - *

            Secrets Manager stores the encrypted secret data in one of a collection of "versions" - * associated with the secret. Each version contains a copy of the encrypted secret data. Each - * version is associated with one or more "staging labels" that identify where the version is in - * the rotation cycle. The SecretVersionsToStages field of the secret contains the - * mapping of staging labels to the active versions of the secret. Versions without a staging - * label are considered deprecated and not included in the list.

            - *

            You provide the secret data to be encrypted by putting text in either the - * SecretString parameter or binary data in the SecretBinary - * parameter, but not both. If you include SecretString or SecretBinary - * then Secrets Manager also creates an initial secret version and automatically attaches the staging - * label AWSCURRENT to the new version.

            - * - *
              - *
            • - *

              If you call an operation to encrypt or decrypt the SecretString - * or SecretBinary for a secret in the same account as the calling user and that - * secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default - * Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key - * doesn't already exist in your account then Secrets Manager creates it for you automatically. All - * users and roles in the same Amazon Web Services account automatically have access to use the default CMK. - * Note that if an Secrets Manager API call results in Amazon Web Services creating the account's - * Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the - * result.

              - *
            • - *
            • - *

              If the secret resides in a different Amazon Web Services account from the credentials calling an API that - * requires encryption or decryption of the secret value then you must create and use a custom - * Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials - * from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the - * secret or when you update it by including it in the KMSKeyId. If you call an - * API that must encrypt or decrypt SecretString or SecretBinary - * using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account - * access to that other account's user or role for both the kms:GenerateDataKey and - * kms:Decrypt operations.

              - *
            • - *
            - *
            - *

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:CreateSecret

              - *
            • - *
            • - *

              kms:GenerateDataKey - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt - * the secret. You do not need this permission to use the account default Amazon Web Services managed CMK - * for Secrets Manager.

              - *
            • - *
            • - *

              kms:Decrypt - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt the - * secret. You do not need this permission to use the account default Amazon Web Services managed CMK for - * Secrets Manager.

              - *
            • - *
            • - *

              secretsmanager:TagResource - needed only if you include the Tags - * parameter.

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To delete a secret, use DeleteSecret.

              - *
            • - *
            • - *

              To modify an existing secret, use UpdateSecret.

              - *
            • - *
            • - *

              To create a new version of a secret, use PutSecretValue.

              - *
            • - *
            • - *

              To retrieve the encrypted secure string and secure binary values, use GetSecretValue.

              - *
            • - *
            • - *

              To retrieve all other details for a secret, use DescribeSecret. This - * does not include the encrypted secure string and secure binary values.

              - *
            • - *
            • - *

              To retrieve the list of secret versions associated with the current secret, use DescribeSecret and examine the SecretVersionsToStages response - * value.

              - *
            • - *
            + *

            For information about creating a secret in the console, see Create a secret.

            + *

            To create a secret, you can provide the secret value to be encrypted in either the + * SecretString parameter or the SecretBinary parameter, but not both. + * If you include SecretString or SecretBinary + * then Secrets Manager creates an initial secret version and automatically attaches the staging + * label AWSCURRENT to it.

            + *

            If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key + * aws/secretsmanager. If this key + * doesn't already exist in your account, then Secrets Manager creates it for you automatically. All + * users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. + * Creating aws/secretsmanager can result in a one-time significant delay in returning the + * result.

            + *

            If the secret is in a different Amazon Web Services account from the credentials calling the API, then + * you can't use aws/secretsmanager to encrypt the secret, and you must create + * and use a customer managed KMS key.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/DeleteResourcePolicyCommand.ts b/clients/client-secrets-manager/src/commands/DeleteResourcePolicyCommand.ts index 4d84087566a1..7ae5672be0da 100644 --- a/clients/client-secrets-manager/src/commands/DeleteResourcePolicyCommand.ts +++ b/clients/client-secrets-manager/src/commands/DeleteResourcePolicyCommand.ts @@ -22,30 +22,8 @@ export interface DeleteResourcePolicyCommandInput extends DeleteResourcePolicyRe export interface DeleteResourcePolicyCommandOutput extends DeleteResourcePolicyResponse, __MetadataBearer {} /** - *

            Deletes the resource-based permission policy attached to the secret.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:DeleteResourcePolicy

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To attach a resource policy to a secret, use PutResourcePolicy.

              - *
            • - *
            • - *

              To retrieve the current resource-based policy attached to a secret, use GetResourcePolicy.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            + *

            Deletes the resource-based permission policy attached to the secret. To attach a policy to + * a secret, use PutResourcePolicy.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/DeleteSecretCommand.ts b/clients/client-secrets-manager/src/commands/DeleteSecretCommand.ts index 10fbf44938af..c95f561f993b 100644 --- a/clients/client-secrets-manager/src/commands/DeleteSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/DeleteSecretCommand.ts @@ -22,52 +22,19 @@ export interface DeleteSecretCommandInput extends DeleteSecretRequest {} export interface DeleteSecretCommandOutput extends DeleteSecretResponse, __MetadataBearer {} /** - *

            Deletes an entire secret and all of the versions. You can optionally include a recovery - * window during which you can restore the secret. If you don't specify a recovery window value, - * the operation defaults to 30 days. Secrets Manager attaches a DeletionDate stamp to + *

            Deletes a secret and all of its versions. You can specify a recovery + * window during which you can restore the secret. The minimum recovery window is 7 days. + * The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to * the secret that specifies the end of the recovery window. At the end of the recovery window, * Secrets Manager deletes the secret permanently.

            + *

            For information about deleting a secret in the console, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html.

            + *

            Secrets Manager performs the permanent secret deletion at the end of the waiting period as a + * background task with low priority. There is no guarantee of a specific time after the + * recovery window for the permanent delete to occur.

            *

            At any time before recovery window ends, you can use RestoreSecret to * remove the DeletionDate and cancel the deletion of the secret.

            - *

            You cannot access the encrypted secret information in any secret scheduled for deletion. - * If you need to access that information, you must cancel the deletion with RestoreSecret and then retrieve the information.

            - * - *
              - *
            • - *

              There is no explicit operation to delete a version of a secret. Instead, remove all - * staging labels from the VersionStage field of a version. That marks the - * version as deprecated and allows Secrets Manager to delete it as needed. Versions without any - * staging labels do not show up in ListSecretVersionIds unless you - * specify IncludeDeprecated.

              - *
            • - *
            • - *

              The permanent secret deletion at the end of the waiting period is performed as a - * background task with low priority. There is no guarantee of a specific time after the - * recovery window for the actual delete operation to occur.

              - *
            • - *
            - *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:DeleteSecret

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To create a secret, use CreateSecret.

              - *
            • - *
            • - *

              To cancel deletion of a version of a secret before the recovery window has expired, - * use RestoreSecret.

              - *
            • - *
            + *

            In a secret scheduled for deletion, you cannot access the encrypted secret value. + * To access that information, first cancel the deletion with RestoreSecret and then retrieve the information.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/DescribeSecretCommand.ts b/clients/client-secrets-manager/src/commands/DescribeSecretCommand.ts index a65e1493291c..ec1e4fb176aa 100644 --- a/clients/client-secrets-manager/src/commands/DescribeSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/DescribeSecretCommand.ts @@ -22,34 +22,8 @@ export interface DescribeSecretCommandInput extends DescribeSecretRequest {} export interface DescribeSecretCommandOutput extends DescribeSecretResponse, __MetadataBearer {} /** - *

            Retrieves the details of a secret. It does not include the encrypted fields. Secrets - * Manager only returns fields populated with a value in the response.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:DescribeSecret

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To create a secret, use CreateSecret.

              - *
            • - *
            • - *

              To modify a secret, use UpdateSecret.

              - *
            • - *
            • - *

              To retrieve the encrypted secret information in a version of the secret, use GetSecretValue.

              - *
            • - *
            • - *

              To list all of the secrets in the Amazon Web Services account, use ListSecrets.

              - *
            • - *
            + *

            Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager + * only returns fields that have a value in the response.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/GetRandomPasswordCommand.ts b/clients/client-secrets-manager/src/commands/GetRandomPasswordCommand.ts index 476e432f240e..21b19c0b21a7 100644 --- a/clients/client-secrets-manager/src/commands/GetRandomPasswordCommand.ts +++ b/clients/client-secrets-manager/src/commands/GetRandomPasswordCommand.ts @@ -22,19 +22,9 @@ export interface GetRandomPasswordCommandInput extends GetRandomPasswordRequest export interface GetRandomPasswordCommandOutput extends GetRandomPasswordResponse, __MetadataBearer {} /** - *

            Generates a random password of the specified complexity. This operation is intended for - * use in the Lambda rotation function. Per best practice, we recommend that you specify the + *

            Generates a random password. We recommend that you specify the * maximum length and include every character type that the system you are generating a password * for can support.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:GetRandomPassword

              - *
            • - *
            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/GetResourcePolicyCommand.ts b/clients/client-secrets-manager/src/commands/GetResourcePolicyCommand.ts index 4c0e8a689ecb..01b043831e52 100644 --- a/clients/client-secrets-manager/src/commands/GetResourcePolicyCommand.ts +++ b/clients/client-secrets-manager/src/commands/GetResourcePolicyCommand.ts @@ -22,33 +22,10 @@ export interface GetResourcePolicyCommandInput extends GetResourcePolicyRequest export interface GetResourcePolicyCommandOutput extends GetResourcePolicyResponse, __MetadataBearer {} /** - *

            Retrieves the JSON text of the resource-based policy document attached to the specified - * secret. The JSON request string input and response output displays formatted code - * with white space and line breaks for better readability. Submit your input as a single line - * JSON string.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:GetResourcePolicy

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To attach a resource policy to a secret, use PutResourcePolicy.

              - *
            • - *
            • - *

              To delete the resource-based policy attached to a secret, use DeleteResourcePolicy.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            + *

            Retrieves the JSON text of the resource-based policy document attached to the + * secret. For more information about permissions policies attached to a secret, see + * Permissions + * policies attached to a secret.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/GetSecretValueCommand.ts b/clients/client-secrets-manager/src/commands/GetSecretValueCommand.ts index 728c53f9d6c2..5e043b036c49 100644 --- a/clients/client-secrets-manager/src/commands/GetSecretValueCommand.ts +++ b/clients/client-secrets-manager/src/commands/GetSecretValueCommand.ts @@ -25,31 +25,10 @@ export interface GetSecretValueCommandOutput extends GetSecretValueResponse, __M *

            Retrieves the contents of the encrypted fields SecretString or * SecretBinary from the specified version of a secret, whichever contains * content.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:GetSecretValue

              - *
            • - *
            • - *

              kms:Decrypt - required only if you use a customer-managed Amazon Web Services KMS key to encrypt the - * secret. You do not need this permission to use the account's default Amazon Web Services managed CMK for - * Secrets Manager.

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To create a new version of the secret with different encrypted information, use PutSecretValue.

              - *
            • - *
            • - *

              To retrieve the non-encrypted details for the secret, use DescribeSecret.

              - *
            • - *
            + *

            For information about retrieving the secret value in the console, see Retrieve secrets.

            + *

            To run this command, you must have secretsmanager:GetSecretValue permissions. + * If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key + * aws/secretsmanager, then you also need kms:Decrypt permissions for that key.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/ListSecretVersionIdsCommand.ts b/clients/client-secrets-manager/src/commands/ListSecretVersionIdsCommand.ts index cf159ac3c30f..1eac9a10f58d 100644 --- a/clients/client-secrets-manager/src/commands/ListSecretVersionIdsCommand.ts +++ b/clients/client-secrets-manager/src/commands/ListSecretVersionIdsCommand.ts @@ -22,35 +22,16 @@ export interface ListSecretVersionIdsCommandInput extends ListSecretVersionIdsRe export interface ListSecretVersionIdsCommandOutput extends ListSecretVersionIdsResponse, __MetadataBearer {} /** - *

            Lists all of the versions attached to the specified secret. The output does not include - * the SecretString or SecretBinary fields. By default, the list - * includes only versions that have at least one staging label in VersionStage - * attached.

            - * - *

            Always check the NextToken response parameter - * when calling any of the List* operations. These operations can occasionally return - * an empty or shorter than expected list of results even when there more results become available. - * When this happens, the NextToken response parameter contains a value to pass to the - * next call to the same API to request the next part of the list.

            - *
            + *

            Lists the versions for a secret.

            + *

            To list the secrets in the account, use ListSecrets.

            + *

            To get the secret value from SecretString or SecretBinary, + * call GetSecretValue.

            + * *

            * Minimum * permissions *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:ListSecretVersionIds

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To list the secrets in an account, use ListSecrets.

              - *
            • - *
            + *

            To run this command, you must have secretsmanager:ListSecretVersionIds permissions.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/ListSecretsCommand.ts b/clients/client-secrets-manager/src/commands/ListSecretsCommand.ts index 54298ea84a5c..8c0445b82218 100644 --- a/clients/client-secrets-manager/src/commands/ListSecretsCommand.ts +++ b/clients/client-secrets-manager/src/commands/ListSecretsCommand.ts @@ -22,36 +22,17 @@ export interface ListSecretsCommandInput extends ListSecretsRequest {} export interface ListSecretsCommandOutput extends ListSecretsResponse, __MetadataBearer {} /** - *

            Lists all of the secrets that are stored by Secrets Manager in the Amazon Web Services account. To list the - * versions currently stored for a specific secret, use ListSecretVersionIds. - * The encrypted fields SecretString and SecretBinary are not included - * in the output. To get that information, call the GetSecretValue - * operation.

            - * - *

            Always check the NextToken response parameter - * when calling any of the List* operations. These operations can occasionally return - * an empty or shorter than expected list of results even when there more results become available. - * When this happens, the NextToken response parameter contains a value to pass to the - * next call to the same API to request the next part of the list.

            - *
            + *

            Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account.

            + *

            To list the versions of a secret, use ListSecretVersionIds.

            + *

            To get the secret value from SecretString or SecretBinary, + * call GetSecretValue.

            + *

            For information about finding secrets in the console, see Enhanced search capabilities + * for secrets in Secrets Manager.

            *

            * Minimum * permissions *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:ListSecrets

              - *
            • - *
            - *

            - * Related operations - *

            - * + *

            To run this command, you must have secretsmanager:ListSecrets permissions.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/PutResourcePolicyCommand.ts b/clients/client-secrets-manager/src/commands/PutResourcePolicyCommand.ts index 5029e736758a..b3b5d89646e8 100644 --- a/clients/client-secrets-manager/src/commands/PutResourcePolicyCommand.ts +++ b/clients/client-secrets-manager/src/commands/PutResourcePolicyCommand.ts @@ -22,38 +22,11 @@ export interface PutResourcePolicyCommandInput extends PutResourcePolicyRequest export interface PutResourcePolicyCommandOutput extends PutResourcePolicyResponse, __MetadataBearer {} /** - *

            Attaches the contents of the specified resource-based permission policy to a secret. A - * resource-based policy is optional. Alternatively, you can use IAM identity-based policies - * that specify the secret's Amazon Resource Name (ARN) in the policy statement's - * Resources element. You can also use a combination of both identity-based and - * resource-based policies. The affected users and roles receive the permissions that are - * permitted by all of the relevant policies. For more information, see Using Resource-Based - * Policies for Amazon Web Services Secrets Manager. For the complete description of the Amazon Web Services policy syntax and - * grammar, see IAM JSON - * Policy Reference in the IAM User Guide.

            - *

            - * Minimum permissions + *

            Attaches a resource-based permission policy to a secret. A resource-based policy is + * optional. For more information, see Authentication and access control for Secrets Manager *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:PutResourcePolicy

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To retrieve the resource policy attached to a secret, use GetResourcePolicy.

              - *
            • - *
            • - *

              To delete the resource-based policy attached to a secret, use DeleteResourcePolicy.

              - *
            • - *
            • - *

              To list all of the currently available secrets, use ListSecrets.

              - *
            • - *
            + *

            For information about attaching a policy in the console, see Attach a + * permissions policy to a secret.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/PutSecretValueCommand.ts b/clients/client-secrets-manager/src/commands/PutSecretValueCommand.ts index b044cd6a1902..181335e964f7 100644 --- a/clients/client-secrets-manager/src/commands/PutSecretValueCommand.ts +++ b/clients/client-secrets-manager/src/commands/PutSecretValueCommand.ts @@ -22,95 +22,27 @@ export interface PutSecretValueCommandInput extends PutSecretValueRequest {} export interface PutSecretValueCommandOutput extends PutSecretValueResponse, __MetadataBearer {} /** - *

            Stores a new encrypted secret value in the specified secret. To do this, the operation - * creates a new version and attaches it to the secret. The version can contain a new - * SecretString value or a new SecretBinary value. You can also - * specify the staging labels that are initially attached to the new version.

            + *

            Creates a new version with a new encrypted secret value and attaches it to the secret. The + * version can contain a new SecretString value or a new SecretBinary value.

            *

            We recommend you avoid calling PutSecretValue at a sustained rate of more than * once every 10 minutes. When you update the secret value, Secrets Manager creates a new version * of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not * remove versions created less than 24 hours ago. If you call PutSecretValue more * than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach * the quota for secret versions.

            - *
              - *
            • - *

              If this operation creates the first version for the secret then Secrets Manager - * automatically attaches the staging label AWSCURRENT to the new version.

              - *
            • - *
            • - *

              If you do not specify a value for VersionStages then Secrets Manager automatically - * moves the staging label AWSCURRENT to this new version.

              - *
            • - *
            • - *

              If this operation moves the staging label AWSCURRENT from another version to this - * version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to - * the version that AWSCURRENT was removed from.

              - *
            • - *
            • - *

              This operation is idempotent. If a version with a VersionId with the same - * value as the ClientRequestToken parameter already exists and you specify the - * same secret data, the operation succeeds but does nothing. However, if the secret data is - * different, then the operation fails because you cannot modify an existing version; you can - * only create new ones.

              - *
            • - *
            - * - *
              - *
            • - *

              If you call an operation to encrypt or decrypt the SecretString - * or SecretBinary for a secret in the same account as the calling user and that - * secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default - * Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key - * doesn't already exist in your account then Secrets Manager creates it for you automatically. All - * users and roles in the same Amazon Web Services account automatically have access to use the default CMK. - * Note that if an Secrets Manager API call results in Amazon Web Services creating the account's - * Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the - * result.

              - *
            • - *
            • - *

              If the secret resides in a different Amazon Web Services account from the credentials calling an API that - * requires encryption or decryption of the secret value then you must create and use a custom - * Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials - * from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the - * secret or when you update it by including it in the KMSKeyId. If you call an - * API that must encrypt or decrypt SecretString or SecretBinary - * using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account - * access to that other account's user or role for both the kms:GenerateDataKey and - * kms:Decrypt operations.

              - *
            • - *
            - *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:PutSecretValue

              - *
            • - *
            • - *

              kms:GenerateDataKey - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt - * the secret. You do not need this permission to use the account's default Amazon Web Services managed CMK - * for Secrets Manager.

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To retrieve the encrypted value you store in the version of a secret, use GetSecretValue.

              - *
            • - *
            • - *

              To create a secret, use CreateSecret.

              - *
            • - *
            • - *

              To get the details for a secret, use DescribeSecret.

              - *
            • - *
            • - *

              To list the versions attached to a secret, use ListSecretVersionIds.

              - *
            • - *
            + *

            You can specify the staging labels to attach to the new version in VersionStages. + * If you don't include VersionStages, then Secrets Manager automatically + * moves the staging label AWSCURRENT to this version. If this operation creates + * the first version for the secret, then Secrets Manager + * automatically attaches the staging label AWSCURRENT to it .

            + *

            If this operation moves the staging label AWSCURRENT from another version to this + * version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to + * the version that AWSCURRENT was removed from.

            + *

            This operation is idempotent. If a version with a VersionId with the same + * value as the ClientRequestToken parameter already exists, and you specify the + * same secret data, the operation succeeds but does nothing. However, if the secret data is + * different, then the operation fails because you can't modify an existing version; you can + * only create new ones.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/RemoveRegionsFromReplicationCommand.ts b/clients/client-secrets-manager/src/commands/RemoveRegionsFromReplicationCommand.ts index c46c50a8f3f5..bfd6ce44a714 100644 --- a/clients/client-secrets-manager/src/commands/RemoveRegionsFromReplicationCommand.ts +++ b/clients/client-secrets-manager/src/commands/RemoveRegionsFromReplicationCommand.ts @@ -24,7 +24,7 @@ export interface RemoveRegionsFromReplicationCommandOutput __MetadataBearer {} /** - *

            Remove regions from replication.

            + *

            For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/ReplicateSecretToRegionsCommand.ts b/clients/client-secrets-manager/src/commands/ReplicateSecretToRegionsCommand.ts index 35c97ea92eec..81ed2d8903fa 100644 --- a/clients/client-secrets-manager/src/commands/ReplicateSecretToRegionsCommand.ts +++ b/clients/client-secrets-manager/src/commands/ReplicateSecretToRegionsCommand.ts @@ -22,8 +22,7 @@ export interface ReplicateSecretToRegionsCommandInput extends ReplicateSecretToR export interface ReplicateSecretToRegionsCommandOutput extends ReplicateSecretToRegionsResponse, __MetadataBearer {} /** - *

            Converts an existing secret to a multi-Region secret and begins replication the secret to a - * list of new regions.

            + *

            Replicates the secret to a new Regions. See Multi-Region secrets.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/RestoreSecretCommand.ts b/clients/client-secrets-manager/src/commands/RestoreSecretCommand.ts index 72a242b77fa2..0a958ffd39dd 100644 --- a/clients/client-secrets-manager/src/commands/RestoreSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/RestoreSecretCommand.ts @@ -23,24 +23,7 @@ export interface RestoreSecretCommandOutput extends RestoreSecretResponse, __Met /** *

            Cancels the scheduled deletion of a secret by removing the DeletedDate time - * stamp. This makes the secret accessible to query once again.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:RestoreSecret

              - *
            • - *
            - *

            - * Related operations - *

            - * + * stamp. You can access a secret again after it has been restored.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/RotateSecretCommand.ts b/clients/client-secrets-manager/src/commands/RotateSecretCommand.ts index 21d8879a175d..eb380550198f 100644 --- a/clients/client-secrets-manager/src/commands/RotateSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/RotateSecretCommand.ts @@ -22,68 +22,25 @@ export interface RotateSecretCommandInput extends RotateSecretRequest {} export interface RotateSecretCommandOutput extends RotateSecretResponse, __MetadataBearer {} /** - *

            Configures and starts the asynchronous process of rotating this secret. If you include the - * configuration parameters, the operation sets those values for the secret and then immediately - * starts a rotation. If you do not include the configuration parameters, the operation starts a - * rotation with the values already stored in the secret. After the rotation completes, the - * protected service and its clients all use the new version of the secret.

            - *

            This required configuration information includes the ARN of an Amazon Web Services Lambda function and - * optionally, the time between scheduled rotations. The Lambda rotation function creates a new - * version of the secret and creates or updates the credentials on the protected service to - * match. After testing the new credentials, the function marks the new secret with the staging - * label AWSCURRENT so that your clients all immediately begin to use the new version. For more - * information about rotating secrets and how to configure a Lambda function to rotate the - * secrets for your protected service, see Rotating Secrets in Amazon Web Services Secrets Manager in the - * Amazon Web Services Secrets Manager User Guide.

            - *

            Secrets Manager schedules the next rotation when the previous - * one completes. Secrets Manager schedules the date by adding the rotation interval (number of days) to the - * actual date of the last rotation. The service chooses the hour within that 24-hour date window - * randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour - * and influenced by a variety of factors that help distribute load.

            - *

            The - * rotation function must end with the versions of the secret in one of two states:

            - *
              - *
            • - *

              The AWSPENDING and AWSCURRENT staging labels are attached to the same version of - * the secret, or

              - *
            • - *
            • - *

              The AWSPENDING staging label is not attached to any version of the secret.

              - *
            • - *
            + *

            Configures and starts the asynchronous process of rotating the secret.

            + *

            If you include the + * configuration parameters, the operation sets the values for the secret and then immediately + * starts a rotation. If you don't include the configuration parameters, the operation starts a + * rotation with the values already stored in the secret. For more information about rotation, + * see Rotate secrets.

            + *

            To configure rotation, you include the ARN of an Amazon Web Services Lambda function and the schedule + * for the rotation. The Lambda rotation function creates a new + * version of the secret and creates or updates the credentials on the database or service to + * match. After testing the new credentials, the function marks the new secret version with the staging + * label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more + * information, see How rotation works.

            + *

            When rotation is successful, the AWSPENDING staging label might be attached to the same + * version as the AWSCURRENT version, or it might not be attached to any version.

            *

            If the AWSPENDING staging label is present but not attached to the same version as - * AWSCURRENT then any later invocation of RotateSecret assumes that a previous + * AWSCURRENT, then any later invocation of RotateSecret assumes that a previous * rotation request is still in progress and returns an error.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:RotateSecret

              - *
            • - *
            • - *

              lambda:InvokeFunction (on the function specified in the secret's metadata)

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To list the secrets in your account, use ListSecrets.

              - *
            • - *
            • - *

              To get the details for a version of a secret, use DescribeSecret.

              - *
            • - *
            • - *

              To create a new version of a secret, use CreateSecret.

              - *
            • - *
            • - *

              To attach staging labels to or remove staging labels from a version of a secret, use - * UpdateSecretVersionStage.

              - *
            • - *
            + *

            To run this command, you must have secretsmanager:RotateSecret permissions and + * lambda:InvokeFunction permissions on the function specified in the secret's metadata.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/StopReplicationToReplicaCommand.ts b/clients/client-secrets-manager/src/commands/StopReplicationToReplicaCommand.ts index 1dd742015c00..30c64452f29b 100644 --- a/clients/client-secrets-manager/src/commands/StopReplicationToReplicaCommand.ts +++ b/clients/client-secrets-manager/src/commands/StopReplicationToReplicaCommand.ts @@ -22,7 +22,8 @@ export interface StopReplicationToReplicaCommandInput extends StopReplicationToR export interface StopReplicationToReplicaCommandOutput extends StopReplicationToReplicaResponse, __MetadataBearer {} /** - *

            Removes the secret from replication and promotes the secret to a regional secret in the replica Region.

            + *

            Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

            + *

            You must call this operation from the Region in which you want to promote the replica to a primary secret.

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/TagResourceCommand.ts b/clients/client-secrets-manager/src/commands/TagResourceCommand.ts index fde78f3fadb1..08ada873d633 100644 --- a/clients/client-secrets-manager/src/commands/TagResourceCommand.ts +++ b/clients/client-secrets-manager/src/commands/TagResourceCommand.ts @@ -22,20 +22,18 @@ export interface TagResourceCommandInput extends TagResourceRequest {} export interface TagResourceCommandOutput extends __MetadataBearer {} /** - *

            Attaches one or more tags, each consisting of a key name and a value, to the specified - * secret. Tags are part of the secret's overall metadata, and are not associated with any - * specific version of the secret. This operation only appends tags to the existing list of tags. - * To remove tags, you must use UntagResource.

            - *

            The following basic restrictions apply to tags:

            + *

            Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the + * secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

            + *

            The following restrictions apply to tags:

            *
              *
            • - *

              Maximum number of tags per secret—50

              + *

              Maximum number of tags per secret: 50

              *
            • *
            • - *

              Maximum key length—127 Unicode characters in UTF-8

              + *

              Maximum key length: 127 Unicode characters in UTF-8

              *
            • *
            • - *

              Maximum value length—255 Unicode characters in UTF-8

              + *

              Maximum value length: 255 Unicode characters in UTF-8

              *
            • *
            • *

              Tag keys and values are case sensitive.

              @@ -47,37 +45,18 @@ export interface TagResourceCommandOutput extends __MetadataBearer {} *
            • *
            • *

              If you use your tagging schema across multiple services and resources, - * remember other services might have restrictions on allowed characters. Generally + * other services might have restrictions on allowed characters. Generally * allowed characters: letters, spaces, and numbers representable in UTF-8, plus the * following special characters: + - = . _ : / @.

              *
            • *
            + * * *

            If you use tags as part of your security strategy, then adding or removing a tag can * change permissions. If successfully completing this operation would result in you losing * your permissions for this secret, then the operation is blocked and returns an Access Denied * error.

            *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:TagResource

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To remove one or more tags from the collection attached to a secret, use UntagResource.

              - *
            • - *
            • - *

              To view the list of tags attached to a secret, use DescribeSecret.

              - *
            • - *
            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/UntagResourceCommand.ts b/clients/client-secrets-manager/src/commands/UntagResourceCommand.ts index 0462d2731e7c..c3e2822c77c0 100644 --- a/clients/client-secrets-manager/src/commands/UntagResourceCommand.ts +++ b/clients/client-secrets-manager/src/commands/UntagResourceCommand.ts @@ -22,7 +22,7 @@ export interface UntagResourceCommandInput extends UntagResourceRequest {} export interface UntagResourceCommandOutput extends __MetadataBearer {} /** - *

            Removes one or more tags from the specified secret.

            + *

            Removes specific tags from a secret.

            *

            This operation is idempotent. If a requested tag is not attached to the secret, no error * is returned and the secret metadata is unchanged.

            * @@ -31,26 +31,6 @@ export interface UntagResourceCommandOutput extends __MetadataBearer {} * permissions for this secret, then the operation is blocked and returns an Access Denied * error.

            *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:UntagResource

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To add one or more tags to the collection attached to a secret, use TagResource.

              - *
            • - *
            • - *

              To view the list of tags attached to a secret, use DescribeSecret.

              - *
            • - *
            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/UpdateSecretCommand.ts b/clients/client-secrets-manager/src/commands/UpdateSecretCommand.ts index 3e5c3eedb1f1..a25a24383a75 100644 --- a/clients/client-secrets-manager/src/commands/UpdateSecretCommand.ts +++ b/clients/client-secrets-manager/src/commands/UpdateSecretCommand.ts @@ -22,10 +22,8 @@ export interface UpdateSecretCommandInput extends UpdateSecretRequest {} export interface UpdateSecretCommandOutput extends UpdateSecretResponse, __MetadataBearer {} /** - *

            Modifies many of the details of the specified secret.

            - *

            To change the secret value, you can also use PutSecretValue.

            - *

            To change the rotation configuration of a secret, use RotateSecret - * instead.

            + *

            Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use PutSecretValue.

            + *

            To change the rotation configuration of a secret, use RotateSecret instead.

            * *

            We recommend you avoid calling UpdateSecret at a sustained rate of more than * once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version @@ -33,85 +31,23 @@ export interface UpdateSecretCommandOutput extends UpdateSecretResponse, __Metad * remove versions created less than 24 hours ago. If you update the secret value more * than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach * the quota for secret versions.

            - * - *

            The Secrets Manager console uses only the SecretString parameter and therefore limits - * you to encrypting and storing only a text string. To encrypt and store binary data as part - * of the version of a secret, you must use either the Amazon Web Services CLI or one of the Amazon Web Services - * SDKs.

            - *
            - *
              - *
            • - *

              If a version with a VersionId with the same value as the - * ClientRequestToken parameter already exists, the operation results in an - * error. You cannot modify an existing version, you can only create a new version.

              - *
            • - *
            • - *

              If you include SecretString or SecretBinary to create a new - * secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new - * version.

              - *
            • - *
            - * - *
              - *
            • - *

              If you call an operation to encrypt or decrypt the SecretString - * or SecretBinary for a secret in the same account as the calling user and that - * secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default - * Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key - * doesn't already exist in your account then Secrets Manager creates it for you automatically. All - * users and roles in the same Amazon Web Services account automatically have access to use the default CMK. - * Note that if an Secrets Manager API call results in Amazon Web Services creating the account's - * Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the - * result.

              - *
            • - *
            • - *

              If the secret resides in a different Amazon Web Services account from the credentials calling an API that - * requires encryption or decryption of the secret value then you must create and use a custom - * Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials - * from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the - * secret or when you update it by including it in the KMSKeyId. If you call an - * API that must encrypt or decrypt SecretString or SecretBinary - * using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account - * access to that other account's user or role for both the kms:GenerateDataKey and - * kms:Decrypt operations.

              - *
            • - *
            - *
            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:UpdateSecret

              - *
            • - *
            • - *

              kms:GenerateDataKey - needed only if you use a custom Amazon Web Services KMS key to encrypt the secret. - * You do not need this permission to use the account's Amazon Web Services managed CMK for - * Secrets Manager.

              - *
            • - *
            • - *

              kms:Decrypt - needed only if you use a custom Amazon Web Services KMS key to encrypt the secret. You do - * not need this permission to use the account's Amazon Web Services managed CMK for Secrets Manager.

              - *
            • - *
            - *

            - * Related operations - *

            - * + *

            If you include SecretString or SecretBinary to create a new + * secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new + * version.

            + *

            If you call this operation with a VersionId that matches an existing version's + * ClientRequestToken, the operation results in an error. You can't modify an existing + * version, you can only create a new version. To remove a version, remove all staging labels from it. See + * UpdateSecretVersionStage.

            + *

            If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key + * aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager + * creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access + * to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time + * significant delay in returning the result.

            + *

            If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't + * use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed key.

            + * + *

            To run this command, you must have secretsmanager:UpdateSecret permissions. If you use a + * customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions .

            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/UpdateSecretVersionStageCommand.ts b/clients/client-secrets-manager/src/commands/UpdateSecretVersionStageCommand.ts index 5c198c7eb560..0a106ecc7a0f 100644 --- a/clients/client-secrets-manager/src/commands/UpdateSecretVersionStageCommand.ts +++ b/clients/client-secrets-manager/src/commands/UpdateSecretVersionStageCommand.ts @@ -22,14 +22,13 @@ export interface UpdateSecretVersionStageCommandInput extends UpdateSecretVersio export interface UpdateSecretVersionStageCommandOutput extends UpdateSecretVersionStageResponse, __MetadataBearer {} /** - *

            Modifies the staging labels attached to a version of a secret. Staging labels are used to - * track a version as it progresses through the secret rotation process. You can attach a staging - * label to only one version of a secret at a time. If a staging label to be added is already - * attached to another version, then it is moved--removed from the other version first and - * then attached to this one. For more information about staging labels, see Staging - * Labels in the Amazon Web Services Secrets Manager User Guide.

            + *

            Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to + * track a version as it progresses through the secret rotation process. Each staging label can be + * attached to only one version at a time. To add a staging label to a version when it is already + * attached to another version, Secrets Manager first removes it from the other version first and + * then attaches it to this one. For more information about versions and staging labels, see Concepts: Version.

            *

            The staging labels that you specify in the VersionStage parameter are added - * to the existing list of staging labels--they don't replace it.

            + * to the existing list of staging labels for the version.

            *

            You can move the AWSCURRENT staging label to this version by including it in this * call.

            * @@ -38,27 +37,6 @@ export interface UpdateSecretVersionStageCommandOutput extends UpdateSecretVersi * *

            If this action results in the last label being removed from a version, then the version is * considered to be 'deprecated' and can be deleted by Secrets Manager.

            - *

            - * Minimum permissions - *

            - *

            To run this command, you must have the following permissions:

            - *
              - *
            • - *

              secretsmanager:UpdateSecretVersionStage

              - *
            • - *
            - *

            - * Related operations - *

            - *
              - *
            • - *

              To get the list of staging labels that are currently associated with a version of a - * secret, use - * DescribeSecret - * and examine the - * SecretVersionsToStages response value.

              - *
            • - *
            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/commands/ValidateResourcePolicyCommand.ts b/clients/client-secrets-manager/src/commands/ValidateResourcePolicyCommand.ts index e3034539277e..cd1c85a342de 100644 --- a/clients/client-secrets-manager/src/commands/ValidateResourcePolicyCommand.ts +++ b/clients/client-secrets-manager/src/commands/ValidateResourcePolicyCommand.ts @@ -22,15 +22,13 @@ export interface ValidateResourcePolicyCommandInput extends ValidateResourcePoli export interface ValidateResourcePolicyCommandOutput extends ValidateResourcePolicyResponse, __MetadataBearer {} /** - *

            Validates that the resource policy does not grant a wide range of IAM principals access to - * your secret. The JSON request string input and response output displays formatted code - * with white space and line breaks for better readability. Submit your input as a single line - * JSON string. A resource-based policy is optional for secrets.

            - *

            The API performs three checks when validating the secret:

            + *

            Validates that a resource policy does not grant a wide range of principals access to + * your secret. A resource-based policy is optional for secrets.

            + *

            The API performs three checks when validating the policy:

            *
              *
            • - *

              Sends a call to Zelkova, an automated reasoning engine, to ensure your Resource Policy does not - * allow broad access to your secret.

              + *

              Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not + * allow broad access to your secret, for example policies that use a wildcard for the principal.

              *
            • *
            • *

              Checks for correct syntax in a policy.

              @@ -39,24 +37,6 @@ export interface ValidateResourcePolicyCommandOutput extends ValidateResourcePol *

              Verifies the policy does not lock out a caller.

              *
            • *
            - * - * - *

            - * Minimum Permissions - *

            - *

            You must have the permissions required to access the following APIs:

            - *
              - *
            • - *

              - * secretsmanager:PutResourcePolicy - *

              - *
            • - *
            • - *

              - * secretsmanager:ValidateResourcePolicy - *

              - *
            • - *
            * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-secrets-manager/src/endpoints.ts b/clients/client-secrets-manager/src/endpoints.ts index 4e13b6a4aa28..75a2066074fa 100644 --- a/clients/client-secrets-manager/src/endpoints.ts +++ b/clients/client-secrets-manager/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-secrets-manager/src/models/models_0.ts b/clients/client-secrets-manager/src/models/models_0.ts index c3a1dd2d88cd..00c7d89d9507 100644 --- a/clients/client-secrets-manager/src/models/models_0.ts +++ b/clients/client-secrets-manager/src/models/models_0.ts @@ -2,16 +2,16 @@ import { SENSITIVE_STRING } from "@aws-sdk/smithy-client"; import { MetadataBearer as $MetadataBearer, SmithyException as __SmithyException } from "@aws-sdk/types"; /** - *

            (Optional) Custom type consisting of a Region (required) and the KmsKeyId which can be an ARN, Key ID, or Alias.

            + *

            A custom type that specifies a Region and the KmsKeyId for a replica secret.

            */ export interface ReplicaRegionType { /** - *

            Describes a single instance of Region objects.

            + *

            A Region code. For a list of Region codes, see Name and code of Regions.

            */ Region?: string; /** - *

            Can be an ARN, Key ID, or Alias.

            + *

            The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses aws/secretsmanager.

            */ KmsKeyId?: string; } @@ -27,8 +27,7 @@ export namespace ReplicaRegionType { export interface CancelRotateSecretRequest { /** - *

            Specifies the secret to cancel a rotation request. You can specify either the Amazon - * Resource Name (ARN) or the friendly name of the secret.

            + *

            The ARN or name of the secret.

            *

            For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

            */ @@ -46,21 +45,21 @@ export namespace CancelRotateSecretRequest { export interface CancelRotateSecretResponse { /** - *

            The ARN of the secret for which rotation was canceled.

            + *

            The ARN of the secret.

            */ ARN?: string; /** - *

            The friendly name of the secret for which rotation was canceled.

            + *

            The name of the secret.

            */ Name?: string; /** *

            The unique identifier of the version of the secret created during the rotation. This - * version might not be complete, and should be evaluated for possible deletion. At the very - * least, you should remove the VersionStage value AWSPENDING to enable this - * version to be deleted. Failing to clean up a cancelled rotation can block you from - * successfully starting future rotations.

            + * version might not be complete, and should be evaluated for possible deletion. We recommend + * that you remove the VersionStage value AWSPENDING from this version so that + * Secrets Manager can delete it. Failing to clean up a cancelled rotation can block you from + * starting future rotations.

            */ VersionId?: string; } @@ -93,7 +92,7 @@ export namespace InternalServiceError { } /** - *

            You provided an invalid value for a parameter.

            + *

            The parameter name is invalid value.

            */ export interface InvalidParameterException extends __SmithyException, $MetadataBearer { name: "InvalidParameterException"; @@ -111,12 +110,12 @@ export namespace InvalidParameterException { } /** - *

            You provided a parameter value that is not valid for the current state of the + *

            A parameter value is not valid for the current state of the * resource.

            *

            Possible causes:

            *
              *
            • - *

              You tried to perform the operation on a secret that's currently marked deleted.

              + *

              The secret is scheduled for deletion.

              *
            • *
            • *

              You tried to enable rotation on a secret that doesn't already have a Lambda function @@ -140,7 +139,7 @@ export namespace InvalidRequestException { } /** - *

              We can't find the resource that you asked for.

              + *

              Secrets Manager can't find the resource that you asked for.

              */ export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { name: "ResourceNotFoundException"; @@ -183,27 +182,26 @@ export namespace Tag { export interface CreateSecretRequest { /** - *

              Specifies the friendly name of the new secret.

              - *

              The secret name must be ASCII letters, digits, or the following characters : + *

              The name of the new secret.

              + *

              The secret name can contain ASCII letters, numbers, and the following characters: * /_+=.@-

              - * - *

              Do not end your secret name with a hyphen followed by six characters. If you do so, you + * + *

              Do not end your secret name with a hyphen followed by six characters. If you do so, you * risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager - * automatically adds a hyphen and six random characters at the end of the ARN.

              - *
              + * automatically adds a hyphen and six random characters after the secret name at the end of the ARN.

              */ Name: string | undefined; /** - *

              (Optional) If you include SecretString or SecretBinary, then an - * initial version is created as part of the secret, and this parameter specifies a unique + *

              If you include SecretString or SecretBinary, then + * Secrets Manager creates an initial version for the secret, and this parameter specifies the unique * identifier for the new version.

              * - *

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can + *

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can * leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it * as the value for this parameter in the request. If you don't use the SDK and instead * generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a - * ClientRequestToken yourself for the new version and include the value in the + * ClientRequestToken yourself for the new version and include the value in the * request.

              *
              *

              This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental @@ -222,7 +220,7 @@ export interface CreateSecretRequest { *

            • *
            • *

              If a version with this value already exists and that version's - * SecretString and SecretBinary values are different from those + * SecretString and SecretBinary values are different from those * in the request, then the request fails because you cannot modify an existing version. * Instead, use PutSecretValue to create a new version.

              *
            • @@ -232,93 +230,72 @@ export interface CreateSecretRequest { ClientRequestToken?: string; /** - *

              (Optional) Specifies a user-provided description of the secret.

              + *

              The description of the secret.

              */ Description?: string; /** - *

              (Optional) Specifies the ARN, Key ID, or alias of the Amazon Web Services KMS customer master key (CMK) to - * be used to encrypt the SecretString or SecretBinary values in the - * versions stored in this secret.

              - *

              You can specify any of the supported ways to identify a Amazon Web Services KMS key ID. If you need to - * reference a CMK in a different account, you can use only the key ARN or the alias ARN.

              - *

              If you don't specify this value, then Secrets Manager defaults to using the Amazon Web Services account's - * default CMK (the one named aws/secretsmanager). If a Amazon Web Services KMS CMK with that name doesn't yet - * exist, then Secrets Manager creates it for you automatically the first time it needs to encrypt a - * version's SecretString or SecretBinary fields.

              - * - *

              You can use the account default CMK to encrypt and decrypt only if you call this - * operation using credentials from the same account that owns the secret. If the secret - * resides in a different account, then you must create a custom CMK and specify the ARN in - * this field.

              - *
              + *

              The ARN, key ID, or alias of the KMS key that Secrets Manager uses to + * encrypt the secret value in the secret.

              + *

              To use a KMS key in a different account, use the key ARN or the alias ARN.

              + *

              If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. + * If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it + * encrypts the secret value.

              + *

              If the secret is in a different Amazon Web Services account from the credentials calling the API, then + * you can't use aws/secretsmanager to encrypt the secret, and you must create + * and use a customer managed KMS key.

              */ KmsKeyId?: string; /** - *

              (Optional) Specifies binary data that you want to encrypt and store in the new version of - * the secret. To use this parameter in the command-line tools, we recommend that you store your - * binary data in a file and then use the appropriate technique for your tool to pass the + *

              The binary data to encrypt and store in the new version of + * the secret. We recommend that you store your binary data in a file and then pass the * contents of the file as a parameter.

              *

              Either SecretString or SecretBinary must have a value, but not - * both. They cannot both be empty.

              - *

              This parameter is not available using the Secrets Manager console. It can be accessed only by - * using the Amazon Web Services CLI or one of the Amazon Web Services SDKs.

              + * both.

              + *

              This parameter is not available in the Secrets Manager console.

              */ SecretBinary?: Uint8Array; /** - *

              (Optional) Specifies text data that you want to encrypt and store in this new version of - * the secret.

              + *

              The text data to encrypt and store in this new version of + * the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

              *

              Either SecretString or SecretBinary must have a value, but not - * both. They cannot both be empty.

              + * both.

              *

              If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected * secret text in only the SecretString parameter. The Secrets Manager console stores the - * information as a JSON structure of key/value pairs that the Lambda rotation function knows how - * to parse.

              - *

              For storing multiple values, we recommend that you use a JSON text - * string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI - * in the Amazon Web Services CLI User Guide.

              + * information as a JSON structure of key/value pairs that a Lambda rotation function can parse.

              */ SecretString?: string; /** - *

              (Optional) Specifies a list of user-defined tags that are attached to the secret. Each tag - * is a "Key" and "Value" pair of strings. This operation only appends tags to the existing list - * of tags. To remove tags, you must use UntagResource.

              - * - *
                - *
              • - *

                Secrets Manager tag key names are case sensitive. A tag with the key "ABC" is a different tag - * from one with key "abc".

                - *
              • - *
              • - *

                If you check tags in IAM policy Condition elements as part of your - * security strategy, then adding or removing a tag can change permissions. If the - * successful completion of this operation would result in you losing your permissions for - * this secret, then this operation is blocked and returns an Access Denied - * error.

                - *
              • - *
              - *
              - *

              This parameter requires a JSON text string argument. For information on how to format a - * JSON parameter for the various command line tool environments, see Using JSON for - * Parameters in the CLI User Guide. For example:

              + *

              A list of tags to attach to the secret. Each tag + * is a key and value pair of strings in a JSON text string, for example:

              *

              * [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

              - *

              If your command-line tool or SDK requires quotation marks around the parameter, you should - * use single quotes to avoid confusion with the double quotes required in the JSON text.

              - *

              The following basic restrictions apply to tags:

              + *

              Secrets Manager tag key names are case sensitive. A tag with the key "ABC" is a different tag + * from one with key "abc".

              + *

              If you check tags in permissions policies as part of your + * security strategy, then adding or removing a tag can change permissions. If the + * completion of this operation would result in you losing your permissions for + * this secret, then Secrets Manager blocks the operation and returns an Access Denied + * error. For more information, see Control + * access to secrets using tags and Limit access to identities with tags that match secrets' tags.

              + *

              For information about how to format a + * JSON parameter for the various command line tool environments, see Using JSON for + * Parameters. If your command-line tool or SDK requires quotation marks around the parameter, you should + * use single quotes to avoid confusion with the double quotes required in the JSON text.

              + *

              The following restrictions apply to tags:

              *
                *
              • - *

                Maximum number of tags per secret—50

                + *

                Maximum number of tags per secret: 50

                *
              • *
              • - *

                Maximum key length—127 Unicode characters in UTF-8

                + *

                Maximum key length: 127 Unicode characters in UTF-8

                *
              • *
              • - *

                Maximum value length—255 Unicode characters in UTF-8

                + *

                Maximum value length: 255 Unicode characters in UTF-8

                *
              • *
              • *

                Tag keys and values are case sensitive.

                @@ -330,7 +307,7 @@ export interface CreateSecretRequest { *
              • *
              • *

                If you use your tagging schema across multiple services and resources, - * remember other services might have restrictions on allowed characters. Generally + * other services might have restrictions on allowed characters. Generally * allowed characters: letters, spaces, and numbers representable in UTF-8, plus the * following special characters: + - = . _ : / @.

                *
              • @@ -339,14 +316,13 @@ export interface CreateSecretRequest { Tags?: Tag[]; /** - *

                (Optional) Add a list of regions to replicate secrets. Secrets Manager replicates the KMSKeyID objects to the list of regions specified in - * the parameter.

                + *

                A list of Regions and KMS keys to replicate secrets.

                */ AddReplicaRegions?: ReplicaRegionType[]; /** - *

                (Optional) If set, the replication overwrites a secret with the same name in the - * destination region.

                + *

                Specifies whether to overwrite a secret with the same name in the + * destination Region.

                */ ForceOverwriteReplicaSecret?: boolean; } @@ -389,7 +365,7 @@ export interface ReplicationStatusType { /** *

                Status message such as "Secret with this name already exists in this - * region".

                + * region
                ".

                */ StatusMessage?: string; @@ -410,29 +386,39 @@ export namespace ReplicationStatusType { export interface CreateSecretResponse { /** - *

                The Amazon Resource Name (ARN) of the secret that you just created.

                - * - *

                Secrets Manager automatically adds several random characters to the name at the end of the ARN when - * you initially create a secret. This affects only the ARN and not the actual friendly name. - * This ensures that if you create a new secret with the same name as an old secret that you - * previously deleted, then users with access to the old secret don't - * automatically get access to the new secret because the ARNs are different.

                - *
                + *

                The ARN of the new secret. The ARN includes the name of the secret followed by six random + * characters. This ensures that if you create a new secret with the same name as a deleted secret, + * then users with access to the old secret don't get access to the new secret because the ARNs + * are different.

                */ ARN?: string; /** - *

                The friendly name of the secret that you just created.

                + *

                The name of the new secret.

                */ Name?: string; /** - *

                The unique identifier associated with the version of the secret you just created.

                + *

                The unique identifier associated with the version of the new secret.

                */ VersionId?: string; /** - *

                Describes a list of replication status objects as InProgress, Failed or InSync.

                + *

                A list of the replicas of this secret and their status:

                + *
                  + *
                • + *

                  + * Failed, which indicates that the replica was not created.

                  + *
                • + *
                • + *

                  + * InProgress, which indicates that Secrets Manager is in the process of creating the replica.

                  + *
                • + *
                • + *

                  + * InSync, which indicates that the replica was created.

                  + *
                • + *
                */ ReplicationStatus?: ReplicationStatusType[]; } @@ -448,9 +434,8 @@ export namespace CreateSecretResponse { /** *

                Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the - * customer master key (CMK) is available, enabled, and not in an invalid state. For more - * information, see How Key State Affects Use of a - * Customer Master Key.

                + * KMS key is available, enabled, and not in an invalid state. For more + * information, see Key state: Effect on your KMS key.

                */ export interface EncryptionFailure extends __SmithyException, $MetadataBearer { name: "EncryptionFailure"; @@ -468,7 +453,7 @@ export namespace EncryptionFailure { } /** - *

                The request failed because it would exceed one of the Secrets Manager internal limits.

                + *

                The request failed because it would exceed one of the Secrets Manager quotas.

                */ export interface LimitExceededException extends __SmithyException, $MetadataBearer { name: "LimitExceededException"; @@ -486,7 +471,7 @@ export namespace LimitExceededException { } /** - *

                You provided a resource-based policy with syntax errors.

                + *

                The resource policy has syntax errors.

                */ export interface MalformedPolicyDocumentException extends __SmithyException, $MetadataBearer { name: "MalformedPolicyDocumentException"; @@ -559,8 +544,7 @@ export namespace DecryptionFailure { export interface DeleteResourcePolicyRequest { /** - *

                Specifies the secret that you want to delete the attached resource-based policy for. You - * can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret to delete the attached resource-based policy for.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ @@ -583,7 +567,7 @@ export interface DeleteResourcePolicyResponse { ARN?: string; /** - *

                The friendly name of the secret that the resource-based policy was deleted for.

                + *

                The name of the secret that the resource-based policy was deleted for.

                */ Name?: string; } @@ -599,41 +583,33 @@ export namespace DeleteResourcePolicyResponse { export interface DeleteSecretRequest { /** - *

                Specifies the secret to delete. You can specify either the Amazon Resource Name (ARN) or - * the friendly name of the secret.

                + *

                The ARN or name of the secret to delete.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ SecretId: string | undefined; /** - *

                (Optional) Specifies the number of days that Secrets Manager waits before Secrets Manager can delete the - * secret. You can't use both this parameter and the ForceDeleteWithoutRecovery - * parameter in the same API call.

                - *

                This value can range from 7 to 30 days with a default value of 30.

                + *

                The number of days from 7 to 30 that Secrets Manager waits before permanently deleting the + * secret. You can't use both this parameter and ForceDeleteWithoutRecovery + * in the same call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

                */ RecoveryWindowInDays?: number; /** - *

                (Optional) Specifies that the secret is to be deleted without any recovery window. You - * can't use both this parameter and the RecoveryWindowInDays parameter in the same - * API call.

                - *

                An asynchronous background process performs the actual deletion, so there can be a short - * delay before the operation completes. If you write code to delete and then immediately - * recreate a secret with the same name, ensure that your code includes appropriate back off and - * retry logic.

                + *

                Specifies whether to delete the secret without any recovery window. You + * can't use both this parameter and RecoveryWindowInDays in the same + * call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

                + *

                Secrets Manager performs the actual deletion with an asynchronous background process, so there might + * be a short delay before the secret is permanently deleted. If you delete a secret and then + * immediately create a secret with the same name, use appropriate back off and retry logic.

                * *

                Use this parameter with caution. This parameter causes the operation to skip the normal - * waiting period before the permanent deletion that Amazon Web Services would normally impose with the + * recovery window before the permanent deletion that Secrets Manager would normally impose with the * RecoveryWindowInDays parameter. If you delete a secret with the * ForceDeleteWithouRecovery parameter, then you have no opportunity to recover * the secret. You lose the secret permanently.

                *
                - * - *

                If you use this parameter and include a previously deleted or nonexistent secret, the - * operation does not return the error ResourceNotFoundException in order to - * correctly handle retries.

                - *
                */ ForceDeleteWithoutRecovery?: boolean; } @@ -649,19 +625,19 @@ export namespace DeleteSecretRequest { export interface DeleteSecretResponse { /** - *

                The ARN of the secret that is now scheduled for deletion.

                + *

                The ARN of the secret.

                */ ARN?: string; /** - *

                The friendly name of the secret currently scheduled for deletion.

                + *

                The name of the secret.

                */ Name?: string; /** - *

                The date and time after which this secret can be deleted by Secrets Manager and can no longer be - * restored. This value is the date and time of the delete request plus the number of days - * specified in RecoveryWindowInDays.

                + *

                The date and time after which this secret Secrets Manager can permanently delete this secret, + * and it can no longer be restored. This value is the date and time of the delete request + * plus the number of days in RecoveryWindowInDays.

                */ DeletionDate?: Date; } @@ -677,8 +653,7 @@ export namespace DeleteSecretResponse { export interface DescribeSecretRequest { /** - *

                The identifier of the secret whose details you want to retrieve. You can specify either - * the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ @@ -701,10 +676,10 @@ export interface RotationRulesType { /** *

                Specifies the number of days between automatic scheduled rotations of the secret.

                *

                Secrets Manager schedules the next rotation when the previous - * one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the - * actual date of the last rotation. The service chooses the hour within that 24-hour date window - * randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour - * and influenced by a variety of factors that help distribute load.

                + * one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the + * actual date of the last rotation. The service chooses the hour within that 24-hour date window + * randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour + * and influenced by a variety of factors that help distribute load.

                */ AutomaticallyAfterDays?: number; } @@ -725,48 +700,44 @@ export interface DescribeSecretResponse { ARN?: string; /** - *

                The user-provided friendly name of the secret.

                + *

                The name of the secret.

                */ Name?: string; /** - *

                The user-provided description of the secret.

                + *

                The description of the secret.

                */ Description?: string; /** - *

                The ARN or alias of the Amazon Web Services KMS customer master key (CMK) that's used to encrypt the - * SecretString or SecretBinary fields in each version of the secret. - * If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with the - * default Amazon Web Services KMS CMK (the one named awssecretsmanager) for this account.

                + *

                The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with + * the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

                */ KmsKeyId?: string; /** - *

                Specifies whether automatic rotation is enabled for this secret.

                - *

                To enable rotation, use RotateSecret with - * AutomaticallyRotateAfterDays set to a value greater than 0. To disable + *

                Specifies whether automatic rotation is turned on for this secret.

                + *

                To turn on rotation, use RotateSecret. To turn off * rotation, use CancelRotateSecret.

                */ RotationEnabled?: boolean; /** - *

                The ARN of a Lambda function that's invoked by Secrets Manager to rotate the - * secret either automatically per the schedule or manually by a call to - * RotateSecret.

                + *

                The ARN of the Lambda function that Secrets Manager invokes to rotate the + * secret.

                */ RotationLambdaARN?: string; /** - *

                A structure with the rotation configuration for this secret. This field is only populated - * if rotation is configured.

                + *

                The rotation schedule and Lambda function for this secret. If the secret previously had rotation turned on, but + * it is now turned off, this field shows the previous rotation schedule and rotation function. If the secret never had + * rotation turned on, this field is omitted.

                */ RotationRules?: RotationRulesType; /** - *

                The last date and time that the rotation process for this secret was invoked.

                - *

                The most recent date and time that the Secrets Manager rotation process successfully - * completed. If the secret doesn't rotate, Secrets Manager returns a null value.

                + *

                The last date and time that Secrets Manager rotated the secret. + * If the secret isn't configured for rotation, Secrets Manager returns null.

                */ LastRotatedDate?: Date; @@ -776,54 +747,86 @@ export interface DescribeSecretResponse { LastChangedDate?: Date; /** - *

                The last date that this secret was accessed. This value is truncated to midnight of the - * date and therefore shows only the date, not the time.

                + *

                The last date that the secret value was retrieved. This value does not include the time. This field is omitted if the secret has never been retrieved.

                */ LastAccessedDate?: Date; /** - *

                This value exists if the secret is scheduled for deletion. Some time after the specified - * date and time, Secrets Manager deletes the secret and all of its versions.

                + *

                The date the secret is scheduled for deletion. If it is not scheduled for deletion, this + * field is omitted. When you delete a secret, Secrets Manager requires a + * recovery window of at least 7 days before deleting the secret. Some time after the deleted date, + * Secrets Manager deletes the secret, including all of its versions.

                *

                If a secret is scheduled for deletion, then its details, including the encrypted secret - * information, is not accessible. To cancel a scheduled deletion and restore access, use RestoreSecret.

                + * value, is not accessible. To cancel a scheduled deletion and restore access to the secret, use RestoreSecret.

                */ DeletedDate?: Date; /** - *

                The list of user-defined tags that are associated with the secret. To add tags to a + *

                The list of tags attached to the secret. To add tags to a * secret, use TagResource. To remove tags, use UntagResource.

                */ Tags?: Tag[]; /** - *

                A list of all of the currently assigned VersionStage staging labels and the - * VersionId that each is attached to. Staging labels are used to keep track of - * the different versions during the rotation process.

                - * - *

                A version that does not have any staging labels attached is considered deprecated and - * subject to deletion. Such versions are not included in this list.

                - *
                + *

                A list of the versions of the secret that have staging labels attached. + * Versions that don't have staging labels are considered deprecated and Secrets Manager + * can delete them.

                + *

                Secrets Manager uses staging labels to indicate the status of a secret version during rotation. The three + * staging labels for rotation are:

                + *
                  + *
                • + *

                  + * AWSCURRENT, which indicates the current version of the secret.

                  + *
                • + *
                • + *

                  + * AWSPENDING, which indicates the version of the secret that contains new + * secret information that will become the next current version when rotation finishes.

                  + *

                  During + * rotation, Secrets Manager creates an AWSPENDING version ID before creating the new secret version. + * To check if a secret version exists, call GetSecretValue.

                  + *
                • + *
                • + *

                  + * AWSPREVIOUS, which indicates the previous current version of the secret. + * You can use this as the last known good version.

                  + *
                • + *
                + *

                For more information about rotation and staging labels, see How rotation works.

                */ VersionIdsToStages?: { [key: string]: string[] }; /** - *

                Returns the name of the service that created this secret.

                + *

                The name of the service that created this secret.

                */ OwningService?: string; /** - *

                The date you created the secret.

                + *

                The date the secret was created.

                */ CreatedDate?: Date; /** - *

                Specifies the primary region for secret replication.

                + *

                The Region the secret is in. If a secret is replicated to other Regions, the replicas are listed in ReplicationStatus.

                */ PrimaryRegion?: string; /** - *

                Describes a list of replication status objects as InProgress, Failed or InSync.P - *

                + *

                A list of the replicas of this secret and their status:

                + *
                  + *
                • + *

                  + * Failed, which indicates that the replica was not created.

                  + *
                • + *
                • + *

                  + * InProgress, which indicates that Secrets Manager is in the process of creating the replica.

                  + *
                • + *
                • + *

                  + * InSync, which indicates that the replica was created.

                  + *
                • + *
                */ ReplicationStatus?: ReplicationStatusType[]; } @@ -840,16 +843,42 @@ export namespace DescribeSecretResponse { export type FilterNameStringType = "all" | "description" | "name" | "primary-region" | "tag-key" | "tag-value"; /** - *

                Allows you to add filters when you use the search function in Secrets Manager.

                + *

                Allows you to add filters when you use the search function in Secrets Manager. For more information, see Find secrets in Secrets Manager.

                */ export interface Filter { /** - *

                Filters your list of secrets by a specific key.

                + *

                The following are keys you can use:

                + *
                  + *
                • + *

                  + * description: Prefix match, not case-sensitive.

                  + *
                • + *
                • + *

                  + * name: Prefix match, case-sensitive.

                  + *
                • + *
                • + *

                  + * tag-key: Prefix match, case-sensitive.

                  + *
                • + *
                • + *

                  + * tag-value: Prefix match, case-sensitive.

                  + *
                • + *
                • + *

                  + * primary-region: Prefix match, case-sensitive.

                  + *
                • + *
                • + *

                  + * all: Breaks the filter value string into words and then searches all attributes for matches. Not case-sensitive.

                  + *
                • + *
                */ Key?: FilterNameStringType | string; /** - *

                Filters your list of secrets by a specific value.

                + *

                The keyword to filter for.

                *

                You can prefix your search value with an exclamation mark (!) in order to perform negation filters.

                */ Values?: string[]; @@ -866,59 +895,50 @@ export namespace Filter { export interface GetRandomPasswordRequest { /** - *

                The desired length of the generated password. The default value if you do not include this - * parameter is 32 characters.

                + *

                The length of the password. If you don't include this parameter, the + * default length is 32 characters.

                */ PasswordLength?: number; /** - *

                A string that includes characters that should not be included in the generated password. - * The default is that all characters from the included sets can be used.

                + *

                A string of the characters that you don't want in the password.

                */ ExcludeCharacters?: string; /** - *

                Specifies that the generated password should not include digits. The default if you do not - * include this switch parameter is that digits can be included.

                + *

                Specifies whether to exclude numbers from the password. If you don't + * include this switch, the password can contain numbers.

                */ ExcludeNumbers?: boolean; /** - *

                Specifies that the generated password should not include punctuation characters. The - * default if you do not include this switch parameter is that punctuation characters can be - * included.

                - *

                The following are the punctuation characters that can be included in - * the generated password if you don't explicitly exclude them with - * ExcludeCharacters or ExcludePunctuation:

                - *

                - * ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } - * ~ - *

                + *

                Specifies whether to exclude the following punctuation characters from the password: + * ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~. + * If you don't include this switch, the password can contain punctuation.

                */ ExcludePunctuation?: boolean; /** - *

                Specifies that the generated password should not include uppercase letters. The default if - * you do not include this switch parameter is that uppercase letters can be included.

                + *

                Specifies whether to exclude uppercase letters from the password. If you + * don't include this switch, the password can contain uppercase letters.

                */ ExcludeUppercase?: boolean; /** - *

                Specifies that the generated password should not include lowercase letters. The default if - * you do not include this switch parameter is that lowercase letters can be included.

                + *

                Specifies whether to exclude lowercase letters from the password. If + * you don't include this switch, the password can contain lowercase letters.

                */ ExcludeLowercase?: boolean; /** - *

                Specifies that the generated password can include the space character. The default if you - * do not include this switch parameter is that the space character is not included.

                + *

                Specifies whether to include the space character. If you + * include this switch, the password can contain space characters.

                */ IncludeSpace?: boolean; /** - *

                A boolean value that specifies whether the generated password must include at least one of - * every allowed character type. The default value is True and the operation - * requires at least one of every character type.

                + *

                Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation. + * If you don't include this switch, the password contains at least one of every character type.

                */ RequireEachIncludedType?: boolean; } @@ -934,7 +954,7 @@ export namespace GetRandomPasswordRequest { export interface GetRandomPasswordResponse { /** - *

                A string with the generated password.

                + *

                A string with the password.

                */ RandomPassword?: string; } @@ -951,8 +971,7 @@ export namespace GetRandomPasswordResponse { export interface GetResourcePolicyRequest { /** - *

                Specifies the secret that you want to retrieve the attached resource-based policy for. You - * can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret to retrieve the attached resource-based policy for.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ @@ -975,16 +994,14 @@ export interface GetResourcePolicyResponse { ARN?: string; /** - *

                The friendly name of the secret that the resource-based policy was retrieved for.

                + *

                The name of the secret that the resource-based policy was retrieved for.

                */ Name?: string; /** - *

                A JSON-formatted string that describes the permissions that are associated with the - * attached secret. These permissions are combined with any permissions that are associated with - * the user or role that attempts to access this secret. The combined permissions specify who can - * access the secret and what actions they can perform. For more information, see Authentication and Access Control for - * Amazon Web Services Secrets Manager in the Amazon Web Services Secrets Manager User Guide.

                + *

                A JSON-formatted string that contains the permissions policy + * attached to the secret. For more information about permissions policies, see Authentication and access control for + * Secrets Manager.

                */ ResourcePolicy?: string; } @@ -1000,32 +1017,28 @@ export namespace GetResourcePolicyResponse { export interface GetSecretValueRequest { /** - *

                Specifies the secret containing the version that you want to retrieve. You can specify - * either the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret to retrieve.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ SecretId: string | undefined; /** - *

                Specifies the unique identifier of the version of the secret that you want to retrieve. If - * you specify both this parameter and VersionStage, the two parameters must refer + *

                The unique identifier of the version of the secret to retrieve. If + * you include both this parameter and VersionStage, the two parameters must refer * to the same secret version. If you don't specify either a VersionStage or - * VersionId then the default is to perform the operation on the version with the - * VersionStage value of AWSCURRENT.

                + * VersionId, then Secrets Manager returns the AWSCURRENT version.

                *

                This value is typically a UUID-type value with * 32 hexadecimal digits.

                */ VersionId?: string; /** - *

                Specifies the secret version that you want to retrieve by the staging label attached to - * the version.

                - *

                Staging labels are used to keep track of different versions during the rotation process. - * If you specify both this parameter and VersionId, the two parameters must refer - * to the same secret version . If you don't specify either a VersionStage or - * VersionId, then the default is to perform the operation on the version with the - * VersionStage value of AWSCURRENT.

                + *

                The staging label of the version of the secret to retrieve.

                + *

                Secrets Manager uses staging labels to keep track of different versions during the rotation process. + * If you include both this parameter and VersionId, the two parameters must refer + * to the same secret version. If you don't specify either a VersionStage or + * VersionId, Secrets Manager returns the AWSCURRENT version.

                */ VersionStage?: string; } @@ -1056,28 +1069,21 @@ export interface GetSecretValueResponse { VersionId?: string; /** - *

                The decrypted part of the protected secret information that was originally provided as + *

                The decrypted secret value, if the secret value was originally provided as * binary data in the form of a byte array. The response parameter represents the binary data as * a base64-encoded * string.

                - *

                This parameter is not used if the secret is created by the Secrets Manager console.

                - *

                If you store custom information in this field of the secret, then you must code your - * Lambda rotation function to parse and interpret whatever you store in the - * SecretString or SecretBinary fields.

                + *

                If the secret was created by using the Secrets Manager console, or if the secret value was + * originally provided as a string, then this field is omitted. The secret value appears in + * SecretString instead.

                */ SecretBinary?: Uint8Array; /** - *

                The decrypted part of the protected secret information that was originally provided as a - * string.

                - *

                If you create this secret by using the Secrets Manager console then only the - * SecretString parameter contains data. Secrets Manager stores the information as a - * JSON structure of key/value pairs that the Lambda rotation function knows how to parse.

                - *

                If you store custom information in the secret by using the CreateSecret, - * UpdateSecret, or PutSecretValue API operations instead - * of the Secrets Manager console, or by using the Other secret type in - * the console, then you must code your Lambda rotation function to parse and interpret those - * values.

                + *

                The decrypted secret value, if the secret value was originally provided as a string or + * through the Secrets Manager console.

                + *

                If this secret was created by using the console, then Secrets Manager stores the information as a + * JSON structure of key/value pairs.

                */ SecretString?: string; @@ -1088,7 +1094,9 @@ export interface GetSecretValueResponse { VersionStages?: string[]; /** - *

                The date and time that this version of the secret was created.

                + *

                The date and time that this version of the secret was created. If you don't specify + * which version in VersionId or VersionStage, then Secrets Manager uses the + * AWSCURRENT version.

                */ CreatedDate?: Date; } @@ -1105,7 +1113,7 @@ export namespace GetSecretValueResponse { } /** - *

                You provided an invalid NextToken value.

                + *

                The NextToken value is invalid.

                */ export interface InvalidNextTokenException extends __SmithyException, $MetadataBearer { name: "InvalidNextTokenException"; @@ -1129,27 +1137,22 @@ export enum SortOrderType { export interface ListSecretsRequest { /** - *

                (Optional) Limits the number of results you want to include in - * the response. If you don't include this parameter, it defaults to a value that's - * specific to the operation. If additional items exist beyond the maximum you specify, the - * NextToken response element is present and has a value (isn't null). Include - * that value as the NextToken request parameter in the next call to the operation to - * get the next part of the results. Note that Secrets Manager might return fewer results than the maximum - * even when there are more results available. You should check NextToken after every - * operation to ensure that you receive all of the results.

                + *

                The number of results to include in the response.

                + *

                If there are more results available, in the response, Secrets Manager includes NextToken. + * To get the next results, call ListSecrets again with the value from + * NextToken.

                */ MaxResults?: number; /** - *

                (Optional) Use this parameter in a request if you receive a - * NextToken response in a previous request indicating there's more - * output available. In a subsequent call, set it to the value of the previous call - * NextToken response to indicate where the output should continue from.

                + *

                A token that indicates where the output should continue from, if a + * previous call did not show all results. To get the next results, call ListSecrets again + * with this value.

                */ NextToken?: string; /** - *

                Lists the secret request filters.

                + *

                The filters to apply to the list of secrets.

                */ Filters?: Filter[]; @@ -1176,8 +1179,6 @@ export namespace ListSecretsRequest { export interface SecretListEntry { /** *

                The Amazon Resource Name (ARN) of the secret.

                - *

                For more information about ARNs in Secrets Manager, see Policy Resources in the - * Amazon Web Services Secrets Manager User Guide.

                */ ARN?: string; @@ -1185,7 +1186,7 @@ export interface SecretListEntry { *

                The friendly name of the secret. You can use forward slashes in the name to represent a * path hierarchy. For example, /prod/databases/dbserver1 could represent the secret * for a server named dbserver1 in the folder databases in the folder - * prod.

                + * prod.

                */ Name?: string; @@ -1195,10 +1196,8 @@ export interface SecretListEntry { Description?: string; /** - *

                The ARN or alias of the Amazon Web Services KMS customer master key (CMK) used to encrypt the - * SecretString and SecretBinary fields in each version of the - * secret. If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with - * the default KMS CMK, the key named awssecretsmanager, for this account.

                + *

                The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with + * the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

                */ KmsKeyId?: string; @@ -1290,13 +1289,11 @@ export interface ListSecretsResponse { SecretList?: SecretListEntry[]; /** - *

                If present in the response, this value indicates that - * there's more output available than included in the current response. This can - * occur even when the response includes no values at all, such as when you ask for a filtered view - * of a very long list. Use this value in the NextToken request parameter in a - * subsequent call to the operation to continue processing and get the next part of the output. You - * should repeat this until the NextToken response element comes back empty (as - * null).

                + *

                Secrets Manager includes this value if + * there's more output available than what is included in the current response. This can + * occur even when the response includes no values at all, such as when you ask for a filtered view + * of a long list. To get the next results, call ListSecrets again + * with this value.

                */ NextToken?: string; } @@ -1312,37 +1309,30 @@ export namespace ListSecretsResponse { export interface ListSecretVersionIdsRequest { /** - *

                The identifier for the secret containing the versions you want to list. You can specify - * either the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret whose versions you want to list.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ SecretId: string | undefined; /** - *

                (Optional) Limits the number of results you want to include in - * the response. If you don't include this parameter, it defaults to a value that's - * specific to the operation. If additional items exist beyond the maximum you specify, the - * NextToken response element is present and has a value (isn't null). Include - * that value as the NextToken request parameter in the next call to the operation to - * get the next part of the results. Note that Secrets Manager might return fewer results than the maximum - * even when there are more results available. You should check NextToken after every - * operation to ensure that you receive all of the results.

                + *

                The number of results to include in the response.

                + *

                If there are more results available, in the response, Secrets Manager includes NextToken. + * To get the next results, call ListSecretVersionIds again with the value from NextToken.

                */ MaxResults?: number; /** - *

                (Optional) Use this parameter in a request if you receive a - * NextToken response in a previous request indicating there's more - * output available. In a subsequent call, set it to the value of the previous call - * NextToken response to indicate where the output should continue from.

                + *

                A token that indicates where the output should continue from, if a previous call + * did not show all results. To get the next results, call ListSecretVersionIds again with + * this value.

                */ NextToken?: string; /** - *

                (Optional) Specifies that you want the results to include versions that do not have any - * staging labels attached to them. Such versions are considered deprecated and are subject to - * deletion by Secrets Manager as needed.

                + *

                Specifies whether to include versions of secrets that don't have any + * staging labels attached to them. Versions without staging labels are considered deprecated and are subject to + * deletion by Secrets Manager.

                */ IncludeDeprecated?: boolean; } @@ -1399,35 +1389,25 @@ export namespace SecretVersionsListEntry { export interface ListSecretVersionIdsResponse { /** - *

                The list of the currently available versions of the specified secret.

                + *

                A list of the versions of the secret.

                */ Versions?: SecretVersionsListEntry[]; /** - *

                If present in the response, this value indicates that - * there's more output available than included in the current response. This can - * occur even when the response includes no values at all, such as when you ask for a filtered view - * of a very long list. Use this value in the NextToken request parameter in a - * subsequent call to the operation to continue processing and get the next part of the output. You - * should repeat this until the NextToken response element comes back empty (as - * null).

                + *

                Secrets Manager includes this value if there's more output available than what is included + * in the current response. This can occur even when the response includes no values at all, + * such as when you ask for a filtered view of a long list. To get the next results, + * call ListSecretVersionIds again with this value.

                */ NextToken?: string; /** - *

                The Amazon Resource Name (ARN) for the secret.

                - * - *

                Secrets Manager automatically adds several random characters to the name at the end of the ARN when - * you initially create a secret. This affects only the ARN and not the actual friendly name. - * This ensures that if you create a new secret with the same name as an old secret that you - * previously deleted, then users with access to the old secret don't - * automatically get access to the new secret because the ARNs are different.

                - *
                + *

                The ARN of the secret.

                */ ARN?: string; /** - *

                The friendly name of the secret.

                + *

                The name of the secret.

                */ Name?: string; } @@ -1442,7 +1422,7 @@ export namespace ListSecretVersionIdsResponse { } /** - *

                The BlockPublicPolicy parameter is set to true and the resource policy did not prevent broad access to the secret.

                + *

                The BlockPublicPolicy parameter is set to true, and the resource policy did not prevent broad access to the secret.

                */ export interface PublicPolicyException extends __SmithyException, $MetadataBearer { name: "PublicPolicyException"; @@ -1461,25 +1441,21 @@ export namespace PublicPolicyException { export interface PutResourcePolicyRequest { /** - *

                Specifies the secret that you want to attach the resource-based policy. You can specify - * either the ARN or the friendly name of the secret.

                + *

                The ARN or name of the secret to attach the resource-based policy.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ SecretId: string | undefined; /** - *

                A JSON-formatted string constructed according to the grammar and syntax for an Amazon Web Services - * resource-based policy. The policy in the string identifies who can access or manage this - * secret and its versions. For information on how to format a JSON parameter for the various - * command line tool environments, see Using - * JSON for Parameters in the CLI User Guide.

                + *

                A JSON-formatted string for an Amazon Web Services + * resource-based policy. For example policies, see Permissions + * policy examples.

                */ ResourcePolicy: string | undefined; /** - *

                (Optional) If you set the parameter, BlockPublicPolicy to true, then you - * block resource-based policies that allow broad access to the secret.

                + *

                Specifies whether to block resource-based policies that allow broad access to the secret. By default, Secrets Manager blocks policies that allow broad access, for example those that use a wildcard for the principal.

                */ BlockPublicPolicy?: boolean; } @@ -1495,12 +1471,12 @@ export namespace PutResourcePolicyRequest { export interface PutResourcePolicyResponse { /** - *

                The ARN of the secret retrieved by the resource-based policy.

                + *

                The ARN of the secret.

                */ ARN?: string; /** - *

                The friendly name of the secret retrieved by the resource-based policy.

                + *

                The name of the secret.

                */ Name?: string; } @@ -1516,26 +1492,25 @@ export namespace PutResourcePolicyResponse { export interface PutSecretValueRequest { /** - *

                Specifies the secret to which you want to add a new version. You can specify either the - * Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already - * exist.

                + *

                The ARN or name of the secret to add a new version to.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                + *

                If the secret doesn't already exist, use CreateSecret instead.

                */ SecretId: string | undefined; /** - *

                (Optional) Specifies a unique identifier for the new version of the secret.

                + *

                A unique identifier for the new version of the secret.

                * - *

                If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can - * leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that - * in the request. If you don't use the SDK and instead generate a raw HTTP request to the + *

                If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can + * leave this parameter empty because they generate a random UUID for you. If you don't + * use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself * for new versions and include that value in the request.

                *
                *

                This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental * creation of duplicate versions if there are failures and retries during the Lambda rotation - * function's processing. We recommend that you generate a UUID-type value to + * function processing. We recommend that you generate a UUID-type value to * ensure uniqueness within the specified secret.

                *
                  *
                • @@ -1544,13 +1519,13 @@ export interface PutSecretValueRequest { *
                • *
                • *

                  If a version with this value already exists and that version's - * SecretString or SecretBinary values are the same as those in - * the request then the request is ignored (the operation is idempotent).

                  + * SecretString or SecretBinary values are the same as those in + * the request then the request is ignored. The operation is idempotent.

                  *
                • *
                • *

                  If a version with this value already exists and the version of the - * SecretString and SecretBinary values are different from those - * in the request then the request fails because you cannot modify an existing secret + * SecretString and SecretBinary values are different from those + * in the request, then the request fails because you can't modify a secret * version. You can only create new versions to store new secret values.

                  *
                • *
                @@ -1559,41 +1534,33 @@ export interface PutSecretValueRequest { ClientRequestToken?: string; /** - *

                (Optional) Specifies binary data that you want to encrypt and store in the new version of + *

                The binary data to encrypt and store in the new version of * the secret. To use this parameter in the command-line tools, we recommend that you store your - * binary data in a file and then use the appropriate technique for your tool to pass the - * contents of the file as a parameter. Either SecretBinary or - * SecretString must have a value, but not both. They cannot both be empty.

                - * - *

                This parameter is not accessible if the secret using the Secrets Manager console.

                - *

                + * binary data in a file and then pass the + * contents of the file as a parameter.

                + *

                You must include SecretBinary or SecretString, but not both.

                + *

                You can't access this value from the Secrets Manager console.

                */ SecretBinary?: Uint8Array; /** - *

                (Optional) Specifies text data that you want to encrypt and store in this new version of - * the secret. Either SecretString or SecretBinary must have a value, - * but not both. They cannot both be empty.

                - * - *

                If you create this secret by using the Secrets Manager console then Secrets Manager puts the - * protected secret text in only the SecretString parameter. The Secrets Manager console - * stores the information as a JSON structure of key/value pairs that the default Lambda rotation - * function knows how to parse.

                - *

                For storing multiple values, we recommend that you use a JSON text - * string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI - * in the Amazon Web Services CLI User Guide.

                + *

                The text to encrypt and store in the new version of the secret.

                + *

                You must include SecretBinary or SecretString, but not both.

                + *

                We recommend you create the secret string as JSON key/value pairs, as shown in the example.

                */ SecretString?: string; /** - *

                (Optional) Specifies a list of staging labels that are attached to this version of the - * secret. These staging labels are used to track the versions through the rotation process by - * the Lambda rotation function.

                - *

                A staging label must be unique to a single version of the secret. If you specify a staging - * label that's already associated with a different version of the same secret then that staging - * label is automatically removed from the other version and attached to this version.

                - *

                If you do not specify a value for VersionStages then Secrets Manager automatically - * moves the staging label AWSCURRENT to this new version.

                + *

                A list of staging labels to attach to this version of the + * secret. Secrets Manager uses staging labels to track versions of a secret through the rotation process.

                + *

                If you specify a staging + * label that's already associated with a different version of the same secret, then Secrets Manager + * removes the label from the other version and attaches it to this version. + * If you specify + * AWSCURRENT, and it is already attached to another version, then Secrets Manager also + * moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

                + *

                If you don't include VersionStages, then Secrets Manager automatically + * moves the staging label AWSCURRENT to this version.

                */ VersionStages?: string[]; } @@ -1611,23 +1578,23 @@ export namespace PutSecretValueRequest { export interface PutSecretValueResponse { /** - *

                The Amazon Resource Name (ARN) for the secret for which you just created a version.

                + *

                The ARN of the secret.

                */ ARN?: string; /** - *

                The friendly name of the secret for which you just created or updated a version.

                + *

                The name of the secret.

                */ Name?: string; /** - *

                The unique identifier of the version of the secret you just created or updated.

                + *

                The unique identifier of the version of the secret.

                */ VersionId?: string; /** *

                The list of staging labels that are currently attached to this version of the secret. - * Staging labels are used to track a version as it progresses through the secret rotation + * Secrets Manager uses staging labels to track a version as it progresses through the secret rotation * process.

                */ VersionStages?: string[]; @@ -1644,12 +1611,12 @@ export namespace PutSecretValueResponse { export interface RemoveRegionsFromReplicationRequest { /** - *

                Remove a secret by SecretId from replica Regions.

                + *

                The ARN or name of the secret.

                */ SecretId: string | undefined; /** - *

                Remove replication from specific Regions.

                + *

                The Regions of the replicas to remove.

                */ RemoveReplicaRegions: string[] | undefined; } @@ -1665,12 +1632,12 @@ export namespace RemoveRegionsFromReplicationRequest { export interface RemoveRegionsFromReplicationResponse { /** - *

                The secret ARN removed from replication regions.

                + *

                The ARN of the primary secret.

                */ ARN?: string; /** - *

                Describes the remaining replication status after you remove regions from the replication list.

                + *

                The status of replicas for this secret after you remove Regions.

                */ ReplicationStatus?: ReplicationStatusType[]; } @@ -1686,18 +1653,17 @@ export namespace RemoveRegionsFromReplicationResponse { export interface ReplicateSecretToRegionsRequest { /** - *

                Use the Secret Id to replicate a secret to regions.

                + *

                The ARN or name of the secret to replicate.

                */ SecretId: string | undefined; /** - *

                Add Regions to replicate the secret.

                + *

                A list of Regions in which to replicate the secret.

                */ AddReplicaRegions: ReplicaRegionType[] | undefined; /** - *

                (Optional) If set, Secrets Manager replication overwrites a secret with the same name in the - * destination region.

                + *

                Specifies whether to overwrite a secret with the same name in the destination Region.

                */ ForceOverwriteReplicaSecret?: boolean; } @@ -1713,13 +1679,12 @@ export namespace ReplicateSecretToRegionsRequest { export interface ReplicateSecretToRegionsResponse { /** - *

                Replicate a secret based on the ReplicaRegionType> consisting of a - * Region(required) and a KMSKeyId (optional) which can be the ARN, KeyID, or Alias.

                + *

                The ARN of the primary secret.

                */ ARN?: string; /** - *

                Describes the secret replication status as PENDING, SUCCESS or FAIL.

                + *

                The status of replication.

                */ ReplicationStatus?: ReplicationStatusType[]; } @@ -1735,8 +1700,7 @@ export namespace ReplicateSecretToRegionsResponse { export interface RestoreSecretRequest { /** - *

                Specifies the secret that you want to restore from a previously scheduled deletion. You - * can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret to restore.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ @@ -1759,7 +1723,7 @@ export interface RestoreSecretResponse { ARN?: string; /** - *

                The friendly name of the secret that was restored.

                + *

                The name of the secret that was restored.

                */ Name?: string; } @@ -1775,33 +1739,31 @@ export namespace RestoreSecretResponse { export interface RotateSecretRequest { /** - *

                Specifies the secret that you want to rotate. You can specify either the Amazon Resource - * Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret to rotate.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ SecretId: string | undefined; /** - *

                (Optional) Specifies a unique identifier for the new version of the secret that helps - * ensure idempotency.

                + *

                A unique identifier for the new version of the secret that helps + * ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of duplicate versions if + * there are failures and retries during rotation. This value becomes the + * VersionId of the new version.

                *

                If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can - * leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that - * in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP - * request to the Secrets Manager service endpoint, then you must generate a - * ClientRequestToken yourself for new versions and include that value in the - * request.

                - *

                You only need to specify your own value if you implement your own retry logic and want to - * ensure that a given secret is not created twice. We recommend that you generate a UUID-type value to - * ensure uniqueness within the specified secret.

                - *

                Secrets Manager uses this value to prevent the accidental creation of duplicate versions if - * there are failures and retries during the function's processing. This value becomes the - * VersionId of the new version.

                + * leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that + * in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP + * request to the Secrets Manager service endpoint, then you must generate a + * ClientRequestToken yourself for new versions and include that value in the + * request.

                + *

                You only need to specify this value if you implement your own retry logic and you want to + * ensure that Secrets Manager doesn't attempt to create a secret version twice. We recommend that you generate a UUID-type value to + * ensure uniqueness within the specified secret.

                */ ClientRequestToken?: string; /** - *

                (Optional) Specifies the ARN of the Lambda function that can rotate the secret.

                + *

                The ARN of the Lambda rotation function that can rotate the secret.

                */ RotationLambdaARN?: string; @@ -1827,13 +1789,12 @@ export interface RotateSecretResponse { ARN?: string; /** - *

                The friendly name of the secret.

                + *

                The name of the secret.

                */ Name?: string; /** - *

                The ID of the new version of the secret created by the rotation started by this - * request.

                + *

                The ID of the new version of the secret.

                */ VersionId?: string; } @@ -1849,7 +1810,7 @@ export namespace RotateSecretResponse { export interface StopReplicationToReplicaRequest { /** - *

                Response to StopReplicationToReplica of a secret, based on the SecretId.

                + *

                The ARN of the primary secret.

                */ SecretId: string | undefined; } @@ -1865,7 +1826,7 @@ export namespace StopReplicationToReplicaRequest { export interface StopReplicationToReplicaResponse { /** - *

                Response StopReplicationToReplica of a secret, based on the ARN,.

                + *

                The ARN of the promoted secret. The ARN is the same as the original primary secret except the Region is changed.

                */ ARN?: string; } @@ -1881,7 +1842,7 @@ export namespace StopReplicationToReplicaResponse { export interface TagResourceRequest { /** - *

                The identifier for the secret that you want to attach tags to. You can specify either the + *

                The identifier for the secret to attach tags to. You can specify either the * Amazon Resource Name (ARN) or the friendly name of the secret.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                @@ -1889,9 +1850,9 @@ export interface TagResourceRequest { SecretId: string | undefined; /** - *

                The tags to attach to the secret. Each element in the list consists of a Key + *

                The tags to attach to the secret as a JSON text string argument. Each element in the list consists of a Key * and a Value.

                - *

                This parameter to the API requires a JSON text string argument.

                + * *

                For storing multiple values, we recommend that you use a JSON text * string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI * in the Amazon Web Services CLI User Guide.

                @@ -1910,8 +1871,7 @@ export namespace TagResourceRequest { export interface UntagResourceRequest { /** - *

                The identifier for the secret that you want to remove tags from. You can specify either - * the Amazon Resource Name (ARN) or the friendly name of the secret.

                + *

                The ARN or name of the secret.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ @@ -1920,7 +1880,7 @@ export interface UntagResourceRequest { /** *

                A list of tag key names to remove from the secret. You don't specify the value. Both the * key and its associated value are removed.

                - *

                This parameter to the API requires a JSON text string argument.

                + *

                This parameter requires a JSON text string argument.

                *

                For storing multiple values, we recommend that you use a JSON text * string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI * in the Amazon Web Services CLI User Guide.

                @@ -1939,88 +1899,64 @@ export namespace UntagResourceRequest { export interface UpdateSecretRequest { /** - *

                Specifies the secret that you want to modify or to which you want to add a new version. - * You can specify either the Amazon Resource Name (ARN) or the friendly name of the - * secret.

                + *

                The ARN or name of the secret.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ SecretId: string | undefined; /** - *

                (Optional) If you want to add a new version to the secret, this parameter specifies a - * unique identifier for the new version that helps ensure idempotency.

                - *

                If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can - * leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that - * in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager - * service endpoint, then you must generate a ClientRequestToken yourself for new - * versions and include that value in the request.

                - *

                You typically only need to interact with this value if you implement your own retry logic - * and want to ensure that a given secret is not created twice. We recommend that you generate a - * UUID-type - * value to ensure uniqueness within the specified secret.

                - *

                Secrets Manager uses this value to prevent the accidental creation of duplicate versions if - * there are failures and retries during the Lambda rotation function's processing.

                - *
                  - *
                • - *

                  If the ClientRequestToken value isn't already associated with a version - * of the secret then a new version of the secret is created.

                  - *
                • - *
                • - *

                  If a version with this value already exists and that version's - * SecretString and SecretBinary values are the same as those in - * the request then the request is ignored (the operation is idempotent).

                  - *
                • - *
                • - *

                  If a version with this value already exists and that version's - * SecretString and SecretBinary values are different from the - * request then an error occurs because you cannot modify an existing secret value.

                  - *
                • - *
                + *

                If you include SecretString or SecretBinary, then Secrets Manager creates + * a new version for the secret, and this parameter specifies the unique identifier for the new + * version.

                + * + *

                If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can + * leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it + * as the value for this parameter in the request. If you don't use the SDK and instead + * generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a + * ClientRequestToken yourself for the new version and include the value in the + * request.

                + *
                *

                This value becomes the VersionId of the new version.

                */ ClientRequestToken?: string; /** - *

                (Optional) Specifies an updated user-provided description of the secret.

                + *

                The description of the secret.

                */ Description?: string; /** - *

                (Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS customer master key (CMK) that Secrets Manager - * uses to encrypt the protected text in new versions of this secret as well as any existing versions of this secret that have the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about staging labels, see Staging - * Labels in the Amazon Web Services Secrets Manager User Guide.

                + *

                The ARN, key ID, or alias of the KMS key that Secrets Manager + * uses to encrypt new secret versions as well as any existing versions the staging labels + * AWSCURRENT, AWSPENDING, or AWSPREVIOUS. + * For more information about versions and staging labels, see Concepts: Version.

                * - *

                You can only use the account's default CMK to encrypt and decrypt if you call this - * operation using credentials from the same account that owns the secret. If the secret is in - * a different account, then you must create a custom CMK and provide the ARN of that CMK in - * this field. The user making the call must have permissions to both the secret and the CMK in + *

                You can only use the Amazon Web Services managed key aws/secretsmanager if you call this + * operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in + * a different account, then you must use a customer managed key and provide the ARN of that KMS key in + * this field. The user making the call must have permissions to both the secret and the KMS key in * their respective accounts.

                *
                */ KmsKeyId?: string; /** - *

                (Optional) Specifies updated binary data that you want to encrypt and store in the new - * version of the secret. To use this parameter in the command-line tools, we recommend that you - * store your binary data in a file and then use the appropriate technique for your tool to pass - * the contents of the file as a parameter. Either SecretBinary or - * SecretString must have a value, but not both. They cannot both be empty.

                - *

                This parameter is not accessible using the Secrets Manager console.

                + *

                The binary data to encrypt and store in the new + * version of the secret. We recommend that you + * store your binary data in a file and then pass + * the contents of the file as a parameter.

                + *

                Either SecretBinary or + * SecretString must have a value, but not both.

                + *

                You can't access this parameter in the Secrets Manager console.

                */ SecretBinary?: Uint8Array; /** - *

                (Optional) Specifies updated text data that you want to encrypt and store in this new - * version of the secret. Either SecretBinary or SecretString must have - * a value, but not both. They cannot both be empty.

                - *

                If you create this secret by using the Secrets Manager console then Secrets Manager puts the - * protected secret text in only the SecretString parameter. The Secrets Manager console - * stores the information as a JSON structure of key/value pairs that the default Lambda rotation - * function knows how to parse.

                - *

                For storing multiple values, we recommend that you use a JSON text - * string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI - * in the Amazon Web Services CLI User Guide.

                + *

                The text data to encrypt and store in the new + * version of the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

                + *

                Either SecretBinary or SecretString must have + * a value, but not both.

                */ SecretString?: string; } @@ -2039,23 +1975,16 @@ export namespace UpdateSecretRequest { export interface UpdateSecretResponse { /** *

                The ARN of the secret that was updated.

                - * - *

                Secrets Manager automatically adds several random characters to the name at the end of the ARN when - * you initially create a secret. This affects only the ARN and not the actual friendly name. - * This ensures that if you create a new secret with the same name as an old secret that you - * previously deleted, then users with access to the old secret don't - * automatically get access to the new secret because the ARNs are different.

                - *
                */ ARN?: string; /** - *

                The friendly name of the secret that was updated.

                + *

                The name of the secret that was updated.

                */ Name?: string; /** - *

                If a new version of the secret was created by this operation, then VersionId + *

                If Secrets Manager created a new version of the secret during this operation, then VersionId * contains the unique identifier of the new version.

                */ VersionId?: string; @@ -2072,9 +2001,7 @@ export namespace UpdateSecretResponse { export interface UpdateSecretVersionStageRequest { /** - *

                Specifies the secret with the version with the list of staging labels you want to modify. - * You can specify either the Amazon Resource Name (ARN) or the friendly name of the - * secret.

                + *

                The ARN or the name of the secret with the version and staging labelsto modify.

                *

                For an ARN, we recommend that you specify a complete ARN rather * than a partial ARN.

                */ @@ -2086,7 +2013,7 @@ export interface UpdateSecretVersionStageRequest { VersionStage: string | undefined; /** - *

                Specifies the secret version ID of the version that the staging label is to be removed + *

                The ID of the version that the staging label is to be removed * from. If the staging label you are trying to attach to one version is already attached to a * different version, then you must include this parameter and specify the version that the label * is to be removed from. If the label is attached and you either do not specify this parameter, @@ -2095,7 +2022,7 @@ export interface UpdateSecretVersionStageRequest { RemoveFromVersionId?: string; /** - *

                (Optional) The secret version ID that you want to add the staging label. If you want to + *

                The ID of the version to add the staging label to. To * remove a label from a version, then do not specify this parameter.

                *

                If the staging label is already attached to a different version of the secret, then you * must also specify the RemoveFromVersionId parameter.

                @@ -2114,12 +2041,12 @@ export namespace UpdateSecretVersionStageRequest { export interface UpdateSecretVersionStageResponse { /** - *

                The ARN of the secret with the modified staging label.

                + *

                The ARN of the secret that was updated.

                */ ARN?: string; /** - *

                The friendly name of the secret with the modified staging label.

                + *

                The name of the secret that was updated.

                */ Name?: string; } @@ -2135,20 +2062,14 @@ export namespace UpdateSecretVersionStageResponse { export interface ValidateResourcePolicyRequest { /** - *

                (Optional) The identifier of the secret with the resource-based policy you want to - * validate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the - * secret.

                - *

                For an ARN, we recommend that you specify a complete ARN rather - * than a partial ARN.

                + *

                This field is reserved for internal use.

                */ SecretId?: string; /** - *

                A JSON-formatted string constructed according to the grammar and syntax for an Amazon Web Services + *

                A JSON-formatted string that contains an Amazon Web Services * resource-based policy. The policy in the string identifies who can access or manage this - * secret and its versions. For information on how to format a JSON parameter for the various - * command line tool environments, see Using - * JSON for Parameters in the CLI User Guide.publi

                + * secret and its versions. For example policies, see Permissions policy examples.

                */ ResourcePolicy: string | undefined; } @@ -2188,12 +2109,12 @@ export namespace ValidationErrorsEntry { export interface ValidateResourcePolicyResponse { /** - *

                Returns a message stating that your Reource Policy passed validation.

                + *

                True if your policy passes validation, otherwise false.

                */ PolicyValidationPassed?: boolean; /** - *

                Returns an error message if your policy doesn't pass validatation.

                + *

                Validation errors if your policy didn't pass validation.

                */ ValidationErrors?: ValidationErrorsEntry[]; } diff --git a/clients/client-securityhub/src/SecurityHub.ts b/clients/client-securityhub/src/SecurityHub.ts index b15429c6a21a..3d67af239e12 100644 --- a/clients/client-securityhub/src/SecurityHub.ts +++ b/clients/client-securityhub/src/SecurityHub.ts @@ -454,9 +454,20 @@ export class SecurityHub extends SecurityHubClient { } /** - *

                Imports security findings generated from an integrated product into Security Hub. - * This action is requested by the integrated product to import its findings into + *

                Imports security findings generated by a finding provider into Security Hub. + * This action is requested by the finding provider to import its findings into * Security Hub.

                + *

                + * BatchImportFindings must be called by one of the following:

                + *
                  + *
                • + *

                  The account that is associated with the findings. The identifier of the associated + * account is the value of the AwsAccountId attribute for the finding.

                  + *
                • + *
                • + *

                  An account that is allow-listed for an official Security Hub partner integration.

                  + *
                • + *
                *

                The maximum allowed size for a finding is 240 Kb. An error is returned for any finding * larger than 240 Kb.

                *

                After a finding is created, BatchImportFindings cannot be used to update @@ -769,7 +780,6 @@ export class SecurityHub extends SecurityHubClient { *

                For organization accounts that already have Security Hub enabled, Security Hub does not make any other changes to those accounts. It does not change their enabled standards or controls.

                * *
              - * *

              A permissions policy is added that permits the administrator account to view the findings * generated in the member account.

              *

              To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

              diff --git a/clients/client-securityhub/src/commands/BatchImportFindingsCommand.ts b/clients/client-securityhub/src/commands/BatchImportFindingsCommand.ts index 1325b6bbced1..be67b8380390 100644 --- a/clients/client-securityhub/src/commands/BatchImportFindingsCommand.ts +++ b/clients/client-securityhub/src/commands/BatchImportFindingsCommand.ts @@ -22,9 +22,20 @@ export interface BatchImportFindingsCommandInput extends BatchImportFindingsRequ export interface BatchImportFindingsCommandOutput extends BatchImportFindingsResponse, __MetadataBearer {} /** - *

              Imports security findings generated from an integrated product into Security Hub. - * This action is requested by the integrated product to import its findings into + *

              Imports security findings generated by a finding provider into Security Hub. + * This action is requested by the finding provider to import its findings into * Security Hub.

              + *

              + * BatchImportFindings must be called by one of the following:

              + *
                + *
              • + *

                The account that is associated with the findings. The identifier of the associated + * account is the value of the AwsAccountId attribute for the finding.

                + *
              • + *
              • + *

                An account that is allow-listed for an official Security Hub partner integration.

                + *
              • + *
              *

              The maximum allowed size for a finding is 240 Kb. An error is returned for any finding * larger than 240 Kb.

              *

              After a finding is created, BatchImportFindings cannot be used to update diff --git a/clients/client-securityhub/src/commands/CreateMembersCommand.ts b/clients/client-securityhub/src/commands/CreateMembersCommand.ts index a7a3d38073e6..3a524c29dffc 100644 --- a/clients/client-securityhub/src/commands/CreateMembersCommand.ts +++ b/clients/client-securityhub/src/commands/CreateMembersCommand.ts @@ -54,7 +54,6 @@ export interface CreateMembersCommandOutput extends CreateMembersResponse, __Met *

              For organization accounts that already have Security Hub enabled, Security Hub does not make any other changes to those accounts. It does not change their enabled standards or controls.

              * *
            - * *

            A permissions policy is added that permits the administrator account to view the findings * generated in the member account.

            *

            To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

            diff --git a/clients/client-securityhub/src/endpoints.ts b/clients/client-securityhub/src/endpoints.ts index b486e04667a9..b4ab5630c6b3 100644 --- a/clients/client-securityhub/src/endpoints.ts +++ b/clients/client-securityhub/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-securityhub/src/models/models_0.ts b/clients/client-securityhub/src/models/models_0.ts index 2471d8a30d4b..94446f2c6c51 100644 --- a/clients/client-securityhub/src/models/models_0.ts +++ b/clients/client-securityhub/src/models/models_0.ts @@ -1449,6 +1449,178 @@ export namespace AwsApiGatewayV2StageDetails { }); } +/** + *

            An Availability Zone for the automatic scaling group.

            + */ +export interface AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails { + /** + *

            The name of the Availability Zone.

            + */ + Value?: string; +} + +export namespace AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails): any => ({ + ...obj, + }); +} + +/** + *

            Information about the instances distribution.

            + */ +export interface AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails { + /** + *

            How to allocate instance types to fulfill On-Demand capacity.

            + */ + OnDemandAllocationStrategy?: string; + + /** + *

            The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances.

            + */ + OnDemandBaseCapacity?: number; + + /** + *

            The percentage of On-Demand Instances and Spot Instances for additional capacity beyond OnDemandBaseCapacity.

            + */ + OnDemandPercentageAboveBaseCapacity?: number; + + /** + *

            How to allocate instances across Spot Instance pools.

            + */ + SpotAllocationStrategy?: string; + + /** + *

            The number of Spot Instance pools across which to allocate your Spot Instances.

            + */ + SpotInstancePools?: number; + + /** + *

            The maximum price per unit hour that you are willing to pay for a Spot Instance.

            + */ + SpotMaxPrice?: string; +} + +export namespace AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            Details about the launch template to use.

            + */ +export interface AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification { + /** + *

            The identifier of the launch template. You must specify either LaunchTemplateId or LaunchTemplateName.

            + */ + LaunchTemplateId?: string; + + /** + *

            The name of the launch template. You must specify either LaunchTemplateId or LaunchTemplateName.

            + */ + LaunchTemplateName?: string; + + /** + *

            Identifies the version of the launch template. You can specify a version identifier, or use the values $Latest or $Default.

            + */ + Version?: string; +} + +export namespace AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification + ): any => ({ + ...obj, + }); +} + +/** + *

            Property values to use to override the values in the launch template.

            + */ +export interface AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails { + /** + *

            The instance type. For example, m3.xlarge.

            + */ + InstanceType?: string; + + /** + *

            The number of capacity units provided by the specified instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic.

            + */ + WeightedCapacity?: string; +} + +export namespace AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            Describes a launch template and overrides for a mixed instances policy.

            + */ +export interface AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails { + /** + *

            The launch template to use.

            + */ + LaunchTemplateSpecification?: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification; + + /** + *

            Property values to use to override the values in the launch template.

            + */ + Overrides?: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails[]; +} + +export namespace AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            The mixed instances policy for the automatic scaling group.

            + */ +export interface AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails { + /** + *

            The instances distribution. The instances distribution specifies the distribution of On-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacity.

            + */ + InstancesDistribution?: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails; + + /** + *

            The launch template to use and the instance types (overrides) to use to provision EC2 instances to fulfill On-Demand and Spot capacities.

            + */ + LaunchTemplate?: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails; +} + +export namespace AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails): any => ({ + ...obj, + }); +} + /** *

            Provides details about an auto scaling group.

            */ @@ -1481,6 +1653,16 @@ export interface AwsAutoScalingAutoScalingGroupDetails { * 2020-03-22T13:22:13.933Z.

            */ CreatedTime?: string; + + /** + *

            The mixed instances policy for the automatic scaling group.

            + */ + MixedInstancesPolicy?: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails; + + /** + *

            The list of Availability Zones for the automatic scaling group.

            + */ + AvailabilityZones?: AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails[]; } export namespace AwsAutoScalingAutoScalingGroupDetails { @@ -1611,6 +1793,35 @@ export namespace AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails { }); } +/** + *

            The metadata options for the instances.

            + */ +export interface AwsAutoScalingLaunchConfigurationMetadataOptions { + /** + *

            Enables or disables the HTTP metadata endpoint on your instances. By default, the metadata endpoint is enabled.

            + */ + HttpEndpoint?: string; + + /** + *

            The HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.

            + */ + HttpPutResponseHopLimit?: number; + + /** + *

            Indicates whether token usage is required or optional for metadata requests. By default, token usage is optional.

            + */ + HttpTokens?: string; +} + +export namespace AwsAutoScalingLaunchConfigurationMetadataOptions { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsAutoScalingLaunchConfigurationMetadataOptions): any => ({ + ...obj, + }); +} + /** *

            Details about a launch configuration.

            */ @@ -1712,6 +1923,11 @@ export interface AwsAutoScalingLaunchConfigurationDetails { * text.

            */ UserData?: string; + + /** + *

            The metadata options for the instances.

            + */ + MetadataOptions?: AwsAutoScalingLaunchConfigurationMetadataOptions; } export namespace AwsAutoScalingLaunchConfigurationDetails { @@ -9279,3046 +9495,1936 @@ export namespace AwsLambdaLayerVersionDetails { } /** - *

            Configuration options for zone awareness.

            + *

            A public subnet that Network Firewall uses for the firewall.

            */ -export interface AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails { +export interface AwsNetworkFirewallFirewallSubnetMappingsDetails { /** - *

            The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

            + *

            The identifier of the subnet

            */ - AvailabilityZoneCount?: number; + SubnetId?: string; } -export namespace AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails { +export namespace AwsNetworkFirewallFirewallSubnetMappingsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails): any => ({ + export const filterSensitiveLog = (obj: AwsNetworkFirewallFirewallSubnetMappingsDetails): any => ({ ...obj, }); } /** - *

            Details about the configuration of an OpenSearch cluster.

            + *

            Details about an Network Firewall firewall.

            */ -export interface AwsOpenSearchServiceDomainClusterConfigDetails { +export interface AwsNetworkFirewallFirewallDetails { /** - *

            The number of data nodes to use in the OpenSearch domain.

            + *

            Whether the firewall is protected from deletion. If set to true, then the firewall cannot be deleted.

            */ - InstanceCount?: number; + DeleteProtection?: boolean; /** - *

            Whether UltraWarm is enabled.

            + *

            A description of the firewall.

            */ - WarmEnabled?: boolean; + Description?: string; /** - *

            The number of UltraWarm instances.

            + *

            The ARN of the firewall.

            */ - WarmCount?: number; + FirewallArn?: string; /** - *

            Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

            + *

            The identifier of the firewall.

            */ - DedicatedMasterEnabled?: boolean; + FirewallId?: string; /** - *

            Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

            + *

            A descriptive name of the firewall.

            */ - ZoneAwarenessConfig?: AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails; + FirewallName?: string; /** - *

            The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

            + *

            The ARN of the firewall policy.

            */ - DedicatedMasterCount?: number; + FirewallPolicyArn?: string; /** - *

            The instance type for your data nodes.

            + *

            Whether the firewall is protected from a change to the firewall policy. If set to true, you cannot associate a different policy with the firewall.

            */ - InstanceType?: string; + FirewallPolicyChangeProtection?: boolean; /** - *

            The type of UltraWarm instance.

            + *

            Whether the firewall is protected from a change to the subnet associations. If set to true, you cannot map different subnets to the firewall.

            */ - WarmType?: string; + SubnetChangeProtection?: boolean; /** - *

            Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

            + *

            The public subnets that Network Firewall uses for the firewall. Each subnet must belong to a different Availability Zone.

            */ - ZoneAwarenessEnabled?: boolean; + SubnetMappings?: AwsNetworkFirewallFirewallSubnetMappingsDetails[]; /** - *

            The hardware configuration of the computer that hosts the dedicated master node.

            - *

            If this attribute is specified, then DedicatedMasterEnabled must be true. - *

            + *

            The identifier of the VPC where the firewall is used.

            */ - DedicatedMasterType?: string; + VpcId?: string; } -export namespace AwsOpenSearchServiceDomainClusterConfigDetails { +export namespace AwsNetworkFirewallFirewallDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainClusterConfigDetails): any => ({ + export const filterSensitiveLog = (obj: AwsNetworkFirewallFirewallDetails): any => ({ ...obj, }); } /** - *

            Information about additional options for the domain endpoint.

            + *

            A stateful rule group that is used by the firewall policy.

            */ -export interface AwsOpenSearchServiceDomainDomainEndpointOptionsDetails { +export interface FirewallPolicyStatefulRuleGroupReferencesDetails { /** - *

            The ARN for the security certificate. The certificate is managed in ACM.

            + *

            The ARN of the stateful rule group.

            */ - CustomEndpointCertificateArn?: string; + ResourceArn?: string; +} +export namespace FirewallPolicyStatefulRuleGroupReferencesDetails { /** - *

            Whether to enable a custom endpoint for the domain.

            + * @internal */ - CustomEndpointEnabled?: boolean; + export const filterSensitiveLog = (obj: FirewallPolicyStatefulRuleGroupReferencesDetails): any => ({ + ...obj, + }); +} +/** + *

            Defines a CloudWatch dimension value to publish.

            + */ +export interface StatelessCustomPublishMetricActionDimension { /** - *

            Whether to require that all traffic to the domain arrive over HTTPS.

            + *

            The value to use for the custom metric dimension.

            */ - EnforceHTTPS?: boolean; + Value?: string; +} +export namespace StatelessCustomPublishMetricActionDimension { /** - *

            The fully qualified URL for the custom endpoint.

            + * @internal */ - CustomEndpoint?: string; + export const filterSensitiveLog = (obj: StatelessCustomPublishMetricActionDimension): any => ({ + ...obj, + }); +} +/** + *

            Information about metrics to publish to CloudWatch.

            + */ +export interface StatelessCustomPublishMetricAction { /** - *

            The TLS security policy to apply to the HTTPS endpoint of the OpenSearch domain.

            + *

            Defines CloudWatch dimension values to publish.

            */ - TLSSecurityPolicy?: string; + Dimensions?: StatelessCustomPublishMetricActionDimension[]; } -export namespace AwsOpenSearchServiceDomainDomainEndpointOptionsDetails { +export namespace StatelessCustomPublishMetricAction { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainDomainEndpointOptionsDetails): any => ({ + export const filterSensitiveLog = (obj: StatelessCustomPublishMetricAction): any => ({ ...obj, }); } /** - *

            Details about the configuration for encryption at rest for the OpenSearch domain.

            + *

            The definition of a custom action that can be used for stateless packet handling.

            */ -export interface AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails { - /** - *

            Whether encryption at rest is enabled.

            - */ - Enabled?: boolean; - +export interface StatelessCustomActionDefinition { /** - *

            The KMS key ID.

            + *

            Information about metrics to publish to CloudWatch.

            */ - KmsKeyId?: string; + PublishMetricAction?: StatelessCustomPublishMetricAction; } -export namespace AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails { +export namespace StatelessCustomActionDefinition { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails): any => ({ + export const filterSensitiveLog = (obj: StatelessCustomActionDefinition): any => ({ ...obj, }); } /** - *

            Configuration details for a log publishing option.

            + *

            A custom action that can be used for stateless packet handling.

            */ -export interface AwsOpenSearchServiceDomainLogPublishingOption { +export interface FirewallPolicyStatelessCustomActionsDetails { /** - *

            The ARN of the CloudWatch Logs group to publish the logs to.

            + *

            The definition of the custom action.

            */ - CloudWatchLogsLogGroupArn?: string; + ActionDefinition?: StatelessCustomActionDefinition; /** - *

            Whether the log publishing is enabled.

            + *

            The name of the custom action.

            */ - Enabled?: boolean; + ActionName?: string; } -export namespace AwsOpenSearchServiceDomainLogPublishingOption { +export namespace FirewallPolicyStatelessCustomActionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainLogPublishingOption): any => ({ + export const filterSensitiveLog = (obj: FirewallPolicyStatelessCustomActionsDetails): any => ({ ...obj, }); } /** - *

            Configures the CloudWatch Logs to publish for the OpenSearch domain.

            + *

            A stateless rule group that is used by the firewall policy.

            */ -export interface AwsOpenSearchServiceDomainLogPublishingOptionsDetails { - /** - *

            Configures the OpenSearch index logs publishing.

            - */ - IndexSlowLogs?: AwsOpenSearchServiceDomainLogPublishingOption; - +export interface FirewallPolicyStatelessRuleGroupReferencesDetails { /** - *

            Configures the OpenSearch search slow log publishing.

            + *

            The order in which to run the stateless rule group.

            */ - SearchSlowLogs?: AwsOpenSearchServiceDomainLogPublishingOption; + Priority?: number; /** - *

            Configures the OpenSearch audit logs publishing.

            + *

            The ARN of the stateless rule group.

            */ - AuditLogs?: AwsOpenSearchServiceDomainLogPublishingOption; + ResourceArn?: string; } -export namespace AwsOpenSearchServiceDomainLogPublishingOptionsDetails { +export namespace FirewallPolicyStatelessRuleGroupReferencesDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainLogPublishingOptionsDetails): any => ({ + export const filterSensitiveLog = (obj: FirewallPolicyStatelessRuleGroupReferencesDetails): any => ({ ...obj, }); } /** - *

            Provides details about the configuration for node-to-node encryption.

            + *

            Defines the behavior of the firewall.

            */ -export interface AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails { +export interface FirewallPolicyDetails { /** - *

            Whether node-to-node encryption is enabled.

            + *

            The stateful rule groups that are used in the firewall policy.

            */ - Enabled?: boolean; -} + StatefulRuleGroupReferences?: FirewallPolicyStatefulRuleGroupReferencesDetails[]; -export namespace AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails { /** - * @internal + *

            The custom action definitions that are available to use in the firewall policy's StatelessDefaultActions setting.

            */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails): any => ({ - ...obj, - }); -} + StatelessCustomActions?: FirewallPolicyStatelessCustomActionsDetails[]; -/** - *

            Provides information about the state of the domain relative to the latest service software.

            - */ -export interface AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails { /** - *

            The epoch time when the deployment window closes for required updates. After this time, OpenSearch Service schedules the software upgrade automatically.

            + *

            The actions to take on a packet if it doesn't match any of the stateless rules in the policy.

            + *

            You must specify a standard action (aws:pass, aws:drop, aws:forward_to_sfe), and can optionally include a custom action from StatelessCustomActions. + *

            */ - AutomatedUpdateDate?: string; + StatelessDefaultActions?: string[]; /** - *

            Whether a request to update the domain can be canceled.

            + *

            The actions to take on a fragmented UDP packet if it doesn't match any of the stateless rules in the policy.

            + *

            You must specify a standard action (aws:pass, aws:drop, aws:forward_to_sfe), and can optionally include a custom action from StatelessCustomActions. + *

            */ - Cancellable?: boolean; + StatelessFragmentDefaultActions?: string[]; /** - *

            The version of the service software that is currently installed on the domain.

            + *

            The stateless rule groups that are used in the firewall policy.

            */ - CurrentVersion?: string; + StatelessRuleGroupReferences?: FirewallPolicyStatelessRuleGroupReferencesDetails[]; +} +export namespace FirewallPolicyDetails { /** - *

            A more detailed description of the service software status.

            + * @internal */ - Description?: string; + export const filterSensitiveLog = (obj: FirewallPolicyDetails): any => ({ + ...obj, + }); +} +/** + *

            Details about a firewall policy. A firewall policy defines the behavior of a network firewall.

            + */ +export interface AwsNetworkFirewallFirewallPolicyDetails { /** - *

            The most recent version of the service software.

            + *

            The firewall policy configuration.

            */ - NewVersion?: string; + FirewallPolicy?: FirewallPolicyDetails; /** - *

            Whether a service software update is available for the domain.

            + *

            The ARN of the firewall policy.

            */ - UpdateAvailable?: boolean; + FirewallPolicyArn?: string; /** - *

            The status of the service software update.

            + *

            The identifier of the firewall policy.

            */ - UpdateStatus?: string; + FirewallPolicyId?: string; /** - *

            Whether the service software update is optional.

            + *

            The name of the firewall policy.

            */ - OptionalDeployment?: boolean; + FirewallPolicyName?: string; + + /** + *

            A description of the firewall policy.

            + */ + Description?: string; } -export namespace AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails { +export namespace AwsNetworkFirewallFirewallPolicyDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails): any => ({ + export const filterSensitiveLog = (obj: AwsNetworkFirewallFirewallPolicyDetails): any => ({ ...obj, }); } /** - *

            Contains information that OpenSearch Service derives based on the VPCOptions for the domain.

            + *

            Stateful inspection criteria for a domain list rule group.

            */ -export interface AwsOpenSearchServiceDomainVpcOptionsDetails { +export interface RuleGroupSourceListDetails { /** - *

            The list of security group IDs that are associated with the VPC endpoints for the domain.

            + *

            Indicates whether to allow or deny access to the domains listed in Targets.

            */ - SecurityGroupIds?: string[]; + GeneratedRulesType?: string; /** - *

            A list of subnet IDs that are associated with the VPC endpoints for the domain.

            + *

            The protocols that you want to inspect. Specify LS_SNI for HTTPS. Specify HTTP_HOST for HTTP. You can specify either or both.

            */ - SubnetIds?: string[]; + TargetTypes?: string[]; + + /** + *

            The domains that you want to inspect for in your traffic flows. You can provide full domain names, or use the '.' prefix as a wildcard. For example, .example.com matches all domains that end with example.com.

            + */ + Targets?: string[]; } -export namespace AwsOpenSearchServiceDomainVpcOptionsDetails { +export namespace RuleGroupSourceListDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainVpcOptionsDetails): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceListDetails): any => ({ ...obj, }); } /** - *

            Information about an Amazon OpenSearch Service domain.

            + *

            The inspection criteria for a stateful rule.

            */ -export interface AwsOpenSearchServiceDomainDetails { - /** - *

            The ARN of the OpenSearch Service domain.

            - */ - Arn?: string; - +export interface RuleGroupSourceStatefulRulesHeaderDetails { /** - *

            IAM policy document that specifies the access policies for the OpenSearch Service domain.

            + *

            The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

            */ - AccessPolicies?: string; + Destination?: string; /** - *

            The name of the endpoint.

            + *

            The destination port to inspect for. You can specify an individual port, such as 1994. You also can specify a port range, such as 1990:1994. To match with any port, specify ANY.

            */ - DomainName?: string; + DestinationPort?: string; /** - *

            The identifier of the domain.

            + *

            The direction of traffic flow to inspect. If set to ANY, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source. If set to FORWARD, the inspection only matches traffic going from the source to the destination.

            */ - Id?: string; + Direction?: string; /** - *

            The domain endpoint.

            + *

            The protocol to inspect for. To inspector for all protocols, use IP.

            */ - DomainEndpoint?: string; + Protocol?: string; /** - *

            The version of the domain engine.

            + *

            The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

            */ - EngineVersion?: string; + Source?: string; /** - *

            Details about the configuration for encryption at rest.

            + *

            The source port to inspect for. You can specify an individual port, such as 1994. You also can specify a port range, such as 1990:1994. To match with any port, specify ANY.

            */ - EncryptionAtRestOptions?: AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails; + SourcePort?: string; +} +export namespace RuleGroupSourceStatefulRulesHeaderDetails { /** - *

            Details about the configuration for node-to-node encryption.

            + * @internal */ - NodeToNodeEncryptionOptions?: AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails; + export const filterSensitiveLog = (obj: RuleGroupSourceStatefulRulesHeaderDetails): any => ({ + ...obj, + }); +} +/** + *

            A rule option for a stateful rule.

            + */ +export interface RuleGroupSourceStatefulRulesOptionsDetails { /** - *

            Information about the status of a domain relative to the latest service software.

            + *

            A keyword to look for.

            */ - ServiceSoftwareOptions?: AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails; + Keyword?: string; /** - *

            Details about the configuration of an OpenSearch cluster.

            + *

            A list of settings.

            */ - ClusterConfig?: AwsOpenSearchServiceDomainClusterConfigDetails; + Settings?: string[]; +} +export namespace RuleGroupSourceStatefulRulesOptionsDetails { /** - *

            Additional options for the domain endpoint.

            + * @internal */ - DomainEndpointOptions?: AwsOpenSearchServiceDomainDomainEndpointOptionsDetails; + export const filterSensitiveLog = (obj: RuleGroupSourceStatefulRulesOptionsDetails): any => ({ + ...obj, + }); +} +/** + *

            A Suricata rule specification.

            + */ +export interface RuleGroupSourceStatefulRulesDetails { /** - *

            Information that OpenSearch Service derives based on VPCOptions for the domain.

            + *

            Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria.

            */ - VpcOptions?: AwsOpenSearchServiceDomainVpcOptionsDetails; + Action?: string; /** - *

            Configures the CloudWatch Logs to publish for the OpenSearch domain.

            + *

            The stateful inspection criteria for the rule.

            */ - LogPublishingOptions?: AwsOpenSearchServiceDomainLogPublishingOptionsDetails; + Header?: RuleGroupSourceStatefulRulesHeaderDetails; /** - *

            The domain endpoints. Used if the OpenSearch domain resides in a VPC.

            - *

            This is a map of key-value pairs. The key is always vpc. The value is the endpoint.

            + *

            Additional options for the rule.

            */ - DomainEndpoints?: { [key: string]: string }; + RuleOptions?: RuleGroupSourceStatefulRulesOptionsDetails[]; } -export namespace AwsOpenSearchServiceDomainDetails { +export namespace RuleGroupSourceStatefulRulesDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainDetails): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceStatefulRulesDetails): any => ({ ...obj, }); } /** - *

            An IAM role that is associated with the Amazon RDS DB cluster.

            + *

            A custom action definition. A custom action is an optional, non-standard action to use for stateless packet handling.

            */ -export interface AwsRdsDbClusterAssociatedRole { +export interface RuleGroupSourceCustomActionsDetails { /** - *

            The ARN of the IAM role.

            + *

            The definition of a custom action.

            */ - RoleArn?: string; + ActionDefinition?: StatelessCustomActionDefinition; /** - *

            The status of the association between the IAM role and the DB cluster.

            + *

            A descriptive name of the custom action.

            */ - Status?: string; + ActionName?: string; } -export namespace AwsRdsDbClusterAssociatedRole { +export namespace RuleGroupSourceCustomActionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbClusterAssociatedRole): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceCustomActionsDetails): any => ({ ...obj, }); } /** - *

            Information about an instance in the DB cluster.

            + *

            A port range to specify the destination ports to inspect for.

            */ -export interface AwsRdsDbClusterMember { - /** - *

            Whether the cluster member is the primary instance for the DB cluster.

            - */ - IsClusterWriter?: boolean; - - /** - *

            Specifies the order in which an Aurora replica is promoted to the primary instance when - * the existing primary instance fails.

            - */ - PromotionTier?: number; - +export interface RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts { /** - *

            The instance identifier for this member of the DB cluster.

            + *

            The starting port value for the port range.

            */ - DbInstanceIdentifier?: string; + FromPort?: number; /** - *

            The status of the DB cluster parameter group for this member of the DB cluster.

            + *

            The ending port value for the port range.

            */ - DbClusterParameterGroupStatus?: string; + ToPort?: number; } -export namespace AwsRdsDbClusterMember { +export namespace RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbClusterMember): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts): any => ({ ...obj, }); } /** - *

            Information about an option group membership for a DB cluster.

            + *

            A destination IP address or range.

            */ -export interface AwsRdsDbClusterOptionGroupMembership { - /** - *

            The name of the DB cluster option group.

            - */ - DbClusterOptionGroupName?: string; - +export interface RuleGroupSourceStatelessRuleMatchAttributesDestinations { /** - *

            The status of the DB cluster option group.

            + *

            An IP address or a block of IP addresses.

            */ - Status?: string; + AddressDefinition?: string; } -export namespace AwsRdsDbClusterOptionGroupMembership { +export namespace RuleGroupSourceStatelessRuleMatchAttributesDestinations { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbClusterOptionGroupMembership): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleMatchAttributesDestinations): any => ({ ...obj, }); } /** - *

            Information about an Active Directory domain membership record associated with the DB - * instance.

            + *

            A port range to specify the source ports to inspect for.

            */ -export interface AwsRdsDbDomainMembership { +export interface RuleGroupSourceStatelessRuleMatchAttributesSourcePorts { /** - *

            The identifier of the Active Directory domain.

            + *

            The starting port value for the port range.

            */ - Domain?: string; + FromPort?: number; /** - *

            The status of the Active Directory Domain membership for the DB instance.

            + *

            The ending port value for the port range.

            */ - Status?: string; + ToPort?: number; +} +export namespace RuleGroupSourceStatelessRuleMatchAttributesSourcePorts { /** - *

            The fully qualified domain name of the Active Directory domain.

            + * @internal */ - Fqdn?: string; + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleMatchAttributesSourcePorts): any => ({ + ...obj, + }); +} +/** + *

            A source IP addresses and address range to inspect for.

            + */ +export interface RuleGroupSourceStatelessRuleMatchAttributesSources { /** - *

            The name of the IAM role to use when making API calls to the Directory Service.

            + *

            An IP address or a block of IP addresses.

            */ - IamRoleName?: string; + AddressDefinition?: string; } -export namespace AwsRdsDbDomainMembership { +export namespace RuleGroupSourceStatelessRuleMatchAttributesSources { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbDomainMembership): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleMatchAttributesSources): any => ({ ...obj, }); } /** - *

            A VPC security groups that the DB instance belongs to.

            + *

            A set of TCP flags and masks to inspect for.

            */ -export interface AwsRdsDbInstanceVpcSecurityGroup { +export interface RuleGroupSourceStatelessRuleMatchAttributesTcpFlags { /** - *

            The name of the VPC security group.

            + *

            Defines the flags from the Masks setting that must be set in order for the packet to match. Flags that are listed must be set. Flags that are not listed must not be set.

            */ - VpcSecurityGroupId?: string; + Flags?: string[]; /** - *

            The status of the VPC security group.

            + *

            The set of flags to consider in the inspection. If not specified, then all flags are inspected.

            */ - Status?: string; + Masks?: string[]; } -export namespace AwsRdsDbInstanceVpcSecurityGroup { +export namespace RuleGroupSourceStatelessRuleMatchAttributesTcpFlags { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbInstanceVpcSecurityGroup): any => ({ + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleMatchAttributesTcpFlags): any => ({ ...obj, }); } /** - *

            Information about an Amazon RDS DB cluster.

            + *

            Criteria for the stateless rule.

            */ -export interface AwsRdsDbClusterDetails { +export interface RuleGroupSourceStatelessRuleMatchAttributes { /** - *

            For all database engines except Aurora, specifies the allocated storage size in - * gibibytes (GiB).

            + *

            A list of port ranges to specify the destination ports to inspect for.

            */ - AllocatedStorage?: number; + DestinationPorts?: RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts[]; /** - *

            A list of Availability Zones (AZs) where instances in the DB cluster can be - * created.

            + *

            The destination IP addresses and address ranges to inspect for, in CIDR notation.

            */ - AvailabilityZones?: string[]; + Destinations?: RuleGroupSourceStatelessRuleMatchAttributesDestinations[]; /** - *

            The number of days for which automated backups are retained.

            + *

            The protocols to inspect for.

            */ - BackupRetentionPeriod?: number; + Protocols?: number[]; /** - *

            The name of the database.

            + *

            A list of port ranges to specify the source ports to inspect for.

            */ - DatabaseName?: string; + SourcePorts?: RuleGroupSourceStatelessRuleMatchAttributesSourcePorts[]; /** - *

            The current status of this DB cluster.

            + *

            The source IP addresses and address ranges to inspect for, in CIDR notation.

            */ - Status?: string; + Sources?: RuleGroupSourceStatelessRuleMatchAttributesSources[]; /** - *

            The connection endpoint for the primary instance of the DB cluster.

            + *

            The TCP flags and masks to inspect for.

            */ - Endpoint?: string; + TcpFlags?: RuleGroupSourceStatelessRuleMatchAttributesTcpFlags[]; +} +export namespace RuleGroupSourceStatelessRuleMatchAttributes { /** - *

            The reader endpoint for the DB cluster.

            + * @internal */ - ReaderEndpoint?: string; + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleMatchAttributes): any => ({ + ...obj, + }); +} +/** + *

            The definition of the stateless rule.

            + */ +export interface RuleGroupSourceStatelessRuleDefinition { /** - *

            A list of custom endpoints for the DB cluster.

            + *

            The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action (aws:pass, aws:drop, or aws:forward_to_sfe). You can then add custom actions.

            */ - CustomEndpoints?: string[]; + Actions?: string[]; /** - *

            Whether the DB cluster has instances in multiple Availability Zones.

            + *

            The criteria for Network Firewall to use to inspect an individual packet in a stateless rule inspection.

            */ - MultiAz?: boolean; + MatchAttributes?: RuleGroupSourceStatelessRuleMatchAttributes; +} +export namespace RuleGroupSourceStatelessRuleDefinition { /** - *

            The name of the database engine to use for this DB cluster.

            + * @internal */ - Engine?: string; + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRuleDefinition): any => ({ + ...obj, + }); +} +/** + *

            A stateless rule in the rule group.

            + */ +export interface RuleGroupSourceStatelessRulesDetails { /** - *

            The version number of the database engine to use.

            + *

            Indicates the order in which to run this rule relative to all of the rules in the stateless rule group.

            */ - EngineVersion?: string; + Priority?: number; /** - *

            The port number on which the DB instances in the DB cluster accept connections.

            + *

            Provides the definition of the stateless rule.

            */ - Port?: number; + RuleDefinition?: RuleGroupSourceStatelessRuleDefinition; +} +export namespace RuleGroupSourceStatelessRulesDetails { /** - *

            The name of the master user for the DB cluster.

            + * @internal */ - MasterUsername?: string; + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRulesDetails): any => ({ + ...obj, + }); +} +/** + *

            Stateless rules and custom actions for a stateless rule group.

            + */ +export interface RuleGroupSourceStatelessRulesAndCustomActionsDetails { /** - *

            The range of time each day when automated backups are created, if automated backups are - * enabled.

            - *

            Uses the format HH:MM-HH:MM. For example, 04:52-05:22.

            + *

            Custom actions for the rule group.

            */ - PreferredBackupWindow?: string; + CustomActions?: RuleGroupSourceCustomActionsDetails[]; /** - *

            The weekly time range during which system maintenance can occur, in Universal - * Coordinated Time (UTC).

            - *

            Uses the format :HH:MM-:HH:MM.

            - *

            For the day values, use - * mon|tue|wed|thu|fri|sat|sun.

            - *

            For example, sun:09:32-sun:10:02.

            + *

            Stateless rules for the rule group.

            */ - PreferredMaintenanceWindow?: string; + StatelessRules?: RuleGroupSourceStatelessRulesDetails[]; +} +export namespace RuleGroupSourceStatelessRulesAndCustomActionsDetails { /** - *

            The identifiers of the read replicas that are associated with this DB cluster.

            + * @internal */ - ReadReplicaIdentifiers?: string[]; + export const filterSensitiveLog = (obj: RuleGroupSourceStatelessRulesAndCustomActionsDetails): any => ({ + ...obj, + }); +} +/** + *

            The rules and actions for the rule group.

            + */ +export interface RuleGroupSource { /** - *

            A list of VPC security groups that the DB cluster belongs to.

            + *

            Stateful inspection criteria for a domain list rule group. A domain list rule group determines access by specific protocols to specific domains.

            */ - VpcSecurityGroups?: AwsRdsDbInstanceVpcSecurityGroup[]; + RulesSourceList?: RuleGroupSourceListDetails; /** - *

            Specifies the identifier that Amazon Route 53 assigns when you create a hosted - * zone.

            + *

            Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules.

            */ - HostedZoneId?: string; + RulesString?: string; /** - *

            Whether the DB cluster is encrypted.

            + *

            Suricata rule specifications.

            */ - StorageEncrypted?: boolean; + StatefulRules?: RuleGroupSourceStatefulRulesDetails[]; /** - *

            The ARN of the KMS master key that is used to encrypt the database instances in the - * DB cluster.

            + *

            The stateless rules and custom actions used by a stateless rule group.

            */ - KmsKeyId?: string; + StatelessRulesAndCustomActions?: RuleGroupSourceStatelessRulesAndCustomActionsDetails; +} +export namespace RuleGroupSource { /** - *

            The identifier of the DB cluster. The identifier must be unique within each Amazon Web Services Region - * and is immutable.

            + * @internal */ - DbClusterResourceId?: string; - - /** - *

            A list of the IAM roles that are associated with the DB cluster.

            - */ - AssociatedRoles?: AwsRdsDbClusterAssociatedRole[]; - - /** - *

            Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - ClusterCreateTime?: string; - - /** - *

            A list of log types that this DB cluster is configured to export to CloudWatch - * Logs.

            - */ - EnabledCloudWatchLogsExports?: string[]; - - /** - *

            The database engine mode of the DB cluster.

            - */ - EngineMode?: string; - - /** - *

            Whether the DB cluster has deletion protection enabled.

            - */ - DeletionProtection?: boolean; - - /** - *

            Whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled.

            - */ - HttpEndpointEnabled?: boolean; - - /** - *

            The status of the database activity stream.

            - */ - ActivityStreamStatus?: string; - - /** - *

            Whether tags are copied from the DB cluster to snapshots of the DB cluster.

            - */ - CopyTagsToSnapshot?: boolean; - - /** - *

            Whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services - * account.

            - */ - CrossAccountClone?: boolean; - - /** - *

            The Active Directory domain membership records that are associated with the DB - * cluster.

            - */ - DomainMemberships?: AwsRdsDbDomainMembership[]; - - /** - *

            The name of the DB cluster parameter group for the DB cluster.

            - */ - DbClusterParameterGroup?: string; - - /** - *

            The subnet group that is associated with the DB cluster, including the name, - * description, and subnets in the subnet group.

            - */ - DbSubnetGroup?: string; - - /** - *

            The list of option group memberships for this DB cluster.

            - */ - DbClusterOptionGroupMemberships?: AwsRdsDbClusterOptionGroupMembership[]; - - /** - *

            The DB cluster identifier that the user assigned to the cluster. This identifier is the - * unique key that identifies a DB cluster.

            - */ - DbClusterIdentifier?: string; - - /** - *

            The list of instances that make up the DB cluster.

            - */ - DbClusterMembers?: AwsRdsDbClusterMember[]; - - /** - *

            Whether the mapping of IAM accounts to database accounts is enabled.

            - */ - IamDatabaseAuthenticationEnabled?: boolean; -} - -export namespace AwsRdsDbClusterDetails { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbClusterDetails): any => ({ - ...obj, - }); -} - -/** - *

            Information about an Amazon RDS DB cluster snapshot.

            - */ -export interface AwsRdsDbClusterSnapshotDetails { - /** - *

            A list of Availability Zones where instances in the DB cluster can be created.

            - */ - AvailabilityZones?: string[]; - - /** - *

            Indicates when the snapshot was taken.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - SnapshotCreateTime?: string; - - /** - *

            The name of the database engine that you want to use for this DB instance.

            - */ - Engine?: string; - - /** - *

            Specifies the allocated storage size in gibibytes (GiB).

            - */ - AllocatedStorage?: number; - - /** - *

            The status of this DB cluster snapshot.

            - */ - Status?: string; - - /** - *

            The port number on which the DB instances in the DB cluster accept connections.

            - */ - Port?: number; - - /** - *

            The VPC ID that is associated with the DB cluster snapshot.

            - */ - VpcId?: string; - - /** - *

            Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - ClusterCreateTime?: string; - - /** - *

            The name of the master user for the DB cluster.

            - */ - MasterUsername?: string; - - /** - *

            The version of the database engine to use.

            - */ - EngineVersion?: string; - - /** - *

            The license model information for this DB cluster snapshot.

            - */ - LicenseModel?: string; - - /** - *

            The type of DB cluster snapshot.

            - */ - SnapshotType?: string; - - /** - *

            Specifies the percentage of the estimated data that has been transferred.

            - */ - PercentProgress?: number; - - /** - *

            Whether the DB cluster is encrypted.

            - */ - StorageEncrypted?: boolean; - - /** - *

            The ARN of the KMS master key that is used to encrypt the database instances in the - * DB cluster.

            - */ - KmsKeyId?: string; - - /** - *

            The DB cluster identifier.

            - */ - DbClusterIdentifier?: string; - - /** - *

            The identifier of the DB cluster snapshot.

            - */ - DbClusterSnapshotIdentifier?: string; - - /** - *

            Whether mapping of IAM accounts to database accounts is enabled.

            - */ - IamDatabaseAuthenticationEnabled?: boolean; -} - -export namespace AwsRdsDbClusterSnapshotDetails { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbClusterSnapshotDetails): any => ({ - ...obj, - }); -} - -/** - *

            An IAM role associated with the DB instance.

            - */ -export interface AwsRdsDbInstanceAssociatedRole { - /** - *

            The ARN of the IAM role that is associated with the DB - * instance.

            - */ - RoleArn?: string; - - /** - *

            The name of the feature associated with the IAM role.

            - */ - FeatureName?: string; - - /** - *

            Describes the state of the association between the IAM role and the DB instance. The - * Status property returns one of the following values:

            - *
              - *
            • - *

              - * ACTIVE - The IAM role ARN is associated with the DB instance and can - * be used to access other Amazon Web Services services on your behalf.

              - *
            • - *
            • - *

              - * PENDING - The IAM role ARN is being associated with the DB - * instance.

              - *
            • - *
            • - *

              - * INVALID - The IAM role ARN is associated with the DB instance. But - * the DB instance is unable to assume the IAM role in order to access other Amazon Web Services - * services on your behalf.

              - *
            • - *
            - */ - Status?: string; -} - -export namespace AwsRdsDbInstanceAssociatedRole { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbInstanceAssociatedRole): any => ({ - ...obj, - }); -} - -/** - *

            Provides information about a parameter group for a DB instance.

            - */ -export interface AwsRdsDbParameterGroup { - /** - *

            The name of the parameter group.

            - */ - DbParameterGroupName?: string; - - /** - *

            The status of parameter updates.

            - */ - ParameterApplyStatus?: string; -} - -export namespace AwsRdsDbParameterGroup { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbParameterGroup): any => ({ - ...obj, - }); -} - -/** - *

            An Availability Zone for a subnet in a subnet group.

            - */ -export interface AwsRdsDbSubnetGroupSubnetAvailabilityZone { - /** - *

            The name of the Availability Zone for a subnet in the subnet group.

            - */ - Name?: string; -} - -export namespace AwsRdsDbSubnetGroupSubnetAvailabilityZone { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbSubnetGroupSubnetAvailabilityZone): any => ({ - ...obj, - }); -} - -/** - *

            Information about a subnet in a subnet group.

            - */ -export interface AwsRdsDbSubnetGroupSubnet { - /** - *

            The identifier of a subnet in the subnet group.

            - */ - SubnetIdentifier?: string; - - /** - *

            Information about the Availability Zone for a subnet in the subnet group.

            - */ - SubnetAvailabilityZone?: AwsRdsDbSubnetGroupSubnetAvailabilityZone; - - /** - *

            The status of a subnet in the subnet group.

            - */ - SubnetStatus?: string; -} - -export namespace AwsRdsDbSubnetGroupSubnet { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbSubnetGroupSubnet): any => ({ - ...obj, - }); -} - -/** - *

            Information about the subnet group for the database instance.

            - */ -export interface AwsRdsDbSubnetGroup { - /** - *

            The name of the subnet group.

            - */ - DbSubnetGroupName?: string; - - /** - *

            The description of the subnet group.

            - */ - DbSubnetGroupDescription?: string; - - /** - *

            The VPC ID of the subnet group.

            - */ - VpcId?: string; - - /** - *

            The status of the subnet group.

            - */ - SubnetGroupStatus?: string; - - /** - *

            A list of subnets in the subnet group.

            - */ - Subnets?: AwsRdsDbSubnetGroupSubnet[]; - - /** - *

            The ARN of the subnet group.

            - */ - DbSubnetGroupArn?: string; -} - -export namespace AwsRdsDbSubnetGroup { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbSubnetGroup): any => ({ - ...obj, - }); -} - -/** - *

            Specifies the connection endpoint.

            - */ -export interface AwsRdsDbInstanceEndpoint { - /** - *

            Specifies the DNS address of the DB instance.

            - */ - Address?: string; - - /** - *

            Specifies the port that the database engine is listening on.

            - */ - Port?: number; - - /** - *

            Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.

            - */ - HostedZoneId?: string; -} - -export namespace AwsRdsDbInstanceEndpoint { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbInstanceEndpoint): any => ({ - ...obj, - }); -} - -/** - *

            An option group membership.

            - */ -export interface AwsRdsDbOptionGroupMembership { - /** - *

            The name of the option group.

            - */ - OptionGroupName?: string; - - /** - *

            The status of the option group membership.

            - */ - Status?: string; -} - -export namespace AwsRdsDbOptionGroupMembership { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbOptionGroupMembership): any => ({ - ...obj, - }); -} - -/** - *

            Identifies the log types to enable and disable.

            - */ -export interface AwsRdsPendingCloudWatchLogsExports { - /** - *

            A list of log types that are being enabled.

            - */ - LogTypesToEnable?: string[]; - - /** - *

            A list of log types that are being disabled.

            - */ - LogTypesToDisable?: string[]; -} - -export namespace AwsRdsPendingCloudWatchLogsExports { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsPendingCloudWatchLogsExports): any => ({ - ...obj, - }); -} - -/** - *

            A processor feature.

            - */ -export interface AwsRdsDbProcessorFeature { - /** - *

            The name of the processor feature.

            - */ - Name?: string; - - /** - *

            The value of the processor feature.

            - */ - Value?: string; -} - -export namespace AwsRdsDbProcessorFeature { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbProcessorFeature): any => ({ - ...obj, - }); -} - -/** - *

            Changes to a DB instance that are currently pending.

            - */ -export interface AwsRdsDbPendingModifiedValues { - /** - *

            The new DB instance class for the DB instance.

            - */ - DbInstanceClass?: string; - - /** - *

            The new value of the allocated storage for the DB instance.

            - */ - AllocatedStorage?: number; - - /** - *

            The new master user password for the DB instance.

            - */ - MasterUserPassword?: string; - - /** - *

            The new port for the DB instance.

            - */ - Port?: number; - - /** - *

            The new backup retention period for the DB instance.

            - */ - BackupRetentionPeriod?: number; - - /** - *

            Indicates that a single Availability Zone DB instance is changing to a multiple Availability Zone deployment.

            - */ - MultiAZ?: boolean; - - /** - *

            The new engine version for the DB instance.

            - */ - EngineVersion?: string; - - /** - *

            The new license model value for the DB instance.

            - */ - LicenseModel?: string; - - /** - *

            The new provisioned IOPS value for the DB instance.

            - */ - Iops?: number; - - /** - *

            The new DB instance identifier for the DB instance.

            - */ - DbInstanceIdentifier?: string; - - /** - *

            The new storage type for the DB instance.

            - */ - StorageType?: string; - - /** - *

            The new CA certificate identifier for the DB instance.

            - */ - CaCertificateIdentifier?: string; - - /** - *

            The name of the new subnet group for the DB instance.

            - */ - DbSubnetGroupName?: string; - - /** - *

            A list of log types that are being enabled or disabled.

            - */ - PendingCloudWatchLogsExports?: AwsRdsPendingCloudWatchLogsExports; - - /** - *

            Processor features that are being updated.

            - */ - ProcessorFeatures?: AwsRdsDbProcessorFeature[]; -} - -export namespace AwsRdsDbPendingModifiedValues { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbPendingModifiedValues): any => ({ - ...obj, - }); -} - -/** - *

            Information about the status of a read replica.

            - */ -export interface AwsRdsDbStatusInfo { - /** - *

            The type of status. For a read replica, the status type is read replication.

            - */ - StatusType?: string; - - /** - *

            Whether the read replica instance is operating normally.

            - */ - Normal?: boolean; - - /** - *

            The status of the read replica instance.

            - */ - Status?: string; - - /** - *

            If the read replica is currently in an error state, provides the error details.

            - */ - Message?: string; -} - -export namespace AwsRdsDbStatusInfo { - /** - * @internal - */ - export const filterSensitiveLog = (obj: AwsRdsDbStatusInfo): any => ({ - ...obj, - }); -} - -/** - *

            Contains the details of an Amazon RDS DB instance.

            - */ -export interface AwsRdsDbInstanceDetails { - /** - *

            The IAM roles associated with the DB - * instance.

            - */ - AssociatedRoles?: AwsRdsDbInstanceAssociatedRole[]; - - /** - *

            The identifier of the CA certificate for this DB instance.

            - */ - CACertificateIdentifier?: string; - - /** - *

            If the DB instance is a member of a DB cluster, contains the name of the DB cluster that - * the DB instance is a member of.

            - */ - DBClusterIdentifier?: string; - - /** - *

            Contains a user-supplied database identifier. This identifier is the unique key that - * identifies a DB instance.

            - */ - DBInstanceIdentifier?: string; - - /** - *

            Contains the name of the compute and memory capacity class of the DB instance.

            - */ - DBInstanceClass?: string; - - /** - *

            Specifies the port that the DB instance listens on. If the DB instance is part of a DB - * cluster, this can be a different port than the DB cluster port.

            - */ - DbInstancePort?: number; - - /** - *

            The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is - * found in CloudTrail log entries whenever the KMS key for the DB instance is - * accessed.

            - */ - DbiResourceId?: string; - - /** - *

            The meaning of this parameter differs according to the database engine you use.

            - *

            - * MySQL, MariaDB, SQL Server, PostgreSQL - *

            - *

            Contains the name of the initial database of this instance that was provided at create - * time, if one was specified when the DB instance was created. This same name is returned for - * the life of the DB instance.

            - *

            - * Oracle - *

            - *

            Contains the Oracle System ID (SID) of the created DB instance. Not shown when the - * returned parameters do not apply to an Oracle DB instance.

            - */ - DBName?: string; - - /** - *

            Indicates whether the DB instance has deletion protection enabled.

            - *

            When deletion protection is enabled, the database cannot be deleted.

            - */ - DeletionProtection?: boolean; - - /** - *

            Specifies the connection endpoint.

            - */ - Endpoint?: AwsRdsDbInstanceEndpoint; - - /** - *

            Provides the name of the database engine to use for this DB instance.

            - */ - Engine?: string; - - /** - *

            Indicates the database engine version.

            - */ - EngineVersion?: string; - - /** - *

            True if mapping of IAM accounts to database - * accounts is enabled, and otherwise false.

            - *

            IAM database authentication can be enabled for the following database engines.

            - *
              - *
            • - *

              For MySQL 5.6, minor version 5.6.34 or higher

              - *
            • - *
            • - *

              For MySQL 5.7, minor version 5.7.16 or higher

              - *
            • - *
            • - *

              Aurora 5.6 or higher

              - *
            • - *
            - */ - IAMDatabaseAuthenticationEnabled?: boolean; - - /** - *

            Indicates when the DB instance was created.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - InstanceCreateTime?: string; - - /** - *

            If StorageEncrypted is true, the KMS key identifier for the encrypted - * DB instance.

            - */ - KmsKeyId?: string; - - /** - *

            Specifies the accessibility options for the DB instance.

            - *

            A value of true specifies an Internet-facing instance with a publicly resolvable DNS - * name, which resolves to a public IP address.

            - *

            A value of false specifies an internal instance with a DNS name that resolves to a - * private IP address.

            - */ - PubliclyAccessible?: boolean; - - /** - *

            Specifies whether the DB instance is encrypted.

            - */ - StorageEncrypted?: boolean; - - /** - *

            The ARN from the key store with which the instance is associated for TDE - * encryption.

            - */ - TdeCredentialArn?: string; - - /** - *

            A list of VPC security groups that the DB instance belongs to.

            - */ - VpcSecurityGroups?: AwsRdsDbInstanceVpcSecurityGroup[]; - - /** - *

            Whether the DB instance is a multiple Availability Zone deployment.

            - */ - MultiAz?: boolean; - - /** - *

            The ARN of the CloudWatch Logs log stream that receives the enhanced monitoring metrics - * data for the DB instance.

            - */ - EnhancedMonitoringResourceArn?: string; - - /** - *

            The current status of the DB instance.

            - */ - DbInstanceStatus?: string; - - /** - *

            The master user name of the DB instance.

            - */ - MasterUsername?: string; - - /** - *

            The amount of storage (in gigabytes) to initially allocate for the DB instance.

            - */ - AllocatedStorage?: number; - - /** - *

            The range of time each day when automated backups are created, if automated backups are - * enabled.

            - *

            Uses the format HH:MM-HH:MM. For example, 04:52-05:22.

            - */ - PreferredBackupWindow?: string; - - /** - *

            The number of days for which to retain automated backups.

            - */ - BackupRetentionPeriod?: number; - - /** - *

            A list of the DB security groups to assign to the DB instance.

            - */ - DbSecurityGroups?: string[]; - - /** - *

            A list of the DB parameter groups to assign to the DB instance.

            - */ - DbParameterGroups?: AwsRdsDbParameterGroup[]; - - /** - *

            The Availability Zone where the DB instance will be created.

            - */ - AvailabilityZone?: string; - - /** - *

            Information about the subnet group that is associated with the DB instance.

            - */ - DbSubnetGroup?: AwsRdsDbSubnetGroup; - - /** - *

            The weekly time range during which system maintenance can occur, in Universal - * Coordinated Time (UTC).

            - *

            Uses the format :HH:MM-:HH:MM.

            - *

            For the day values, use - * mon|tue|wed|thu|fri|sat|sun.

            - *

            For example, sun:09:32-sun:10:02.

            - */ - PreferredMaintenanceWindow?: string; - - /** - *

            Changes to the DB instance that are currently pending.

            - */ - PendingModifiedValues?: AwsRdsDbPendingModifiedValues; - - /** - *

            Specifies the latest time to which a database can be restored with point-in-time - * restore.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - LatestRestorableTime?: string; - - /** - *

            Indicates whether minor version patches are applied automatically.

            - */ - AutoMinorVersionUpgrade?: boolean; - - /** - *

            If this DB instance is a read replica, contains the identifier of the source DB - * instance.

            - */ - ReadReplicaSourceDBInstanceIdentifier?: string; - - /** - *

            List of identifiers of the read replicas associated with this DB instance.

            - */ - ReadReplicaDBInstanceIdentifiers?: string[]; - - /** - *

            List of identifiers of Aurora DB clusters to which the RDS DB instance is replicated as - * a read replica.

            - */ - ReadReplicaDBClusterIdentifiers?: string[]; - - /** - *

            License model information for this DB instance.

            - */ - LicenseModel?: string; - - /** - *

            Specifies the provisioned IOPS (I/O operations per second) for this DB instance.

            - */ - Iops?: number; - - /** - *

            The list of option group memberships for this DB instance.

            - */ - OptionGroupMemberships?: AwsRdsDbOptionGroupMembership[]; - - /** - *

            The name of the character set that this DB instance is associated with.

            - */ - CharacterSetName?: string; - - /** - *

            For a DB instance with multi-Availability Zone support, the name of the secondary - * Availability Zone.

            - */ - SecondaryAvailabilityZone?: string; - - /** - *

            The status of a read replica. If the instance isn't a read replica, this is - * empty.

            - */ - StatusInfos?: AwsRdsDbStatusInfo[]; - - /** - *

            The storage type for the DB instance.

            - */ - StorageType?: string; - - /** - *

            The Active Directory domain membership records associated with the DB instance.

            - */ - DomainMemberships?: AwsRdsDbDomainMembership[]; - - /** - *

            Whether to copy resource tags to snapshots of the DB instance.

            - */ - CopyTagsToSnapshot?: boolean; - - /** - *

            The interval, in seconds, between points when enhanced monitoring metrics are collected - * for the DB instance.

            - */ - MonitoringInterval?: number; - - /** - *

            The ARN for the IAM role that permits Amazon RDS to send enhanced monitoring metrics to - * CloudWatch Logs.

            - */ - MonitoringRoleArn?: string; - - /** - *

            The order in which to promote an Aurora replica to the primary instance after a failure - * of the existing primary instance.

            - */ - PromotionTier?: number; - - /** - *

            The time zone of the DB instance.

            - */ - Timezone?: string; - - /** - *

            Indicates whether Performance Insights is enabled for the DB instance.

            - */ - PerformanceInsightsEnabled?: boolean; - - /** - *

            The identifier of the KMS key used to encrypt the Performance Insights data.

            - */ - PerformanceInsightsKmsKeyId?: string; - - /** - *

            The number of days to retain Performance Insights data.

            - */ - PerformanceInsightsRetentionPeriod?: number; - - /** - *

            A list of log types that this DB instance is configured to export to CloudWatch Logs.

            - */ - EnabledCloudWatchLogsExports?: string[]; + export const filterSensitiveLog = (obj: RuleGroupSource): any => ({ + ...obj, + }); +} +/** + *

            A list of IP addresses and address ranges, in CIDR notation.

            + */ +export interface RuleGroupVariablesIpSetsDetails { /** - *

            The number of CPU cores and the number of threads per core for the DB instance class of - * the DB instance.

            + *

            The list of IP addresses and ranges.

            */ - ProcessorFeatures?: AwsRdsDbProcessorFeature[]; + Definition?: string[]; +} +export namespace RuleGroupVariablesIpSetsDetails { /** - *

            Specifies the connection endpoint.

            + * @internal */ - ListenerEndpoint?: AwsRdsDbInstanceEndpoint; + export const filterSensitiveLog = (obj: RuleGroupVariablesIpSetsDetails): any => ({ + ...obj, + }); +} +/** + *

            A list of port ranges.

            + */ +export interface RuleGroupVariablesPortSetsDetails { /** - *

            The upper limit to which Amazon RDS can automatically scale the storage of the DB - * instance.

            + *

            The list of port ranges.

            */ - MaxAllocatedStorage?: number; + Definition?: string[]; } -export namespace AwsRdsDbInstanceDetails { +export namespace RuleGroupVariablesPortSetsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbInstanceDetails): any => ({ + export const filterSensitiveLog = (obj: RuleGroupVariablesPortSetsDetails): any => ({ ...obj, }); } /** - *

            Provides details about an Amazon RDS DB cluster snapshot.

            + *

            Additional settings to use in the specified rules.

            */ -export interface AwsRdsDbSnapshotDetails { - /** - *

            The name or ARN of the DB snapshot that is used to restore the DB instance.

            - */ - DbSnapshotIdentifier?: string; - +export interface RuleGroupVariables { /** - *

            A name for the DB instance.

            + *

            A list of IP addresses and address ranges, in CIDR notation.

            */ - DbInstanceIdentifier?: string; + IpSets?: RuleGroupVariablesIpSetsDetails; /** - *

            When the snapshot was taken in Coordinated Universal Time (UTC).

            + *

            A list of port ranges.

            */ - SnapshotCreateTime?: string; + PortSets?: RuleGroupVariablesPortSetsDetails; +} +export namespace RuleGroupVariables { /** - *

            The name of the database engine to use for this DB instance.

            + * @internal */ - Engine?: string; + export const filterSensitiveLog = (obj: RuleGroupVariables): any => ({ + ...obj, + }); +} +/** + *

            Details about the rule group.

            + */ +export interface RuleGroupDetails { /** - *

            The amount of storage (in gigabytes) to be initially allocated for the database instance.

            + *

            Additional settings to use in the specified rules.

            */ - AllocatedStorage?: number; + RuleVariables?: RuleGroupVariables; /** - *

            The status of this DB snapshot.

            + *

            The rules and actions for the rule group.

            + *

            For stateful rule groups, can contain RulesString, RulesSourceList, or StatefulRules.

            + *

            For stateless rule groups, contains StatelessRulesAndCustomActions.

            */ - Status?: string; + RulesSource?: RuleGroupSource; +} +export namespace RuleGroupDetails { /** - *

            The port that the database engine was listening on at the time of the snapshot.

            + * @internal */ - Port?: number; + export const filterSensitiveLog = (obj: RuleGroupDetails): any => ({ + ...obj, + }); +} +/** + *

            Details about an Network Firewall rule group. Rule groups are used to inspect and control network traffic. Stateless rule groups apply to individual packets. Stateful rule groups apply to packets in the context of their traffic flow.

            + *

            Rule groups are referenced in firewall policies. + *

            + */ +export interface AwsNetworkFirewallRuleGroupDetails { /** - *

            Specifies the name of the Availability Zone in which the DB instance was located at the time of the DB snapshot.

            + *

            The maximum number of operating resources that this rule group can use.

            */ - AvailabilityZone?: string; + Capacity?: number; /** - *

            The VPC ID associated with the DB snapshot.

            + *

            A description of the rule group.

            */ - VpcId?: string; + Description?: string; /** - *

            Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.

            + *

            Details about the rule group.

            */ - InstanceCreateTime?: string; + RuleGroup?: RuleGroupDetails; /** - *

            The master user name for the DB snapshot.

            + *

            The ARN of the rule group.

            */ - MasterUsername?: string; + RuleGroupArn?: string; /** - *

            The version of the database engine.

            + *

            The identifier of the rule group.

            */ - EngineVersion?: string; + RuleGroupId?: string; /** - *

            License model information for the restored DB instance.

            + *

            The descriptive name of the rule group.

            */ - LicenseModel?: string; + RuleGroupName?: string; /** - *

            The type of the DB snapshot.

            + *

            The type of rule group. A rule group can be stateful or stateless.

            */ - SnapshotType?: string; + Type?: string; +} +export namespace AwsNetworkFirewallRuleGroupDetails { /** - *

            The provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.

            + * @internal */ - Iops?: number; + export const filterSensitiveLog = (obj: AwsNetworkFirewallRuleGroupDetails): any => ({ + ...obj, + }); +} +/** + *

            Configuration options for zone awareness.

            + */ +export interface AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails { /** - *

            The option group name for the DB snapshot.

            + *

            The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

            */ - OptionGroupName?: string; + AvailabilityZoneCount?: number; +} +export namespace AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails { /** - *

            The percentage of the estimated data that has been transferred.

            + * @internal */ - PercentProgress?: number; + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails): any => ({ + ...obj, + }); +} +/** + *

            Details about the configuration of an OpenSearch cluster.

            + */ +export interface AwsOpenSearchServiceDomainClusterConfigDetails { /** - *

            The Amazon Web Services Region that the DB snapshot was created in or copied from.

            + *

            The number of data nodes to use in the OpenSearch domain.

            */ - SourceRegion?: string; + InstanceCount?: number; /** - *

            The DB snapshot ARN that the DB snapshot was copied from.

            + *

            Whether UltraWarm is enabled.

            */ - SourceDbSnapshotIdentifier?: string; + WarmEnabled?: boolean; /** - *

            The storage type associated with the DB snapshot.

            + *

            The number of UltraWarm instances.

            */ - StorageType?: string; + WarmCount?: number; /** - *

            The ARN from the key store with which to associate the instance for TDE encryption.

            + *

            Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

            */ - TdeCredentialArn?: string; + DedicatedMasterEnabled?: boolean; /** - *

            Whether the DB snapshot is encrypted.

            + *

            Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

            */ - Encrypted?: boolean; + ZoneAwarenessConfig?: AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails; /** - *

            If Encrypted is true, the KMS key identifier for the encrypted DB snapshot.

            + *

            The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

            */ - KmsKeyId?: string; + DedicatedMasterCount?: number; /** - *

            The time zone of the DB snapshot.

            + *

            The instance type for your data nodes.

            */ - Timezone?: string; + InstanceType?: string; /** - *

            Whether mapping of IAM accounts to database accounts is enabled.

            + *

            The type of UltraWarm instance.

            */ - IamDatabaseAuthenticationEnabled?: boolean; + WarmType?: string; /** - *

            The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

            + *

            Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

            */ - ProcessorFeatures?: AwsRdsDbProcessorFeature[]; + ZoneAwarenessEnabled?: boolean; /** - *

            The identifier for the source DB instance.

            + *

            The hardware configuration of the computer that hosts the dedicated master node.

            + *

            If this attribute is specified, then DedicatedMasterEnabled must be true. + *

            */ - DbiResourceId?: string; + DedicatedMasterType?: string; } -export namespace AwsRdsDbSnapshotDetails { +export namespace AwsOpenSearchServiceDomainClusterConfigDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsDbSnapshotDetails): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainClusterConfigDetails): any => ({ ...obj, }); } /** - *

            Details about an Amazon RDS event notification subscription. The subscription allows Amazon RDS to post events to an SNS topic.

            + *

            Information about additional options for the domain endpoint.

            */ -export interface AwsRdsEventSubscriptionDetails { - /** - *

            The identifier of the account that is associated with the event notification subscription.

            - */ - CustSubscriptionId?: string; - - /** - *

            The identifier of the event notification subscription.

            - */ - CustomerAwsId?: string; - - /** - *

            Whether the event notification subscription is enabled.

            - */ - Enabled?: boolean; - - /** - *

            The list of event categories for the event notification subscription.

            - */ - EventCategoriesList?: string[]; - - /** - *

            The ARN of the event notification subscription.

            - */ - EventSubscriptionArn?: string; - +export interface AwsOpenSearchServiceDomainDomainEndpointOptionsDetails { /** - *

            The ARN of the SNS topic to post the event notifications to.

            + *

            The ARN for the security certificate. The certificate is managed in ACM.

            */ - SnsTopicArn?: string; + CustomEndpointCertificateArn?: string; /** - *

            A list of source identifiers for the event notification subscription.

            + *

            Whether to enable a custom endpoint for the domain.

            */ - SourceIdsList?: string[]; + CustomEndpointEnabled?: boolean; /** - *

            The source type for the event notification subscription.

            + *

            Whether to require that all traffic to the domain arrive over HTTPS.

            */ - SourceType?: string; + EnforceHTTPS?: boolean; /** - *

            The status of the event notification subscription.

            - *

            Valid values: creating | modifying | deleting | active | no-permission | topic-not-exist - *

            + *

            The fully qualified URL for the custom endpoint.

            */ - Status?: string; + CustomEndpoint?: string; /** - *

            The datetime when the event notification subscription was created.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            + *

            The TLS security policy to apply to the HTTPS endpoint of the OpenSearch domain.

            */ - SubscriptionCreationTime?: string; + TLSSecurityPolicy?: string; } -export namespace AwsRdsEventSubscriptionDetails { +export namespace AwsOpenSearchServiceDomainDomainEndpointOptionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRdsEventSubscriptionDetails): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainDomainEndpointOptionsDetails): any => ({ ...obj, }); } /** - *

            A node in an Amazon Redshift cluster.

            + *

            Details about the configuration for encryption at rest for the OpenSearch domain.

            */ -export interface AwsRedshiftClusterClusterNode { - /** - *

            The role of the node. A node might be a leader node or a compute node.

            - */ - NodeRole?: string; - +export interface AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails { /** - *

            The private IP address of the node.

            + *

            Whether encryption at rest is enabled.

            */ - PrivateIpAddress?: string; + Enabled?: boolean; /** - *

            The public IP address of the node.

            + *

            The KMS key ID.

            */ - PublicIpAddress?: string; + KmsKeyId?: string; } -export namespace AwsRedshiftClusterClusterNode { +export namespace AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterNode): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails): any => ({ ...obj, }); } /** - *

            The status of a parameter in a cluster parameter group for an Amazon Redshift - * cluster.

            + *

            Configuration details for a log publishing option.

            */ -export interface AwsRedshiftClusterClusterParameterStatus { - /** - *

            The name of the parameter.

            - */ - ParameterName?: string; - +export interface AwsOpenSearchServiceDomainLogPublishingOption { /** - *

            The status of the parameter. Indicates whether the parameter is in sync with the - * database, waiting for a cluster reboot, or encountered an error when it was applied.

            - *

            Valid values: in-sync | pending-reboot | applying - * | invalid-parameter | apply-deferred | apply-error | - * unknown-error - *

            + *

            The ARN of the CloudWatch Logs group to publish the logs to.

            */ - ParameterApplyStatus?: string; + CloudWatchLogsLogGroupArn?: string; /** - *

            The error that prevented the parameter from being applied to the database.

            + *

            Whether the log publishing is enabled.

            */ - ParameterApplyErrorDescription?: string; + Enabled?: boolean; } -export namespace AwsRedshiftClusterClusterParameterStatus { +export namespace AwsOpenSearchServiceDomainLogPublishingOption { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterParameterStatus): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainLogPublishingOption): any => ({ ...obj, }); } /** - *

            A cluster parameter group that is associated with an Amazon Redshift cluster.

            + *

            Configures the CloudWatch Logs to publish for the OpenSearch domain.

            */ -export interface AwsRedshiftClusterClusterParameterGroup { - /** - *

            The list of parameter statuses.

            - */ - ClusterParameterStatusList?: AwsRedshiftClusterClusterParameterStatus[]; - - /** - *

            The status of updates to the parameters.

            - */ - ParameterApplyStatus?: string; - - /** - *

            The name of the parameter group.

            - */ - ParameterGroupName?: string; -} - -export namespace AwsRedshiftClusterClusterParameterGroup { +export interface AwsOpenSearchServiceDomainLogPublishingOptionsDetails { /** - * @internal + *

            Configures the OpenSearch index logs publishing.

            */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterParameterGroup): any => ({ - ...obj, - }); -} + IndexSlowLogs?: AwsOpenSearchServiceDomainLogPublishingOption; -/** - *

            A security group that is associated with the cluster.

            - */ -export interface AwsRedshiftClusterClusterSecurityGroup { /** - *

            The name of the cluster security group.

            + *

            Configures the OpenSearch search slow log publishing.

            */ - ClusterSecurityGroupName?: string; + SearchSlowLogs?: AwsOpenSearchServiceDomainLogPublishingOption; /** - *

            The status of the cluster security group.

            + *

            Configures the OpenSearch audit logs publishing.

            */ - Status?: string; + AuditLogs?: AwsOpenSearchServiceDomainLogPublishingOption; } -export namespace AwsRedshiftClusterClusterSecurityGroup { +export namespace AwsOpenSearchServiceDomainLogPublishingOptionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterSecurityGroup): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainLogPublishingOptionsDetails): any => ({ ...obj, }); } /** - *

            Information about a cross-Region snapshot copy.

            + *

            Provides details about the configuration for node-to-node encryption.

            */ -export interface AwsRedshiftClusterClusterSnapshotCopyStatus { - /** - *

            The destination Region that snapshots are automatically copied to when cross-Region - * snapshot copy is enabled.

            - */ - DestinationRegion?: string; - - /** - *

            The number of days that manual snapshots are retained in the destination region after - * they are copied from a source region.

            - *

            If the value is -1, then the manual snapshot is retained indefinitely.

            - *

            Valid values: Either -1 or an integer between 1 and 3,653

            - */ - ManualSnapshotRetentionPeriod?: number; - - /** - *

            The number of days to retain automated snapshots in the destination Region after they - * are copied from a source Region.

            - */ - RetentionPeriod?: number; - +export interface AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails { /** - *

            The name of the snapshot copy grant.

            + *

            Whether node-to-node encryption is enabled.

            */ - SnapshotCopyGrantName?: string; + Enabled?: boolean; } -export namespace AwsRedshiftClusterClusterSnapshotCopyStatus { +export namespace AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterSnapshotCopyStatus): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails): any => ({ ...obj, }); } /** - *

            A time windows during which maintenance was deferred for an Amazon Redshift - * cluster.

            + *

            Provides information about the state of the domain relative to the latest service software.

            */ -export interface AwsRedshiftClusterDeferredMaintenanceWindow { - /** - *

            The end of the time window for which maintenance was deferred.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - DeferMaintenanceEndTime?: string; - +export interface AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails { /** - *

            The identifier of the maintenance window.

            + *

            The epoch time when the deployment window closes for required updates. After this time, OpenSearch Service schedules the software upgrade automatically.

            */ - DeferMaintenanceIdentifier?: string; + AutomatedUpdateDate?: string; /** - *

            The start of the time window for which maintenance was deferred.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            + *

            Whether a request to update the domain can be canceled.

            */ - DeferMaintenanceStartTime?: string; -} + Cancellable?: boolean; -export namespace AwsRedshiftClusterDeferredMaintenanceWindow { /** - * @internal + *

            The version of the service software that is currently installed on the domain.

            */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterDeferredMaintenanceWindow): any => ({ - ...obj, - }); -} + CurrentVersion?: string; -/** - *

            The status of the elastic IP (EIP) address for an Amazon Redshift cluster.

            - */ -export interface AwsRedshiftClusterElasticIpStatus { /** - *

            The elastic IP address for the cluster.

            + *

            A more detailed description of the service software status.

            */ - ElasticIp?: string; + Description?: string; /** - *

            The status of the elastic IP address.

            + *

            The most recent version of the service software.

            */ - Status?: string; -} + NewVersion?: string; -export namespace AwsRedshiftClusterElasticIpStatus { /** - * @internal + *

            Whether a service software update is available for the domain.

            */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterElasticIpStatus): any => ({ - ...obj, - }); -} + UpdateAvailable?: boolean; -/** - *

            The connection endpoint for an Amazon Redshift cluster.

            - */ -export interface AwsRedshiftClusterEndpoint { /** - *

            The DNS address of the cluster.

            + *

            The status of the service software update.

            */ - Address?: string; + UpdateStatus?: string; /** - *

            The port that the database engine listens on.

            + *

            Whether the service software update is optional.

            */ - Port?: number; + OptionalDeployment?: boolean; } -export namespace AwsRedshiftClusterEndpoint { +export namespace AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterEndpoint): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails): any => ({ ...obj, }); } /** - *

            Information about whether an Amazon Redshift cluster finished applying any hardware - * changes to security module (HSM) settings that were specified in a modify cluster - * command.

            + *

            Contains information that OpenSearch Service derives based on the VPCOptions for the domain.

            */ -export interface AwsRedshiftClusterHsmStatus { - /** - *

            The name of the HSM client certificate that the Amazon Redshift cluster uses to retrieve - * the data encryption keys that are stored in an HSM.

            - */ - HsmClientCertificateIdentifier?: string; - +export interface AwsOpenSearchServiceDomainVpcOptionsDetails { /** - *

            The name of the HSM configuration that contains the information that the Amazon Redshift - * cluster can use to retrieve and store keys in an HSM.

            + *

            The list of security group IDs that are associated with the VPC endpoints for the domain.

            */ - HsmConfigurationIdentifier?: string; + SecurityGroupIds?: string[]; /** - *

            Indicates whether the Amazon Redshift cluster has finished applying any HSM settings - * changes specified in a modify cluster command.

            - *

            Type: String

            - *

            Valid values: active | applying - *

            + *

            A list of subnet IDs that are associated with the VPC endpoints for the domain.

            */ - Status?: string; + SubnetIds?: string[]; } -export namespace AwsRedshiftClusterHsmStatus { +export namespace AwsOpenSearchServiceDomainVpcOptionsDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterHsmStatus): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainVpcOptionsDetails): any => ({ ...obj, }); } /** - *

            An IAM role that the cluster can use to access other Amazon Web Services services.

            + *

            Information about an Amazon OpenSearch Service domain.

            */ -export interface AwsRedshiftClusterIamRole { +export interface AwsOpenSearchServiceDomainDetails { /** - *

            The status of the IAM role's association with the cluster.

            - *

            Valid values: in-sync | adding | removing - *

            + *

            The ARN of the OpenSearch Service domain.

            */ - ApplyStatus?: string; + Arn?: string; /** - *

            The ARN of the IAM role.

            + *

            IAM policy document that specifies the access policies for the OpenSearch Service domain.

            */ - IamRoleArn?: string; -} + AccessPolicies?: string; -export namespace AwsRedshiftClusterIamRole { /** - * @internal + *

            The name of the endpoint.

            */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterIamRole): any => ({ - ...obj, - }); -} + DomainName?: string; -/** - *

            Changes to the Amazon Redshift cluster that are currently pending.

            - */ -export interface AwsRedshiftClusterPendingModifiedValues { /** - *

            The pending or in-progress change to the automated snapshot retention period.

            + *

            The identifier of the domain.

            */ - AutomatedSnapshotRetentionPeriod?: number; + Id?: string; /** - *

            The pending or in-progress change to the identifier for the cluster.

            + *

            The domain endpoint.

            */ - ClusterIdentifier?: string; + DomainEndpoint?: string; /** - *

            The pending or in-progress change to the cluster type.

            + *

            The version of the domain engine.

            */ - ClusterType?: string; + EngineVersion?: string; /** - *

            The pending or in-progress change to the service version.

            + *

            Details about the configuration for encryption at rest.

            */ - ClusterVersion?: string; + EncryptionAtRestOptions?: AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails; /** - *

            The encryption type for a cluster.

            + *

            Details about the configuration for node-to-node encryption.

            */ - EncryptionType?: string; + NodeToNodeEncryptionOptions?: AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails; /** - *

            Indicates whether to create the cluster with enhanced VPC routing enabled.

            + *

            Information about the status of a domain relative to the latest service software.

            */ - EnhancedVpcRouting?: boolean; + ServiceSoftwareOptions?: AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails; /** - *

            The name of the maintenance track that the cluster changes to during the next - * maintenance window.

            + *

            Details about the configuration of an OpenSearch cluster.

            */ - MaintenanceTrackName?: string; + ClusterConfig?: AwsOpenSearchServiceDomainClusterConfigDetails; /** - *

            The pending or in-progress change to the master user password for the cluster.

            + *

            Additional options for the domain endpoint.

            */ - MasterUserPassword?: string; + DomainEndpointOptions?: AwsOpenSearchServiceDomainDomainEndpointOptionsDetails; /** - *

            The pending or in-progress change to the cluster's node type.

            + *

            Information that OpenSearch Service derives based on VPCOptions for the domain.

            */ - NodeType?: string; + VpcOptions?: AwsOpenSearchServiceDomainVpcOptionsDetails; /** - *

            The pending or in-progress change to the number of nodes in the cluster.

            + *

            Configures the CloudWatch Logs to publish for the OpenSearch domain.

            */ - NumberOfNodes?: number; + LogPublishingOptions?: AwsOpenSearchServiceDomainLogPublishingOptionsDetails; /** - *

            The pending or in-progress change to whether the cluster can be connected to from the - * public network.

            + *

            The domain endpoints. Used if the OpenSearch domain resides in a VPC.

            + *

            This is a map of key-value pairs. The key is always vpc. The value is the endpoint.

            */ - PubliclyAccessible?: boolean; + DomainEndpoints?: { [key: string]: string }; } -export namespace AwsRedshiftClusterPendingModifiedValues { +export namespace AwsOpenSearchServiceDomainDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterPendingModifiedValues): any => ({ + export const filterSensitiveLog = (obj: AwsOpenSearchServiceDomainDetails): any => ({ ...obj, }); } /** - *

            Information about the resize operation for the cluster.

            + *

            An IAM role that is associated with the Amazon RDS DB cluster.

            */ -export interface AwsRedshiftClusterResizeInfo { +export interface AwsRdsDbClusterAssociatedRole { /** - *

            Indicates whether the resize operation can be canceled.

            + *

            The ARN of the IAM role.

            */ - AllowCancelResize?: boolean; + RoleArn?: string; /** - *

            The type of resize operation.

            - *

            Valid values: ClassicResize - *

            + *

            The status of the association between the IAM role and the DB cluster.

            */ - ResizeType?: string; + Status?: string; } -export namespace AwsRedshiftClusterResizeInfo { +export namespace AwsRdsDbClusterAssociatedRole { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterResizeInfo): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbClusterAssociatedRole): any => ({ ...obj, }); } /** - *

            Information about the status of a cluster restore action. It only applies if the cluster - * was created by restoring a snapshot.

            + *

            Information about an instance in the DB cluster.

            */ -export interface AwsRedshiftClusterRestoreStatus { - /** - *

            The number of megabytes per second being transferred from the backup storage. Returns - * the average rate for a completed backup.

            - *

            This field is only updated when you restore to DC2 and DS2 node types.

            - */ - CurrentRestoreRateInMegaBytesPerSecond?: number; - - /** - *

            The amount of time an in-progress restore has been running, or the amount of time it - * took a completed restore to finish.

            - *

            This field is only updated when you restore to DC2 and DS2 node types.

            - */ - ElapsedTimeInSeconds?: number; - +export interface AwsRdsDbClusterMember { /** - *

            The estimate of the time remaining before the restore is complete. Returns 0 for a - * completed restore.

            - *

            This field is only updated when you restore to DC2 and DS2 node types.

            + *

            Whether the cluster member is the primary instance for the DB cluster.

            */ - EstimatedTimeToCompletionInSeconds?: number; + IsClusterWriter?: boolean; /** - *

            The number of megabytes that were transferred from snapshot storage.

            - *

            This field is only updated when you restore to DC2 and DS2 node types.

            + *

            Specifies the order in which an Aurora replica is promoted to the primary instance when + * the existing primary instance fails.

            */ - ProgressInMegaBytes?: number; + PromotionTier?: number; /** - *

            The size of the set of snapshot data that was used to restore the cluster.

            - *

            This field is only updated when you restore to DC2 and DS2 node types.

            + *

            The instance identifier for this member of the DB cluster.

            */ - SnapshotSizeInMegaBytes?: number; + DbInstanceIdentifier?: string; /** - *

            The status of the restore action.

            - *

            Valid values: starting | restoring | completed | - * failed - *

            + *

            The status of the DB cluster parameter group for this member of the DB cluster.

            */ - Status?: string; + DbClusterParameterGroupStatus?: string; } -export namespace AwsRedshiftClusterRestoreStatus { +export namespace AwsRdsDbClusterMember { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterRestoreStatus): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbClusterMember): any => ({ ...obj, }); } /** - *

            A VPC security group that the cluster belongs to, if the cluster is in a VPC.

            + *

            Information about an option group membership for a DB cluster.

            */ -export interface AwsRedshiftClusterVpcSecurityGroup { +export interface AwsRdsDbClusterOptionGroupMembership { /** - *

            The status of the VPC security group.

            + *

            The name of the DB cluster option group.

            */ - Status?: string; + DbClusterOptionGroupName?: string; /** - *

            The identifier of the VPC security group.

            + *

            The status of the DB cluster option group.

            */ - VpcSecurityGroupId?: string; + Status?: string; } -export namespace AwsRedshiftClusterVpcSecurityGroup { +export namespace AwsRdsDbClusterOptionGroupMembership { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterVpcSecurityGroup): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbClusterOptionGroupMembership): any => ({ ...obj, }); } /** - *

            Details about an Amazon Redshift cluster.

            + *

            Information about an Active Directory domain membership record associated with the DB + * instance.

            */ -export interface AwsRedshiftClusterDetails { +export interface AwsRdsDbDomainMembership { /** - *

            Indicates whether major version upgrades are applied automatically to the cluster during - * the maintenance window.

            + *

            The identifier of the Active Directory domain.

            */ - AllowVersionUpgrade?: boolean; + Domain?: string; /** - *

            The number of days that automatic cluster snapshots are retained.

            + *

            The status of the Active Directory Domain membership for the DB instance.

            */ - AutomatedSnapshotRetentionPeriod?: number; + Status?: string; /** - *

            The name of the Availability Zone in which the cluster is located.

            + *

            The fully qualified domain name of the Active Directory domain.

            */ - AvailabilityZone?: string; + Fqdn?: string; /** - *

            The availability status of the cluster for queries. Possible values are the - * following:

            - *
              - *
            • - *

              - * Available - The cluster is available for queries.

              - *
            • - *
            • - *

              - * Unavailable - The cluster is not available for queries.

              - *
            • - *
            • - *

              - * Maintenance - The cluster is intermittently available for queries due - * to maintenance activities.

              - *
            • - *
            • - *

              - * Modifying -The cluster is intermittently available for queries due to - * changes that modify the cluster.

              - *
            • - *
            • - *

              - * Failed - The cluster failed and is not available for queries.

              - *
            • - *
            + *

            The name of the IAM role to use when making API calls to the Directory Service.

            */ - ClusterAvailabilityStatus?: string; + IamRoleName?: string; +} +export namespace AwsRdsDbDomainMembership { /** - *

            Indicates when the cluster was created.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            + * @internal */ - ClusterCreateTime?: string; + export const filterSensitiveLog = (obj: AwsRdsDbDomainMembership): any => ({ + ...obj, + }); +} +/** + *

            A VPC security groups that the DB instance belongs to.

            + */ +export interface AwsRdsDbInstanceVpcSecurityGroup { /** - *

            The unique identifier of the cluster.

            + *

            The name of the VPC security group.

            */ - ClusterIdentifier?: string; + VpcSecurityGroupId?: string; /** - *

            The nodes in the cluster.

            + *

            The status of the VPC security group.

            */ - ClusterNodes?: AwsRedshiftClusterClusterNode[]; + Status?: string; +} +export namespace AwsRdsDbInstanceVpcSecurityGroup { /** - *

            The list of cluster parameter groups that are associated with this cluster.

            + * @internal */ - ClusterParameterGroups?: AwsRedshiftClusterClusterParameterGroup[]; + export const filterSensitiveLog = (obj: AwsRdsDbInstanceVpcSecurityGroup): any => ({ + ...obj, + }); +} +/** + *

            Information about an Amazon RDS DB cluster.

            + */ +export interface AwsRdsDbClusterDetails { /** - *

            The public key for the cluster.

            + *

            For all database engines except Aurora, specifies the allocated storage size in + * gibibytes (GiB).

            */ - ClusterPublicKey?: string; + AllocatedStorage?: number; /** - *

            The specific revision number of the database in the cluster.

            + *

            A list of Availability Zones (AZs) where instances in the DB cluster can be + * created.

            */ - ClusterRevisionNumber?: string; + AvailabilityZones?: string[]; /** - *

            A list of cluster security groups that are associated with the cluster.

            + *

            The number of days for which automated backups are retained.

            */ - ClusterSecurityGroups?: AwsRedshiftClusterClusterSecurityGroup[]; + BackupRetentionPeriod?: number; /** - *

            Information about the destination Region and retention period for the cross-Region - * snapshot copy.

            + *

            The name of the database.

            */ - ClusterSnapshotCopyStatus?: AwsRedshiftClusterClusterSnapshotCopyStatus; + DatabaseName?: string; /** - *

            The current status of the cluster.

            - *

            Valid values: available | available, prep-for-resize | - * available, resize-cleanup | cancelling-resize | - * creating | deleting | final-snapshot | - * hardware-failure | incompatible-hsm | - * incompatible-network | incompatible-parameters | - * incompatible-restore | modifying | paused | - * rebooting | renaming | resizing | - * rotating-keys | storage-full | - * updating-hsm - *

            + *

            The current status of this DB cluster.

            */ - ClusterStatus?: string; + Status?: string; /** - *

            The name of the subnet group that is associated with the cluster. This parameter is - * valid only when the cluster is in a VPC.

            + *

            The connection endpoint for the primary instance of the DB cluster.

            */ - ClusterSubnetGroupName?: string; + Endpoint?: string; /** - *

            The version ID of the Amazon Redshift engine that runs on the cluster.

            + *

            The reader endpoint for the DB cluster.

            */ - ClusterVersion?: string; + ReaderEndpoint?: string; /** - *

            The name of the initial database that was created when the cluster was created.

            - *

            The same name is returned for the life of the cluster.

            - *

            If an initial database is not specified, a database named devdev is created - * by default.

            + *

            A list of custom endpoints for the DB cluster.

            */ - DBName?: string; + CustomEndpoints?: string[]; /** - *

            List of time windows during which maintenance was deferred.

            + *

            Whether the DB cluster has instances in multiple Availability Zones.

            */ - DeferredMaintenanceWindows?: AwsRedshiftClusterDeferredMaintenanceWindow[]; + MultiAz?: boolean; /** - *

            Information about the status of the Elastic IP (EIP) address.

            + *

            The name of the database engine to use for this DB cluster.

            */ - ElasticIpStatus?: AwsRedshiftClusterElasticIpStatus; + Engine?: string; /** - *

            The number of nodes that you can use the elastic resize method to resize the cluster - * to.

            + *

            The version number of the database engine to use.

            */ - ElasticResizeNumberOfNodeOptions?: string; + EngineVersion?: string; /** - *

            Indicates whether the data in the cluster is encrypted at rest.

            + *

            The port number on which the DB instances in the DB cluster accept connections.

            */ - Encrypted?: boolean; + Port?: number; /** - *

            The connection endpoint.

            + *

            The name of the master user for the DB cluster.

            */ - Endpoint?: AwsRedshiftClusterEndpoint; + MasterUsername?: string; /** - *

            Indicates whether to create the cluster with enhanced VPC routing enabled.

            + *

            The range of time each day when automated backups are created, if automated backups are + * enabled.

            + *

            Uses the format HH:MM-HH:MM. For example, 04:52-05:22.

            */ - EnhancedVpcRouting?: boolean; + PreferredBackupWindow?: string; /** - *

            Indicates when the next snapshot is expected to be taken. The cluster must have a valid - * snapshot schedule and have backups enabled.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            + *

            The weekly time range during which system maintenance can occur, in Universal + * Coordinated Time (UTC).

            + *

            Uses the format :HH:MM-:HH:MM.

            + *

            For the day values, use + * mon|tue|wed|thu|fri|sat|sun.

            + *

            For example, sun:09:32-sun:10:02.

            */ - ExpectedNextSnapshotScheduleTime?: string; + PreferredMaintenanceWindow?: string; /** - *

            The status of the next expected snapshot.

            - *

            Valid values: OnTrack | Pending - *

            + *

            The identifiers of the read replicas that are associated with this DB cluster.

            */ - ExpectedNextSnapshotScheduleTimeStatus?: string; + ReadReplicaIdentifiers?: string[]; /** - *

            Information about whether the Amazon Redshift cluster finished applying any changes to - * hardware security module (HSM) settings that were specified in a modify cluster - * command.

            + *

            A list of VPC security groups that the DB cluster belongs to.

            */ - HsmStatus?: AwsRedshiftClusterHsmStatus; + VpcSecurityGroups?: AwsRdsDbInstanceVpcSecurityGroup[]; /** - *

            A list of IAM roles that the cluster can use to access other Amazon Web Services services.

            + *

            Specifies the identifier that Amazon Route 53 assigns when you create a hosted + * zone.

            */ - IamRoles?: AwsRedshiftClusterIamRole[]; + HostedZoneId?: string; /** - *

            The identifier of the KMS encryption key that is used to encrypt data in the - * cluster.

            + *

            Whether the DB cluster is encrypted.

            */ - KmsKeyId?: string; + StorageEncrypted?: boolean; /** - *

            The name of the maintenance track for the cluster.

            + *

            The ARN of the KMS master key that is used to encrypt the database instances in the + * DB cluster.

            */ - MaintenanceTrackName?: string; + KmsKeyId?: string; /** - *

            The default number of days to retain a manual snapshot.

            - *

            If the value is -1, the snapshot is retained indefinitely.

            - *

            This setting doesn't change the retention period of existing snapshots.

            - *

            Valid values: Either -1 or an integer between 1 and 3,653

            + *

            The identifier of the DB cluster. The identifier must be unique within each Amazon Web Services Region + * and is immutable.

            */ - ManualSnapshotRetentionPeriod?: number; + DbClusterResourceId?: string; /** - *

            The master user name for the cluster. This name is used to connect to the database that - * is specified in as the value of DBName.

            + *

            A list of the IAM roles that are associated with the DB cluster.

            */ - MasterUsername?: string; + AssociatedRoles?: AwsRdsDbClusterAssociatedRole[]; /** - *

            Indicates the start of the next maintenance window.

            + *

            Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

            *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet * Date/Time Format. The value cannot contain spaces. For example, * 2020-03-22T13:22:13.933Z.

            */ - NextMaintenanceWindowStartTime?: string; + ClusterCreateTime?: string; /** - *

            The node type for the nodes in the cluster.

            + *

            A list of log types that this DB cluster is configured to export to CloudWatch + * Logs.

            */ - NodeType?: string; + EnabledCloudWatchLogsExports?: string[]; /** - *

            The number of compute nodes in the cluster.

            + *

            The database engine mode of the DB cluster.

            */ - NumberOfNodes?: number; + EngineMode?: string; /** - *

            A list of cluster operations that are waiting to start.

            + *

            Whether the DB cluster has deletion protection enabled.

            */ - PendingActions?: string[]; + DeletionProtection?: boolean; /** - *

            A list of changes to the cluster that are currently pending.

            + *

            Whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled.

            */ - PendingModifiedValues?: AwsRedshiftClusterPendingModifiedValues; + HttpEndpointEnabled?: boolean; /** - *

            The weekly time range, in Universal Coordinated Time (UTC), during which system - * maintenance can occur.

            - *

            Format: - * - * :HH:MM-:HH:MM - *

            - *

            For the day values, use mon | tue | wed | - * thu | fri | sat | sun - *

            - *

            For example, sun:09:32-sun:10:02 - *

            + *

            The status of the database activity stream.

            */ - PreferredMaintenanceWindow?: string; + ActivityStreamStatus?: string; /** - *

            Whether the cluster can be accessed from a public network.

            + *

            Whether tags are copied from the DB cluster to snapshots of the DB cluster.

            */ - PubliclyAccessible?: boolean; + CopyTagsToSnapshot?: boolean; /** - *

            Information about the resize operation for the cluster.

            + *

            Whether the DB cluster is a clone of a DB cluster owned by a different Amazon Web Services + * account.

            */ - ResizeInfo?: AwsRedshiftClusterResizeInfo; + CrossAccountClone?: boolean; /** - *

            Information about the status of a cluster restore action. Only applies to a cluster that - * was created by restoring a snapshot.

            + *

            The Active Directory domain membership records that are associated with the DB + * cluster.

            */ - RestoreStatus?: AwsRedshiftClusterRestoreStatus; + DomainMemberships?: AwsRdsDbDomainMembership[]; /** - *

            A unique identifier for the cluster snapshot schedule.

            + *

            The name of the DB cluster parameter group for the DB cluster.

            */ - SnapshotScheduleIdentifier?: string; + DbClusterParameterGroup?: string; /** - *

            The current state of the cluster snapshot schedule.

            - *

            Valid values: MODIFYING | ACTIVE | FAILED - *

            + *

            The subnet group that is associated with the DB cluster, including the name, + * description, and subnets in the subnet group.

            */ - SnapshotScheduleState?: string; + DbSubnetGroup?: string; /** - *

            The identifier of the VPC that the cluster is in, if the cluster is in a VPC.

            + *

            The list of option group memberships for this DB cluster.

            */ - VpcId?: string; + DbClusterOptionGroupMemberships?: AwsRdsDbClusterOptionGroupMembership[]; + + /** + *

            The DB cluster identifier that the user assigned to the cluster. This identifier is the + * unique key that identifies a DB cluster.

            + */ + DbClusterIdentifier?: string; + + /** + *

            The list of instances that make up the DB cluster.

            + */ + DbClusterMembers?: AwsRdsDbClusterMember[]; /** - *

            The list of VPC security groups that the cluster belongs to, if the cluster is in a - * VPC.

            + *

            Whether the mapping of IAM accounts to database accounts is enabled.

            */ - VpcSecurityGroups?: AwsRedshiftClusterVpcSecurityGroup[]; + IamDatabaseAuthenticationEnabled?: boolean; } -export namespace AwsRedshiftClusterDetails { +export namespace AwsRdsDbClusterDetails { /** * @internal */ - export const filterSensitiveLog = (obj: AwsRedshiftClusterDetails): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbClusterDetails): any => ({ ...obj, }); } /** - *

            provides information about the Amazon S3 Public Access Block configuration for accounts.

            + *

            Information about an Amazon RDS DB cluster snapshot.

            */ -export interface AwsS3AccountPublicAccessBlockDetails { +export interface AwsRdsDbClusterSnapshotDetails { /** - *

            Indicates whether to reject calls to update an S3 bucket if the calls include a public access control list (ACL).

            + *

            A list of Availability Zones where instances in the DB cluster can be created.

            */ - BlockPublicAcls?: boolean; + AvailabilityZones?: string[]; /** - *

            Indicates whether to reject calls to update the access policy for an S3 bucket or access point if the policy allows public access.

            + *

            Indicates when the snapshot was taken.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            */ - BlockPublicPolicy?: boolean; + SnapshotCreateTime?: string; /** - *

            Indicates whether Amazon S3 ignores public ACLs that are associated with an S3 bucket.

            + *

            The name of the database engine that you want to use for this DB instance.

            */ - IgnorePublicAcls?: boolean; + Engine?: string; /** - *

            Indicates whether to restrict access to an access point or S3 bucket that has a public policy to only Amazon Web Services service principals and authorized users within the S3 bucket owner's account.

            + *

            Specifies the allocated storage size in gibibytes (GiB).

            */ - RestrictPublicBuckets?: boolean; -} + AllocatedStorage?: number; -export namespace AwsS3AccountPublicAccessBlockDetails { /** - * @internal + *

            The status of this DB cluster snapshot.

            */ - export const filterSensitiveLog = (obj: AwsS3AccountPublicAccessBlockDetails): any => ({ - ...obj, - }); -} + Status?: string; -/** - *

            Information about what Amazon S3 - * does when a multipart upload is incomplete.

            - */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails { /** - *

            The number of days after which Amazon S3 cancels an incomplete multipart upload.

            + *

            The port number on which the DB instances in the DB cluster accept connections.

            */ - DaysAfterInitiation?: number; -} + Port?: number; -export namespace AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails { /** - * @internal + *

            The VPC ID that is associated with the DB cluster snapshot.

            */ - export const filterSensitiveLog = ( - obj: AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails - ): any => ({ - ...obj, - }); -} + VpcId?: string; -/** - *

            A tag that is assigned to matching objects.

            - */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails { /** - *

            The tag key.

            + *

            Indicates when the DB cluster was created, in Universal Coordinated Time (UTC).

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            */ - Key?: string; + ClusterCreateTime?: string; /** - *

            The tag value.

            + *

            The name of the master user for the DB cluster.

            */ - Value?: string; -} + MasterUsername?: string; -export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails { /** - * @internal + *

            The version of the database engine to use.

            */ - export const filterSensitiveLog = ( - obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails - ): any => ({ - ...obj, - }); -} + EngineVersion?: string; -/** - *

            A value to use for the filter.

            - */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails { /** - *

            Prefix text for matching objects.

            + *

            The license model information for this DB cluster snapshot.

            */ - Prefix?: string; + LicenseModel?: string; /** - *

            A tag that is assigned to matching objects.

            + *

            The type of DB cluster snapshot.

            */ - Tag?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails; + SnapshotType?: string; /** - *

            The type of filter value.

            + *

            Specifies the percentage of the estimated data that has been transferred.

            */ - Type?: string; -} + PercentProgress?: number; -export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails { /** - * @internal + *

            Whether the DB cluster is encrypted.

            */ - export const filterSensitiveLog = ( - obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails - ): any => ({ - ...obj, - }); -} + StorageEncrypted?: boolean; -/** - *

            A tag filter.

            - */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails { /** - *

            The tag key.

            + *

            The ARN of the KMS master key that is used to encrypt the database instances in the + * DB cluster.

            */ - Key?: string; + KmsKeyId?: string; /** - *

            The tag value

            + *

            The DB cluster identifier.

            */ - Value?: string; + DbClusterIdentifier?: string; + + /** + *

            The identifier of the DB cluster snapshot.

            + */ + DbClusterSnapshotIdentifier?: string; + + /** + *

            Whether mapping of IAM accounts to database accounts is enabled.

            + */ + IamDatabaseAuthenticationEnabled?: boolean; } -export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails { +export namespace AwsRdsDbClusterSnapshotDetails { /** * @internal */ - export const filterSensitiveLog = ( - obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails - ): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbClusterSnapshotDetails): any => ({ ...obj, }); } /** - *

            The configuration for the filter.

            + *

            An IAM role associated with the DB instance.

            */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails { - /** - *

            The values to use for the filter.

            - */ - Operands?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails[]; - +export interface AwsRdsDbInstanceAssociatedRole { /** - *

            A prefix filter.

            + *

            The ARN of the IAM role that is associated with the DB + * instance.

            */ - Prefix?: string; + RoleArn?: string; /** - *

            A tag filter.

            + *

            The name of the feature associated with the IAM role.

            */ - Tag?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails; + FeatureName?: string; /** - *

            Whether to use AND or OR to join the operands.

            + *

            Describes the state of the association between the IAM role and the DB instance. The + * Status property returns one of the following values:

            + *
              + *
            • + *

              + * ACTIVE - The IAM role ARN is associated with the DB instance and can + * be used to access other Amazon Web Services services on your behalf.

              + *
            • + *
            • + *

              + * PENDING - The IAM role ARN is being associated with the DB + * instance.

              + *
            • + *
            • + *

              + * INVALID - The IAM role ARN is associated with the DB instance. But + * the DB instance is unable to assume the IAM role in order to access other Amazon Web Services + * services on your behalf.

              + *
            • + *
            */ - Type?: string; + Status?: string; } -export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails { +export namespace AwsRdsDbInstanceAssociatedRole { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbInstanceAssociatedRole): any => ({ ...obj, }); } /** - *

            Identifies the objects that a rule applies to.

            + *

            Provides information about a parameter group for a DB instance.

            */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails { +export interface AwsRdsDbParameterGroup { + /** + *

            The name of the parameter group.

            + */ + DbParameterGroupName?: string; + /** - *

            The configuration for the filter.

            + *

            The status of parameter updates.

            */ - Predicate?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails; + ParameterApplyStatus?: string; } -export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails { +export namespace AwsRdsDbParameterGroup { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbParameterGroup): any => ({ ...obj, }); } /** - *

            A transition rule that describes when noncurrent objects transition to a specified storage class.

            + *

            An Availability Zone for a subnet in a subnet group.

            */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails { - /** - *

            The number of days that an object is noncurrent before Amazon S3 can perform the associated action.

            - */ - Days?: number; - +export interface AwsRdsDbSubnetGroupSubnetAvailabilityZone { /** - *

            The class of storage to change the object to after the object is noncurrent for the specified number of days.

            + *

            The name of the Availability Zone for a subnet in the subnet group.

            */ - StorageClass?: string; + Name?: string; } -export namespace AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails { +export namespace AwsRdsDbSubnetGroupSubnetAvailabilityZone { /** * @internal */ - export const filterSensitiveLog = ( - obj: AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails - ): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbSubnetGroupSubnetAvailabilityZone): any => ({ ...obj, }); } /** - *

            A rule for when objects transition to specific storage classes.

            + *

            Information about a subnet in a subnet group.

            */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails { +export interface AwsRdsDbSubnetGroupSubnet { /** - *

            A date on which to transition objects to the specified storage class. If you provide Date, you cannot provide Days.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            + *

            The identifier of a subnet in the subnet group.

            */ - Date?: string; + SubnetIdentifier?: string; /** - *

            The number of days after which to transition the object to the specified storage class. If you provide Days, you cannot provide Date.

            + *

            Information about the Availability Zone for a subnet in the subnet group.

            */ - Days?: number; + SubnetAvailabilityZone?: AwsRdsDbSubnetGroupSubnetAvailabilityZone; /** - *

            The storage class to transition the object to.

            + *

            The status of a subnet in the subnet group.

            */ - StorageClass?: string; + SubnetStatus?: string; } -export namespace AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails { +export namespace AwsRdsDbSubnetGroupSubnet { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbSubnetGroupSubnet): any => ({ ...obj, }); } /** - *

            Configuration for a lifecycle rule.

            + *

            Information about the subnet group for the database instance.

            */ -export interface AwsS3BucketBucketLifecycleConfigurationRulesDetails { - /** - *

            How Amazon S3 responds when a multipart upload is incomplete. Specifically, provides a number - * of days before Amazon S3 cancels the entire upload.

            - */ - AbortIncompleteMultipartUpload?: AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails; - - /** - *

            The date when objects are moved or deleted.

            - *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet - * Date/Time Format. The value cannot contain spaces. For example, - * 2020-03-22T13:22:13.933Z.

            - */ - ExpirationDate?: string; - - /** - *

            The length in days of the lifetime for objects that are subject to the rule.

            - */ - ExpirationInDays?: number; - - /** - *

            Whether Amazon S3 removes a delete marker that has no noncurrent versions. If set to - * true, the delete marker is expired. If set to false, the policy - * takes no action.

            - *

            If you provide ExpiredObjectDeleteMarker, you cannot provide - * ExpirationInDays or ExpirationDate.

            - */ - ExpiredObjectDeleteMarker?: boolean; - - /** - *

            Identifies the objects that a rule applies to.

            - */ - Filter?: AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails; - +export interface AwsRdsDbSubnetGroup { /** - *

            The unique identifier of the rule.

            + *

            The name of the subnet group.

            */ - ID?: string; + DbSubnetGroupName?: string; /** - *

            The number of days that an object is noncurrent before Amazon S3 can perform the associated action.

            + *

            The description of the subnet group.

            */ - NoncurrentVersionExpirationInDays?: number; + DbSubnetGroupDescription?: string; /** - *

            Transition rules that describe when noncurrent objects transition to a specified storage class.

            + *

            The VPC ID of the subnet group.

            */ - NoncurrentVersionTransitions?: AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails[]; + VpcId?: string; /** - *

            A prefix that identifies one or more objects that the rule applies to.

            + *

            The status of the subnet group.

            */ - Prefix?: string; + SubnetGroupStatus?: string; /** - *

            The current status of the rule. Indicates whether the rule is currently being applied.

            + *

            A list of subnets in the subnet group.

            */ - Status?: string; + Subnets?: AwsRdsDbSubnetGroupSubnet[]; /** - *

            Transition rules that indicate when objects transition to a specified storage class.

            + *

            The ARN of the subnet group.

            */ - Transitions?: AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails[]; + DbSubnetGroupArn?: string; } -export namespace AwsS3BucketBucketLifecycleConfigurationRulesDetails { +export namespace AwsRdsDbSubnetGroup { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesDetails): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbSubnetGroup): any => ({ ...obj, }); } /** - *

            The lifecycle configuration for the objects in the S3 bucket.

            + *

            Specifies the connection endpoint.

            */ -export interface AwsS3BucketBucketLifecycleConfigurationDetails { - /** - *

            The lifecycle rules.

            - */ - Rules?: AwsS3BucketBucketLifecycleConfigurationRulesDetails[]; -} - -export namespace AwsS3BucketBucketLifecycleConfigurationDetails { +export interface AwsRdsDbInstanceEndpoint { /** - * @internal + *

            Specifies the DNS address of the DB instance.

            */ - export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationDetails): any => ({ - ...obj, - }); -} + Address?: string; -/** - *

            Information about logging for - * the S3 bucket

            - */ -export interface AwsS3BucketLoggingConfiguration { /** - *

            The name of the S3 bucket where log files for the S3 bucket are stored.

            + *

            Specifies the port that the database engine is listening on.

            */ - DestinationBucketName?: string; + Port?: number; /** - *

            The prefix added to log files for the S3 bucket.

            + *

            Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.

            */ - LogFilePrefix?: string; + HostedZoneId?: string; } -export namespace AwsS3BucketLoggingConfiguration { +export namespace AwsRdsDbInstanceEndpoint { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketLoggingConfiguration): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbInstanceEndpoint): any => ({ ...obj, }); } -export enum AwsS3BucketNotificationConfigurationS3KeyFilterRuleName { - PREFIX = "Prefix", - SUFFIX = "Suffix", -} - /** - *

            Details for a filter rule.

            + *

            An option group membership.

            */ -export interface AwsS3BucketNotificationConfigurationS3KeyFilterRule { +export interface AwsRdsDbOptionGroupMembership { /** - *

            Indicates whether the filter is based on the prefix or suffix of the Amazon S3 key.

            + *

            The name of the option group.

            */ - Name?: AwsS3BucketNotificationConfigurationS3KeyFilterRuleName | string; + OptionGroupName?: string; /** - *

            The filter value.

            + *

            The status of the option group membership.

            */ - Value?: string; + Status?: string; } -export namespace AwsS3BucketNotificationConfigurationS3KeyFilterRule { +export namespace AwsRdsDbOptionGroupMembership { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketNotificationConfigurationS3KeyFilterRule): any => ({ + export const filterSensitiveLog = (obj: AwsRdsDbOptionGroupMembership): any => ({ ...obj, }); } /** - *

            Details for an Amazon S3 filter.

            + *

            Identifies the log types to enable and disable.

            */ -export interface AwsS3BucketNotificationConfigurationS3KeyFilter { - /** - *

            The filter rules for the filter.

            - */ - FilterRules?: AwsS3BucketNotificationConfigurationS3KeyFilterRule[]; -} - -export namespace AwsS3BucketNotificationConfigurationS3KeyFilter { +export interface AwsRdsPendingCloudWatchLogsExports { /** - * @internal + *

            A list of log types that are being enabled.

            */ - export const filterSensitiveLog = (obj: AwsS3BucketNotificationConfigurationS3KeyFilter): any => ({ - ...obj, - }); -} + LogTypesToEnable?: string[]; -/** - *

            Filtering information for the notifications. The - * filtering is based on Amazon S3 key names.

            - */ -export interface AwsS3BucketNotificationConfigurationFilter { /** - *

            Details for an Amazon S3 filter.

            + *

            A list of log types that are being disabled.

            */ - S3KeyFilter?: AwsS3BucketNotificationConfigurationS3KeyFilter; + LogTypesToDisable?: string[]; } -export namespace AwsS3BucketNotificationConfigurationFilter { +export namespace AwsRdsPendingCloudWatchLogsExports { /** * @internal */ - export const filterSensitiveLog = (obj: AwsS3BucketNotificationConfigurationFilter): any => ({ + export const filterSensitiveLog = (obj: AwsRdsPendingCloudWatchLogsExports): any => ({ ...obj, }); } diff --git a/clients/client-securityhub/src/models/models_1.ts b/clients/client-securityhub/src/models/models_1.ts index 2d0907afe166..2749bd2ea8e0 100644 --- a/clients/client-securityhub/src/models/models_1.ts +++ b/clients/client-securityhub/src/models/models_1.ts @@ -45,19 +45,1994 @@ import { AwsKmsKeyDetails, AwsLambdaFunctionDetails, AwsLambdaLayerVersionDetails, + AwsNetworkFirewallFirewallDetails, + AwsNetworkFirewallFirewallPolicyDetails, + AwsNetworkFirewallRuleGroupDetails, AwsOpenSearchServiceDomainDetails, AwsRdsDbClusterDetails, AwsRdsDbClusterSnapshotDetails, - AwsRdsDbInstanceDetails, - AwsRdsDbSnapshotDetails, - AwsRdsEventSubscriptionDetails, - AwsRedshiftClusterDetails, - AwsS3AccountPublicAccessBlockDetails, - AwsS3BucketBucketLifecycleConfigurationDetails, - AwsS3BucketLoggingConfiguration, - AwsS3BucketNotificationConfigurationFilter, + AwsRdsDbDomainMembership, + AwsRdsDbInstanceAssociatedRole, + AwsRdsDbInstanceEndpoint, + AwsRdsDbInstanceVpcSecurityGroup, + AwsRdsDbOptionGroupMembership, + AwsRdsDbParameterGroup, + AwsRdsDbSubnetGroup, + AwsRdsPendingCloudWatchLogsExports, } from "./models_0"; +/** + *

            A processor feature.

            + */ +export interface AwsRdsDbProcessorFeature { + /** + *

            The name of the processor feature.

            + */ + Name?: string; + + /** + *

            The value of the processor feature.

            + */ + Value?: string; +} + +export namespace AwsRdsDbProcessorFeature { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRdsDbProcessorFeature): any => ({ + ...obj, + }); +} + +/** + *

            Changes to a DB instance that are currently pending.

            + */ +export interface AwsRdsDbPendingModifiedValues { + /** + *

            The new DB instance class for the DB instance.

            + */ + DbInstanceClass?: string; + + /** + *

            The new value of the allocated storage for the DB instance.

            + */ + AllocatedStorage?: number; + + /** + *

            The new master user password for the DB instance.

            + */ + MasterUserPassword?: string; + + /** + *

            The new port for the DB instance.

            + */ + Port?: number; + + /** + *

            The new backup retention period for the DB instance.

            + */ + BackupRetentionPeriod?: number; + + /** + *

            Indicates that a single Availability Zone DB instance is changing to a multiple Availability Zone deployment.

            + */ + MultiAZ?: boolean; + + /** + *

            The new engine version for the DB instance.

            + */ + EngineVersion?: string; + + /** + *

            The new license model value for the DB instance.

            + */ + LicenseModel?: string; + + /** + *

            The new provisioned IOPS value for the DB instance.

            + */ + Iops?: number; + + /** + *

            The new DB instance identifier for the DB instance.

            + */ + DbInstanceIdentifier?: string; + + /** + *

            The new storage type for the DB instance.

            + */ + StorageType?: string; + + /** + *

            The new CA certificate identifier for the DB instance.

            + */ + CaCertificateIdentifier?: string; + + /** + *

            The name of the new subnet group for the DB instance.

            + */ + DbSubnetGroupName?: string; + + /** + *

            A list of log types that are being enabled or disabled.

            + */ + PendingCloudWatchLogsExports?: AwsRdsPendingCloudWatchLogsExports; + + /** + *

            Processor features that are being updated.

            + */ + ProcessorFeatures?: AwsRdsDbProcessorFeature[]; +} + +export namespace AwsRdsDbPendingModifiedValues { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRdsDbPendingModifiedValues): any => ({ + ...obj, + }); +} + +/** + *

            Information about the status of a read replica.

            + */ +export interface AwsRdsDbStatusInfo { + /** + *

            The type of status. For a read replica, the status type is read replication.

            + */ + StatusType?: string; + + /** + *

            Whether the read replica instance is operating normally.

            + */ + Normal?: boolean; + + /** + *

            The status of the read replica instance.

            + */ + Status?: string; + + /** + *

            If the read replica is currently in an error state, provides the error details.

            + */ + Message?: string; +} + +export namespace AwsRdsDbStatusInfo { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRdsDbStatusInfo): any => ({ + ...obj, + }); +} + +/** + *

            Contains the details of an Amazon RDS DB instance.

            + */ +export interface AwsRdsDbInstanceDetails { + /** + *

            The IAM roles associated with the DB + * instance.

            + */ + AssociatedRoles?: AwsRdsDbInstanceAssociatedRole[]; + + /** + *

            The identifier of the CA certificate for this DB instance.

            + */ + CACertificateIdentifier?: string; + + /** + *

            If the DB instance is a member of a DB cluster, contains the name of the DB cluster that + * the DB instance is a member of.

            + */ + DBClusterIdentifier?: string; + + /** + *

            Contains a user-supplied database identifier. This identifier is the unique key that + * identifies a DB instance.

            + */ + DBInstanceIdentifier?: string; + + /** + *

            Contains the name of the compute and memory capacity class of the DB instance.

            + */ + DBInstanceClass?: string; + + /** + *

            Specifies the port that the DB instance listens on. If the DB instance is part of a DB + * cluster, this can be a different port than the DB cluster port.

            + */ + DbInstancePort?: number; + + /** + *

            The Amazon Web Services Region-unique, immutable identifier for the DB instance. This identifier is + * found in CloudTrail log entries whenever the KMS key for the DB instance is + * accessed.

            + */ + DbiResourceId?: string; + + /** + *

            The meaning of this parameter differs according to the database engine you use.

            + *

            + * MySQL, MariaDB, SQL Server, PostgreSQL + *

            + *

            Contains the name of the initial database of this instance that was provided at create + * time, if one was specified when the DB instance was created. This same name is returned for + * the life of the DB instance.

            + *

            + * Oracle + *

            + *

            Contains the Oracle System ID (SID) of the created DB instance. Not shown when the + * returned parameters do not apply to an Oracle DB instance.

            + */ + DBName?: string; + + /** + *

            Indicates whether the DB instance has deletion protection enabled.

            + *

            When deletion protection is enabled, the database cannot be deleted.

            + */ + DeletionProtection?: boolean; + + /** + *

            Specifies the connection endpoint.

            + */ + Endpoint?: AwsRdsDbInstanceEndpoint; + + /** + *

            Provides the name of the database engine to use for this DB instance.

            + */ + Engine?: string; + + /** + *

            Indicates the database engine version.

            + */ + EngineVersion?: string; + + /** + *

            True if mapping of IAM accounts to database + * accounts is enabled, and otherwise false.

            + *

            IAM database authentication can be enabled for the following database engines.

            + *
              + *
            • + *

              For MySQL 5.6, minor version 5.6.34 or higher

              + *
            • + *
            • + *

              For MySQL 5.7, minor version 5.7.16 or higher

              + *
            • + *
            • + *

              Aurora 5.6 or higher

              + *
            • + *
            + */ + IAMDatabaseAuthenticationEnabled?: boolean; + + /** + *

            Indicates when the DB instance was created.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + InstanceCreateTime?: string; + + /** + *

            If StorageEncrypted is true, the KMS key identifier for the encrypted + * DB instance.

            + */ + KmsKeyId?: string; + + /** + *

            Specifies the accessibility options for the DB instance.

            + *

            A value of true specifies an Internet-facing instance with a publicly resolvable DNS + * name, which resolves to a public IP address.

            + *

            A value of false specifies an internal instance with a DNS name that resolves to a + * private IP address.

            + */ + PubliclyAccessible?: boolean; + + /** + *

            Specifies whether the DB instance is encrypted.

            + */ + StorageEncrypted?: boolean; + + /** + *

            The ARN from the key store with which the instance is associated for TDE + * encryption.

            + */ + TdeCredentialArn?: string; + + /** + *

            A list of VPC security groups that the DB instance belongs to.

            + */ + VpcSecurityGroups?: AwsRdsDbInstanceVpcSecurityGroup[]; + + /** + *

            Whether the DB instance is a multiple Availability Zone deployment.

            + */ + MultiAz?: boolean; + + /** + *

            The ARN of the CloudWatch Logs log stream that receives the enhanced monitoring metrics + * data for the DB instance.

            + */ + EnhancedMonitoringResourceArn?: string; + + /** + *

            The current status of the DB instance.

            + */ + DbInstanceStatus?: string; + + /** + *

            The master user name of the DB instance.

            + */ + MasterUsername?: string; + + /** + *

            The amount of storage (in gigabytes) to initially allocate for the DB instance.

            + */ + AllocatedStorage?: number; + + /** + *

            The range of time each day when automated backups are created, if automated backups are + * enabled.

            + *

            Uses the format HH:MM-HH:MM. For example, 04:52-05:22.

            + */ + PreferredBackupWindow?: string; + + /** + *

            The number of days for which to retain automated backups.

            + */ + BackupRetentionPeriod?: number; + + /** + *

            A list of the DB security groups to assign to the DB instance.

            + */ + DbSecurityGroups?: string[]; + + /** + *

            A list of the DB parameter groups to assign to the DB instance.

            + */ + DbParameterGroups?: AwsRdsDbParameterGroup[]; + + /** + *

            The Availability Zone where the DB instance will be created.

            + */ + AvailabilityZone?: string; + + /** + *

            Information about the subnet group that is associated with the DB instance.

            + */ + DbSubnetGroup?: AwsRdsDbSubnetGroup; + + /** + *

            The weekly time range during which system maintenance can occur, in Universal + * Coordinated Time (UTC).

            + *

            Uses the format :HH:MM-:HH:MM.

            + *

            For the day values, use + * mon|tue|wed|thu|fri|sat|sun.

            + *

            For example, sun:09:32-sun:10:02.

            + */ + PreferredMaintenanceWindow?: string; + + /** + *

            Changes to the DB instance that are currently pending.

            + */ + PendingModifiedValues?: AwsRdsDbPendingModifiedValues; + + /** + *

            Specifies the latest time to which a database can be restored with point-in-time + * restore.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + LatestRestorableTime?: string; + + /** + *

            Indicates whether minor version patches are applied automatically.

            + */ + AutoMinorVersionUpgrade?: boolean; + + /** + *

            If this DB instance is a read replica, contains the identifier of the source DB + * instance.

            + */ + ReadReplicaSourceDBInstanceIdentifier?: string; + + /** + *

            List of identifiers of the read replicas associated with this DB instance.

            + */ + ReadReplicaDBInstanceIdentifiers?: string[]; + + /** + *

            List of identifiers of Aurora DB clusters to which the RDS DB instance is replicated as + * a read replica.

            + */ + ReadReplicaDBClusterIdentifiers?: string[]; + + /** + *

            License model information for this DB instance.

            + */ + LicenseModel?: string; + + /** + *

            Specifies the provisioned IOPS (I/O operations per second) for this DB instance.

            + */ + Iops?: number; + + /** + *

            The list of option group memberships for this DB instance.

            + */ + OptionGroupMemberships?: AwsRdsDbOptionGroupMembership[]; + + /** + *

            The name of the character set that this DB instance is associated with.

            + */ + CharacterSetName?: string; + + /** + *

            For a DB instance with multi-Availability Zone support, the name of the secondary + * Availability Zone.

            + */ + SecondaryAvailabilityZone?: string; + + /** + *

            The status of a read replica. If the instance isn't a read replica, this is + * empty.

            + */ + StatusInfos?: AwsRdsDbStatusInfo[]; + + /** + *

            The storage type for the DB instance.

            + */ + StorageType?: string; + + /** + *

            The Active Directory domain membership records associated with the DB instance.

            + */ + DomainMemberships?: AwsRdsDbDomainMembership[]; + + /** + *

            Whether to copy resource tags to snapshots of the DB instance.

            + */ + CopyTagsToSnapshot?: boolean; + + /** + *

            The interval, in seconds, between points when enhanced monitoring metrics are collected + * for the DB instance.

            + */ + MonitoringInterval?: number; + + /** + *

            The ARN for the IAM role that permits Amazon RDS to send enhanced monitoring metrics to + * CloudWatch Logs.

            + */ + MonitoringRoleArn?: string; + + /** + *

            The order in which to promote an Aurora replica to the primary instance after a failure + * of the existing primary instance.

            + */ + PromotionTier?: number; + + /** + *

            The time zone of the DB instance.

            + */ + Timezone?: string; + + /** + *

            Indicates whether Performance Insights is enabled for the DB instance.

            + */ + PerformanceInsightsEnabled?: boolean; + + /** + *

            The identifier of the KMS key used to encrypt the Performance Insights data.

            + */ + PerformanceInsightsKmsKeyId?: string; + + /** + *

            The number of days to retain Performance Insights data.

            + */ + PerformanceInsightsRetentionPeriod?: number; + + /** + *

            A list of log types that this DB instance is configured to export to CloudWatch Logs.

            + */ + EnabledCloudWatchLogsExports?: string[]; + + /** + *

            The number of CPU cores and the number of threads per core for the DB instance class of + * the DB instance.

            + */ + ProcessorFeatures?: AwsRdsDbProcessorFeature[]; + + /** + *

            Specifies the connection endpoint.

            + */ + ListenerEndpoint?: AwsRdsDbInstanceEndpoint; + + /** + *

            The upper limit to which Amazon RDS can automatically scale the storage of the DB + * instance.

            + */ + MaxAllocatedStorage?: number; +} + +export namespace AwsRdsDbInstanceDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRdsDbInstanceDetails): any => ({ + ...obj, + }); +} + +/** + *

            Provides details about an Amazon RDS DB cluster snapshot.

            + */ +export interface AwsRdsDbSnapshotDetails { + /** + *

            The name or ARN of the DB snapshot that is used to restore the DB instance.

            + */ + DbSnapshotIdentifier?: string; + + /** + *

            A name for the DB instance.

            + */ + DbInstanceIdentifier?: string; + + /** + *

            When the snapshot was taken in Coordinated Universal Time (UTC).

            + */ + SnapshotCreateTime?: string; + + /** + *

            The name of the database engine to use for this DB instance.

            + */ + Engine?: string; + + /** + *

            The amount of storage (in gigabytes) to be initially allocated for the database instance.

            + */ + AllocatedStorage?: number; + + /** + *

            The status of this DB snapshot.

            + */ + Status?: string; + + /** + *

            The port that the database engine was listening on at the time of the snapshot.

            + */ + Port?: number; + + /** + *

            Specifies the name of the Availability Zone in which the DB instance was located at the time of the DB snapshot.

            + */ + AvailabilityZone?: string; + + /** + *

            The VPC ID associated with the DB snapshot.

            + */ + VpcId?: string; + + /** + *

            Specifies the time in Coordinated Universal Time (UTC) when the DB instance, from which the snapshot was taken, was created.

            + */ + InstanceCreateTime?: string; + + /** + *

            The master user name for the DB snapshot.

            + */ + MasterUsername?: string; + + /** + *

            The version of the database engine.

            + */ + EngineVersion?: string; + + /** + *

            License model information for the restored DB instance.

            + */ + LicenseModel?: string; + + /** + *

            The type of the DB snapshot.

            + */ + SnapshotType?: string; + + /** + *

            The provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot.

            + */ + Iops?: number; + + /** + *

            The option group name for the DB snapshot.

            + */ + OptionGroupName?: string; + + /** + *

            The percentage of the estimated data that has been transferred.

            + */ + PercentProgress?: number; + + /** + *

            The Amazon Web Services Region that the DB snapshot was created in or copied from.

            + */ + SourceRegion?: string; + + /** + *

            The DB snapshot ARN that the DB snapshot was copied from.

            + */ + SourceDbSnapshotIdentifier?: string; + + /** + *

            The storage type associated with the DB snapshot.

            + */ + StorageType?: string; + + /** + *

            The ARN from the key store with which to associate the instance for TDE encryption.

            + */ + TdeCredentialArn?: string; + + /** + *

            Whether the DB snapshot is encrypted.

            + */ + Encrypted?: boolean; + + /** + *

            If Encrypted is true, the KMS key identifier for the encrypted DB snapshot.

            + */ + KmsKeyId?: string; + + /** + *

            The time zone of the DB snapshot.

            + */ + Timezone?: string; + + /** + *

            Whether mapping of IAM accounts to database accounts is enabled.

            + */ + IamDatabaseAuthenticationEnabled?: boolean; + + /** + *

            The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

            + */ + ProcessorFeatures?: AwsRdsDbProcessorFeature[]; + + /** + *

            The identifier for the source DB instance.

            + */ + DbiResourceId?: string; +} + +export namespace AwsRdsDbSnapshotDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRdsDbSnapshotDetails): any => ({ + ...obj, + }); +} + +/** + *

            Details about an Amazon RDS event notification subscription. The subscription allows Amazon RDS to post events to an SNS topic.

            + */ +export interface AwsRdsEventSubscriptionDetails { + /** + *

            The identifier of the account that is associated with the event notification subscription.

            + */ + CustSubscriptionId?: string; + + /** + *

            The identifier of the event notification subscription.

            + */ + CustomerAwsId?: string; + + /** + *

            Whether the event notification subscription is enabled.

            + */ + Enabled?: boolean; + + /** + *

            The list of event categories for the event notification subscription.

            + */ + EventCategoriesList?: string[]; + + /** + *

            The ARN of the event notification subscription.

            + */ + EventSubscriptionArn?: string; + + /** + *

            The ARN of the SNS topic to post the event notifications to.

            + */ + SnsTopicArn?: string; + + /** + *

            A list of source identifiers for the event notification subscription.

            + */ + SourceIdsList?: string[]; + + /** + *

            The source type for the event notification subscription.

            + */ + SourceType?: string; + + /** + *

            The status of the event notification subscription.

            + *

            Valid values: creating | modifying | deleting | active | no-permission | topic-not-exist + *

            + */ + Status?: string; + + /** + *

            The datetime when the event notification subscription was created.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + SubscriptionCreationTime?: string; +} + +export namespace AwsRdsEventSubscriptionDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRdsEventSubscriptionDetails): any => ({ + ...obj, + }); +} + +/** + *

            A node in an Amazon Redshift cluster.

            + */ +export interface AwsRedshiftClusterClusterNode { + /** + *

            The role of the node. A node might be a leader node or a compute node.

            + */ + NodeRole?: string; + + /** + *

            The private IP address of the node.

            + */ + PrivateIpAddress?: string; + + /** + *

            The public IP address of the node.

            + */ + PublicIpAddress?: string; +} + +export namespace AwsRedshiftClusterClusterNode { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterNode): any => ({ + ...obj, + }); +} + +/** + *

            The status of a parameter in a cluster parameter group for an Amazon Redshift + * cluster.

            + */ +export interface AwsRedshiftClusterClusterParameterStatus { + /** + *

            The name of the parameter.

            + */ + ParameterName?: string; + + /** + *

            The status of the parameter. Indicates whether the parameter is in sync with the + * database, waiting for a cluster reboot, or encountered an error when it was applied.

            + *

            Valid values: in-sync | pending-reboot | applying + * | invalid-parameter | apply-deferred | apply-error | + * unknown-error + *

            + */ + ParameterApplyStatus?: string; + + /** + *

            The error that prevented the parameter from being applied to the database.

            + */ + ParameterApplyErrorDescription?: string; +} + +export namespace AwsRedshiftClusterClusterParameterStatus { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterParameterStatus): any => ({ + ...obj, + }); +} + +/** + *

            A cluster parameter group that is associated with an Amazon Redshift cluster.

            + */ +export interface AwsRedshiftClusterClusterParameterGroup { + /** + *

            The list of parameter statuses.

            + */ + ClusterParameterStatusList?: AwsRedshiftClusterClusterParameterStatus[]; + + /** + *

            The status of updates to the parameters.

            + */ + ParameterApplyStatus?: string; + + /** + *

            The name of the parameter group.

            + */ + ParameterGroupName?: string; +} + +export namespace AwsRedshiftClusterClusterParameterGroup { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterParameterGroup): any => ({ + ...obj, + }); +} + +/** + *

            A security group that is associated with the cluster.

            + */ +export interface AwsRedshiftClusterClusterSecurityGroup { + /** + *

            The name of the cluster security group.

            + */ + ClusterSecurityGroupName?: string; + + /** + *

            The status of the cluster security group.

            + */ + Status?: string; +} + +export namespace AwsRedshiftClusterClusterSecurityGroup { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterSecurityGroup): any => ({ + ...obj, + }); +} + +/** + *

            Information about a cross-Region snapshot copy.

            + */ +export interface AwsRedshiftClusterClusterSnapshotCopyStatus { + /** + *

            The destination Region that snapshots are automatically copied to when cross-Region + * snapshot copy is enabled.

            + */ + DestinationRegion?: string; + + /** + *

            The number of days that manual snapshots are retained in the destination region after + * they are copied from a source region.

            + *

            If the value is -1, then the manual snapshot is retained indefinitely.

            + *

            Valid values: Either -1 or an integer between 1 and 3,653

            + */ + ManualSnapshotRetentionPeriod?: number; + + /** + *

            The number of days to retain automated snapshots in the destination Region after they + * are copied from a source Region.

            + */ + RetentionPeriod?: number; + + /** + *

            The name of the snapshot copy grant.

            + */ + SnapshotCopyGrantName?: string; +} + +export namespace AwsRedshiftClusterClusterSnapshotCopyStatus { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterClusterSnapshotCopyStatus): any => ({ + ...obj, + }); +} + +/** + *

            A time windows during which maintenance was deferred for an Amazon Redshift + * cluster.

            + */ +export interface AwsRedshiftClusterDeferredMaintenanceWindow { + /** + *

            The end of the time window for which maintenance was deferred.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + DeferMaintenanceEndTime?: string; + + /** + *

            The identifier of the maintenance window.

            + */ + DeferMaintenanceIdentifier?: string; + + /** + *

            The start of the time window for which maintenance was deferred.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + DeferMaintenanceStartTime?: string; +} + +export namespace AwsRedshiftClusterDeferredMaintenanceWindow { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterDeferredMaintenanceWindow): any => ({ + ...obj, + }); +} + +/** + *

            The status of the elastic IP (EIP) address for an Amazon Redshift cluster.

            + */ +export interface AwsRedshiftClusterElasticIpStatus { + /** + *

            The elastic IP address for the cluster.

            + */ + ElasticIp?: string; + + /** + *

            The status of the elastic IP address.

            + */ + Status?: string; +} + +export namespace AwsRedshiftClusterElasticIpStatus { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterElasticIpStatus): any => ({ + ...obj, + }); +} + +/** + *

            The connection endpoint for an Amazon Redshift cluster.

            + */ +export interface AwsRedshiftClusterEndpoint { + /** + *

            The DNS address of the cluster.

            + */ + Address?: string; + + /** + *

            The port that the database engine listens on.

            + */ + Port?: number; +} + +export namespace AwsRedshiftClusterEndpoint { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterEndpoint): any => ({ + ...obj, + }); +} + +/** + *

            Information about whether an Amazon Redshift cluster finished applying any hardware + * changes to security module (HSM) settings that were specified in a modify cluster + * command.

            + */ +export interface AwsRedshiftClusterHsmStatus { + /** + *

            The name of the HSM client certificate that the Amazon Redshift cluster uses to retrieve + * the data encryption keys that are stored in an HSM.

            + */ + HsmClientCertificateIdentifier?: string; + + /** + *

            The name of the HSM configuration that contains the information that the Amazon Redshift + * cluster can use to retrieve and store keys in an HSM.

            + */ + HsmConfigurationIdentifier?: string; + + /** + *

            Indicates whether the Amazon Redshift cluster has finished applying any HSM settings + * changes specified in a modify cluster command.

            + *

            Type: String

            + *

            Valid values: active | applying + *

            + */ + Status?: string; +} + +export namespace AwsRedshiftClusterHsmStatus { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterHsmStatus): any => ({ + ...obj, + }); +} + +/** + *

            An IAM role that the cluster can use to access other Amazon Web Services services.

            + */ +export interface AwsRedshiftClusterIamRole { + /** + *

            The status of the IAM role's association with the cluster.

            + *

            Valid values: in-sync | adding | removing + *

            + */ + ApplyStatus?: string; + + /** + *

            The ARN of the IAM role.

            + */ + IamRoleArn?: string; +} + +export namespace AwsRedshiftClusterIamRole { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterIamRole): any => ({ + ...obj, + }); +} + +/** + *

            Changes to the Amazon Redshift cluster that are currently pending.

            + */ +export interface AwsRedshiftClusterPendingModifiedValues { + /** + *

            The pending or in-progress change to the automated snapshot retention period.

            + */ + AutomatedSnapshotRetentionPeriod?: number; + + /** + *

            The pending or in-progress change to the identifier for the cluster.

            + */ + ClusterIdentifier?: string; + + /** + *

            The pending or in-progress change to the cluster type.

            + */ + ClusterType?: string; + + /** + *

            The pending or in-progress change to the service version.

            + */ + ClusterVersion?: string; + + /** + *

            The encryption type for a cluster.

            + */ + EncryptionType?: string; + + /** + *

            Indicates whether to create the cluster with enhanced VPC routing enabled.

            + */ + EnhancedVpcRouting?: boolean; + + /** + *

            The name of the maintenance track that the cluster changes to during the next + * maintenance window.

            + */ + MaintenanceTrackName?: string; + + /** + *

            The pending or in-progress change to the master user password for the cluster.

            + */ + MasterUserPassword?: string; + + /** + *

            The pending or in-progress change to the cluster's node type.

            + */ + NodeType?: string; + + /** + *

            The pending or in-progress change to the number of nodes in the cluster.

            + */ + NumberOfNodes?: number; + + /** + *

            The pending or in-progress change to whether the cluster can be connected to from the + * public network.

            + */ + PubliclyAccessible?: boolean; +} + +export namespace AwsRedshiftClusterPendingModifiedValues { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterPendingModifiedValues): any => ({ + ...obj, + }); +} + +/** + *

            Information about the resize operation for the cluster.

            + */ +export interface AwsRedshiftClusterResizeInfo { + /** + *

            Indicates whether the resize operation can be canceled.

            + */ + AllowCancelResize?: boolean; + + /** + *

            The type of resize operation.

            + *

            Valid values: ClassicResize + *

            + */ + ResizeType?: string; +} + +export namespace AwsRedshiftClusterResizeInfo { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterResizeInfo): any => ({ + ...obj, + }); +} + +/** + *

            Information about the status of a cluster restore action. It only applies if the cluster + * was created by restoring a snapshot.

            + */ +export interface AwsRedshiftClusterRestoreStatus { + /** + *

            The number of megabytes per second being transferred from the backup storage. Returns + * the average rate for a completed backup.

            + *

            This field is only updated when you restore to DC2 and DS2 node types.

            + */ + CurrentRestoreRateInMegaBytesPerSecond?: number; + + /** + *

            The amount of time an in-progress restore has been running, or the amount of time it + * took a completed restore to finish.

            + *

            This field is only updated when you restore to DC2 and DS2 node types.

            + */ + ElapsedTimeInSeconds?: number; + + /** + *

            The estimate of the time remaining before the restore is complete. Returns 0 for a + * completed restore.

            + *

            This field is only updated when you restore to DC2 and DS2 node types.

            + */ + EstimatedTimeToCompletionInSeconds?: number; + + /** + *

            The number of megabytes that were transferred from snapshot storage.

            + *

            This field is only updated when you restore to DC2 and DS2 node types.

            + */ + ProgressInMegaBytes?: number; + + /** + *

            The size of the set of snapshot data that was used to restore the cluster.

            + *

            This field is only updated when you restore to DC2 and DS2 node types.

            + */ + SnapshotSizeInMegaBytes?: number; + + /** + *

            The status of the restore action.

            + *

            Valid values: starting | restoring | completed | + * failed + *

            + */ + Status?: string; +} + +export namespace AwsRedshiftClusterRestoreStatus { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterRestoreStatus): any => ({ + ...obj, + }); +} + +/** + *

            A VPC security group that the cluster belongs to, if the cluster is in a VPC.

            + */ +export interface AwsRedshiftClusterVpcSecurityGroup { + /** + *

            The status of the VPC security group.

            + */ + Status?: string; + + /** + *

            The identifier of the VPC security group.

            + */ + VpcSecurityGroupId?: string; +} + +export namespace AwsRedshiftClusterVpcSecurityGroup { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterVpcSecurityGroup): any => ({ + ...obj, + }); +} + +/** + *

            Details about an Amazon Redshift cluster.

            + */ +export interface AwsRedshiftClusterDetails { + /** + *

            Indicates whether major version upgrades are applied automatically to the cluster during + * the maintenance window.

            + */ + AllowVersionUpgrade?: boolean; + + /** + *

            The number of days that automatic cluster snapshots are retained.

            + */ + AutomatedSnapshotRetentionPeriod?: number; + + /** + *

            The name of the Availability Zone in which the cluster is located.

            + */ + AvailabilityZone?: string; + + /** + *

            The availability status of the cluster for queries. Possible values are the + * following:

            + *
              + *
            • + *

              + * Available - The cluster is available for queries.

              + *
            • + *
            • + *

              + * Unavailable - The cluster is not available for queries.

              + *
            • + *
            • + *

              + * Maintenance - The cluster is intermittently available for queries due + * to maintenance activities.

              + *
            • + *
            • + *

              + * Modifying -The cluster is intermittently available for queries due to + * changes that modify the cluster.

              + *
            • + *
            • + *

              + * Failed - The cluster failed and is not available for queries.

              + *
            • + *
            + */ + ClusterAvailabilityStatus?: string; + + /** + *

            Indicates when the cluster was created.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + ClusterCreateTime?: string; + + /** + *

            The unique identifier of the cluster.

            + */ + ClusterIdentifier?: string; + + /** + *

            The nodes in the cluster.

            + */ + ClusterNodes?: AwsRedshiftClusterClusterNode[]; + + /** + *

            The list of cluster parameter groups that are associated with this cluster.

            + */ + ClusterParameterGroups?: AwsRedshiftClusterClusterParameterGroup[]; + + /** + *

            The public key for the cluster.

            + */ + ClusterPublicKey?: string; + + /** + *

            The specific revision number of the database in the cluster.

            + */ + ClusterRevisionNumber?: string; + + /** + *

            A list of cluster security groups that are associated with the cluster.

            + */ + ClusterSecurityGroups?: AwsRedshiftClusterClusterSecurityGroup[]; + + /** + *

            Information about the destination Region and retention period for the cross-Region + * snapshot copy.

            + */ + ClusterSnapshotCopyStatus?: AwsRedshiftClusterClusterSnapshotCopyStatus; + + /** + *

            The current status of the cluster.

            + *

            Valid values: available | available, prep-for-resize | + * available, resize-cleanup | cancelling-resize | + * creating | deleting | final-snapshot | + * hardware-failure | incompatible-hsm | + * incompatible-network | incompatible-parameters | + * incompatible-restore | modifying | paused | + * rebooting | renaming | resizing | + * rotating-keys | storage-full | + * updating-hsm + *

            + */ + ClusterStatus?: string; + + /** + *

            The name of the subnet group that is associated with the cluster. This parameter is + * valid only when the cluster is in a VPC.

            + */ + ClusterSubnetGroupName?: string; + + /** + *

            The version ID of the Amazon Redshift engine that runs on the cluster.

            + */ + ClusterVersion?: string; + + /** + *

            The name of the initial database that was created when the cluster was created.

            + *

            The same name is returned for the life of the cluster.

            + *

            If an initial database is not specified, a database named devdev is created + * by default.

            + */ + DBName?: string; + + /** + *

            List of time windows during which maintenance was deferred.

            + */ + DeferredMaintenanceWindows?: AwsRedshiftClusterDeferredMaintenanceWindow[]; + + /** + *

            Information about the status of the Elastic IP (EIP) address.

            + */ + ElasticIpStatus?: AwsRedshiftClusterElasticIpStatus; + + /** + *

            The number of nodes that you can use the elastic resize method to resize the cluster + * to.

            + */ + ElasticResizeNumberOfNodeOptions?: string; + + /** + *

            Indicates whether the data in the cluster is encrypted at rest.

            + */ + Encrypted?: boolean; + + /** + *

            The connection endpoint.

            + */ + Endpoint?: AwsRedshiftClusterEndpoint; + + /** + *

            Indicates whether to create the cluster with enhanced VPC routing enabled.

            + */ + EnhancedVpcRouting?: boolean; + + /** + *

            Indicates when the next snapshot is expected to be taken. The cluster must have a valid + * snapshot schedule and have backups enabled.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + ExpectedNextSnapshotScheduleTime?: string; + + /** + *

            The status of the next expected snapshot.

            + *

            Valid values: OnTrack | Pending + *

            + */ + ExpectedNextSnapshotScheduleTimeStatus?: string; + + /** + *

            Information about whether the Amazon Redshift cluster finished applying any changes to + * hardware security module (HSM) settings that were specified in a modify cluster + * command.

            + */ + HsmStatus?: AwsRedshiftClusterHsmStatus; + + /** + *

            A list of IAM roles that the cluster can use to access other Amazon Web Services services.

            + */ + IamRoles?: AwsRedshiftClusterIamRole[]; + + /** + *

            The identifier of the KMS encryption key that is used to encrypt data in the + * cluster.

            + */ + KmsKeyId?: string; + + /** + *

            The name of the maintenance track for the cluster.

            + */ + MaintenanceTrackName?: string; + + /** + *

            The default number of days to retain a manual snapshot.

            + *

            If the value is -1, the snapshot is retained indefinitely.

            + *

            This setting doesn't change the retention period of existing snapshots.

            + *

            Valid values: Either -1 or an integer between 1 and 3,653

            + */ + ManualSnapshotRetentionPeriod?: number; + + /** + *

            The master user name for the cluster. This name is used to connect to the database that + * is specified in as the value of DBName.

            + */ + MasterUsername?: string; + + /** + *

            Indicates the start of the next maintenance window.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + NextMaintenanceWindowStartTime?: string; + + /** + *

            The node type for the nodes in the cluster.

            + */ + NodeType?: string; + + /** + *

            The number of compute nodes in the cluster.

            + */ + NumberOfNodes?: number; + + /** + *

            A list of cluster operations that are waiting to start.

            + */ + PendingActions?: string[]; + + /** + *

            A list of changes to the cluster that are currently pending.

            + */ + PendingModifiedValues?: AwsRedshiftClusterPendingModifiedValues; + + /** + *

            The weekly time range, in Universal Coordinated Time (UTC), during which system + * maintenance can occur.

            + *

            Format: + * + * :HH:MM-:HH:MM + *

            + *

            For the day values, use mon | tue | wed | + * thu | fri | sat | sun + *

            + *

            For example, sun:09:32-sun:10:02 + *

            + */ + PreferredMaintenanceWindow?: string; + + /** + *

            Whether the cluster can be accessed from a public network.

            + */ + PubliclyAccessible?: boolean; + + /** + *

            Information about the resize operation for the cluster.

            + */ + ResizeInfo?: AwsRedshiftClusterResizeInfo; + + /** + *

            Information about the status of a cluster restore action. Only applies to a cluster that + * was created by restoring a snapshot.

            + */ + RestoreStatus?: AwsRedshiftClusterRestoreStatus; + + /** + *

            A unique identifier for the cluster snapshot schedule.

            + */ + SnapshotScheduleIdentifier?: string; + + /** + *

            The current state of the cluster snapshot schedule.

            + *

            Valid values: MODIFYING | ACTIVE | FAILED + *

            + */ + SnapshotScheduleState?: string; + + /** + *

            The identifier of the VPC that the cluster is in, if the cluster is in a VPC.

            + */ + VpcId?: string; + + /** + *

            The list of VPC security groups that the cluster belongs to, if the cluster is in a + * VPC.

            + */ + VpcSecurityGroups?: AwsRedshiftClusterVpcSecurityGroup[]; +} + +export namespace AwsRedshiftClusterDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsRedshiftClusterDetails): any => ({ + ...obj, + }); +} + +/** + *

            provides information about the Amazon S3 Public Access Block configuration for accounts.

            + */ +export interface AwsS3AccountPublicAccessBlockDetails { + /** + *

            Indicates whether to reject calls to update an S3 bucket if the calls include a public access control list (ACL).

            + */ + BlockPublicAcls?: boolean; + + /** + *

            Indicates whether to reject calls to update the access policy for an S3 bucket or access point if the policy allows public access.

            + */ + BlockPublicPolicy?: boolean; + + /** + *

            Indicates whether Amazon S3 ignores public ACLs that are associated with an S3 bucket.

            + */ + IgnorePublicAcls?: boolean; + + /** + *

            Indicates whether to restrict access to an access point or S3 bucket that has a public policy to only Amazon Web Services service principals and authorized users within the S3 bucket owner's account.

            + */ + RestrictPublicBuckets?: boolean; +} + +export namespace AwsS3AccountPublicAccessBlockDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3AccountPublicAccessBlockDetails): any => ({ + ...obj, + }); +} + +/** + *

            Information about what Amazon S3 + * does when a multipart upload is incomplete.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails { + /** + *

            The number of days after which Amazon S3 cancels an incomplete multipart upload.

            + */ + DaysAfterInitiation?: number; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            A tag that is assigned to matching objects.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails { + /** + *

            The tag key.

            + */ + Key?: string; + + /** + *

            The tag value.

            + */ + Value?: string; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            A value to use for the filter.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails { + /** + *

            Prefix text for matching objects.

            + */ + Prefix?: string; + + /** + *

            A tag that is assigned to matching objects.

            + */ + Tag?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsTagDetails; + + /** + *

            The type of filter value.

            + */ + Type?: string; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            A tag filter.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails { + /** + *

            The tag key.

            + */ + Key?: string; + + /** + *

            The tag value

            + */ + Value?: string; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            The configuration for the filter.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails { + /** + *

            The values to use for the filter.

            + */ + Operands?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateOperandsDetails[]; + + /** + *

            A prefix filter.

            + */ + Prefix?: string; + + /** + *

            A tag filter.

            + */ + Tag?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails; + + /** + *

            Whether to use AND or OR to join the operands.

            + */ + Type?: string; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails): any => ({ + ...obj, + }); +} + +/** + *

            Identifies the objects that a rule applies to.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails { + /** + *

            The configuration for the filter.

            + */ + Predicate?: AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateDetails; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails): any => ({ + ...obj, + }); +} + +/** + *

            A transition rule that describes when noncurrent objects transition to a specified storage class.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails { + /** + *

            The number of days that an object is noncurrent before Amazon S3 can perform the associated action.

            + */ + Days?: number; + + /** + *

            The class of storage to change the object to after the object is noncurrent for the specified number of days.

            + */ + StorageClass?: string; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails { + /** + * @internal + */ + export const filterSensitiveLog = ( + obj: AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails + ): any => ({ + ...obj, + }); +} + +/** + *

            A rule for when objects transition to specific storage classes.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails { + /** + *

            A date on which to transition objects to the specified storage class. If you provide Date, you cannot provide Days.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + Date?: string; + + /** + *

            The number of days after which to transition the object to the specified storage class. If you provide Days, you cannot provide Date.

            + */ + Days?: number; + + /** + *

            The storage class to transition the object to.

            + */ + StorageClass?: string; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails): any => ({ + ...obj, + }); +} + +/** + *

            Configuration for a lifecycle rule.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationRulesDetails { + /** + *

            How Amazon S3 responds when a multipart upload is incomplete. Specifically, provides a number + * of days before Amazon S3 cancels the entire upload.

            + */ + AbortIncompleteMultipartUpload?: AwsS3BucketBucketLifecycleConfigurationRulesAbortIncompleteMultipartUploadDetails; + + /** + *

            The date when objects are moved or deleted.

            + *

            Uses the date-time format specified in RFC 3339 section 5.6, Internet + * Date/Time Format. The value cannot contain spaces. For example, + * 2020-03-22T13:22:13.933Z.

            + */ + ExpirationDate?: string; + + /** + *

            The length in days of the lifetime for objects that are subject to the rule.

            + */ + ExpirationInDays?: number; + + /** + *

            Whether Amazon S3 removes a delete marker that has no noncurrent versions. If set to + * true, the delete marker is expired. If set to false, the policy + * takes no action.

            + *

            If you provide ExpiredObjectDeleteMarker, you cannot provide + * ExpirationInDays or ExpirationDate.

            + */ + ExpiredObjectDeleteMarker?: boolean; + + /** + *

            Identifies the objects that a rule applies to.

            + */ + Filter?: AwsS3BucketBucketLifecycleConfigurationRulesFilterDetails; + + /** + *

            The unique identifier of the rule.

            + */ + ID?: string; + + /** + *

            The number of days that an object is noncurrent before Amazon S3 can perform the associated action.

            + */ + NoncurrentVersionExpirationInDays?: number; + + /** + *

            Transition rules that describe when noncurrent objects transition to a specified storage class.

            + */ + NoncurrentVersionTransitions?: AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails[]; + + /** + *

            A prefix that identifies one or more objects that the rule applies to.

            + */ + Prefix?: string; + + /** + *

            The current status of the rule. Indicates whether the rule is currently being applied.

            + */ + Status?: string; + + /** + *

            Transition rules that indicate when objects transition to a specified storage class.

            + */ + Transitions?: AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails[]; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationRulesDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationRulesDetails): any => ({ + ...obj, + }); +} + +/** + *

            The lifecycle configuration for the objects in the S3 bucket.

            + */ +export interface AwsS3BucketBucketLifecycleConfigurationDetails { + /** + *

            The lifecycle rules.

            + */ + Rules?: AwsS3BucketBucketLifecycleConfigurationRulesDetails[]; +} + +export namespace AwsS3BucketBucketLifecycleConfigurationDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketBucketLifecycleConfigurationDetails): any => ({ + ...obj, + }); +} + +/** + *

            Describes the versioning state of an S3 bucket.

            + */ +export interface AwsS3BucketBucketVersioningConfiguration { + /** + *

            Specifies whether MFA delete is currently enabled in the S3 bucket versioning configuration. If the S3 bucket was never configured with MFA delete, then this attribute is not included.

            + */ + IsMfaDeleteEnabled?: boolean; + + /** + *

            The versioning status of the S3 bucket.

            + */ + Status?: string; +} + +export namespace AwsS3BucketBucketVersioningConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketBucketVersioningConfiguration): any => ({ + ...obj, + }); +} + +/** + *

            Information about logging for + * the S3 bucket

            + */ +export interface AwsS3BucketLoggingConfiguration { + /** + *

            The name of the S3 bucket where log files for the S3 bucket are stored.

            + */ + DestinationBucketName?: string; + + /** + *

            The prefix added to log files for the S3 bucket.

            + */ + LogFilePrefix?: string; +} + +export namespace AwsS3BucketLoggingConfiguration { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketLoggingConfiguration): any => ({ + ...obj, + }); +} + +export enum AwsS3BucketNotificationConfigurationS3KeyFilterRuleName { + PREFIX = "Prefix", + SUFFIX = "Suffix", +} + +/** + *

            Details for a filter rule.

            + */ +export interface AwsS3BucketNotificationConfigurationS3KeyFilterRule { + /** + *

            Indicates whether the filter is based on the prefix or suffix of the Amazon S3 key.

            + */ + Name?: AwsS3BucketNotificationConfigurationS3KeyFilterRuleName | string; + + /** + *

            The filter value.

            + */ + Value?: string; +} + +export namespace AwsS3BucketNotificationConfigurationS3KeyFilterRule { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketNotificationConfigurationS3KeyFilterRule): any => ({ + ...obj, + }); +} + +/** + *

            Details for an Amazon S3 filter.

            + */ +export interface AwsS3BucketNotificationConfigurationS3KeyFilter { + /** + *

            The filter rules for the filter.

            + */ + FilterRules?: AwsS3BucketNotificationConfigurationS3KeyFilterRule[]; +} + +export namespace AwsS3BucketNotificationConfigurationS3KeyFilter { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketNotificationConfigurationS3KeyFilter): any => ({ + ...obj, + }); +} + +/** + *

            Filtering information for the notifications. The + * filtering is based on Amazon S3 key names.

            + */ +export interface AwsS3BucketNotificationConfigurationFilter { + /** + *

            Details for an Amazon S3 filter.

            + */ + S3KeyFilter?: AwsS3BucketNotificationConfigurationS3KeyFilter; +} + +export namespace AwsS3BucketNotificationConfigurationFilter { + /** + * @internal + */ + export const filterSensitiveLog = (obj: AwsS3BucketNotificationConfigurationFilter): any => ({ + ...obj, + }); +} + /** *

            Details for an S3 bucket notification configuration.

            */ @@ -394,6 +2369,11 @@ export interface AwsS3BucketDetails { *

            The notification configuration for the S3 bucket.

            */ BucketNotificationConfiguration?: AwsS3BucketNotificationConfiguration; + + /** + *

            The versioning state of an S3 bucket.

            + */ + BucketVersioningConfiguration?: AwsS3BucketBucketVersioningConfiguration; } export namespace AwsS3BucketDetails { @@ -2539,6 +4519,21 @@ export interface ResourceDetails { *

            Details about an Amazon EKS cluster.

            */ AwsEksCluster?: AwsEksClusterDetails; + + /** + *

            Details about an Network Firewall firewall policy.

            + */ + AwsNetworkFirewallFirewallPolicy?: AwsNetworkFirewallFirewallPolicyDetails; + + /** + *

            Details about an Network Firewall firewall.

            + */ + AwsNetworkFirewallFirewall?: AwsNetworkFirewallFirewallDetails; + + /** + *

            Details about an Network Firewall rule group.

            + */ + AwsNetworkFirewallRuleGroup?: AwsNetworkFirewallRuleGroupDetails; } export namespace ResourceDetails { @@ -4066,10 +6061,12 @@ export interface AwsSecurityFindingFilters { * RESOLVED to NEW in the following cases:

            *
              *
            • - *

              The record state changes from ARCHIVED to ACTIVE.

              + *

              + * RecordState changes from ARCHIVED to ACTIVE.

              *
            • *
            • - *

              The compliance status changes from PASSED to either WARNING, + *

              + * Compliance.Status changes from PASSED to either WARNING, * FAILED, or NOT_AVAILABLE.

              *
            • *
            @@ -4079,16 +6076,49 @@ export interface AwsSecurityFindingFilters { * NOTIFIED - Indicates that the resource owner has been notified about * the security issue. Used when the initial reviewer is not the resource owner, and * needs intervention from the resource owner.

            + *

            If one of the following occurs, the workflow status is changed automatically from + * NOTIFIED to NEW:

            + *
              + *
            • + *

              + * RecordState changes from ARCHIVED to + * ACTIVE.

              + *
            • + *
            • + *

              + * Compliance.Status changes from PASSED to FAILED, + * WARNING, or NOT_AVAILABLE.

              + *
            • + *
            *
          • *
          • *

            - * SUPPRESSED - The finding will not be reviewed again and will not be - * acted upon.

            + * SUPPRESSED - Indicates that you reviewed the finding and do not believe that any action is + * needed.

            + *

            The workflow status of a SUPPRESSED finding does not change if + * RecordState changes from ARCHIVED to + * ACTIVE.

            *
          • *
          • *

            * RESOLVED - The finding was reviewed and remediated and is now * considered resolved.

            + *

            The finding remains RESOLVED unless one of the following occurs:

            + *
              + *
            • + *

              + * RecordState changes from ARCHIVED to + * ACTIVE.

              + *
            • + *
            • + *

              + * Compliance.Status changes from PASSED to FAILED, + * WARNING, or NOT_AVAILABLE.

              + *
            • + *
            + *

            In those cases, the workflow status is automatically reset to NEW.

            + *

            For findings from controls, if Compliance.Status is PASSED, + * then Security Hub automatically sets the workflow status to RESOLVED.

            *
          • *
          */ @@ -4236,6 +6266,30 @@ export enum StandardsStatus { READY = "READY", } +export enum StatusReasonCode { + INTERNAL_ERROR = "INTERNAL_ERROR", + NO_AVAILABLE_CONFIGURATION_RECORDER = "NO_AVAILABLE_CONFIGURATION_RECORDER", +} + +/** + *

          The reason for the current status of a standard subscription.

          + */ +export interface StandardsStatusReason { + /** + *

          The reason code that represents the reason for the current status of a standard subscription.

          + */ + StatusReasonCode: StatusReasonCode | string | undefined; +} + +export namespace StandardsStatusReason { + /** + * @internal + */ + export const filterSensitiveLog = (obj: StandardsStatusReason): any => ({ + ...obj, + }); +} + /** *

          A resource that represents your subscription to a supported standard.

          */ @@ -4282,6 +6336,11 @@ export interface StandardsSubscription { *
        */ StandardsStatus: StandardsStatus | string | undefined; + + /** + *

        The reason for the current status.

        + */ + StandardsStatusReason?: StandardsStatusReason; } export namespace StandardsSubscription { diff --git a/clients/client-securityhub/src/protocols/Aws_restJson1.ts b/clients/client-securityhub/src/protocols/Aws_restJson1.ts index c711b3f0f550..0689232107ac 100644 --- a/clients/client-securityhub/src/protocols/Aws_restJson1.ts +++ b/clients/client-securityhub/src/protocols/Aws_restJson1.ts @@ -185,11 +185,18 @@ import { AwsApiGatewayV2ApiDetails, AwsApiGatewayV2RouteSettings, AwsApiGatewayV2StageDetails, + AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails, AwsAutoScalingAutoScalingGroupDetails, + AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails, + AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails, + AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails, + AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification, + AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails, AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails, AwsAutoScalingLaunchConfigurationBlockDeviceMappingsEbsDetails, AwsAutoScalingLaunchConfigurationDetails, AwsAutoScalingLaunchConfigurationInstanceMonitoringDetails, + AwsAutoScalingLaunchConfigurationMetadataOptions, AwsCertificateManagerCertificateDetails, AwsCertificateManagerCertificateDomainValidationOption, AwsCertificateManagerCertificateExtendedKeyUsage, @@ -377,6 +384,10 @@ import { AwsLambdaFunctionTracingConfig, AwsLambdaFunctionVpcConfig, AwsLambdaLayerVersionDetails, + AwsNetworkFirewallFirewallDetails, + AwsNetworkFirewallFirewallPolicyDetails, + AwsNetworkFirewallFirewallSubnetMappingsDetails, + AwsNetworkFirewallRuleGroupDetails, AwsOpenSearchServiceDomainClusterConfigDetails, AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails, AwsOpenSearchServiceDomainDetails, @@ -394,20 +405,67 @@ import { AwsRdsDbClusterSnapshotDetails, AwsRdsDbDomainMembership, AwsRdsDbInstanceAssociatedRole, - AwsRdsDbInstanceDetails, AwsRdsDbInstanceEndpoint, AwsRdsDbInstanceVpcSecurityGroup, AwsRdsDbOptionGroupMembership, AwsRdsDbParameterGroup, + AwsRdsDbSubnetGroup, + AwsRdsDbSubnetGroupSubnet, + AwsRdsDbSubnetGroupSubnetAvailabilityZone, + AwsRdsPendingCloudWatchLogsExports, + CidrBlockAssociation, + City, + Country, + DnsRequestAction, + FirewallPolicyDetails, + FirewallPolicyStatefulRuleGroupReferencesDetails, + FirewallPolicyStatelessCustomActionsDetails, + FirewallPolicyStatelessRuleGroupReferencesDetails, + GeoLocation, + IcmpTypeCode, + InternalException, + InvalidAccessException, + InvalidInputException, + IpOrganizationDetails, + Ipv6CidrBlockAssociation, + LimitExceededException, + LoadBalancerState, + NetworkConnectionAction, + PortProbeAction, + PortProbeDetail, + PortRangeFromTo, + ResourceNotFoundException, + RuleGroupDetails, + RuleGroupSource, + RuleGroupSourceCustomActionsDetails, + RuleGroupSourceListDetails, + RuleGroupSourceStatefulRulesDetails, + RuleGroupSourceStatefulRulesHeaderDetails, + RuleGroupSourceStatefulRulesOptionsDetails, + RuleGroupSourceStatelessRuleDefinition, + RuleGroupSourceStatelessRuleMatchAttributes, + RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts, + RuleGroupSourceStatelessRuleMatchAttributesDestinations, + RuleGroupSourceStatelessRuleMatchAttributesSourcePorts, + RuleGroupSourceStatelessRuleMatchAttributesSources, + RuleGroupSourceStatelessRuleMatchAttributesTcpFlags, + RuleGroupSourceStatelessRulesAndCustomActionsDetails, + RuleGroupSourceStatelessRulesDetails, + RuleGroupVariables, + RuleGroupVariablesIpSetsDetails, + RuleGroupVariablesPortSetsDetails, + StatelessCustomActionDefinition, + StatelessCustomPublishMetricAction, + StatelessCustomPublishMetricActionDimension, +} from "../models/models_0"; +import { + _Record, + AwsRdsDbInstanceDetails, AwsRdsDbPendingModifiedValues, AwsRdsDbProcessorFeature, AwsRdsDbSnapshotDetails, AwsRdsDbStatusInfo, - AwsRdsDbSubnetGroup, - AwsRdsDbSubnetGroupSubnet, - AwsRdsDbSubnetGroupSubnetAvailabilityZone, AwsRdsEventSubscriptionDetails, - AwsRdsPendingCloudWatchLogsExports, AwsRedshiftClusterClusterNode, AwsRedshiftClusterClusterParameterGroup, AwsRedshiftClusterClusterParameterStatus, @@ -434,34 +492,14 @@ import { AwsS3BucketBucketLifecycleConfigurationRulesFilterPredicateTagDetails, AwsS3BucketBucketLifecycleConfigurationRulesNoncurrentVersionTransitionsDetails, AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails, + AwsS3BucketBucketVersioningConfiguration, + AwsS3BucketDetails, AwsS3BucketLoggingConfiguration, + AwsS3BucketNotificationConfiguration, + AwsS3BucketNotificationConfigurationDetail, AwsS3BucketNotificationConfigurationFilter, AwsS3BucketNotificationConfigurationS3KeyFilter, AwsS3BucketNotificationConfigurationS3KeyFilterRule, - CidrBlockAssociation, - City, - Country, - DnsRequestAction, - GeoLocation, - IcmpTypeCode, - InternalException, - InvalidAccessException, - InvalidInputException, - IpOrganizationDetails, - Ipv6CidrBlockAssociation, - LimitExceededException, - LoadBalancerState, - NetworkConnectionAction, - PortProbeAction, - PortProbeDetail, - PortRangeFromTo, - ResourceNotFoundException, -} from "../models/models_0"; -import { - _Record, - AwsS3BucketDetails, - AwsS3BucketNotificationConfiguration, - AwsS3BucketNotificationConfigurationDetail, AwsS3BucketServerSideEncryptionByDefault, AwsS3BucketServerSideEncryptionConfiguration, AwsS3BucketServerSideEncryptionRule, @@ -544,6 +582,7 @@ import { SortCriterion, Standard, StandardsControl, + StandardsStatusReason, StandardsSubscription, StandardsSubscriptionRequest, StatusReason, @@ -7388,11 +7427,41 @@ const serializeAws_restJson1AwsApiGatewayV2StageDetails = ( }; }; +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList = ( + input: AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails(entry, context); + }); +}; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails = ( + input: AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails, + context: __SerdeContext +): any => { + return { + ...(input.Value !== undefined && input.Value !== null && { Value: input.Value }), + }; +}; + const serializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails = ( input: AwsAutoScalingAutoScalingGroupDetails, context: __SerdeContext ): any => { return { + ...(input.AvailabilityZones !== undefined && + input.AvailabilityZones !== null && { + AvailabilityZones: serializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList( + input.AvailabilityZones, + context + ), + }), ...(input.CreatedTime !== undefined && input.CreatedTime !== null && { CreatedTime: input.CreatedTime }), ...(input.HealthCheckGracePeriod !== undefined && input.HealthCheckGracePeriod !== null && { HealthCheckGracePeriod: input.HealthCheckGracePeriod }), @@ -7404,6 +7473,122 @@ const serializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails = ( input.LoadBalancerNames !== null && { LoadBalancerNames: serializeAws_restJson1StringList(input.LoadBalancerNames, context), }), + ...(input.MixedInstancesPolicy !== undefined && + input.MixedInstancesPolicy !== null && { + MixedInstancesPolicy: serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails( + input.MixedInstancesPolicy, + context + ), + }), + }; +}; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails = ( + input: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails, + context: __SerdeContext +): any => { + return { + ...(input.InstancesDistribution !== undefined && + input.InstancesDistribution !== null && { + InstancesDistribution: + serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails( + input.InstancesDistribution, + context + ), + }), + ...(input.LaunchTemplate !== undefined && + input.LaunchTemplate !== null && { + LaunchTemplate: serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails( + input.LaunchTemplate, + context + ), + }), + }; +}; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails = ( + input: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails, + context: __SerdeContext +): any => { + return { + ...(input.OnDemandAllocationStrategy !== undefined && + input.OnDemandAllocationStrategy !== null && { OnDemandAllocationStrategy: input.OnDemandAllocationStrategy }), + ...(input.OnDemandBaseCapacity !== undefined && + input.OnDemandBaseCapacity !== null && { OnDemandBaseCapacity: input.OnDemandBaseCapacity }), + ...(input.OnDemandPercentageAboveBaseCapacity !== undefined && + input.OnDemandPercentageAboveBaseCapacity !== null && { + OnDemandPercentageAboveBaseCapacity: input.OnDemandPercentageAboveBaseCapacity, + }), + ...(input.SpotAllocationStrategy !== undefined && + input.SpotAllocationStrategy !== null && { SpotAllocationStrategy: input.SpotAllocationStrategy }), + ...(input.SpotInstancePools !== undefined && + input.SpotInstancePools !== null && { SpotInstancePools: input.SpotInstancePools }), + ...(input.SpotMaxPrice !== undefined && input.SpotMaxPrice !== null && { SpotMaxPrice: input.SpotMaxPrice }), + }; +}; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails = ( + input: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails, + context: __SerdeContext +): any => { + return { + ...(input.LaunchTemplateSpecification !== undefined && + input.LaunchTemplateSpecification !== null && { + LaunchTemplateSpecification: + serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification( + input.LaunchTemplateSpecification, + context + ), + }), + ...(input.Overrides !== undefined && + input.Overrides !== null && { + Overrides: serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList( + input.Overrides, + context + ), + }), + }; +}; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification = + ( + input: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification, + context: __SerdeContext + ): any => { + return { + ...(input.LaunchTemplateId !== undefined && + input.LaunchTemplateId !== null && { LaunchTemplateId: input.LaunchTemplateId }), + ...(input.LaunchTemplateName !== undefined && + input.LaunchTemplateName !== null && { LaunchTemplateName: input.LaunchTemplateName }), + ...(input.Version !== undefined && input.Version !== null && { Version: input.Version }), + }; + }; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList = ( + input: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails( + entry, + context + ); + }); +}; + +const serializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails = ( + input: AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails, + context: __SerdeContext +): any => { + return { + ...(input.InstanceType !== undefined && input.InstanceType !== null && { InstanceType: input.InstanceType }), + ...(input.WeightedCapacity !== undefined && + input.WeightedCapacity !== null && { WeightedCapacity: input.WeightedCapacity }), }; }; @@ -7491,6 +7676,13 @@ const serializeAws_restJson1AwsAutoScalingLaunchConfigurationDetails = ( ...(input.KeyName !== undefined && input.KeyName !== null && { KeyName: input.KeyName }), ...(input.LaunchConfigurationName !== undefined && input.LaunchConfigurationName !== null && { LaunchConfigurationName: input.LaunchConfigurationName }), + ...(input.MetadataOptions !== undefined && + input.MetadataOptions !== null && { + MetadataOptions: serializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions( + input.MetadataOptions, + context + ), + }), ...(input.PlacementTenancy !== undefined && input.PlacementTenancy !== null && { PlacementTenancy: input.PlacementTenancy }), ...(input.RamdiskId !== undefined && input.RamdiskId !== null && { RamdiskId: input.RamdiskId }), @@ -7512,6 +7704,18 @@ const serializeAws_restJson1AwsAutoScalingLaunchConfigurationInstanceMonitoringD }; }; +const serializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions = ( + input: AwsAutoScalingLaunchConfigurationMetadataOptions, + context: __SerdeContext +): any => { + return { + ...(input.HttpEndpoint !== undefined && input.HttpEndpoint !== null && { HttpEndpoint: input.HttpEndpoint }), + ...(input.HttpPutResponseHopLimit !== undefined && + input.HttpPutResponseHopLimit !== null && { HttpPutResponseHopLimit: input.HttpPutResponseHopLimit }), + ...(input.HttpTokens !== undefined && input.HttpTokens !== null && { HttpTokens: input.HttpTokens }), + }; +}; + const serializeAws_restJson1AwsCertificateManagerCertificateDetails = ( input: AwsCertificateManagerCertificateDetails, context: __SerdeContext @@ -11910,6 +12114,94 @@ const serializeAws_restJson1AwsLambdaLayerVersionDetails = ( }; }; +const serializeAws_restJson1AwsNetworkFirewallFirewallDetails = ( + input: AwsNetworkFirewallFirewallDetails, + context: __SerdeContext +): any => { + return { + ...(input.DeleteProtection !== undefined && + input.DeleteProtection !== null && { DeleteProtection: input.DeleteProtection }), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.FirewallArn !== undefined && input.FirewallArn !== null && { FirewallArn: input.FirewallArn }), + ...(input.FirewallId !== undefined && input.FirewallId !== null && { FirewallId: input.FirewallId }), + ...(input.FirewallName !== undefined && input.FirewallName !== null && { FirewallName: input.FirewallName }), + ...(input.FirewallPolicyArn !== undefined && + input.FirewallPolicyArn !== null && { FirewallPolicyArn: input.FirewallPolicyArn }), + ...(input.FirewallPolicyChangeProtection !== undefined && + input.FirewallPolicyChangeProtection !== null && { + FirewallPolicyChangeProtection: input.FirewallPolicyChangeProtection, + }), + ...(input.SubnetChangeProtection !== undefined && + input.SubnetChangeProtection !== null && { SubnetChangeProtection: input.SubnetChangeProtection }), + ...(input.SubnetMappings !== undefined && + input.SubnetMappings !== null && { + SubnetMappings: serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList( + input.SubnetMappings, + context + ), + }), + ...(input.VpcId !== undefined && input.VpcId !== null && { VpcId: input.VpcId }), + }; +}; + +const serializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails = ( + input: AwsNetworkFirewallFirewallPolicyDetails, + context: __SerdeContext +): any => { + return { + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.FirewallPolicy !== undefined && + input.FirewallPolicy !== null && { + FirewallPolicy: serializeAws_restJson1FirewallPolicyDetails(input.FirewallPolicy, context), + }), + ...(input.FirewallPolicyArn !== undefined && + input.FirewallPolicyArn !== null && { FirewallPolicyArn: input.FirewallPolicyArn }), + ...(input.FirewallPolicyId !== undefined && + input.FirewallPolicyId !== null && { FirewallPolicyId: input.FirewallPolicyId }), + ...(input.FirewallPolicyName !== undefined && + input.FirewallPolicyName !== null && { FirewallPolicyName: input.FirewallPolicyName }), + }; +}; + +const serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails = ( + input: AwsNetworkFirewallFirewallSubnetMappingsDetails, + context: __SerdeContext +): any => { + return { + ...(input.SubnetId !== undefined && input.SubnetId !== null && { SubnetId: input.SubnetId }), + }; +}; + +const serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList = ( + input: AwsNetworkFirewallFirewallSubnetMappingsDetails[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails(entry, context); + }); +}; + +const serializeAws_restJson1AwsNetworkFirewallRuleGroupDetails = ( + input: AwsNetworkFirewallRuleGroupDetails, + context: __SerdeContext +): any => { + return { + ...(input.Capacity !== undefined && input.Capacity !== null && { Capacity: input.Capacity }), + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.RuleGroup !== undefined && + input.RuleGroup !== null && { RuleGroup: serializeAws_restJson1RuleGroupDetails(input.RuleGroup, context) }), + ...(input.RuleGroupArn !== undefined && input.RuleGroupArn !== null && { RuleGroupArn: input.RuleGroupArn }), + ...(input.RuleGroupId !== undefined && input.RuleGroupId !== null && { RuleGroupId: input.RuleGroupId }), + ...(input.RuleGroupName !== undefined && input.RuleGroupName !== null && { RuleGroupName: input.RuleGroupName }), + ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + }; +}; + const serializeAws_restJson1AwsOpenSearchServiceDomainClusterConfigDetails = ( input: AwsOpenSearchServiceDomainClusterConfigDetails, context: __SerdeContext @@ -13551,6 +13843,17 @@ const serializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransiti }); }; +const serializeAws_restJson1AwsS3BucketBucketVersioningConfiguration = ( + input: AwsS3BucketBucketVersioningConfiguration, + context: __SerdeContext +): any => { + return { + ...(input.IsMfaDeleteEnabled !== undefined && + input.IsMfaDeleteEnabled !== null && { IsMfaDeleteEnabled: input.IsMfaDeleteEnabled }), + ...(input.Status !== undefined && input.Status !== null && { Status: input.Status }), + }; +}; + const serializeAws_restJson1AwsS3BucketDetails = (input: AwsS3BucketDetails, context: __SerdeContext): any => { return { ...(input.AccessControlList !== undefined && @@ -13576,6 +13879,13 @@ const serializeAws_restJson1AwsS3BucketDetails = (input: AwsS3BucketDetails, con context ), }), + ...(input.BucketVersioningConfiguration !== undefined && + input.BucketVersioningConfiguration !== null && { + BucketVersioningConfiguration: serializeAws_restJson1AwsS3BucketBucketVersioningConfiguration( + input.BucketVersioningConfiguration, + context + ), + }), ...(input.BucketWebsiteConfiguration !== undefined && input.BucketWebsiteConfiguration !== null && { BucketWebsiteConfiguration: serializeAws_restJson1AwsS3BucketWebsiteConfiguration( @@ -14954,71 +15264,182 @@ const serializeAws_restJson1FindingProviderSeverity = ( }; }; -const serializeAws_restJson1GeoLocation = (input: GeoLocation, context: __SerdeContext): any => { +const serializeAws_restJson1FirewallPolicyDetails = (input: FirewallPolicyDetails, context: __SerdeContext): any => { return { - ...(input.Lat !== undefined && input.Lat !== null && { Lat: __serializeFloat(input.Lat) }), - ...(input.Lon !== undefined && input.Lon !== null && { Lon: __serializeFloat(input.Lon) }), + ...(input.StatefulRuleGroupReferences !== undefined && + input.StatefulRuleGroupReferences !== null && { + StatefulRuleGroupReferences: serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList( + input.StatefulRuleGroupReferences, + context + ), + }), + ...(input.StatelessCustomActions !== undefined && + input.StatelessCustomActions !== null && { + StatelessCustomActions: serializeAws_restJson1FirewallPolicyStatelessCustomActionsList( + input.StatelessCustomActions, + context + ), + }), + ...(input.StatelessDefaultActions !== undefined && + input.StatelessDefaultActions !== null && { + StatelessDefaultActions: serializeAws_restJson1NonEmptyStringList(input.StatelessDefaultActions, context), + }), + ...(input.StatelessFragmentDefaultActions !== undefined && + input.StatelessFragmentDefaultActions !== null && { + StatelessFragmentDefaultActions: serializeAws_restJson1NonEmptyStringList( + input.StatelessFragmentDefaultActions, + context + ), + }), + ...(input.StatelessRuleGroupReferences !== undefined && + input.StatelessRuleGroupReferences !== null && { + StatelessRuleGroupReferences: serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList( + input.StatelessRuleGroupReferences, + context + ), + }), }; }; -const serializeAws_restJson1IcmpTypeCode = (input: IcmpTypeCode, context: __SerdeContext): any => { +const serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails = ( + input: FirewallPolicyStatefulRuleGroupReferencesDetails, + context: __SerdeContext +): any => { return { - ...(input.Code !== undefined && input.Code !== null && { Code: input.Code }), - ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + ...(input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }), }; }; -const serializeAws_restJson1IntegerList = (input: number[], context: __SerdeContext): any => { +const serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList = ( + input: FirewallPolicyStatefulRuleGroupReferencesDetails[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { if (entry === null) { return null as any; } - return entry; + return serializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails(entry, context); }); }; -const serializeAws_restJson1IpFilter = (input: IpFilter, context: __SerdeContext): any => { +const serializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails = ( + input: FirewallPolicyStatelessCustomActionsDetails, + context: __SerdeContext +): any => { return { - ...(input.Cidr !== undefined && input.Cidr !== null && { Cidr: input.Cidr }), + ...(input.ActionDefinition !== undefined && + input.ActionDefinition !== null && { + ActionDefinition: serializeAws_restJson1StatelessCustomActionDefinition(input.ActionDefinition, context), + }), + ...(input.ActionName !== undefined && input.ActionName !== null && { ActionName: input.ActionName }), }; }; -const serializeAws_restJson1IpFilterList = (input: IpFilter[], context: __SerdeContext): any => { +const serializeAws_restJson1FirewallPolicyStatelessCustomActionsList = ( + input: FirewallPolicyStatelessCustomActionsDetails[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { if (entry === null) { return null as any; } - return serializeAws_restJson1IpFilter(entry, context); + return serializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails(entry, context); }); }; -const serializeAws_restJson1IpOrganizationDetails = (input: IpOrganizationDetails, context: __SerdeContext): any => { - return { - ...(input.Asn !== undefined && input.Asn !== null && { Asn: input.Asn }), - ...(input.AsnOrg !== undefined && input.AsnOrg !== null && { AsnOrg: input.AsnOrg }), - ...(input.Isp !== undefined && input.Isp !== null && { Isp: input.Isp }), - ...(input.Org !== undefined && input.Org !== null && { Org: input.Org }), - }; -}; - -const serializeAws_restJson1Ipv6CidrBlockAssociation = ( - input: Ipv6CidrBlockAssociation, +const serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails = ( + input: FirewallPolicyStatelessRuleGroupReferencesDetails, context: __SerdeContext ): any => { return { - ...(input.AssociationId !== undefined && input.AssociationId !== null && { AssociationId: input.AssociationId }), - ...(input.CidrBlockState !== undefined && - input.CidrBlockState !== null && { CidrBlockState: input.CidrBlockState }), - ...(input.Ipv6CidrBlock !== undefined && input.Ipv6CidrBlock !== null && { Ipv6CidrBlock: input.Ipv6CidrBlock }), + ...(input.Priority !== undefined && input.Priority !== null && { Priority: input.Priority }), + ...(input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }), }; }; -const serializeAws_restJson1Ipv6CidrBlockAssociationList = ( - input: Ipv6CidrBlockAssociation[], +const serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList = ( + input: FirewallPolicyStatelessRuleGroupReferencesDetails[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails(entry, context); + }); +}; + +const serializeAws_restJson1GeoLocation = (input: GeoLocation, context: __SerdeContext): any => { + return { + ...(input.Lat !== undefined && input.Lat !== null && { Lat: __serializeFloat(input.Lat) }), + ...(input.Lon !== undefined && input.Lon !== null && { Lon: __serializeFloat(input.Lon) }), + }; +}; + +const serializeAws_restJson1IcmpTypeCode = (input: IcmpTypeCode, context: __SerdeContext): any => { + return { + ...(input.Code !== undefined && input.Code !== null && { Code: input.Code }), + ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + }; +}; + +const serializeAws_restJson1IntegerList = (input: number[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1IpFilter = (input: IpFilter, context: __SerdeContext): any => { + return { + ...(input.Cidr !== undefined && input.Cidr !== null && { Cidr: input.Cidr }), + }; +}; + +const serializeAws_restJson1IpFilterList = (input: IpFilter[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1IpFilter(entry, context); + }); +}; + +const serializeAws_restJson1IpOrganizationDetails = (input: IpOrganizationDetails, context: __SerdeContext): any => { + return { + ...(input.Asn !== undefined && input.Asn !== null && { Asn: input.Asn }), + ...(input.AsnOrg !== undefined && input.AsnOrg !== null && { AsnOrg: input.AsnOrg }), + ...(input.Isp !== undefined && input.Isp !== null && { Isp: input.Isp }), + ...(input.Org !== undefined && input.Org !== null && { Org: input.Org }), + }; +}; + +const serializeAws_restJson1Ipv6CidrBlockAssociation = ( + input: Ipv6CidrBlockAssociation, + context: __SerdeContext +): any => { + return { + ...(input.AssociationId !== undefined && input.AssociationId !== null && { AssociationId: input.AssociationId }), + ...(input.CidrBlockState !== undefined && + input.CidrBlockState !== null && { CidrBlockState: input.CidrBlockState }), + ...(input.Ipv6CidrBlock !== undefined && input.Ipv6CidrBlock !== null && { Ipv6CidrBlock: input.Ipv6CidrBlock }), + }; +}; + +const serializeAws_restJson1Ipv6CidrBlockAssociationList = ( + input: Ipv6CidrBlockAssociation[], context: __SerdeContext ): any => { return input @@ -15635,6 +16056,27 @@ const serializeAws_restJson1ResourceDetails = (input: ResourceDetails, context: input.AwsLambdaLayerVersion !== null && { AwsLambdaLayerVersion: serializeAws_restJson1AwsLambdaLayerVersionDetails(input.AwsLambdaLayerVersion, context), }), + ...(input.AwsNetworkFirewallFirewall !== undefined && + input.AwsNetworkFirewallFirewall !== null && { + AwsNetworkFirewallFirewall: serializeAws_restJson1AwsNetworkFirewallFirewallDetails( + input.AwsNetworkFirewallFirewall, + context + ), + }), + ...(input.AwsNetworkFirewallFirewallPolicy !== undefined && + input.AwsNetworkFirewallFirewallPolicy !== null && { + AwsNetworkFirewallFirewallPolicy: serializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails( + input.AwsNetworkFirewallFirewallPolicy, + context + ), + }), + ...(input.AwsNetworkFirewallRuleGroup !== undefined && + input.AwsNetworkFirewallRuleGroup !== null && { + AwsNetworkFirewallRuleGroup: serializeAws_restJson1AwsNetworkFirewallRuleGroupDetails( + input.AwsNetworkFirewallRuleGroup, + context + ), + }), ...(input.AwsOpenSearchServiceDomain !== undefined && input.AwsOpenSearchServiceDomain !== null && { AwsOpenSearchServiceDomain: serializeAws_restJson1AwsOpenSearchServiceDomainDetails( @@ -15746,140 +16188,158 @@ const serializeAws_restJson1ResourceList = (input: Resource[], context: __SerdeC }); }; -const serializeAws_restJson1SecurityGroups = (input: string[], context: __SerdeContext): any => { - return input - .filter((e: any) => e != null) - .map((entry) => { - if (entry === null) { - return null as any; - } - return entry; - }); +const serializeAws_restJson1RuleGroupDetails = (input: RuleGroupDetails, context: __SerdeContext): any => { + return { + ...(input.RuleVariables !== undefined && + input.RuleVariables !== null && { + RuleVariables: serializeAws_restJson1RuleGroupVariables(input.RuleVariables, context), + }), + ...(input.RulesSource !== undefined && + input.RulesSource !== null && { RulesSource: serializeAws_restJson1RuleGroupSource(input.RulesSource, context) }), + }; }; -const serializeAws_restJson1SensitiveDataDetections = ( - input: SensitiveDataDetections, - context: __SerdeContext -): any => { +const serializeAws_restJson1RuleGroupSource = (input: RuleGroupSource, context: __SerdeContext): any => { return { - ...(input.Count !== undefined && input.Count !== null && { Count: input.Count }), - ...(input.Occurrences !== undefined && - input.Occurrences !== null && { Occurrences: serializeAws_restJson1Occurrences(input.Occurrences, context) }), - ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + ...(input.RulesSourceList !== undefined && + input.RulesSourceList !== null && { + RulesSourceList: serializeAws_restJson1RuleGroupSourceListDetails(input.RulesSourceList, context), + }), + ...(input.RulesString !== undefined && input.RulesString !== null && { RulesString: input.RulesString }), + ...(input.StatefulRules !== undefined && + input.StatefulRules !== null && { + StatefulRules: serializeAws_restJson1RuleGroupSourceStatefulRulesList(input.StatefulRules, context), + }), + ...(input.StatelessRulesAndCustomActions !== undefined && + input.StatelessRulesAndCustomActions !== null && { + StatelessRulesAndCustomActions: serializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails( + input.StatelessRulesAndCustomActions, + context + ), + }), }; }; -const serializeAws_restJson1SensitiveDataDetectionsList = ( - input: SensitiveDataDetections[], +const serializeAws_restJson1RuleGroupSourceCustomActionsDetails = ( + input: RuleGroupSourceCustomActionsDetails, context: __SerdeContext ): any => { - return input - .filter((e: any) => e != null) - .map((entry) => { - if (entry === null) { - return null as any; - } - return serializeAws_restJson1SensitiveDataDetections(entry, context); - }); -}; - -const serializeAws_restJson1SensitiveDataResult = (input: SensitiveDataResult, context: __SerdeContext): any => { return { - ...(input.Category !== undefined && input.Category !== null && { Category: input.Category }), - ...(input.Detections !== undefined && - input.Detections !== null && { - Detections: serializeAws_restJson1SensitiveDataDetectionsList(input.Detections, context), + ...(input.ActionDefinition !== undefined && + input.ActionDefinition !== null && { + ActionDefinition: serializeAws_restJson1StatelessCustomActionDefinition(input.ActionDefinition, context), }), - ...(input.TotalCount !== undefined && input.TotalCount !== null && { TotalCount: input.TotalCount }), + ...(input.ActionName !== undefined && input.ActionName !== null && { ActionName: input.ActionName }), }; }; -const serializeAws_restJson1SensitiveDataResultList = (input: SensitiveDataResult[], context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceCustomActionsList = ( + input: RuleGroupSourceCustomActionsDetails[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { if (entry === null) { return null as any; } - return serializeAws_restJson1SensitiveDataResult(entry, context); + return serializeAws_restJson1RuleGroupSourceCustomActionsDetails(entry, context); }); }; -const serializeAws_restJson1Severity = (input: Severity, context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceListDetails = ( + input: RuleGroupSourceListDetails, + context: __SerdeContext +): any => { return { - ...(input.Label !== undefined && input.Label !== null && { Label: input.Label }), - ...(input.Normalized !== undefined && input.Normalized !== null && { Normalized: input.Normalized }), - ...(input.Original !== undefined && input.Original !== null && { Original: input.Original }), - ...(input.Product !== undefined && input.Product !== null && { Product: __serializeFloat(input.Product) }), + ...(input.GeneratedRulesType !== undefined && + input.GeneratedRulesType !== null && { GeneratedRulesType: input.GeneratedRulesType }), + ...(input.TargetTypes !== undefined && + input.TargetTypes !== null && { + TargetTypes: serializeAws_restJson1NonEmptyStringList(input.TargetTypes, context), + }), + ...(input.Targets !== undefined && + input.Targets !== null && { Targets: serializeAws_restJson1NonEmptyStringList(input.Targets, context) }), }; }; -const serializeAws_restJson1SeverityUpdate = (input: SeverityUpdate, context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceStatefulRulesDetails = ( + input: RuleGroupSourceStatefulRulesDetails, + context: __SerdeContext +): any => { return { - ...(input.Label !== undefined && input.Label !== null && { Label: input.Label }), - ...(input.Normalized !== undefined && input.Normalized !== null && { Normalized: input.Normalized }), - ...(input.Product !== undefined && input.Product !== null && { Product: __serializeFloat(input.Product) }), + ...(input.Action !== undefined && input.Action !== null && { Action: input.Action }), + ...(input.Header !== undefined && + input.Header !== null && { + Header: serializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails(input.Header, context), + }), + ...(input.RuleOptions !== undefined && + input.RuleOptions !== null && { + RuleOptions: serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList(input.RuleOptions, context), + }), }; }; -const serializeAws_restJson1SoftwarePackage = (input: SoftwarePackage, context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails = ( + input: RuleGroupSourceStatefulRulesHeaderDetails, + context: __SerdeContext +): any => { return { - ...(input.Architecture !== undefined && input.Architecture !== null && { Architecture: input.Architecture }), - ...(input.Epoch !== undefined && input.Epoch !== null && { Epoch: input.Epoch }), - ...(input.FilePath !== undefined && input.FilePath !== null && { FilePath: input.FilePath }), - ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), - ...(input.PackageManager !== undefined && - input.PackageManager !== null && { PackageManager: input.PackageManager }), - ...(input.Release !== undefined && input.Release !== null && { Release: input.Release }), - ...(input.Version !== undefined && input.Version !== null && { Version: input.Version }), + ...(input.Destination !== undefined && input.Destination !== null && { Destination: input.Destination }), + ...(input.DestinationPort !== undefined && + input.DestinationPort !== null && { DestinationPort: input.DestinationPort }), + ...(input.Direction !== undefined && input.Direction !== null && { Direction: input.Direction }), + ...(input.Protocol !== undefined && input.Protocol !== null && { Protocol: input.Protocol }), + ...(input.Source !== undefined && input.Source !== null && { Source: input.Source }), + ...(input.SourcePort !== undefined && input.SourcePort !== null && { SourcePort: input.SourcePort }), }; }; -const serializeAws_restJson1SoftwarePackageList = (input: SoftwarePackage[], context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceStatefulRulesList = ( + input: RuleGroupSourceStatefulRulesDetails[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { if (entry === null) { return null as any; } - return serializeAws_restJson1SoftwarePackage(entry, context); + return serializeAws_restJson1RuleGroupSourceStatefulRulesDetails(entry, context); }); }; -const serializeAws_restJson1SortCriteria = (input: SortCriterion[], context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails = ( + input: RuleGroupSourceStatefulRulesOptionsDetails, + context: __SerdeContext +): any => { + return { + ...(input.Keyword !== undefined && input.Keyword !== null && { Keyword: input.Keyword }), + ...(input.Settings !== undefined && + input.Settings !== null && { + Settings: serializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList(input.Settings, context), + }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList = ( + input: RuleGroupSourceStatefulRulesOptionsDetails[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { if (entry === null) { return null as any; } - return serializeAws_restJson1SortCriterion(entry, context); + return serializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails(entry, context); }); }; -const serializeAws_restJson1SortCriterion = (input: SortCriterion, context: __SerdeContext): any => { - return { - ...(input.Field !== undefined && input.Field !== null && { Field: input.Field }), - ...(input.SortOrder !== undefined && input.SortOrder !== null && { SortOrder: input.SortOrder }), - }; -}; - -const serializeAws_restJson1StandardsInputParameterMap = ( - input: { [key: string]: string }, +const serializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList = ( + input: string[], context: __SerdeContext ): any => { - return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { - if (value === null) { - return acc; - } - return { - ...acc, - [key]: value, - }; - }, {}); -}; - -const serializeAws_restJson1StandardsSubscriptionArns = (input: string[], context: __SerdeContext): any => { return input .filter((e: any) => e != null) .map((entry) => { @@ -15890,21 +16350,82 @@ const serializeAws_restJson1StandardsSubscriptionArns = (input: string[], contex }); }; -const serializeAws_restJson1StandardsSubscriptionRequest = ( - input: StandardsSubscriptionRequest, +const serializeAws_restJson1RuleGroupSourceStatelessRuleDefinition = ( + input: RuleGroupSourceStatelessRuleDefinition, context: __SerdeContext ): any => { return { - ...(input.StandardsArn !== undefined && input.StandardsArn !== null && { StandardsArn: input.StandardsArn }), - ...(input.StandardsInput !== undefined && - input.StandardsInput !== null && { - StandardsInput: serializeAws_restJson1StandardsInputParameterMap(input.StandardsInput, context), + ...(input.Actions !== undefined && + input.Actions !== null && { Actions: serializeAws_restJson1NonEmptyStringList(input.Actions, context) }), + ...(input.MatchAttributes !== undefined && + input.MatchAttributes !== null && { + MatchAttributes: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes( + input.MatchAttributes, + context + ), }), }; }; -const serializeAws_restJson1StandardsSubscriptionRequests = ( - input: StandardsSubscriptionRequest[], +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes = ( + input: RuleGroupSourceStatelessRuleMatchAttributes, + context: __SerdeContext +): any => { + return { + ...(input.DestinationPorts !== undefined && + input.DestinationPorts !== null && { + DestinationPorts: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList( + input.DestinationPorts, + context + ), + }), + ...(input.Destinations !== undefined && + input.Destinations !== null && { + Destinations: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList( + input.Destinations, + context + ), + }), + ...(input.Protocols !== undefined && + input.Protocols !== null && { + Protocols: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList( + input.Protocols, + context + ), + }), + ...(input.SourcePorts !== undefined && + input.SourcePorts !== null && { + SourcePorts: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList( + input.SourcePorts, + context + ), + }), + ...(input.Sources !== undefined && + input.Sources !== null && { + Sources: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList(input.Sources, context), + }), + ...(input.TcpFlags !== undefined && + input.TcpFlags !== null && { + TcpFlags: serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList( + input.TcpFlags, + context + ), + }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts = ( + input: RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts, + context: __SerdeContext +): any => { + return { + ...(input.FromPort !== undefined && input.FromPort !== null && { FromPort: input.FromPort }), + ...(input.ToPort !== undefined && input.ToPort !== null && { ToPort: input.ToPort }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList = ( + input: RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts[], context: __SerdeContext ): any => { return input @@ -15913,31 +16434,440 @@ const serializeAws_restJson1StandardsSubscriptionRequests = ( if (entry === null) { return null as any; } - return serializeAws_restJson1StandardsSubscriptionRequest(entry, context); + return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts(entry, context); }); }; -const serializeAws_restJson1StatusReason = (input: StatusReason, context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations = ( + input: RuleGroupSourceStatelessRuleMatchAttributesDestinations, + context: __SerdeContext +): any => { return { - ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), - ...(input.ReasonCode !== undefined && input.ReasonCode !== null && { ReasonCode: input.ReasonCode }), + ...(input.AddressDefinition !== undefined && + input.AddressDefinition !== null && { AddressDefinition: input.AddressDefinition }), }; }; -const serializeAws_restJson1StatusReasonsList = (input: StatusReason[], context: __SerdeContext): any => { +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList = ( + input: RuleGroupSourceStatelessRuleMatchAttributesDestinations[], + context: __SerdeContext +): any => { return input .filter((e: any) => e != null) .map((entry) => { if (entry === null) { return null as any; } - return serializeAws_restJson1StatusReason(entry, context); + return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations(entry, context); }); }; -const serializeAws_restJson1StringFilter = (input: StringFilter, context: __SerdeContext): any => { - return { - ...(input.Comparison !== undefined && input.Comparison !== null && { Comparison: input.Comparison }), +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList = ( + input: number[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts = ( + input: RuleGroupSourceStatelessRuleMatchAttributesSourcePorts, + context: __SerdeContext +): any => { + return { + ...(input.FromPort !== undefined && input.FromPort !== null && { FromPort: input.FromPort }), + ...(input.ToPort !== undefined && input.ToPort !== null && { ToPort: input.ToPort }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList = ( + input: RuleGroupSourceStatelessRuleMatchAttributesSourcePorts[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts(entry, context); + }); +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources = ( + input: RuleGroupSourceStatelessRuleMatchAttributesSources, + context: __SerdeContext +): any => { + return { + ...(input.AddressDefinition !== undefined && + input.AddressDefinition !== null && { AddressDefinition: input.AddressDefinition }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList = ( + input: RuleGroupSourceStatelessRuleMatchAttributesSources[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources(entry, context); + }); +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags = ( + input: RuleGroupSourceStatelessRuleMatchAttributesTcpFlags, + context: __SerdeContext +): any => { + return { + ...(input.Flags !== undefined && + input.Flags !== null && { Flags: serializeAws_restJson1NonEmptyStringList(input.Flags, context) }), + ...(input.Masks !== undefined && + input.Masks !== null && { Masks: serializeAws_restJson1NonEmptyStringList(input.Masks, context) }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList = ( + input: RuleGroupSourceStatelessRuleMatchAttributesTcpFlags[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags(entry, context); + }); +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails = ( + input: RuleGroupSourceStatelessRulesAndCustomActionsDetails, + context: __SerdeContext +): any => { + return { + ...(input.CustomActions !== undefined && + input.CustomActions !== null && { + CustomActions: serializeAws_restJson1RuleGroupSourceCustomActionsList(input.CustomActions, context), + }), + ...(input.StatelessRules !== undefined && + input.StatelessRules !== null && { + StatelessRules: serializeAws_restJson1RuleGroupSourceStatelessRulesList(input.StatelessRules, context), + }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRulesDetails = ( + input: RuleGroupSourceStatelessRulesDetails, + context: __SerdeContext +): any => { + return { + ...(input.Priority !== undefined && input.Priority !== null && { Priority: input.Priority }), + ...(input.RuleDefinition !== undefined && + input.RuleDefinition !== null && { + RuleDefinition: serializeAws_restJson1RuleGroupSourceStatelessRuleDefinition(input.RuleDefinition, context), + }), + }; +}; + +const serializeAws_restJson1RuleGroupSourceStatelessRulesList = ( + input: RuleGroupSourceStatelessRulesDetails[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1RuleGroupSourceStatelessRulesDetails(entry, context); + }); +}; + +const serializeAws_restJson1RuleGroupVariables = (input: RuleGroupVariables, context: __SerdeContext): any => { + return { + ...(input.IpSets !== undefined && + input.IpSets !== null && { + IpSets: serializeAws_restJson1RuleGroupVariablesIpSetsDetails(input.IpSets, context), + }), + ...(input.PortSets !== undefined && + input.PortSets !== null && { + PortSets: serializeAws_restJson1RuleGroupVariablesPortSetsDetails(input.PortSets, context), + }), + }; +}; + +const serializeAws_restJson1RuleGroupVariablesIpSetsDetails = ( + input: RuleGroupVariablesIpSetsDetails, + context: __SerdeContext +): any => { + return { + ...(input.Definition !== undefined && + input.Definition !== null && { Definition: serializeAws_restJson1NonEmptyStringList(input.Definition, context) }), + }; +}; + +const serializeAws_restJson1RuleGroupVariablesPortSetsDetails = ( + input: RuleGroupVariablesPortSetsDetails, + context: __SerdeContext +): any => { + return { + ...(input.Definition !== undefined && + input.Definition !== null && { Definition: serializeAws_restJson1NonEmptyStringList(input.Definition, context) }), + }; +}; + +const serializeAws_restJson1SecurityGroups = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1SensitiveDataDetections = ( + input: SensitiveDataDetections, + context: __SerdeContext +): any => { + return { + ...(input.Count !== undefined && input.Count !== null && { Count: input.Count }), + ...(input.Occurrences !== undefined && + input.Occurrences !== null && { Occurrences: serializeAws_restJson1Occurrences(input.Occurrences, context) }), + ...(input.Type !== undefined && input.Type !== null && { Type: input.Type }), + }; +}; + +const serializeAws_restJson1SensitiveDataDetectionsList = ( + input: SensitiveDataDetections[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1SensitiveDataDetections(entry, context); + }); +}; + +const serializeAws_restJson1SensitiveDataResult = (input: SensitiveDataResult, context: __SerdeContext): any => { + return { + ...(input.Category !== undefined && input.Category !== null && { Category: input.Category }), + ...(input.Detections !== undefined && + input.Detections !== null && { + Detections: serializeAws_restJson1SensitiveDataDetectionsList(input.Detections, context), + }), + ...(input.TotalCount !== undefined && input.TotalCount !== null && { TotalCount: input.TotalCount }), + }; +}; + +const serializeAws_restJson1SensitiveDataResultList = (input: SensitiveDataResult[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1SensitiveDataResult(entry, context); + }); +}; + +const serializeAws_restJson1Severity = (input: Severity, context: __SerdeContext): any => { + return { + ...(input.Label !== undefined && input.Label !== null && { Label: input.Label }), + ...(input.Normalized !== undefined && input.Normalized !== null && { Normalized: input.Normalized }), + ...(input.Original !== undefined && input.Original !== null && { Original: input.Original }), + ...(input.Product !== undefined && input.Product !== null && { Product: __serializeFloat(input.Product) }), + }; +}; + +const serializeAws_restJson1SeverityUpdate = (input: SeverityUpdate, context: __SerdeContext): any => { + return { + ...(input.Label !== undefined && input.Label !== null && { Label: input.Label }), + ...(input.Normalized !== undefined && input.Normalized !== null && { Normalized: input.Normalized }), + ...(input.Product !== undefined && input.Product !== null && { Product: __serializeFloat(input.Product) }), + }; +}; + +const serializeAws_restJson1SoftwarePackage = (input: SoftwarePackage, context: __SerdeContext): any => { + return { + ...(input.Architecture !== undefined && input.Architecture !== null && { Architecture: input.Architecture }), + ...(input.Epoch !== undefined && input.Epoch !== null && { Epoch: input.Epoch }), + ...(input.FilePath !== undefined && input.FilePath !== null && { FilePath: input.FilePath }), + ...(input.Name !== undefined && input.Name !== null && { Name: input.Name }), + ...(input.PackageManager !== undefined && + input.PackageManager !== null && { PackageManager: input.PackageManager }), + ...(input.Release !== undefined && input.Release !== null && { Release: input.Release }), + ...(input.Version !== undefined && input.Version !== null && { Version: input.Version }), + }; +}; + +const serializeAws_restJson1SoftwarePackageList = (input: SoftwarePackage[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1SoftwarePackage(entry, context); + }); +}; + +const serializeAws_restJson1SortCriteria = (input: SortCriterion[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1SortCriterion(entry, context); + }); +}; + +const serializeAws_restJson1SortCriterion = (input: SortCriterion, context: __SerdeContext): any => { + return { + ...(input.Field !== undefined && input.Field !== null && { Field: input.Field }), + ...(input.SortOrder !== undefined && input.SortOrder !== null && { SortOrder: input.SortOrder }), + }; +}; + +const serializeAws_restJson1StandardsInputParameterMap = ( + input: { [key: string]: string }, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: { [key: string]: any }, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + return { + ...acc, + [key]: value, + }; + }, {}); +}; + +const serializeAws_restJson1StandardsSubscriptionArns = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_restJson1StandardsSubscriptionRequest = ( + input: StandardsSubscriptionRequest, + context: __SerdeContext +): any => { + return { + ...(input.StandardsArn !== undefined && input.StandardsArn !== null && { StandardsArn: input.StandardsArn }), + ...(input.StandardsInput !== undefined && + input.StandardsInput !== null && { + StandardsInput: serializeAws_restJson1StandardsInputParameterMap(input.StandardsInput, context), + }), + }; +}; + +const serializeAws_restJson1StandardsSubscriptionRequests = ( + input: StandardsSubscriptionRequest[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1StandardsSubscriptionRequest(entry, context); + }); +}; + +const serializeAws_restJson1StatelessCustomActionDefinition = ( + input: StatelessCustomActionDefinition, + context: __SerdeContext +): any => { + return { + ...(input.PublishMetricAction !== undefined && + input.PublishMetricAction !== null && { + PublishMetricAction: serializeAws_restJson1StatelessCustomPublishMetricAction( + input.PublishMetricAction, + context + ), + }), + }; +}; + +const serializeAws_restJson1StatelessCustomPublishMetricAction = ( + input: StatelessCustomPublishMetricAction, + context: __SerdeContext +): any => { + return { + ...(input.Dimensions !== undefined && + input.Dimensions !== null && { + Dimensions: serializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList(input.Dimensions, context), + }), + }; +}; + +const serializeAws_restJson1StatelessCustomPublishMetricActionDimension = ( + input: StatelessCustomPublishMetricActionDimension, + context: __SerdeContext +): any => { + return { + ...(input.Value !== undefined && input.Value !== null && { Value: input.Value }), + }; +}; + +const serializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList = ( + input: StatelessCustomPublishMetricActionDimension[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1StatelessCustomPublishMetricActionDimension(entry, context); + }); +}; + +const serializeAws_restJson1StatusReason = (input: StatusReason, context: __SerdeContext): any => { + return { + ...(input.Description !== undefined && input.Description !== null && { Description: input.Description }), + ...(input.ReasonCode !== undefined && input.ReasonCode !== null && { ReasonCode: input.ReasonCode }), + }; +}; + +const serializeAws_restJson1StatusReasonsList = (input: StatusReason[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return serializeAws_restJson1StatusReason(entry, context); + }); +}; + +const serializeAws_restJson1StringFilter = (input: StringFilter, context: __SerdeContext): any => { + return { + ...(input.Comparison !== undefined && input.Comparison !== null && { Comparison: input.Comparison }), ...(input.Value !== undefined && input.Value !== null && { Value: input.Value }), }; }; @@ -16471,11 +17401,38 @@ const deserializeAws_restJson1AwsApiGatewayV2StageDetails = ( } as any; }; +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails(entry, context); + }); +}; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails => { + return { + Value: __expectString(output.Value), + } as any; +}; + const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails = ( output: any, context: __SerdeContext ): AwsAutoScalingAutoScalingGroupDetails => { return { + AvailabilityZones: + output.AvailabilityZones !== undefined && output.AvailabilityZones !== null + ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupAvailabilityZonesList(output.AvailabilityZones, context) + : undefined, CreatedTime: __expectString(output.CreatedTime), HealthCheckGracePeriod: __expectInt32(output.HealthCheckGracePeriod), HealthCheckType: __expectString(output.HealthCheckType), @@ -16484,6 +17441,110 @@ const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupDetails = ( output.LoadBalancerNames !== undefined && output.LoadBalancerNames !== null ? deserializeAws_restJson1StringList(output.LoadBalancerNames, context) : undefined, + MixedInstancesPolicy: + output.MixedInstancesPolicy !== undefined && output.MixedInstancesPolicy !== null + ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails( + output.MixedInstancesPolicy, + context + ) + : undefined, + } as any; +}; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails => { + return { + InstancesDistribution: + output.InstancesDistribution !== undefined && output.InstancesDistribution !== null + ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails( + output.InstancesDistribution, + context + ) + : undefined, + LaunchTemplate: + output.LaunchTemplate !== undefined && output.LaunchTemplate !== null + ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails( + output.LaunchTemplate, + context + ) + : undefined, + } as any; +}; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails => { + return { + OnDemandAllocationStrategy: __expectString(output.OnDemandAllocationStrategy), + OnDemandBaseCapacity: __expectInt32(output.OnDemandBaseCapacity), + OnDemandPercentageAboveBaseCapacity: __expectInt32(output.OnDemandPercentageAboveBaseCapacity), + SpotAllocationStrategy: __expectString(output.SpotAllocationStrategy), + SpotInstancePools: __expectInt32(output.SpotInstancePools), + SpotMaxPrice: __expectString(output.SpotMaxPrice), + } as any; +}; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails => { + return { + LaunchTemplateSpecification: + output.LaunchTemplateSpecification !== undefined && output.LaunchTemplateSpecification !== null + ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification( + output.LaunchTemplateSpecification, + context + ) + : undefined, + Overrides: + output.Overrides !== undefined && output.Overrides !== null + ? deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList( + output.Overrides, + context + ) + : undefined, + } as any; +}; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification = + ( + output: any, + context: __SerdeContext + ): AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification => { + return { + LaunchTemplateId: __expectString(output.LaunchTemplateId), + LaunchTemplateName: __expectString(output.LaunchTemplateName), + Version: __expectString(output.Version), + } as any; + }; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails( + entry, + context + ); + }); +}; + +const deserializeAws_restJson1AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails = ( + output: any, + context: __SerdeContext +): AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails => { + return { + InstanceType: __expectString(output.InstanceType), + WeightedCapacity: __expectString(output.WeightedCapacity), } as any; }; @@ -16563,6 +17624,10 @@ const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationDetails = ( KernelId: __expectString(output.KernelId), KeyName: __expectString(output.KeyName), LaunchConfigurationName: __expectString(output.LaunchConfigurationName), + MetadataOptions: + output.MetadataOptions !== undefined && output.MetadataOptions !== null + ? deserializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions(output.MetadataOptions, context) + : undefined, PlacementTenancy: __expectString(output.PlacementTenancy), RamdiskId: __expectString(output.RamdiskId), SecurityGroups: @@ -16583,6 +17648,17 @@ const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationInstanceMonitorin } as any; }; +const deserializeAws_restJson1AwsAutoScalingLaunchConfigurationMetadataOptions = ( + output: any, + context: __SerdeContext +): AwsAutoScalingLaunchConfigurationMetadataOptions => { + return { + HttpEndpoint: __expectString(output.HttpEndpoint), + HttpPutResponseHopLimit: __expectInt32(output.HttpPutResponseHopLimit), + HttpTokens: __expectString(output.HttpTokens), + } as any; +}; + const deserializeAws_restJson1AwsCertificateManagerCertificateDetails = ( output: any, context: __SerdeContext @@ -20638,64 +21714,142 @@ const deserializeAws_restJson1AwsLambdaFunctionEnvironmentError = ( const deserializeAws_restJson1AwsLambdaFunctionLayer = ( output: any, context: __SerdeContext -): AwsLambdaFunctionLayer => { +): AwsLambdaFunctionLayer => { + return { + Arn: __expectString(output.Arn), + CodeSize: __expectInt32(output.CodeSize), + } as any; +}; + +const deserializeAws_restJson1AwsLambdaFunctionLayerList = ( + output: any, + context: __SerdeContext +): AwsLambdaFunctionLayer[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1AwsLambdaFunctionLayer(entry, context); + }); +}; + +const deserializeAws_restJson1AwsLambdaFunctionTracingConfig = ( + output: any, + context: __SerdeContext +): AwsLambdaFunctionTracingConfig => { + return { + Mode: __expectString(output.Mode), + } as any; +}; + +const deserializeAws_restJson1AwsLambdaFunctionVpcConfig = ( + output: any, + context: __SerdeContext +): AwsLambdaFunctionVpcConfig => { + return { + SecurityGroupIds: + output.SecurityGroupIds !== undefined && output.SecurityGroupIds !== null + ? deserializeAws_restJson1NonEmptyStringList(output.SecurityGroupIds, context) + : undefined, + SubnetIds: + output.SubnetIds !== undefined && output.SubnetIds !== null + ? deserializeAws_restJson1NonEmptyStringList(output.SubnetIds, context) + : undefined, + VpcId: __expectString(output.VpcId), + } as any; +}; + +const deserializeAws_restJson1AwsLambdaLayerVersionDetails = ( + output: any, + context: __SerdeContext +): AwsLambdaLayerVersionDetails => { + return { + CompatibleRuntimes: + output.CompatibleRuntimes !== undefined && output.CompatibleRuntimes !== null + ? deserializeAws_restJson1NonEmptyStringList(output.CompatibleRuntimes, context) + : undefined, + CreatedDate: __expectString(output.CreatedDate), + Version: __expectLong(output.Version), + } as any; +}; + +const deserializeAws_restJson1AwsNetworkFirewallFirewallDetails = ( + output: any, + context: __SerdeContext +): AwsNetworkFirewallFirewallDetails => { + return { + DeleteProtection: __expectBoolean(output.DeleteProtection), + Description: __expectString(output.Description), + FirewallArn: __expectString(output.FirewallArn), + FirewallId: __expectString(output.FirewallId), + FirewallName: __expectString(output.FirewallName), + FirewallPolicyArn: __expectString(output.FirewallPolicyArn), + FirewallPolicyChangeProtection: __expectBoolean(output.FirewallPolicyChangeProtection), + SubnetChangeProtection: __expectBoolean(output.SubnetChangeProtection), + SubnetMappings: + output.SubnetMappings !== undefined && output.SubnetMappings !== null + ? deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList(output.SubnetMappings, context) + : undefined, + VpcId: __expectString(output.VpcId), + } as any; +}; + +const deserializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails = ( + output: any, + context: __SerdeContext +): AwsNetworkFirewallFirewallPolicyDetails => { + return { + Description: __expectString(output.Description), + FirewallPolicy: + output.FirewallPolicy !== undefined && output.FirewallPolicy !== null + ? deserializeAws_restJson1FirewallPolicyDetails(output.FirewallPolicy, context) + : undefined, + FirewallPolicyArn: __expectString(output.FirewallPolicyArn), + FirewallPolicyId: __expectString(output.FirewallPolicyId), + FirewallPolicyName: __expectString(output.FirewallPolicyName), + } as any; +}; + +const deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails = ( + output: any, + context: __SerdeContext +): AwsNetworkFirewallFirewallSubnetMappingsDetails => { return { - Arn: __expectString(output.Arn), - CodeSize: __expectInt32(output.CodeSize), + SubnetId: __expectString(output.SubnetId), } as any; }; -const deserializeAws_restJson1AwsLambdaFunctionLayerList = ( +const deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsList = ( output: any, context: __SerdeContext -): AwsLambdaFunctionLayer[] => { +): AwsNetworkFirewallFirewallSubnetMappingsDetails[] => { return (output || []) .filter((e: any) => e != null) .map((entry: any) => { if (entry === null) { return null as any; } - return deserializeAws_restJson1AwsLambdaFunctionLayer(entry, context); + return deserializeAws_restJson1AwsNetworkFirewallFirewallSubnetMappingsDetails(entry, context); }); }; -const deserializeAws_restJson1AwsLambdaFunctionTracingConfig = ( - output: any, - context: __SerdeContext -): AwsLambdaFunctionTracingConfig => { - return { - Mode: __expectString(output.Mode), - } as any; -}; - -const deserializeAws_restJson1AwsLambdaFunctionVpcConfig = ( - output: any, - context: __SerdeContext -): AwsLambdaFunctionVpcConfig => { - return { - SecurityGroupIds: - output.SecurityGroupIds !== undefined && output.SecurityGroupIds !== null - ? deserializeAws_restJson1NonEmptyStringList(output.SecurityGroupIds, context) - : undefined, - SubnetIds: - output.SubnetIds !== undefined && output.SubnetIds !== null - ? deserializeAws_restJson1NonEmptyStringList(output.SubnetIds, context) - : undefined, - VpcId: __expectString(output.VpcId), - } as any; -}; - -const deserializeAws_restJson1AwsLambdaLayerVersionDetails = ( +const deserializeAws_restJson1AwsNetworkFirewallRuleGroupDetails = ( output: any, context: __SerdeContext -): AwsLambdaLayerVersionDetails => { +): AwsNetworkFirewallRuleGroupDetails => { return { - CompatibleRuntimes: - output.CompatibleRuntimes !== undefined && output.CompatibleRuntimes !== null - ? deserializeAws_restJson1NonEmptyStringList(output.CompatibleRuntimes, context) + Capacity: __expectInt32(output.Capacity), + Description: __expectString(output.Description), + RuleGroup: + output.RuleGroup !== undefined && output.RuleGroup !== null + ? deserializeAws_restJson1RuleGroupDetails(output.RuleGroup, context) : undefined, - CreatedDate: __expectString(output.CreatedDate), - Version: __expectLong(output.Version), + RuleGroupArn: __expectString(output.RuleGroupArn), + RuleGroupId: __expectString(output.RuleGroupId), + RuleGroupName: __expectString(output.RuleGroupName), + Type: __expectString(output.Type), } as any; }; @@ -22097,6 +23251,16 @@ const deserializeAws_restJson1AwsS3BucketBucketLifecycleConfigurationRulesTransi }); }; +const deserializeAws_restJson1AwsS3BucketBucketVersioningConfiguration = ( + output: any, + context: __SerdeContext +): AwsS3BucketBucketVersioningConfiguration => { + return { + IsMfaDeleteEnabled: __expectBoolean(output.IsMfaDeleteEnabled), + Status: __expectString(output.Status), + } as any; +}; + const deserializeAws_restJson1AwsS3BucketDetails = (output: any, context: __SerdeContext): AwsS3BucketDetails => { return { AccessControlList: __expectString(output.AccessControlList), @@ -22115,6 +23279,13 @@ const deserializeAws_restJson1AwsS3BucketDetails = (output: any, context: __Serd output.BucketNotificationConfiguration !== undefined && output.BucketNotificationConfiguration !== null ? deserializeAws_restJson1AwsS3BucketNotificationConfiguration(output.BucketNotificationConfiguration, context) : undefined, + BucketVersioningConfiguration: + output.BucketVersioningConfiguration !== undefined && output.BucketVersioningConfiguration !== null + ? deserializeAws_restJson1AwsS3BucketBucketVersioningConfiguration( + output.BucketVersioningConfiguration, + context + ) + : undefined, BucketWebsiteConfiguration: output.BucketWebsiteConfiguration !== undefined && output.BucketWebsiteConfiguration !== null ? deserializeAws_restJson1AwsS3BucketWebsiteConfiguration(output.BucketWebsiteConfiguration, context) @@ -23496,6 +24667,111 @@ const deserializeAws_restJson1FindingProviderSeverity = ( } as any; }; +const deserializeAws_restJson1FirewallPolicyDetails = (output: any, context: __SerdeContext): FirewallPolicyDetails => { + return { + StatefulRuleGroupReferences: + output.StatefulRuleGroupReferences !== undefined && output.StatefulRuleGroupReferences !== null + ? deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList( + output.StatefulRuleGroupReferences, + context + ) + : undefined, + StatelessCustomActions: + output.StatelessCustomActions !== undefined && output.StatelessCustomActions !== null + ? deserializeAws_restJson1FirewallPolicyStatelessCustomActionsList(output.StatelessCustomActions, context) + : undefined, + StatelessDefaultActions: + output.StatelessDefaultActions !== undefined && output.StatelessDefaultActions !== null + ? deserializeAws_restJson1NonEmptyStringList(output.StatelessDefaultActions, context) + : undefined, + StatelessFragmentDefaultActions: + output.StatelessFragmentDefaultActions !== undefined && output.StatelessFragmentDefaultActions !== null + ? deserializeAws_restJson1NonEmptyStringList(output.StatelessFragmentDefaultActions, context) + : undefined, + StatelessRuleGroupReferences: + output.StatelessRuleGroupReferences !== undefined && output.StatelessRuleGroupReferences !== null + ? deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList( + output.StatelessRuleGroupReferences, + context + ) + : undefined, + } as any; +}; + +const deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails = ( + output: any, + context: __SerdeContext +): FirewallPolicyStatefulRuleGroupReferencesDetails => { + return { + ResourceArn: __expectString(output.ResourceArn), + } as any; +}; + +const deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesList = ( + output: any, + context: __SerdeContext +): FirewallPolicyStatefulRuleGroupReferencesDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1FirewallPolicyStatefulRuleGroupReferencesDetails(entry, context); + }); +}; + +const deserializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails = ( + output: any, + context: __SerdeContext +): FirewallPolicyStatelessCustomActionsDetails => { + return { + ActionDefinition: + output.ActionDefinition !== undefined && output.ActionDefinition !== null + ? deserializeAws_restJson1StatelessCustomActionDefinition(output.ActionDefinition, context) + : undefined, + ActionName: __expectString(output.ActionName), + } as any; +}; + +const deserializeAws_restJson1FirewallPolicyStatelessCustomActionsList = ( + output: any, + context: __SerdeContext +): FirewallPolicyStatelessCustomActionsDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1FirewallPolicyStatelessCustomActionsDetails(entry, context); + }); +}; + +const deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails = ( + output: any, + context: __SerdeContext +): FirewallPolicyStatelessRuleGroupReferencesDetails => { + return { + Priority: __expectInt32(output.Priority), + ResourceArn: __expectString(output.ResourceArn), + } as any; +}; + +const deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesList = ( + output: any, + context: __SerdeContext +): FirewallPolicyStatelessRuleGroupReferencesDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1FirewallPolicyStatelessRuleGroupReferencesDetails(entry, context); + }); +}; + const deserializeAws_restJson1GeoLocation = (output: any, context: __SerdeContext): GeoLocation => { return { Lat: __limitedParseDouble(output.Lat), @@ -24362,6 +25638,21 @@ const deserializeAws_restJson1ResourceDetails = (output: any, context: __SerdeCo output.AwsLambdaLayerVersion !== undefined && output.AwsLambdaLayerVersion !== null ? deserializeAws_restJson1AwsLambdaLayerVersionDetails(output.AwsLambdaLayerVersion, context) : undefined, + AwsNetworkFirewallFirewall: + output.AwsNetworkFirewallFirewall !== undefined && output.AwsNetworkFirewallFirewall !== null + ? deserializeAws_restJson1AwsNetworkFirewallFirewallDetails(output.AwsNetworkFirewallFirewall, context) + : undefined, + AwsNetworkFirewallFirewallPolicy: + output.AwsNetworkFirewallFirewallPolicy !== undefined && output.AwsNetworkFirewallFirewallPolicy !== null + ? deserializeAws_restJson1AwsNetworkFirewallFirewallPolicyDetails( + output.AwsNetworkFirewallFirewallPolicy, + context + ) + : undefined, + AwsNetworkFirewallRuleGroup: + output.AwsNetworkFirewallRuleGroup !== undefined && output.AwsNetworkFirewallRuleGroup !== null + ? deserializeAws_restJson1AwsNetworkFirewallRuleGroupDetails(output.AwsNetworkFirewallRuleGroup, context) + : undefined, AwsOpenSearchServiceDomain: output.AwsOpenSearchServiceDomain !== undefined && output.AwsOpenSearchServiceDomain !== null ? deserializeAws_restJson1AwsOpenSearchServiceDomainDetails(output.AwsOpenSearchServiceDomain, context) @@ -24402,78 +25693,517 @@ const deserializeAws_restJson1ResourceDetails = (output: any, context: __SerdeCo output.AwsS3Object !== undefined && output.AwsS3Object !== null ? deserializeAws_restJson1AwsS3ObjectDetails(output.AwsS3Object, context) : undefined, - AwsSecretsManagerSecret: - output.AwsSecretsManagerSecret !== undefined && output.AwsSecretsManagerSecret !== null - ? deserializeAws_restJson1AwsSecretsManagerSecretDetails(output.AwsSecretsManagerSecret, context) + AwsSecretsManagerSecret: + output.AwsSecretsManagerSecret !== undefined && output.AwsSecretsManagerSecret !== null + ? deserializeAws_restJson1AwsSecretsManagerSecretDetails(output.AwsSecretsManagerSecret, context) + : undefined, + AwsSnsTopic: + output.AwsSnsTopic !== undefined && output.AwsSnsTopic !== null + ? deserializeAws_restJson1AwsSnsTopicDetails(output.AwsSnsTopic, context) + : undefined, + AwsSqsQueue: + output.AwsSqsQueue !== undefined && output.AwsSqsQueue !== null + ? deserializeAws_restJson1AwsSqsQueueDetails(output.AwsSqsQueue, context) + : undefined, + AwsSsmPatchCompliance: + output.AwsSsmPatchCompliance !== undefined && output.AwsSsmPatchCompliance !== null + ? deserializeAws_restJson1AwsSsmPatchComplianceDetails(output.AwsSsmPatchCompliance, context) + : undefined, + AwsWafRateBasedRule: + output.AwsWafRateBasedRule !== undefined && output.AwsWafRateBasedRule !== null + ? deserializeAws_restJson1AwsWafRateBasedRuleDetails(output.AwsWafRateBasedRule, context) + : undefined, + AwsWafRegionalRateBasedRule: + output.AwsWafRegionalRateBasedRule !== undefined && output.AwsWafRegionalRateBasedRule !== null + ? deserializeAws_restJson1AwsWafRegionalRateBasedRuleDetails(output.AwsWafRegionalRateBasedRule, context) + : undefined, + AwsWafWebAcl: + output.AwsWafWebAcl !== undefined && output.AwsWafWebAcl !== null + ? deserializeAws_restJson1AwsWafWebAclDetails(output.AwsWafWebAcl, context) + : undefined, + AwsXrayEncryptionConfig: + output.AwsXrayEncryptionConfig !== undefined && output.AwsXrayEncryptionConfig !== null + ? deserializeAws_restJson1AwsXrayEncryptionConfigDetails(output.AwsXrayEncryptionConfig, context) + : undefined, + Container: + output.Container !== undefined && output.Container !== null + ? deserializeAws_restJson1ContainerDetails(output.Container, context) + : undefined, + Other: + output.Other !== undefined && output.Other !== null + ? deserializeAws_restJson1FieldMap(output.Other, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1ResourceList = (output: any, context: __SerdeContext): Resource[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Resource(entry, context); + }); +}; + +const deserializeAws_restJson1Result = (output: any, context: __SerdeContext): Result => { + return { + AccountId: __expectString(output.AccountId), + ProcessingResult: __expectString(output.ProcessingResult), + } as any; +}; + +const deserializeAws_restJson1ResultList = (output: any, context: __SerdeContext): Result[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1Result(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupDetails = (output: any, context: __SerdeContext): RuleGroupDetails => { + return { + RuleVariables: + output.RuleVariables !== undefined && output.RuleVariables !== null + ? deserializeAws_restJson1RuleGroupVariables(output.RuleVariables, context) + : undefined, + RulesSource: + output.RulesSource !== undefined && output.RulesSource !== null + ? deserializeAws_restJson1RuleGroupSource(output.RulesSource, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupSource = (output: any, context: __SerdeContext): RuleGroupSource => { + return { + RulesSourceList: + output.RulesSourceList !== undefined && output.RulesSourceList !== null + ? deserializeAws_restJson1RuleGroupSourceListDetails(output.RulesSourceList, context) + : undefined, + RulesString: __expectString(output.RulesString), + StatefulRules: + output.StatefulRules !== undefined && output.StatefulRules !== null + ? deserializeAws_restJson1RuleGroupSourceStatefulRulesList(output.StatefulRules, context) + : undefined, + StatelessRulesAndCustomActions: + output.StatelessRulesAndCustomActions !== undefined && output.StatelessRulesAndCustomActions !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails( + output.StatelessRulesAndCustomActions, + context + ) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceCustomActionsDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceCustomActionsDetails => { + return { + ActionDefinition: + output.ActionDefinition !== undefined && output.ActionDefinition !== null + ? deserializeAws_restJson1StatelessCustomActionDefinition(output.ActionDefinition, context) + : undefined, + ActionName: __expectString(output.ActionName), + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceCustomActionsList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceCustomActionsDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceCustomActionsDetails(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceListDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceListDetails => { + return { + GeneratedRulesType: __expectString(output.GeneratedRulesType), + TargetTypes: + output.TargetTypes !== undefined && output.TargetTypes !== null + ? deserializeAws_restJson1NonEmptyStringList(output.TargetTypes, context) + : undefined, + Targets: + output.Targets !== undefined && output.Targets !== null + ? deserializeAws_restJson1NonEmptyStringList(output.Targets, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatefulRulesDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatefulRulesDetails => { + return { + Action: __expectString(output.Action), + Header: + output.Header !== undefined && output.Header !== null + ? deserializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails(output.Header, context) + : undefined, + RuleOptions: + output.RuleOptions !== undefined && output.RuleOptions !== null + ? deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList(output.RuleOptions, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatefulRulesHeaderDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatefulRulesHeaderDetails => { + return { + Destination: __expectString(output.Destination), + DestinationPort: __expectString(output.DestinationPort), + Direction: __expectString(output.Direction), + Protocol: __expectString(output.Protocol), + Source: __expectString(output.Source), + SourcePort: __expectString(output.SourcePort), + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatefulRulesList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatefulRulesDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceStatefulRulesDetails(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatefulRulesOptionsDetails => { + return { + Keyword: __expectString(output.Keyword), + Settings: + output.Settings !== undefined && output.Settings !== null + ? deserializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList(output.Settings, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatefulRulesOptionsDetails[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceStatefulRulesOptionsDetails(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatefulRulesRuleOptionsSettingsList = ( + output: any, + context: __SerdeContext +): string[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleDefinition = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleDefinition => { + return { + Actions: + output.Actions !== undefined && output.Actions !== null + ? deserializeAws_restJson1NonEmptyStringList(output.Actions, context) : undefined, - AwsSnsTopic: - output.AwsSnsTopic !== undefined && output.AwsSnsTopic !== null - ? deserializeAws_restJson1AwsSnsTopicDetails(output.AwsSnsTopic, context) + MatchAttributes: + output.MatchAttributes !== undefined && output.MatchAttributes !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes(output.MatchAttributes, context) : undefined, - AwsSqsQueue: - output.AwsSqsQueue !== undefined && output.AwsSqsQueue !== null - ? deserializeAws_restJson1AwsSqsQueueDetails(output.AwsSqsQueue, context) + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributes = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributes => { + return { + DestinationPorts: + output.DestinationPorts !== undefined && output.DestinationPorts !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList( + output.DestinationPorts, + context + ) : undefined, - AwsSsmPatchCompliance: - output.AwsSsmPatchCompliance !== undefined && output.AwsSsmPatchCompliance !== null - ? deserializeAws_restJson1AwsSsmPatchComplianceDetails(output.AwsSsmPatchCompliance, context) + Destinations: + output.Destinations !== undefined && output.Destinations !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList( + output.Destinations, + context + ) : undefined, - AwsWafRateBasedRule: - output.AwsWafRateBasedRule !== undefined && output.AwsWafRateBasedRule !== null - ? deserializeAws_restJson1AwsWafRateBasedRuleDetails(output.AwsWafRateBasedRule, context) + Protocols: + output.Protocols !== undefined && output.Protocols !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList(output.Protocols, context) : undefined, - AwsWafRegionalRateBasedRule: - output.AwsWafRegionalRateBasedRule !== undefined && output.AwsWafRegionalRateBasedRule !== null - ? deserializeAws_restJson1AwsWafRegionalRateBasedRuleDetails(output.AwsWafRegionalRateBasedRule, context) + SourcePorts: + output.SourcePorts !== undefined && output.SourcePorts !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList( + output.SourcePorts, + context + ) : undefined, - AwsWafWebAcl: - output.AwsWafWebAcl !== undefined && output.AwsWafWebAcl !== null - ? deserializeAws_restJson1AwsWafWebAclDetails(output.AwsWafWebAcl, context) + Sources: + output.Sources !== undefined && output.Sources !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList(output.Sources, context) : undefined, - AwsXrayEncryptionConfig: - output.AwsXrayEncryptionConfig !== undefined && output.AwsXrayEncryptionConfig !== null - ? deserializeAws_restJson1AwsXrayEncryptionConfigDetails(output.AwsXrayEncryptionConfig, context) + TcpFlags: + output.TcpFlags !== undefined && output.TcpFlags !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList(output.TcpFlags, context) : undefined, - Container: - output.Container !== undefined && output.Container !== null - ? deserializeAws_restJson1ContainerDetails(output.Container, context) + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts => { + return { + FromPort: __expectInt32(output.FromPort), + ToPort: __expectInt32(output.ToPort), + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesDestinations => { + return { + AddressDefinition: __expectString(output.AddressDefinition), + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinationsList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesDestinations[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesDestinations(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesProtocolsList = ( + output: any, + context: __SerdeContext +): number[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectInt32(entry) as any; + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesSourcePorts => { + return { + FromPort: __expectInt32(output.FromPort), + ToPort: __expectInt32(output.ToPort), + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesSourcePorts[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcePorts(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesSources => { + return { + AddressDefinition: __expectString(output.AddressDefinition), + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSourcesList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesSources[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesSources(entry, context); + }); +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesTcpFlags => { + return { + Flags: + output.Flags !== undefined && output.Flags !== null + ? deserializeAws_restJson1NonEmptyStringList(output.Flags, context) : undefined, - Other: - output.Other !== undefined && output.Other !== null - ? deserializeAws_restJson1FieldMap(output.Other, context) + Masks: + output.Masks !== undefined && output.Masks !== null + ? deserializeAws_restJson1NonEmptyStringList(output.Masks, context) : undefined, } as any; }; -const deserializeAws_restJson1ResourceList = (output: any, context: __SerdeContext): Resource[] => { +const deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRuleMatchAttributesTcpFlags[] => { return (output || []) .filter((e: any) => e != null) .map((entry: any) => { if (entry === null) { return null as any; } - return deserializeAws_restJson1Resource(entry, context); + return deserializeAws_restJson1RuleGroupSourceStatelessRuleMatchAttributesTcpFlags(entry, context); }); }; -const deserializeAws_restJson1Result = (output: any, context: __SerdeContext): Result => { +const deserializeAws_restJson1RuleGroupSourceStatelessRulesAndCustomActionsDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRulesAndCustomActionsDetails => { return { - AccountId: __expectString(output.AccountId), - ProcessingResult: __expectString(output.ProcessingResult), + CustomActions: + output.CustomActions !== undefined && output.CustomActions !== null + ? deserializeAws_restJson1RuleGroupSourceCustomActionsList(output.CustomActions, context) + : undefined, + StatelessRules: + output.StatelessRules !== undefined && output.StatelessRules !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRulesList(output.StatelessRules, context) + : undefined, } as any; }; -const deserializeAws_restJson1ResultList = (output: any, context: __SerdeContext): Result[] => { +const deserializeAws_restJson1RuleGroupSourceStatelessRulesDetails = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRulesDetails => { + return { + Priority: __expectInt32(output.Priority), + RuleDefinition: + output.RuleDefinition !== undefined && output.RuleDefinition !== null + ? deserializeAws_restJson1RuleGroupSourceStatelessRuleDefinition(output.RuleDefinition, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupSourceStatelessRulesList = ( + output: any, + context: __SerdeContext +): RuleGroupSourceStatelessRulesDetails[] => { return (output || []) .filter((e: any) => e != null) .map((entry: any) => { if (entry === null) { return null as any; } - return deserializeAws_restJson1Result(entry, context); + return deserializeAws_restJson1RuleGroupSourceStatelessRulesDetails(entry, context); }); }; +const deserializeAws_restJson1RuleGroupVariables = (output: any, context: __SerdeContext): RuleGroupVariables => { + return { + IpSets: + output.IpSets !== undefined && output.IpSets !== null + ? deserializeAws_restJson1RuleGroupVariablesIpSetsDetails(output.IpSets, context) + : undefined, + PortSets: + output.PortSets !== undefined && output.PortSets !== null + ? deserializeAws_restJson1RuleGroupVariablesPortSetsDetails(output.PortSets, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupVariablesIpSetsDetails = ( + output: any, + context: __SerdeContext +): RuleGroupVariablesIpSetsDetails => { + return { + Definition: + output.Definition !== undefined && output.Definition !== null + ? deserializeAws_restJson1NonEmptyStringList(output.Definition, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1RuleGroupVariablesPortSetsDetails = ( + output: any, + context: __SerdeContext +): RuleGroupVariablesPortSetsDetails => { + return { + Definition: + output.Definition !== undefined && output.Definition !== null + ? deserializeAws_restJson1NonEmptyStringList(output.Definition, context) + : undefined, + } as any; +}; + const deserializeAws_restJson1SecurityGroups = (output: any, context: __SerdeContext): string[] => { return (output || []) .filter((e: any) => e != null) @@ -24637,6 +26367,12 @@ const deserializeAws_restJson1StandardsInputParameterMap = ( }, {}); }; +const deserializeAws_restJson1StandardsStatusReason = (output: any, context: __SerdeContext): StandardsStatusReason => { + return { + StatusReasonCode: __expectString(output.StatusReasonCode), + } as any; +}; + const deserializeAws_restJson1StandardsSubscription = (output: any, context: __SerdeContext): StandardsSubscription => { return { StandardsArn: __expectString(output.StandardsArn), @@ -24645,6 +26381,10 @@ const deserializeAws_restJson1StandardsSubscription = (output: any, context: __S ? deserializeAws_restJson1StandardsInputParameterMap(output.StandardsInput, context) : undefined, StandardsStatus: __expectString(output.StandardsStatus), + StandardsStatusReason: + output.StandardsStatusReason !== undefined && output.StandardsStatusReason !== null + ? deserializeAws_restJson1StandardsStatusReason(output.StandardsStatusReason, context) + : undefined, StandardsSubscriptionArn: __expectString(output.StandardsSubscriptionArn), } as any; }; @@ -24663,6 +26403,53 @@ const deserializeAws_restJson1StandardsSubscriptions = ( }); }; +const deserializeAws_restJson1StatelessCustomActionDefinition = ( + output: any, + context: __SerdeContext +): StatelessCustomActionDefinition => { + return { + PublishMetricAction: + output.PublishMetricAction !== undefined && output.PublishMetricAction !== null + ? deserializeAws_restJson1StatelessCustomPublishMetricAction(output.PublishMetricAction, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1StatelessCustomPublishMetricAction = ( + output: any, + context: __SerdeContext +): StatelessCustomPublishMetricAction => { + return { + Dimensions: + output.Dimensions !== undefined && output.Dimensions !== null + ? deserializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList(output.Dimensions, context) + : undefined, + } as any; +}; + +const deserializeAws_restJson1StatelessCustomPublishMetricActionDimension = ( + output: any, + context: __SerdeContext +): StatelessCustomPublishMetricActionDimension => { + return { + Value: __expectString(output.Value), + } as any; +}; + +const deserializeAws_restJson1StatelessCustomPublishMetricActionDimensionsList = ( + output: any, + context: __SerdeContext +): StatelessCustomPublishMetricActionDimension[] => { + return (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_restJson1StatelessCustomPublishMetricActionDimension(entry, context); + }); +}; + const deserializeAws_restJson1StatusReason = (output: any, context: __SerdeContext): StatusReason => { return { Description: __expectString(output.Description), diff --git a/clients/client-serverlessapplicationrepository/src/endpoints.ts b/clients/client-serverlessapplicationrepository/src/endpoints.ts index 2389fb9eeb37..97852d91e63a 100644 --- a/clients/client-serverlessapplicationrepository/src/endpoints.ts +++ b/clients/client-serverlessapplicationrepository/src/endpoints.ts @@ -33,6 +33,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-service-catalog-appregistry/src/endpoints.ts b/clients/client-service-catalog-appregistry/src/endpoints.ts index 4c874c423d22..3a4d1467c551 100644 --- a/clients/client-service-catalog-appregistry/src/endpoints.ts +++ b/clients/client-service-catalog-appregistry/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-service-catalog/src/endpoints.ts b/clients/client-service-catalog/src/endpoints.ts index ba32ee10316a..47098bd5bb34 100644 --- a/clients/client-service-catalog/src/endpoints.ts +++ b/clients/client-service-catalog/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-service-quotas/src/endpoints.ts b/clients/client-service-quotas/src/endpoints.ts index 5908a3a466f2..3eb6677b1838 100644 --- a/clients/client-service-quotas/src/endpoints.ts +++ b/clients/client-service-quotas/src/endpoints.ts @@ -39,6 +39,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-servicediscovery/src/endpoints.ts b/clients/client-servicediscovery/src/endpoints.ts index 13ffe0d5b763..5b3787f8d0e2 100644 --- a/clients/client-servicediscovery/src/endpoints.ts +++ b/clients/client-servicediscovery/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-ses/src/endpoints.ts b/clients/client-ses/src/endpoints.ts index 536775cc5e69..c5137be6080b 100644 --- a/clients/client-ses/src/endpoints.ts +++ b/clients/client-ses/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sesv2/src/endpoints.ts b/clients/client-sesv2/src/endpoints.ts index 536775cc5e69..c5137be6080b 100644 --- a/clients/client-sesv2/src/endpoints.ts +++ b/clients/client-sesv2/src/endpoints.ts @@ -27,6 +27,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sfn/src/endpoints.ts b/clients/client-sfn/src/endpoints.ts index 75827ea7b90e..d5e4fcf22dc2 100644 --- a/clients/client-sfn/src/endpoints.ts +++ b/clients/client-sfn/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-shield/src/endpoints.ts b/clients/client-shield/src/endpoints.ts index fd7b76bb57c4..4bdfa3c95f9c 100644 --- a/clients/client-shield/src/endpoints.ts +++ b/clients/client-shield/src/endpoints.ts @@ -28,6 +28,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-signer/src/endpoints.ts b/clients/client-signer/src/endpoints.ts index c214df2e97b8..815c7bf2be5c 100644 --- a/clients/client-signer/src/endpoints.ts +++ b/clients/client-signer/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sms/README.md b/clients/client-sms/README.md index 5a1726f12de5..2e4738a51399 100644 --- a/clients/client-sms/README.md +++ b/clients/client-sms/README.md @@ -7,21 +7,32 @@ AWS SDK for JavaScript SMS Client for Node.js, Browser and React Native. -AWS Server Migration Service - -

        AWS Server Migration Service (AWS SMS) makes it easier and faster for you to migrate your -on-premises workloads to AWS. To learn more about AWS SMS, see the following + +

        +Product update +

        +

        As of March 31, 2022, Amazon Web Services will discontinue Server Migration Service (Amazon Web Services SMS). +Going forward, we recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration +service for lift-and-shift migrations.

        +

        You can initiate new migration jobs in Server Migration Service until January 1, 2022. +Complete these active migration projects by March 31, 2022. For more information, see +When +to Choose AWS Application Migration Service.

        + + +

        Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your +on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following resources:

        diff --git a/clients/client-sms/src/SMS.ts b/clients/client-sms/src/SMS.ts index 48d10ce5b6da..ab9341336635 100644 --- a/clients/client-sms/src/SMS.ts +++ b/clients/client-sms/src/SMS.ts @@ -150,20 +150,32 @@ import { import { SMSClient } from "./SMSClient"; /** - * AWS Server Migration Service - *

        AWS Server Migration Service (AWS SMS) makes it easier and faster for you to migrate your - * on-premises workloads to AWS. To learn more about AWS SMS, see the following + * + *

        + * Product update + *

        + *

        As of March 31, 2022, Amazon Web Services will discontinue Server Migration Service (Amazon Web Services SMS). + * Going forward, we recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration + * service for lift-and-shift migrations.

        + *

        You can initiate new migration jobs in Server Migration Service until January 1, 2022. + * Complete these active migration projects by March 31, 2022. For more information, see + * When + * to Choose AWS Application Migration Service.

        + * + * + *

        Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your + * on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following * resources:

        * @@ -198,7 +210,7 @@ export class SMS extends SMSClient { /** *

        Creates a replication job. The replication job schedules periodic replication runs - * to replicate your server to AWS. Each replication run creates an Amazon Machine Image + * to replicate your server to Amazon Web Services. Each replication run creates an Amazon Machine Image * (AMI).

        */ public createReplicationJob( @@ -232,7 +244,7 @@ export class SMS extends SMSClient { /** *

        Deletes the specified application. Optionally deletes the launched stack associated with - * the application and all AWS SMS replication jobs for servers in the application.

        + * the application and all Server Migration Service replication jobs for servers in the application.

        */ public deleteApp(args: DeleteAppCommandInput, options?: __HttpHandlerOptions): Promise; public deleteApp(args: DeleteAppCommandInput, cb: (err: any, data?: DeleteAppCommandOutput) => void): void; @@ -355,8 +367,8 @@ export class SMS extends SMSClient { /** *

        Deletes the specified replication job.

        - *

        After you delete a replication job, there are no further replication runs. AWS - * deletes the contents of the Amazon S3 bucket used to store AWS SMS artifacts. The AMIs created + *

        After you delete a replication job, there are no further replication runs. Amazon Web Services + * deletes the contents of the Amazon S3 bucket used to store Server Migration Service artifacts. The AMIs created * by the replication runs are not deleted.

        */ public deleteReplicationJob( @@ -421,7 +433,7 @@ export class SMS extends SMSClient { } /** - *

        Disassociates the specified connector from AWS SMS.

        + *

        Disassociates the specified connector from Server Migration Service.

        *

        After you disassociate a connector, it is no longer available to support * replication jobs.

        */ @@ -488,7 +500,7 @@ export class SMS extends SMSClient { } /** - *

        Generates an AWS CloudFormation template based on the current launch configuration and writes it to + *

        Generates an CloudFormation template based on the current launch configuration and writes it to * an Amazon S3 object in the customer’s Amazon S3 bucket.

        */ public generateTemplate( @@ -676,7 +688,7 @@ export class SMS extends SMSClient { } /** - *

        Describes the connectors registered with the AWS SMS.

        + *

        Describes the connectors registered with the Server Migration Service.

        */ public getConnectors( args: GetConnectorsCommandInput, @@ -799,7 +811,7 @@ export class SMS extends SMSClient { } /** - *

        Allows application import from AWS Migration Hub.

        + *

        Allows application import from Migration Hub.

        */ public importAppCatalog( args: ImportAppCatalogCommandInput, @@ -866,7 +878,7 @@ export class SMS extends SMSClient { } /** - *

        Launches the specified application as a stack in AWS CloudFormation.

        + *

        Launches the specified application as a stack in CloudFormation.

        */ public launchApp(args: LaunchAppCommandInput, options?: __HttpHandlerOptions): Promise; public launchApp(args: LaunchAppCommandInput, cb: (err: any, data?: LaunchAppCommandOutput) => void): void; @@ -918,7 +930,7 @@ export class SMS extends SMSClient { } /** - *

        Provides information to AWS SMS about whether application validation is successful.

        + *

        Provides information to Server Migration Service about whether application validation is successful.

        */ public notifyAppValidationOutput( args: NotifyAppValidationOutputCommandInput, diff --git a/clients/client-sms/src/SMSClient.ts b/clients/client-sms/src/SMSClient.ts index 36a70ed3930d..9077c40489f6 100644 --- a/clients/client-sms/src/SMSClient.ts +++ b/clients/client-sms/src/SMSClient.ts @@ -369,20 +369,32 @@ type SMSClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOp export interface SMSClientResolvedConfig extends SMSClientResolvedConfigType {} /** - * AWS Server Migration Service - *

        AWS Server Migration Service (AWS SMS) makes it easier and faster for you to migrate your - * on-premises workloads to AWS. To learn more about AWS SMS, see the following + * + *

        + * Product update + *

        + *

        As of March 31, 2022, Amazon Web Services will discontinue Server Migration Service (Amazon Web Services SMS). + * Going forward, we recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration + * service for lift-and-shift migrations.

        + *

        You can initiate new migration jobs in Server Migration Service until January 1, 2022. + * Complete these active migration projects by March 31, 2022. For more information, see + * When + * to Choose AWS Application Migration Service.

        + * + * + *

        Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your + * on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following * resources:

        * diff --git a/clients/client-sms/src/commands/CreateReplicationJobCommand.ts b/clients/client-sms/src/commands/CreateReplicationJobCommand.ts index 5b32e620cfa4..a96e7f8ec831 100644 --- a/clients/client-sms/src/commands/CreateReplicationJobCommand.ts +++ b/clients/client-sms/src/commands/CreateReplicationJobCommand.ts @@ -23,7 +23,7 @@ export interface CreateReplicationJobCommandOutput extends CreateReplicationJobR /** *

        Creates a replication job. The replication job schedules periodic replication runs - * to replicate your server to AWS. Each replication run creates an Amazon Machine Image + * to replicate your server to Amazon Web Services. Each replication run creates an Amazon Machine Image * (AMI).

        * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-sms/src/commands/DeleteAppCommand.ts b/clients/client-sms/src/commands/DeleteAppCommand.ts index b085478dceed..03b4e426c625 100644 --- a/clients/client-sms/src/commands/DeleteAppCommand.ts +++ b/clients/client-sms/src/commands/DeleteAppCommand.ts @@ -20,7 +20,7 @@ export interface DeleteAppCommandOutput extends DeleteAppResponse, __MetadataBea /** *

        Deletes the specified application. Optionally deletes the launched stack associated with - * the application and all AWS SMS replication jobs for servers in the application.

        + * the application and all Server Migration Service replication jobs for servers in the application.

        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-sms/src/commands/DeleteReplicationJobCommand.ts b/clients/client-sms/src/commands/DeleteReplicationJobCommand.ts index fc4cec9686b6..cc7c8bf86b21 100644 --- a/clients/client-sms/src/commands/DeleteReplicationJobCommand.ts +++ b/clients/client-sms/src/commands/DeleteReplicationJobCommand.ts @@ -23,8 +23,8 @@ export interface DeleteReplicationJobCommandOutput extends DeleteReplicationJobR /** *

        Deletes the specified replication job.

        - *

        After you delete a replication job, there are no further replication runs. AWS - * deletes the contents of the Amazon S3 bucket used to store AWS SMS artifacts. The AMIs created + *

        After you delete a replication job, there are no further replication runs. Amazon Web Services + * deletes the contents of the Amazon S3 bucket used to store Server Migration Service artifacts. The AMIs created * by the replication runs are not deleted.

        * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-sms/src/commands/DisassociateConnectorCommand.ts b/clients/client-sms/src/commands/DisassociateConnectorCommand.ts index 7a7252ac1442..31b6dc2d4dfa 100644 --- a/clients/client-sms/src/commands/DisassociateConnectorCommand.ts +++ b/clients/client-sms/src/commands/DisassociateConnectorCommand.ts @@ -22,7 +22,7 @@ export interface DisassociateConnectorCommandInput extends DisassociateConnector export interface DisassociateConnectorCommandOutput extends DisassociateConnectorResponse, __MetadataBearer {} /** - *

        Disassociates the specified connector from AWS SMS.

        + *

        Disassociates the specified connector from Server Migration Service.

        *

        After you disassociate a connector, it is no longer available to support * replication jobs.

        * @example diff --git a/clients/client-sms/src/commands/GenerateTemplateCommand.ts b/clients/client-sms/src/commands/GenerateTemplateCommand.ts index 459dc7770567..9b409d85ec87 100644 --- a/clients/client-sms/src/commands/GenerateTemplateCommand.ts +++ b/clients/client-sms/src/commands/GenerateTemplateCommand.ts @@ -22,7 +22,7 @@ export interface GenerateTemplateCommandInput extends GenerateTemplateRequest {} export interface GenerateTemplateCommandOutput extends GenerateTemplateResponse, __MetadataBearer {} /** - *

        Generates an AWS CloudFormation template based on the current launch configuration and writes it to + *

        Generates an CloudFormation template based on the current launch configuration and writes it to * an Amazon S3 object in the customer’s Amazon S3 bucket.

        * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-sms/src/commands/GetConnectorsCommand.ts b/clients/client-sms/src/commands/GetConnectorsCommand.ts index 4f8d2a43b902..29a1e79b72ca 100644 --- a/clients/client-sms/src/commands/GetConnectorsCommand.ts +++ b/clients/client-sms/src/commands/GetConnectorsCommand.ts @@ -22,7 +22,7 @@ export interface GetConnectorsCommandInput extends GetConnectorsRequest {} export interface GetConnectorsCommandOutput extends GetConnectorsResponse, __MetadataBearer {} /** - *

        Describes the connectors registered with the AWS SMS.

        + *

        Describes the connectors registered with the Server Migration Service.

        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-sms/src/commands/ImportAppCatalogCommand.ts b/clients/client-sms/src/commands/ImportAppCatalogCommand.ts index 1e9ba395ccb1..7a21d1126d69 100644 --- a/clients/client-sms/src/commands/ImportAppCatalogCommand.ts +++ b/clients/client-sms/src/commands/ImportAppCatalogCommand.ts @@ -22,7 +22,7 @@ export interface ImportAppCatalogCommandInput extends ImportAppCatalogRequest {} export interface ImportAppCatalogCommandOutput extends ImportAppCatalogResponse, __MetadataBearer {} /** - *

        Allows application import from AWS Migration Hub.

        + *

        Allows application import from Migration Hub.

        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-sms/src/commands/LaunchAppCommand.ts b/clients/client-sms/src/commands/LaunchAppCommand.ts index 072d65ceed5e..de9d336b49bb 100644 --- a/clients/client-sms/src/commands/LaunchAppCommand.ts +++ b/clients/client-sms/src/commands/LaunchAppCommand.ts @@ -19,7 +19,7 @@ export interface LaunchAppCommandInput extends LaunchAppRequest {} export interface LaunchAppCommandOutput extends LaunchAppResponse, __MetadataBearer {} /** - *

        Launches the specified application as a stack in AWS CloudFormation.

        + *

        Launches the specified application as a stack in CloudFormation.

        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-sms/src/commands/NotifyAppValidationOutputCommand.ts b/clients/client-sms/src/commands/NotifyAppValidationOutputCommand.ts index aee97c7cb3cc..93394ecfba33 100644 --- a/clients/client-sms/src/commands/NotifyAppValidationOutputCommand.ts +++ b/clients/client-sms/src/commands/NotifyAppValidationOutputCommand.ts @@ -22,7 +22,7 @@ export interface NotifyAppValidationOutputCommandInput extends NotifyAppValidati export interface NotifyAppValidationOutputCommandOutput extends NotifyAppValidationOutputResponse, __MetadataBearer {} /** - *

        Provides information to AWS SMS about whether application validation is successful.

        + *

        Provides information to Server Migration Service about whether application validation is successful.

        * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-sms/src/endpoints.ts b/clients/client-sms/src/endpoints.ts index a70cc3e01787..0d56bd7be38c 100644 --- a/clients/client-sms/src/endpoints.ts +++ b/clients/client-sms/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sms/src/models/models_0.ts b/clients/client-sms/src/models/models_0.ts index 0587421b4349..7b555eea9b83 100644 --- a/clients/client-sms/src/models/models_0.ts +++ b/clients/client-sms/src/models/models_0.ts @@ -170,7 +170,7 @@ export interface AppSummary { lastModified?: Date; /** - *

        The name of the service role in the customer's account used by AWS SMS.

        + *

        The name of the service role in the customer's account used by Server Migration Service.

        */ roleName?: string; @@ -266,7 +266,7 @@ export interface SSMValidationParameters { scriptType?: ScriptType | string; /** - *

        The command to run the validation script

        + *

        The command to run the validation script.

        */ command?: string; @@ -539,7 +539,7 @@ export interface CreateAppRequest { description?: string; /** - *

        The name of the service role in the customer's account to be used by AWS SMS.

        + *

        The name of the service role in the customer's account to be used by Server Migration Service.

        */ roleName?: string; @@ -719,7 +719,7 @@ export interface CreateReplicationJobRequest { licenseType?: LicenseType | string; /** - *

        The name of the IAM role to be used by the AWS SMS.

        + *

        The name of the IAM role to be used by the Server Migration Service.

        */ roleName?: string; @@ -1116,12 +1116,12 @@ export namespace GenerateChangeSetResponse { export interface GenerateTemplateRequest { /** - *

        The ID of the application associated with the AWS CloudFormation template.

        + *

        The ID of the application associated with the CloudFormation template.

        */ appId?: string; /** - *

        The format for generating the AWS CloudFormation template.

        + *

        The format for generating the CloudFormation template.

        */ templateFormat?: OutputFormat | string; } @@ -1239,7 +1239,7 @@ export interface ServerLaunchConfiguration { server?: Server; /** - *

        The logical ID of the server in the AWS CloudFormation template.

        + *

        The logical ID of the server in the CloudFormation template.

        */ logicalId?: string; @@ -1340,7 +1340,7 @@ export interface GetAppLaunchConfigurationResponse { appId?: string; /** - *

        The name of the service role in the customer's account that AWS CloudFormation uses to launch the + *

        The name of the service role in the customer's account that CloudFormation uses to launch the * application.

        */ roleName?: string; @@ -2087,7 +2087,7 @@ export interface ReplicationJob { licenseType?: LicenseType | string; /** - *

        The name of the IAM role to be used by AWS SMS.

        + *

        The name of the IAM role to be used by Server Migration Service.

        */ roleName?: string; @@ -2307,8 +2307,8 @@ export namespace GetServersResponse { export interface ImportAppCatalogRequest { /** *

        The name of the service role. If you omit this parameter, we create a service-linked role - * for AWS Migration Hub in your account. Otherwise, the role that you provide must have the policy - * and trust policy described in the AWS Migration Hub User Guide.

        + * for Migration Hub in your account. Otherwise, the role that you provide must have the policy + * and trust policy described in the Migration Hub User Guide.

        */ roleName?: string; } @@ -2500,7 +2500,7 @@ export interface PutAppLaunchConfigurationRequest { appId?: string; /** - *

        The name of service role in the customer's account that AWS CloudFormation uses to launch the + *

        The name of service role in the customer's account that CloudFormation uses to launch the * application.

        */ roleName?: string; @@ -2810,7 +2810,7 @@ export interface UpdateAppRequest { description?: string; /** - *

        The name of the service role in the customer's account used by AWS SMS.

        + *

        The name of the service role in the customer's account used by Server Migration Service.

        */ roleName?: string; @@ -2883,7 +2883,7 @@ export interface UpdateReplicationJobRequest { licenseType?: LicenseType | string; /** - *

        The name of the IAM role to be used by AWS SMS.

        + *

        The name of the IAM role to be used by Server Migration Service.

        */ roleName?: string; diff --git a/clients/client-snow-device-management/src/endpoints.ts b/clients/client-snow-device-management/src/endpoints.ts index 53d3dbc3ed77..b9c62d41411e 100644 --- a/clients/client-snow-device-management/src/endpoints.ts +++ b/clients/client-snow-device-management/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-snowball/src/endpoints.ts b/clients/client-snowball/src/endpoints.ts index 90d70c2a3207..fb025209f043 100644 --- a/clients/client-snowball/src/endpoints.ts +++ b/clients/client-snowball/src/endpoints.ts @@ -255,6 +255,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sns/src/endpoints.ts b/clients/client-sns/src/endpoints.ts index aea919a04488..16f17de59661 100644 --- a/clients/client-sns/src/endpoints.ts +++ b/clients/client-sns/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sqs/src/endpoints.ts b/clients/client-sqs/src/endpoints.ts index 3dc2a178a5d7..70c83cf0bbe7 100644 --- a/clients/client-sqs/src/endpoints.ts +++ b/clients/client-sqs/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ssm-contacts/src/endpoints.ts b/clients/client-ssm-contacts/src/endpoints.ts index 86e66b316414..c040f9d37764 100644 --- a/clients/client-ssm-contacts/src/endpoints.ts +++ b/clients/client-ssm-contacts/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ssm-incidents/src/endpoints.ts b/clients/client-ssm-incidents/src/endpoints.ts index c1b352709e02..103e85f96361 100644 --- a/clients/client-ssm-incidents/src/endpoints.ts +++ b/clients/client-ssm-incidents/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-ssm/src/endpoints.ts b/clients/client-ssm/src/endpoints.ts index 7ffcdb3fcb78..9a62ff9fd2f3 100644 --- a/clients/client-ssm/src/endpoints.ts +++ b/clients/client-ssm/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sso-admin/src/endpoints.ts b/clients/client-sso-admin/src/endpoints.ts index 548f1cfb4025..440453b8baf6 100644 --- a/clients/client-sso-admin/src/endpoints.ts +++ b/clients/client-sso-admin/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sso-oidc/src/endpoints.ts b/clients/client-sso-oidc/src/endpoints.ts index af5273ee7400..f06e1e1df1b6 100644 --- a/clients/client-sso-oidc/src/endpoints.ts +++ b/clients/client-sso-oidc/src/endpoints.ts @@ -159,6 +159,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-sso/src/endpoints.ts b/clients/client-sso/src/endpoints.ts index 06fa1f80baee..51bcdc7d4e64 100644 --- a/clients/client-sso/src/endpoints.ts +++ b/clients/client-sso/src/endpoints.ts @@ -159,6 +159,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-storage-gateway/src/endpoints.ts b/clients/client-storage-gateway/src/endpoints.ts index de9384d2e0e8..3af4158f737c 100644 --- a/clients/client-storage-gateway/src/endpoints.ts +++ b/clients/client-storage-gateway/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "ca-central-1-fips", "eu-central-1", diff --git a/clients/client-sts/src/endpoints.ts b/clients/client-sts/src/endpoints.ts index 6eba92f93282..3990a8d11536 100644 --- a/clients/client-sts/src/endpoints.ts +++ b/clients/client-sts/src/endpoints.ts @@ -96,6 +96,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-support/README.md b/clients/client-support/README.md index 9e7e418928bb..4a6a0b94c1aa 100644 --- a/clients/client-support/README.md +++ b/clients/client-support/README.md @@ -7,54 +7,54 @@ AWS SDK for JavaScript Support Client for Node.js, Browser and React Native. -AWS Support +Amazon Web Services Support -

        The AWS Support API Reference is intended for programmers who need detailed -information about the AWS Support operations and data types. You can use the API to manage -your support cases programmatically. The AWS Support API uses HTTP methods that return +

        The Amazon Web Services Support API Reference is intended for programmers who need detailed +information about the Amazon Web Services Support operations and data types. You can use the API to manage +your support cases programmatically. The Amazon Web Services Support API uses HTTP methods that return results in JSON format.

        • -

          You must have a Business or Enterprise Support plan to use the AWS Support +

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support API.

        • -

          If you call the AWS Support API from an account that does not have a -Business or Enterprise Support plan, the +

          If you call the Amazon Web Services Support API from an account that does not have a +Business, Enterprise On-Ramp, or Enterprise Support plan, the SubscriptionRequiredException error message appears. For -information about changing your support plan, see AWS Support.

          +information about changing your support plan, see Amazon Web Services Support.

        -

        The AWS Support service also exposes a set of AWS Trusted Advisor features. You can +

        The Amazon Web Services Support service also exposes a set of Trusted Advisor features. You can retrieve a list of checks and their descriptions, get check results, specify checks to refresh, and get the refresh status of checks.

        -

        The following list describes the AWS Support case management operations:

        +

        The following list describes the Amazon Web Services Support case management operations:

        -

        The following list describes the operations available from the AWS Support service for +

        The following list describes the operations available from the Amazon Web Services Support service for Trusted Advisor:

        -

        For authentication of requests, AWS Support uses Signature Version 4 Signing +

        For authentication of requests, Amazon Web Services Support uses Signature Version 4 Signing Process.

        See About the -AWS Support API in the AWS Support User Guide for +Amazon Web Services Support API in the Amazon Web Services Support User Guide for information about how to use this service to create and manage your support cases, and how to call Trusted Advisor for results of checks on your resources.

        diff --git a/clients/client-support/src/Support.ts b/clients/client-support/src/Support.ts index 96fbda471575..d78607b6d480 100644 --- a/clients/client-support/src/Support.ts +++ b/clients/client-support/src/Support.ts @@ -65,53 +65,53 @@ import { ResolveCaseCommand, ResolveCaseCommandInput, ResolveCaseCommandOutput } import { SupportClient } from "./SupportClient"; /** - * AWS Support - *

        The AWS Support API Reference is intended for programmers who need detailed - * information about the AWS Support operations and data types. You can use the API to manage - * your support cases programmatically. The AWS Support API uses HTTP methods that return + * Amazon Web Services Support + *

        The Amazon Web Services Support API Reference is intended for programmers who need detailed + * information about the Amazon Web Services Support operations and data types. You can use the API to manage + * your support cases programmatically. The Amazon Web Services Support API uses HTTP methods that return * results in JSON format.

        * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        - *

        The AWS Support service also exposes a set of AWS Trusted Advisor features. You can + *

        The Amazon Web Services Support service also exposes a set of Trusted Advisor features. You can * retrieve a list of checks and their descriptions, get check results, specify checks to * refresh, and get the refresh status of checks.

        - *

        The following list describes the AWS Support case management operations:

        + *

        The following list describes the Amazon Web Services Support case management operations:

        * - *

        The following list describes the operations available from the AWS Support service for + *

        The following list describes the operations available from the Amazon Web Services Support service for * Trusted Advisor:

        * - *

        For authentication of requests, AWS Support uses Signature Version 4 Signing + *

        For authentication of requests, Amazon Web Services Support uses Signature Version 4 Signing * Process.

        *

        See About the - * AWS Support API in the AWS Support User Guide for + * Amazon Web Services Support API in the Amazon Web Services Support User Guide for * information about how to use this service to create and manage your support cases, and * how to call Trusted Advisor for results of checks on your resources.

        */ @@ -149,14 +149,14 @@ export class Support extends SupportClient { * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        @@ -191,7 +191,7 @@ export class Support extends SupportClient { } /** - *

        Adds additional customer communication to an AWS Support case. Use the caseId + *

        Adds additional customer communication to an Amazon Web Services Support case. Use the caseId * parameter to identify the case to which to add communication. You can list a set of * email addresses to copy on the communication by using the ccEmailAddresses * parameter. The communicationBody value contains the text of the @@ -200,14 +200,14 @@ export class Support extends SupportClient { * *

          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        * @@ -242,36 +242,36 @@ export class Support extends SupportClient { } /** - *

        Creates a case in the AWS Support Center. This operation is similar to how you create a case - * in the AWS Support Center Create + *

        Creates a case in the Amazon Web Services Support Center. This operation is similar to how you create a case + * in the Amazon Web Services Support Center Create * Case page.

        - *

        The AWS Support API doesn't support requesting service limit increases. You can submit a + *

        The Amazon Web Services Support API doesn't support requesting service limit increases. You can submit a * service limit increase in the following ways:

        * - *

        A successful CreateCase request returns an AWS Support case number. You can use + *

        A successful CreateCase request returns an Amazon Web Services Support case number. You can use * the DescribeCases operation and specify the case number to get - * existing AWS Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or + * existing Amazon Web Services Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or * attachments to an existing case.

        *

        The caseId is separate from the displayId that appears in - * the AWS Support Center. Use the DescribeCases operation to get the displayId.

        + * the Amazon Web Services Support Center. Use the DescribeCases operation to get the displayId.

        * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        @@ -308,14 +308,14 @@ export class Support extends SupportClient { * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        @@ -370,14 +370,14 @@ export class Support extends SupportClient { * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        @@ -425,14 +425,14 @@ export class Support extends SupportClient { * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        @@ -467,11 +467,11 @@ export class Support extends SupportClient { } /** - *

        Returns the current list of AWS services and a list of service categories for each + *

        Returns the current list of Amazon Web Services services and a list of service categories for each * service. You then use service names and categories in your CreateCase - * requests. Each AWS service has its own set of categories.

        + * requests. Each Amazon Web Services service has its own set of categories.

        *

        The service codes and category codes correspond to the values that appear in the - * Service and Category lists on the AWS Support Center Create Case page. The values in those fields + * Service and Category lists on the Amazon Web Services Support Center Create Case page. The values in those fields * don't necessarily match the service codes and categories returned by the * DescribeServices operation. Always use the service codes and categories * that the DescribeServices operation returns, so that you have the most @@ -479,14 +479,14 @@ export class Support extends SupportClient { * *

          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        * @@ -527,14 +527,14 @@ export class Support extends SupportClient { * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        *
        @@ -569,7 +569,7 @@ export class Support extends SupportClient { } /** - *

        Returns the refresh status of the AWS Trusted Advisor checks that have the specified check + *

        Returns the refresh status of the Trusted Advisor checks that have the specified check * IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

        *

        Some checks are refreshed automatically, and you can't return their refresh statuses * by using the DescribeTrustedAdvisorCheckRefreshStatuses operation. If you @@ -578,14 +578,14 @@ export class Support extends SupportClient { * *

          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        * @@ -622,7 +622,7 @@ export class Support extends SupportClient { } /** - *

        Returns the results of the AWS Trusted Advisor check that has the specified check ID. You + *

        Returns the results of the Trusted Advisor check that has the specified check ID. You * can get the check IDs by calling the DescribeTrustedAdvisorChecks * operation.

        *

        The response contains a TrustedAdvisorCheckResult object, which @@ -667,14 +667,14 @@ export class Support extends SupportClient { * *

          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        * @@ -709,23 +709,23 @@ export class Support extends SupportClient { } /** - *

        Returns information about all available AWS Trusted Advisor checks, including the name, ID, - * category, description, and metadata. You must specify a language code. The AWS Support API + *

        Returns information about all available Trusted Advisor checks, including the name, ID, + * category, description, and metadata. You must specify a language code. The Amazon Web Services Support API * currently supports English ("en") and Japanese ("ja"). The response contains a TrustedAdvisorCheckDescription object for each check. You must set the - * AWS Region to us-east-1.

        + * Amazon Web Services Region to us-east-1.

        * * * *
          *
        • - *

          You must have a Business or Enterprise Support plan to use the AWS Support + *

          You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

          *
        • *
        • - *

          If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

          If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

          + * information about changing your support plan, see Amazon Web Services Support.

          *
        • *
        • *

          The names and descriptions for Trusted Advisor checks are subject to change. We recommend @@ -764,21 +764,21 @@ export class Support extends SupportClient { } /** - *

          Returns the results for the AWS Trusted Advisor check summaries for the check IDs that you + *

          Returns the results for the Trusted Advisor check summaries for the check IDs that you * specified. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

          *

          The response contains an array of TrustedAdvisorCheckSummary * objects.

          * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          @@ -813,7 +813,7 @@ export class Support extends SupportClient { } /** - *

          Refreshes the AWS Trusted Advisor check that you specify using the check ID. You can get the + *

          Refreshes the Trusted Advisor check that you specify using the check ID. You can get the * check IDs by calling the DescribeTrustedAdvisorChecks * operation.

          * @@ -826,14 +826,14 @@ export class Support extends SupportClient { * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          @@ -873,14 +873,14 @@ export class Support extends SupportClient { * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/SupportClient.ts b/clients/client-support/src/SupportClient.ts index e25d5c2b10c5..98930dbf4f17 100644 --- a/clients/client-support/src/SupportClient.ts +++ b/clients/client-support/src/SupportClient.ts @@ -273,53 +273,53 @@ type SupportClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandl export interface SupportClientResolvedConfig extends SupportClientResolvedConfigType {} /** - * AWS Support - *

          The AWS Support API Reference is intended for programmers who need detailed - * information about the AWS Support operations and data types. You can use the API to manage - * your support cases programmatically. The AWS Support API uses HTTP methods that return + * Amazon Web Services Support + *

          The Amazon Web Services Support API Reference is intended for programmers who need detailed + * information about the Amazon Web Services Support operations and data types. You can use the API to manage + * your support cases programmatically. The Amazon Web Services Support API uses HTTP methods that return * results in JSON format.

          * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          - *

          The AWS Support service also exposes a set of AWS Trusted Advisor features. You can + *

          The Amazon Web Services Support service also exposes a set of Trusted Advisor features. You can * retrieve a list of checks and their descriptions, get check results, specify checks to * refresh, and get the refresh status of checks.

          - *

          The following list describes the AWS Support case management operations:

          + *

          The following list describes the Amazon Web Services Support case management operations:

          * - *

          The following list describes the operations available from the AWS Support service for + *

          The following list describes the operations available from the Amazon Web Services Support service for * Trusted Advisor:

          *
            *
          • *

            * DescribeTrustedAdvisorChecks returns the list of checks that - * run against your AWS resources.

            + * run against your Amazon Web Services resources.

            *
          • *
          • *

            Using the checkId for a specific check returned by DescribeTrustedAdvisorChecks, you can call DescribeTrustedAdvisorCheckResult to obtain the results for the @@ -341,10 +341,10 @@ export interface SupportClientResolvedConfig extends SupportClientResolvedConfig * status of one or more checks.

            *
          • *
          - *

          For authentication of requests, AWS Support uses Signature Version 4 Signing + *

          For authentication of requests, Amazon Web Services Support uses Signature Version 4 Signing * Process.

          *

          See About the - * AWS Support API in the AWS Support User Guide for + * Amazon Web Services Support API in the Amazon Web Services Support User Guide for * information about how to use this service to create and manage your support cases, and * how to call Trusted Advisor for results of checks on your resources.

          */ diff --git a/clients/client-support/src/commands/AddAttachmentsToSetCommand.ts b/clients/client-support/src/commands/AddAttachmentsToSetCommand.ts index 5707778b2581..236058402b08 100644 --- a/clients/client-support/src/commands/AddAttachmentsToSetCommand.ts +++ b/clients/client-support/src/commands/AddAttachmentsToSetCommand.ts @@ -29,14 +29,14 @@ export interface AddAttachmentsToSetCommandOutput extends AddAttachmentsToSetRes * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/AddCommunicationToCaseCommand.ts b/clients/client-support/src/commands/AddCommunicationToCaseCommand.ts index 727e26e2a384..b00cb71e29e7 100644 --- a/clients/client-support/src/commands/AddCommunicationToCaseCommand.ts +++ b/clients/client-support/src/commands/AddCommunicationToCaseCommand.ts @@ -22,7 +22,7 @@ export interface AddCommunicationToCaseCommandInput extends AddCommunicationToCa export interface AddCommunicationToCaseCommandOutput extends AddCommunicationToCaseResponse, __MetadataBearer {} /** - *

          Adds additional customer communication to an AWS Support case. Use the caseId + *

          Adds additional customer communication to an Amazon Web Services Support case. Use the caseId * parameter to identify the case to which to add communication. You can list a set of * email addresses to copy on the communication by using the ccEmailAddresses * parameter. The communicationBody value contains the text of the @@ -31,14 +31,14 @@ export interface AddCommunicationToCaseCommandOutput extends AddCommunicationToC * *

            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/CreateCaseCommand.ts b/clients/client-support/src/commands/CreateCaseCommand.ts index eae9bebfdcbe..461fea65e1bb 100644 --- a/clients/client-support/src/commands/CreateCaseCommand.ts +++ b/clients/client-support/src/commands/CreateCaseCommand.ts @@ -22,36 +22,36 @@ export interface CreateCaseCommandInput extends CreateCaseRequest {} export interface CreateCaseCommandOutput extends CreateCaseResponse, __MetadataBearer {} /** - *

          Creates a case in the AWS Support Center. This operation is similar to how you create a case - * in the AWS Support Center Create + *

          Creates a case in the Amazon Web Services Support Center. This operation is similar to how you create a case + * in the Amazon Web Services Support Center Create * Case page.

          - *

          The AWS Support API doesn't support requesting service limit increases. You can submit a + *

          The Amazon Web Services Support API doesn't support requesting service limit increases. You can submit a * service limit increase in the following ways:

          * - *

          A successful CreateCase request returns an AWS Support case number. You can use + *

          A successful CreateCase request returns an Amazon Web Services Support case number. You can use * the DescribeCases operation and specify the case number to get - * existing AWS Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or + * existing Amazon Web Services Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or * attachments to an existing case.

          *

          The caseId is separate from the displayId that appears in - * the AWS Support Center. Use the DescribeCases operation to get the displayId.

          + * the Amazon Web Services Support Center. Use the DescribeCases operation to get the displayId.

          * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/DescribeAttachmentCommand.ts b/clients/client-support/src/commands/DescribeAttachmentCommand.ts index 5410c6da0aaa..7672aee24e31 100644 --- a/clients/client-support/src/commands/DescribeAttachmentCommand.ts +++ b/clients/client-support/src/commands/DescribeAttachmentCommand.ts @@ -30,14 +30,14 @@ export interface DescribeAttachmentCommandOutput extends DescribeAttachmentRespo * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/DescribeCasesCommand.ts b/clients/client-support/src/commands/DescribeCasesCommand.ts index a05713fceb08..0db49ab5676d 100644 --- a/clients/client-support/src/commands/DescribeCasesCommand.ts +++ b/clients/client-support/src/commands/DescribeCasesCommand.ts @@ -42,14 +42,14 @@ export interface DescribeCasesCommandOutput extends DescribeCasesResponse, __Met * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/DescribeCommunicationsCommand.ts b/clients/client-support/src/commands/DescribeCommunicationsCommand.ts index fa0651865b83..dab01a008bf0 100644 --- a/clients/client-support/src/commands/DescribeCommunicationsCommand.ts +++ b/clients/client-support/src/commands/DescribeCommunicationsCommand.ts @@ -35,14 +35,14 @@ export interface DescribeCommunicationsCommandOutput extends DescribeCommunicati * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/DescribeServicesCommand.ts b/clients/client-support/src/commands/DescribeServicesCommand.ts index bf8c98a7e461..244a053aa5d6 100644 --- a/clients/client-support/src/commands/DescribeServicesCommand.ts +++ b/clients/client-support/src/commands/DescribeServicesCommand.ts @@ -22,11 +22,11 @@ export interface DescribeServicesCommandInput extends DescribeServicesRequest {} export interface DescribeServicesCommandOutput extends DescribeServicesResponse, __MetadataBearer {} /** - *

          Returns the current list of AWS services and a list of service categories for each + *

          Returns the current list of Amazon Web Services services and a list of service categories for each * service. You then use service names and categories in your CreateCase - * requests. Each AWS service has its own set of categories.

          + * requests. Each Amazon Web Services service has its own set of categories.

          *

          The service codes and category codes correspond to the values that appear in the - * Service and Category lists on the AWS Support Center Create Case page. The values in those fields + * Service and Category lists on the Amazon Web Services Support Center Create Case page. The values in those fields * don't necessarily match the service codes and categories returned by the * DescribeServices operation. Always use the service codes and categories * that the DescribeServices operation returns, so that you have the most @@ -34,14 +34,14 @@ export interface DescribeServicesCommandOutput extends DescribeServicesResponse, * *

            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          * diff --git a/clients/client-support/src/commands/DescribeSeverityLevelsCommand.ts b/clients/client-support/src/commands/DescribeSeverityLevelsCommand.ts index 806b0d821d10..eb4c4cfa6728 100644 --- a/clients/client-support/src/commands/DescribeSeverityLevelsCommand.ts +++ b/clients/client-support/src/commands/DescribeSeverityLevelsCommand.ts @@ -28,14 +28,14 @@ export interface DescribeSeverityLevelsCommandOutput extends DescribeSeverityLev * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/DescribeTrustedAdvisorCheckRefreshStatusesCommand.ts b/clients/client-support/src/commands/DescribeTrustedAdvisorCheckRefreshStatusesCommand.ts index ac6a25c5ddfa..873246f23981 100644 --- a/clients/client-support/src/commands/DescribeTrustedAdvisorCheckRefreshStatusesCommand.ts +++ b/clients/client-support/src/commands/DescribeTrustedAdvisorCheckRefreshStatusesCommand.ts @@ -28,7 +28,7 @@ export interface DescribeTrustedAdvisorCheckRefreshStatusesCommandOutput __MetadataBearer {} /** - *

          Returns the refresh status of the AWS Trusted Advisor checks that have the specified check + *

          Returns the refresh status of the Trusted Advisor checks that have the specified check * IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

          *

          Some checks are refreshed automatically, and you can't return their refresh statuses * by using the DescribeTrustedAdvisorCheckRefreshStatuses operation. If you @@ -37,14 +37,14 @@ export interface DescribeTrustedAdvisorCheckRefreshStatusesCommandOutput * *

            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          * diff --git a/clients/client-support/src/commands/DescribeTrustedAdvisorCheckResultCommand.ts b/clients/client-support/src/commands/DescribeTrustedAdvisorCheckResultCommand.ts index 07c9266496e6..892dd1a8f84d 100644 --- a/clients/client-support/src/commands/DescribeTrustedAdvisorCheckResultCommand.ts +++ b/clients/client-support/src/commands/DescribeTrustedAdvisorCheckResultCommand.ts @@ -27,7 +27,7 @@ export interface DescribeTrustedAdvisorCheckResultCommandOutput __MetadataBearer {} /** - *

          Returns the results of the AWS Trusted Advisor check that has the specified check ID. You + *

          Returns the results of the Trusted Advisor check that has the specified check ID. You * can get the check IDs by calling the DescribeTrustedAdvisorChecks * operation.

          *

          The response contains a TrustedAdvisorCheckResult object, which @@ -72,14 +72,14 @@ export interface DescribeTrustedAdvisorCheckResultCommandOutput * *

            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          * diff --git a/clients/client-support/src/commands/DescribeTrustedAdvisorCheckSummariesCommand.ts b/clients/client-support/src/commands/DescribeTrustedAdvisorCheckSummariesCommand.ts index 7e1e0a83d77a..350bbd95c11b 100644 --- a/clients/client-support/src/commands/DescribeTrustedAdvisorCheckSummariesCommand.ts +++ b/clients/client-support/src/commands/DescribeTrustedAdvisorCheckSummariesCommand.ts @@ -27,21 +27,21 @@ export interface DescribeTrustedAdvisorCheckSummariesCommandOutput __MetadataBearer {} /** - *

          Returns the results for the AWS Trusted Advisor check summaries for the check IDs that you + *

          Returns the results for the Trusted Advisor check summaries for the check IDs that you * specified. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

          *

          The response contains an array of TrustedAdvisorCheckSummary * objects.

          * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          *
          diff --git a/clients/client-support/src/commands/DescribeTrustedAdvisorChecksCommand.ts b/clients/client-support/src/commands/DescribeTrustedAdvisorChecksCommand.ts index 44fc9f10b21e..f9222aa143da 100644 --- a/clients/client-support/src/commands/DescribeTrustedAdvisorChecksCommand.ts +++ b/clients/client-support/src/commands/DescribeTrustedAdvisorChecksCommand.ts @@ -24,23 +24,23 @@ export interface DescribeTrustedAdvisorChecksCommandOutput __MetadataBearer {} /** - *

          Returns information about all available AWS Trusted Advisor checks, including the name, ID, - * category, description, and metadata. You must specify a language code. The AWS Support API + *

          Returns information about all available Trusted Advisor checks, including the name, ID, + * category, description, and metadata. You must specify a language code. The Amazon Web Services Support API * currently supports English ("en") and Japanese ("ja"). The response contains a TrustedAdvisorCheckDescription object for each check. You must set the - * AWS Region to us-east-1.

          + * Amazon Web Services Region to us-east-1.

          * * * *
            *
          • - *

            You must have a Business or Enterprise Support plan to use the AWS Support + *

            You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

            *
          • *
          • - *

            If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

            If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

            + * information about changing your support plan, see Amazon Web Services Support.

            *
          • *
          • *

            The names and descriptions for Trusted Advisor checks are subject to change. We recommend diff --git a/clients/client-support/src/commands/RefreshTrustedAdvisorCheckCommand.ts b/clients/client-support/src/commands/RefreshTrustedAdvisorCheckCommand.ts index ac4ee2ce709f..e06f042d10ac 100644 --- a/clients/client-support/src/commands/RefreshTrustedAdvisorCheckCommand.ts +++ b/clients/client-support/src/commands/RefreshTrustedAdvisorCheckCommand.ts @@ -22,7 +22,7 @@ export interface RefreshTrustedAdvisorCheckCommandInput extends RefreshTrustedAd export interface RefreshTrustedAdvisorCheckCommandOutput extends RefreshTrustedAdvisorCheckResponse, __MetadataBearer {} /** - *

            Refreshes the AWS Trusted Advisor check that you specify using the check ID. You can get the + *

            Refreshes the Trusted Advisor check that you specify using the check ID. You can get the * check IDs by calling the DescribeTrustedAdvisorChecks * operation.

            * @@ -35,14 +35,14 @@ export interface RefreshTrustedAdvisorCheckCommandOutput extends RefreshTrustedA * *
              *
            • - *

              You must have a Business or Enterprise Support plan to use the AWS Support + *

              You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

              *
            • *
            • - *

              If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

              If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

              + * information about changing your support plan, see Amazon Web Services Support.

              *
            • *
            *
            diff --git a/clients/client-support/src/commands/ResolveCaseCommand.ts b/clients/client-support/src/commands/ResolveCaseCommand.ts index 35601ba5d7d6..f02a6f395a35 100644 --- a/clients/client-support/src/commands/ResolveCaseCommand.ts +++ b/clients/client-support/src/commands/ResolveCaseCommand.ts @@ -27,14 +27,14 @@ export interface ResolveCaseCommandOutput extends ResolveCaseResponse, __Metadat * *
              *
            • - *

              You must have a Business or Enterprise Support plan to use the AWS Support + *

              You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support * API.

              *
            • *
            • - *

              If you call the AWS Support API from an account that does not have a - * Business or Enterprise Support plan, the + *

              If you call the Amazon Web Services Support API from an account that does not have a + * Business, Enterprise On-Ramp, or Enterprise Support plan, the * SubscriptionRequiredException error message appears. For - * information about changing your support plan, see AWS Support.

              + * information about changing your support plan, see Amazon Web Services Support.

              *
            • *
            *
            diff --git a/clients/client-support/src/endpoints.ts b/clients/client-support/src/endpoints.ts index 196d70637cef..da0821a20f4a 100644 --- a/clients/client-support/src/endpoints.ts +++ b/clients/client-support/src/endpoints.ts @@ -60,6 +60,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws-global", "ca-central-1", "eu-central-1", diff --git a/clients/client-support/src/models/models_0.ts b/clients/client-support/src/models/models_0.ts index cd37ee5f63b2..b18488171727 100644 --- a/clients/client-support/src/models/models_0.ts +++ b/clients/client-support/src/models/models_0.ts @@ -340,51 +340,51 @@ export namespace CaseCreationLimitExceeded { export interface CreateCaseRequest { /** - *

            The title of the support case. The title appears in the Subject field on the AWS Support Center Create Case page.

            + *

            The title of the support case. The title appears in the Subject field on the Amazon Web Services Support Center Create Case page.

            */ subject: string | undefined; /** - *

            The code for the AWS service. You can use the DescribeServices + *

            The code for the Amazon Web Services service. You can use the DescribeServices * operation to get the possible serviceCode values.

            */ serviceCode?: string; /** *

            A value that indicates the urgency of the case. This value determines the response - * time according to your service level agreement with AWS Support. You can use the DescribeSeverityLevels operation to get the possible values for + * time according to your service level agreement with Amazon Web Services Support. You can use the DescribeSeverityLevels operation to get the possible values for * severityCode.

            *

            For more information, see SeverityLevel and Choosing a - * Severity in the AWS Support User Guide.

            + * Severity in the Amazon Web Services Support User Guide.

            * - *

            The availability of severity levels depends on the support plan for the AWS - * account.

            + *

            The availability of severity levels depends on the support plan for the + * Amazon Web Services account.

            *
            */ severityCode?: string; /** *

            The category of problem for the support case. You also use the DescribeServices operation to get the category code for a service. Each - * AWS service defines its own set of category codes.

            + * Amazon Web Services service defines its own set of category codes.

            */ categoryCode?: string; /** *

            The communication body text that describes the issue. This text appears in the - * Description field on the AWS Support Center Create Case page.

            + * Description field on the Amazon Web Services Support Center Create Case page.

            */ communicationBody: string | undefined; /** - *

            A list of email addresses that AWS Support copies on case correspondence. AWS Support - * identifies the account that creates the case when you specify your AWS credentials in an - * HTTP POST method or use the AWS SDKs. + *

            A list of email addresses that Amazon Web Services Support copies on case correspondence. Amazon Web Services Support + * identifies the account that creates the case when you specify your Amazon Web Services credentials in an + * HTTP POST method or use the Amazon Web Services SDKs. *

            */ ccEmailAddresses?: string[]; /** - *

            The language in which AWS Support handles the case. You must specify the ISO 639-1 + *

            The language in which Amazon Web Services Support handles the case. You must specify the ISO 639-1 * code for the language parameter if you want support in that language. * Currently, English ("en") and Japanese ("ja") are supported.

            */ @@ -505,7 +505,7 @@ export interface DescribeCasesRequest { caseIdList?: string[]; /** - *

            The ID displayed for a case in the AWS Support Center user interface.

            + *

            The ID displayed for a case in the Amazon Web Services Support Center user interface.

            */ displayId?: string; @@ -538,7 +538,7 @@ export interface DescribeCasesRequest { maxResults?: number; /** - *

            The ISO 639-1 code for the language in which AWS provides support. AWS Support + *

            The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support * currently supports English ("en") and Japanese ("ja"). Language parameters must be * passed explicitly for operations that take them.

            */ @@ -575,14 +575,14 @@ export interface Communication { caseId?: string; /** - *

            The text of the communication between the customer and AWS Support.

            + *

            The text of the communication between the customer and Amazon Web Services Support.

            */ body?: string; /** *

            The identity of the account that submitted, or responded to, the support case. * Customer entries include the role or IAM user as well as the email address. For example, - * "AdminRole (Role) . Entries from the AWS Support team display + * "AdminRole (Role) . Entries from the Amazon Web Services Support team display * "Amazon Web Services," and don't show an email address. *

            */ @@ -652,12 +652,12 @@ export namespace RecentCaseCommunications { *
          • *

            * displayId - The identifier for the case on pages - * in the AWS Support Center.

            + * in the Amazon Web Services Support Center.

            *
          • *
          • *

            * language - The ISO 639-1 code for the language - * in which AWS provides support. AWS Support currently supports English ("en") and + * in which Amazon Web Services provides support. Amazon Web Services Support currently supports English ("en") and * Japanese ("ja"). Language parameters must be passed explicitly for operations * that take them.

            *
          • @@ -674,7 +674,7 @@ export namespace RecentCaseCommunications { * *
          • *

            - * serviceCode - The identifier for the AWS service + * serviceCode - The identifier for the Amazon Web Services service * that corresponds to the service code defined in the call to DescribeServices.

            *
          • *
          • @@ -686,7 +686,7 @@ export namespace RecentCaseCommunications { *
          • *
          • *

            - * status - The status of the case in the AWS Support Center. Valid values:

            + * status - The status of the case in the Amazon Web Services Support Center. Valid values:

            *
              *
            • *

              @@ -746,13 +746,13 @@ export interface CaseDetails { caseId?: string; /** - *

              The ID displayed for the case in the AWS Support Center. This is a numeric + *

              The ID displayed for the case in the Amazon Web Services Support Center. This is a numeric * string.

              */ displayId?: string; /** - *

              The subject line for the case in the AWS Support Center.

              + *

              The subject line for the case in the Amazon Web Services Support Center.

              */ subject?: string; @@ -795,7 +795,7 @@ export interface CaseDetails { status?: string; /** - *

              The code for the AWS service. You can get a list of codes and the corresponding + *

              The code for the Amazon Web Services service. You can get a list of codes and the corresponding * service names by calling DescribeServices.

              */ serviceCode?: string; @@ -816,12 +816,12 @@ export interface CaseDetails { submittedBy?: string; /** - *

              The time that the case was created in the AWS Support Center.

              + *

              The time that the case was created in the Amazon Web Services Support Center.

              */ timeCreated?: string; /** - *

              The five most recent communications between you and AWS Support Center, including the + *

              The five most recent communications between you and Amazon Web Services Support Center, including the * IDs of any attachments to the communications. Also includes a nextToken * that you can use to retrieve earlier communications.

              */ @@ -833,7 +833,7 @@ export interface CaseDetails { ccEmailAddresses?: string[]; /** - *

              The ISO 639-1 code for the language in which AWS provides support. AWS Support + *

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support * currently supports English ("en") and Japanese ("ja"). Language parameters must be * passed explicitly for operations that take them.

              */ @@ -943,12 +943,12 @@ export namespace DescribeCommunicationsResponse { export interface DescribeServicesRequest { /** - *

              A JSON-formatted list of service codes available for AWS services.

              + *

              A JSON-formatted list of service codes available for Amazon Web Services services.

              */ serviceCodeList?: string[]; /** - *

              The ISO 639-1 code for the language in which AWS provides support. AWS Support + *

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support * currently supports English ("en") and Japanese ("ja"). Language parameters must be * passed explicitly for operations that take them.

              */ @@ -967,7 +967,7 @@ export namespace DescribeServicesRequest { /** *

              A JSON-formatted name/value pair that represents the category name and category code * of the problem, selected from the DescribeServices response for each - * AWS service.

              + * Amazon Web Services service.

              */ export interface Category { /** @@ -991,18 +991,18 @@ export namespace Category { } /** - *

              Information about an AWS service returned by the DescribeServices + *

              Information about an Amazon Web Services service returned by the DescribeServices * operation.

              */ export interface Service { /** - *

              The code for an AWS service returned by the DescribeServices + *

              The code for an Amazon Web Services service returned by the DescribeServices * response. The name element contains the corresponding friendly name.

              */ code?: string; /** - *

              The friendly name for an AWS service. The code element contains the + *

              The friendly name for an Amazon Web Services service. The code element contains the * corresponding code.

              */ name?: string; @@ -1010,7 +1010,7 @@ export interface Service { /** *

              A list of categories that describe the type of support issue a case describes. * Categories consist of a category name and a category code. Category names and codes are - * passed to AWS Support when you call CreateCase.

              + * passed to Amazon Web Services Support when you call CreateCase.

              */ categories?: Category[]; } @@ -1025,12 +1025,12 @@ export namespace Service { } /** - *

              The list of AWS services returned by the DescribeServices + *

              The list of Amazon Web Services services returned by the DescribeServices * operation.

              */ export interface DescribeServicesResponse { /** - *

              A JSON-formatted list of AWS services.

              + *

              A JSON-formatted list of Amazon Web Services services.

              */ services?: Service[]; } @@ -1046,7 +1046,7 @@ export namespace DescribeServicesResponse { export interface DescribeSeverityLevelsRequest { /** - *

              The ISO 639-1 code for the language in which AWS provides support. AWS Support + *

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support * currently supports English ("en") and Japanese ("ja"). Language parameters must be * passed explicitly for operations that take them.

              */ @@ -1066,7 +1066,7 @@ export namespace DescribeSeverityLevelsRequest { *

              A code and name pair that represents the severity level of a support case. The * available values depend on the support plan for the account. For more information, see * Choosing a - * severity in the AWS Support User Guide.

              + * severity in the Amazon Web Services Support User Guide.

              */ export interface SeverityLevel { /** @@ -1081,7 +1081,7 @@ export interface SeverityLevel { *

              The name of the severity level that corresponds to the severity level code.

              * *

              The values returned by the API are different from the values that appear in the - * AWS Support Center. For example, the API uses the code low, but the name + * Amazon Web Services Support Center. For example, the API uses the code low, but the name * appears as General guidance in Support Center.

              *

              The following are the API code names and how they appear in the console:

              *
                @@ -1108,7 +1108,7 @@ export interface SeverityLevel { *
              *
              *

              For more information, see Choosing a - * severity in the AWS Support User Guide.

              + * severity in the Amazon Web Services Support User Guide.

              */ name?: string; } @@ -1129,7 +1129,7 @@ export namespace SeverityLevel { export interface DescribeSeverityLevelsResponse { /** *

              The available severity levels for the support case. Available severity levels are - * defined by your service level agreement with AWS.

              + * defined by your service level agreement with Amazon Web Services.

              */ severityLevels?: SeverityLevel[]; } @@ -1248,7 +1248,7 @@ export interface DescribeTrustedAdvisorCheckResultRequest { checkId: string | undefined; /** - *

              The ISO 639-1 code for the language in which AWS provides support. AWS Support + *

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support * currently supports English ("en") and Japanese ("ja"). Language parameters must be * passed explicitly for operations that take them.

              */ @@ -1321,7 +1321,7 @@ export interface TrustedAdvisorResourceDetail { status: string | undefined; /** - *

              The AWS Region in which the identified resource is located.

              + *

              The Amazon Web Services Region in which the identified resource is located.

              */ region?: string; @@ -1331,7 +1331,7 @@ export interface TrustedAdvisorResourceDetail { resourceId: string | undefined; /** - *

              Specifies whether the AWS resource was ignored by Trusted Advisor because it was + *

              Specifies whether the Amazon Web Services resource was ignored by Trusted Advisor because it was * marked as suppressed by the user.

              */ isSuppressed?: boolean; @@ -1355,28 +1355,28 @@ export namespace TrustedAdvisorResourceDetail { } /** - *

              Details about AWS resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              + *

              Details about Amazon Web Services resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              */ export interface TrustedAdvisorResourcesSummary { /** - *

              The number of AWS resources that were analyzed by the Trusted Advisor check.

              + *

              The number of Amazon Web Services resources that were analyzed by the Trusted Advisor check.

              */ resourcesProcessed: number | undefined; /** - *

              The number of AWS resources that were flagged (listed) by the Trusted Advisor + *

              The number of Amazon Web Services resources that were flagged (listed) by the Trusted Advisor * check.

              */ resourcesFlagged: number | undefined; /** - *

              The number of AWS resources ignored by Trusted Advisor because information was + *

              The number of Amazon Web Services resources ignored by Trusted Advisor because information was * unavailable.

              */ resourcesIgnored: number | undefined; /** - *

              The number of AWS resources ignored by Trusted Advisor because they were marked as + *

              The number of Amazon Web Services resources ignored by Trusted Advisor because they were marked as * suppressed by the user.

              */ resourcesSuppressed: number | undefined; @@ -1412,7 +1412,7 @@ export interface TrustedAdvisorCheckResult { status: string | undefined; /** - *

              Details about AWS resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              + *

              Details about Amazon Web Services resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              */ resourcesSummary: TrustedAdvisorResourcesSummary | undefined; @@ -1458,7 +1458,7 @@ export namespace DescribeTrustedAdvisorCheckResultResponse { export interface DescribeTrustedAdvisorChecksRequest { /** - *

              The ISO 639-1 code for the language in which AWS provides support. AWS Support + *

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support * currently supports English ("en") and Japanese ("ja"). Language parameters must be * passed explicitly for operations that take them.

              */ @@ -1580,7 +1580,7 @@ export interface TrustedAdvisorCheckSummary { hasFlaggedResources?: boolean; /** - *

              Details about AWS resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              + *

              Details about Amazon Web Services resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              */ resourcesSummary: TrustedAdvisorResourcesSummary | undefined; diff --git a/clients/client-swf/src/endpoints.ts b/clients/client-swf/src/endpoints.ts index 258169c5cd27..2902033886a5 100644 --- a/clients/client-swf/src/endpoints.ts +++ b/clients/client-swf/src/endpoints.ts @@ -81,6 +81,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-synthetics/src/endpoints.ts b/clients/client-synthetics/src/endpoints.ts index 02aeba118250..e1d5a2b27e79 100644 --- a/clients/client-synthetics/src/endpoints.ts +++ b/clients/client-synthetics/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-textract/src/endpoints.ts b/clients/client-textract/src/endpoints.ts index 524cec2a4a67..b6948c212d9c 100644 --- a/clients/client-textract/src/endpoints.ts +++ b/clients/client-textract/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-timestream-query/src/endpoints.ts b/clients/client-timestream-query/src/endpoints.ts index 05cba23522e5..648a18f8922f 100644 --- a/clients/client-timestream-query/src/endpoints.ts +++ b/clients/client-timestream-query/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-timestream-write/src/endpoints.ts b/clients/client-timestream-write/src/endpoints.ts index c14a541f0c13..0fdd1f70ce3a 100644 --- a/clients/client-timestream-write/src/endpoints.ts +++ b/clients/client-timestream-write/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-transcribe-streaming/src/endpoints.ts b/clients/client-transcribe-streaming/src/endpoints.ts index 637533e2fee7..84640a6df94c 100644 --- a/clients/client-transcribe-streaming/src/endpoints.ts +++ b/clients/client-transcribe-streaming/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-transcribe/src/endpoints.ts b/clients/client-transcribe/src/endpoints.ts index 33ab87233c5c..42fdec28c049 100644 --- a/clients/client-transcribe/src/endpoints.ts +++ b/clients/client-transcribe/src/endpoints.ts @@ -117,6 +117,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-transfer/src/endpoints.ts b/clients/client-transfer/src/endpoints.ts index 8261bf15809a..7b2409adba6c 100644 --- a/clients/client-transfer/src/endpoints.ts +++ b/clients/client-transfer/src/endpoints.ts @@ -99,6 +99,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-transfer/src/models/models_0.ts b/clients/client-transfer/src/models/models_0.ts index b6f9e2e8c96f..b45da8b9d7ab 100644 --- a/clients/client-transfer/src/models/models_0.ts +++ b/clients/client-transfer/src/models/models_0.ts @@ -586,7 +586,7 @@ export interface IdentityProviderDetails { InvocationRole?: string; /** - *

              The identifier of the Amazon Web ServicesDirectory Service directory that you want to stop sharing.

              + *

              The identifier of the Amazon Web Services Directory Service directory that you want to stop sharing.

              */ DirectoryId?: string; @@ -612,6 +612,81 @@ export enum IdentityProviderType { SERVICE_MANAGED = "SERVICE_MANAGED", } +export enum TlsSessionResumptionMode { + DISABLED = "DISABLED", + ENABLED = "ENABLED", + ENFORCED = "ENFORCED", +} + +/** + *

              + * The protocol settings that are configured for your server. + *

              + */ +export interface ProtocolDetails { + /** + *

              + * Indicates passive mode, for FTP and FTPS protocols. + * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. + * For example: + *

              + *

              + * + * aws transfer update-server --protocol-details PassiveIp=0.0.0.0 + * + *

              + *

              Replace + * 0.0.0.0 + * in the example above with the actual IP address you want to use.

              + * + *

              + * If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family. + *

              + *
              + */ + PassiveIp?: string; + + /** + *

              A property used with Transfer servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret + * key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, + * negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. + * If a TlsSessionResumptionMode value is not specified during CreateServer, it is set to ENFORCED by default.

              + *
                + *
              • + *

                + * DISABLED: the server does not process TLS session resumption client requests and creates a new TLS session for each request.

                + *
              • + *
              • + *

                + * ENABLED: the server processes and accepts clients that are performing TLS session resumption. + * The server doesn't reject client data connections that do not perform the TLS session resumption client processing.

                + *
              • + *
              • + *

                + * ENFORCED: the server processes and accepts clients that are performing TLS session resumption. + * The server rejects client data connections that do not perform the TLS session resumption client processing. + * Before you set the value to ENFORCED, test your clients.

                + * + *

                Not all FTPS clients perform TLS session resumption. So, if you choose to enforce + * TLS session resumption, you prevent any connections from FTPS clients that don't perform + * the protocol negotiation. To determine whether or not you can use the + * ENFORCED value, you need to test your clients.

                + *
                + *
              • + *
              + */ + TlsSessionResumptionMode?: TlsSessionResumptionMode | string; +} + +export namespace ProtocolDetails { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ProtocolDetails): any => ({ + ...obj, + }); +} + export enum Protocol { FTP = "FTP", FTPS = "FTPS", @@ -814,7 +889,7 @@ export interface CreateServerRequest { *

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The * API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call * for authentication using the IdentityProviderDetails parameter.

              - *

              Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, + *

              Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, * you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              */ IdentityProviderType?: IdentityProviderType | string; @@ -866,6 +941,17 @@ export interface CreateServerRequest { */ Protocols?: (Protocol | string)[]; + /** + *

              The protocol settings that are configured for your server.

              + *

              + * Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). + * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. + *

              + *

              Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server + * resumes recent, negotiated sessions through a unique session ID.

              + */ + ProtocolDetails?: ProtocolDetails; + /** *

              Specifies the name of the security policy that is attached to the server.

              */ @@ -1030,6 +1116,11 @@ export interface CreateUserRequest { /** *

              The public portion of the Secure Shell (SSH) key used to authenticate the user to the * server.

              + * + *

              + * Currently, Transfer Family does not accept elliptical curve keys (keys beginning with ecdsa). + *

              + *
              */ SshPublicKeyBody?: string; @@ -1953,49 +2044,6 @@ export namespace DescribedSecurityPolicy { }); } -/** - *

              - * The protocol settings that are configured for your server. - *

              - * - *

              - * This type is only valid in the UpdateServer API. - *

              - *
              - */ -export interface ProtocolDetails { - /** - *

              - * Indicates passive mode, for FTP and FTPS protocols. - * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. - * For example: - *

              - *

              - * - * aws transfer update-server --protocol-details PassiveIp=0.0.0.0 - * - *

              - *

              Replace - * 0.0.0.0 - * in the example above with the actual IP address you want to use.

              - * - *

              - * If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family. - *

              - *
              - */ - PassiveIp?: string; -} - -export namespace ProtocolDetails { - /** - * @internal - */ - export const filterSensitiveLog = (obj: ProtocolDetails): any => ({ - ...obj, - }); -} - export enum State { OFFLINE = "OFFLINE", ONLINE = "ONLINE", @@ -2077,7 +2125,7 @@ export interface DescribedServer { *

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The * API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call * for authentication using the IdentityProviderDetails parameter.

              - *

              Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, + *

              Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, * you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              */ IdentityProviderType?: IdentityProviderType | string; @@ -2767,7 +2815,7 @@ export interface ListedServer { *

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The * API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call * for authentication using the IdentityProviderDetails parameter.

              - *

              Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, + *

              Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, * you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              */ IdentityProviderType?: IdentityProviderType | string; @@ -3663,6 +3711,8 @@ export interface UpdateServerRequest { * Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. *

              + *

              Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server + * resumes recent, negotiated sessions through a unique session ID.

              */ ProtocolDetails?: ProtocolDetails; diff --git a/clients/client-transfer/src/protocols/Aws_json1_1.ts b/clients/client-transfer/src/protocols/Aws_json1_1.ts index 2e10d0a45aa9..eab4ddf6a720 100644 --- a/clients/client-transfer/src/protocols/Aws_json1_1.ts +++ b/clients/client-transfer/src/protocols/Aws_json1_1.ts @@ -3447,6 +3447,10 @@ const serializeAws_json1_1CreateServerRequest = (input: CreateServerRequest, con ...(input.IdentityProviderType !== undefined && input.IdentityProviderType !== null && { IdentityProviderType: input.IdentityProviderType }), ...(input.LoggingRole !== undefined && input.LoggingRole !== null && { LoggingRole: input.LoggingRole }), + ...(input.ProtocolDetails !== undefined && + input.ProtocolDetails !== null && { + ProtocolDetails: serializeAws_json1_1ProtocolDetails(input.ProtocolDetails, context), + }), ...(input.Protocols !== undefined && input.Protocols !== null && { Protocols: serializeAws_json1_1Protocols(input.Protocols, context) }), ...(input.SecurityPolicyName !== undefined && @@ -3753,6 +3757,8 @@ const serializeAws_json1_1PosixProfile = (input: PosixProfile, context: __SerdeC const serializeAws_json1_1ProtocolDetails = (input: ProtocolDetails, context: __SerdeContext): any => { return { ...(input.PassiveIp !== undefined && input.PassiveIp !== null && { PassiveIp: input.PassiveIp }), + ...(input.TlsSessionResumptionMode !== undefined && + input.TlsSessionResumptionMode !== null && { TlsSessionResumptionMode: input.TlsSessionResumptionMode }), }; }; @@ -4700,6 +4706,7 @@ const deserializeAws_json1_1PosixProfile = (output: any, context: __SerdeContext const deserializeAws_json1_1ProtocolDetails = (output: any, context: __SerdeContext): ProtocolDetails => { return { PassiveIp: __expectString(output.PassiveIp), + TlsSessionResumptionMode: __expectString(output.TlsSessionResumptionMode), } as any; }; diff --git a/clients/client-translate/src/endpoints.ts b/clients/client-translate/src/endpoints.ts index fe9ccd324cd1..e6c86c778cc1 100644 --- a/clients/client-translate/src/endpoints.ts +++ b/clients/client-translate/src/endpoints.ts @@ -63,6 +63,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-voice-id/src/endpoints.ts b/clients/client-voice-id/src/endpoints.ts index 9630c3e85d1a..f559a5432bec 100644 --- a/clients/client-voice-id/src/endpoints.ts +++ b/clients/client-voice-id/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-waf-regional/src/endpoints.ts b/clients/client-waf-regional/src/endpoints.ts index eafa44f4c35d..4c3b73047ebe 100644 --- a/clients/client-waf-regional/src/endpoints.ts +++ b/clients/client-waf-regional/src/endpoints.ts @@ -340,6 +340,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-waf/src/endpoints.ts b/clients/client-waf/src/endpoints.ts index e77928f7ed57..17fe102e6175 100644 --- a/clients/client-waf/src/endpoints.ts +++ b/clients/client-waf/src/endpoints.ts @@ -28,6 +28,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "aws", "aws-fips", "aws-global", diff --git a/clients/client-wafv2/src/endpoints.ts b/clients/client-wafv2/src/endpoints.ts index 212d93a082aa..4219fa3ed1b3 100644 --- a/clients/client-wafv2/src/endpoints.ts +++ b/clients/client-wafv2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-wellarchitected/src/endpoints.ts b/clients/client-wellarchitected/src/endpoints.ts index f2204172e637..e6a43dffc159 100644 --- a/clients/client-wellarchitected/src/endpoints.ts +++ b/clients/client-wellarchitected/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-wisdom/src/endpoints.ts b/clients/client-wisdom/src/endpoints.ts index 85abc3492a12..bb7d942664c1 100644 --- a/clients/client-wisdom/src/endpoints.ts +++ b/clients/client-wisdom/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-workdocs/src/endpoints.ts b/clients/client-workdocs/src/endpoints.ts index e0aec3e6a655..240f63170515 100644 --- a/clients/client-workdocs/src/endpoints.ts +++ b/clients/client-workdocs/src/endpoints.ts @@ -39,6 +39,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-worklink/src/endpoints.ts b/clients/client-worklink/src/endpoints.ts index ce46e4807402..79236fd0ec08 100644 --- a/clients/client-worklink/src/endpoints.ts +++ b/clients/client-worklink/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-workmail/src/WorkMail.ts b/clients/client-workmail/src/WorkMail.ts index 7356bd6a289b..059941ed2a8f 100644 --- a/clients/client-workmail/src/WorkMail.ts +++ b/clients/client-workmail/src/WorkMail.ts @@ -39,6 +39,11 @@ import { DeleteAccessControlRuleCommandOutput, } from "./commands/DeleteAccessControlRuleCommand"; import { DeleteAliasCommand, DeleteAliasCommandInput, DeleteAliasCommandOutput } from "./commands/DeleteAliasCommand"; +import { + DeleteEmailMonitoringConfigurationCommand, + DeleteEmailMonitoringConfigurationCommandInput, + DeleteEmailMonitoringConfigurationCommandOutput, +} from "./commands/DeleteEmailMonitoringConfigurationCommand"; import { DeleteGroupCommand, DeleteGroupCommandInput, DeleteGroupCommandOutput } from "./commands/DeleteGroupCommand"; import { DeleteMailboxPermissionsCommand, @@ -81,6 +86,11 @@ import { DeregisterMailDomainCommandInput, DeregisterMailDomainCommandOutput, } from "./commands/DeregisterMailDomainCommand"; +import { + DescribeEmailMonitoringConfigurationCommand, + DescribeEmailMonitoringConfigurationCommandInput, + DescribeEmailMonitoringConfigurationCommandOutput, +} from "./commands/DescribeEmailMonitoringConfigurationCommand"; import { DescribeGroupCommand, DescribeGroupCommandInput, @@ -214,6 +224,11 @@ import { PutAccessControlRuleCommandInput, PutAccessControlRuleCommandOutput, } from "./commands/PutAccessControlRuleCommand"; +import { + PutEmailMonitoringConfigurationCommand, + PutEmailMonitoringConfigurationCommandInput, + PutEmailMonitoringConfigurationCommandOutput, +} from "./commands/PutEmailMonitoringConfigurationCommand"; import { PutInboundDmarcSettingsCommand, PutInboundDmarcSettingsCommandInput, @@ -666,6 +681,38 @@ export class WorkMail extends WorkMailClient { } } + /** + *

              Deletes the email monitoring configuration for a specified organization.

              + */ + public deleteEmailMonitoringConfiguration( + args: DeleteEmailMonitoringConfigurationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteEmailMonitoringConfiguration( + args: DeleteEmailMonitoringConfigurationCommandInput, + cb: (err: any, data?: DeleteEmailMonitoringConfigurationCommandOutput) => void + ): void; + public deleteEmailMonitoringConfiguration( + args: DeleteEmailMonitoringConfigurationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteEmailMonitoringConfigurationCommandOutput) => void + ): void; + public deleteEmailMonitoringConfiguration( + args: DeleteEmailMonitoringConfigurationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteEmailMonitoringConfigurationCommandOutput) => void), + cb?: (err: any, data?: DeleteEmailMonitoringConfigurationCommandOutput) => void + ): Promise | void { + const command = new DeleteEmailMonitoringConfigurationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

              Deletes a group from Amazon WorkMail.

              */ @@ -988,6 +1035,38 @@ export class WorkMail extends WorkMailClient { } } + /** + *

              Describes the current email monitoring configuration for a specified organization.

              + */ + public describeEmailMonitoringConfiguration( + args: DescribeEmailMonitoringConfigurationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeEmailMonitoringConfiguration( + args: DescribeEmailMonitoringConfigurationCommandInput, + cb: (err: any, data?: DescribeEmailMonitoringConfigurationCommandOutput) => void + ): void; + public describeEmailMonitoringConfiguration( + args: DescribeEmailMonitoringConfigurationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeEmailMonitoringConfigurationCommandOutput) => void + ): void; + public describeEmailMonitoringConfiguration( + args: DescribeEmailMonitoringConfigurationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeEmailMonitoringConfigurationCommandOutput) => void), + cb?: (err: any, data?: DescribeEmailMonitoringConfigurationCommandOutput) => void + ): Promise | void { + const command = new DescribeEmailMonitoringConfigurationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

              Returns the data available for the group.

              */ @@ -1906,6 +1985,38 @@ export class WorkMail extends WorkMailClient { } } + /** + *

              Creates or updates the email monitoring configuration for a specified organization.

              + */ + public putEmailMonitoringConfiguration( + args: PutEmailMonitoringConfigurationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public putEmailMonitoringConfiguration( + args: PutEmailMonitoringConfigurationCommandInput, + cb: (err: any, data?: PutEmailMonitoringConfigurationCommandOutput) => void + ): void; + public putEmailMonitoringConfiguration( + args: PutEmailMonitoringConfigurationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PutEmailMonitoringConfigurationCommandOutput) => void + ): void; + public putEmailMonitoringConfiguration( + args: PutEmailMonitoringConfigurationCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: PutEmailMonitoringConfigurationCommandOutput) => void), + cb?: (err: any, data?: PutEmailMonitoringConfigurationCommandOutput) => void + ): Promise | void { + const command = new PutEmailMonitoringConfigurationCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

              Enables or disables a DMARC policy for a given organization.

              */ diff --git a/clients/client-workmail/src/WorkMailClient.ts b/clients/client-workmail/src/WorkMailClient.ts index a9c2c0b17ae4..fd3b5a83498d 100644 --- a/clients/client-workmail/src/WorkMailClient.ts +++ b/clients/client-workmail/src/WorkMailClient.ts @@ -75,6 +75,10 @@ import { DeleteAccessControlRuleCommandOutput, } from "./commands/DeleteAccessControlRuleCommand"; import { DeleteAliasCommandInput, DeleteAliasCommandOutput } from "./commands/DeleteAliasCommand"; +import { + DeleteEmailMonitoringConfigurationCommandInput, + DeleteEmailMonitoringConfigurationCommandOutput, +} from "./commands/DeleteEmailMonitoringConfigurationCommand"; import { DeleteGroupCommandInput, DeleteGroupCommandOutput } from "./commands/DeleteGroupCommand"; import { DeleteMailboxPermissionsCommandInput, @@ -103,6 +107,10 @@ import { DeregisterMailDomainCommandInput, DeregisterMailDomainCommandOutput, } from "./commands/DeregisterMailDomainCommand"; +import { + DescribeEmailMonitoringConfigurationCommandInput, + DescribeEmailMonitoringConfigurationCommandOutput, +} from "./commands/DescribeEmailMonitoringConfigurationCommand"; import { DescribeGroupCommandInput, DescribeGroupCommandOutput } from "./commands/DescribeGroupCommand"; import { DescribeInboundDmarcSettingsCommandInput, @@ -183,6 +191,10 @@ import { PutAccessControlRuleCommandInput, PutAccessControlRuleCommandOutput, } from "./commands/PutAccessControlRuleCommand"; +import { + PutEmailMonitoringConfigurationCommandInput, + PutEmailMonitoringConfigurationCommandOutput, +} from "./commands/PutEmailMonitoringConfigurationCommand"; import { PutInboundDmarcSettingsCommandInput, PutInboundDmarcSettingsCommandOutput, @@ -233,6 +245,7 @@ export type ServiceInputTypes = | CreateUserCommandInput | DeleteAccessControlRuleCommandInput | DeleteAliasCommandInput + | DeleteEmailMonitoringConfigurationCommandInput | DeleteGroupCommandInput | DeleteMailboxPermissionsCommandInput | DeleteMobileDeviceAccessOverrideCommandInput @@ -243,6 +256,7 @@ export type ServiceInputTypes = | DeleteUserCommandInput | DeregisterFromWorkMailCommandInput | DeregisterMailDomainCommandInput + | DescribeEmailMonitoringConfigurationCommandInput | DescribeGroupCommandInput | DescribeInboundDmarcSettingsCommandInput | DescribeMailboxExportJobCommandInput @@ -272,6 +286,7 @@ export type ServiceInputTypes = | ListTagsForResourceCommandInput | ListUsersCommandInput | PutAccessControlRuleCommandInput + | PutEmailMonitoringConfigurationCommandInput | PutInboundDmarcSettingsCommandInput | PutMailboxPermissionsCommandInput | PutMobileDeviceAccessOverrideCommandInput @@ -300,6 +315,7 @@ export type ServiceOutputTypes = | CreateUserCommandOutput | DeleteAccessControlRuleCommandOutput | DeleteAliasCommandOutput + | DeleteEmailMonitoringConfigurationCommandOutput | DeleteGroupCommandOutput | DeleteMailboxPermissionsCommandOutput | DeleteMobileDeviceAccessOverrideCommandOutput @@ -310,6 +326,7 @@ export type ServiceOutputTypes = | DeleteUserCommandOutput | DeregisterFromWorkMailCommandOutput | DeregisterMailDomainCommandOutput + | DescribeEmailMonitoringConfigurationCommandOutput | DescribeGroupCommandOutput | DescribeInboundDmarcSettingsCommandOutput | DescribeMailboxExportJobCommandOutput @@ -339,6 +356,7 @@ export type ServiceOutputTypes = | ListTagsForResourceCommandOutput | ListUsersCommandOutput | PutAccessControlRuleCommandOutput + | PutEmailMonitoringConfigurationCommandOutput | PutInboundDmarcSettingsCommandOutput | PutMailboxPermissionsCommandOutput | PutMobileDeviceAccessOverrideCommandOutput diff --git a/clients/client-workmail/src/commands/DeleteEmailMonitoringConfigurationCommand.ts b/clients/client-workmail/src/commands/DeleteEmailMonitoringConfigurationCommand.ts new file mode 100644 index 000000000000..ad769719b649 --- /dev/null +++ b/clients/client-workmail/src/commands/DeleteEmailMonitoringConfigurationCommand.ts @@ -0,0 +1,106 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + DeleteEmailMonitoringConfigurationRequest, + DeleteEmailMonitoringConfigurationResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1DeleteEmailMonitoringConfigurationCommand, + serializeAws_json1_1DeleteEmailMonitoringConfigurationCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkMailClientResolvedConfig } from "../WorkMailClient"; + +export interface DeleteEmailMonitoringConfigurationCommandInput extends DeleteEmailMonitoringConfigurationRequest {} +export interface DeleteEmailMonitoringConfigurationCommandOutput + extends DeleteEmailMonitoringConfigurationResponse, + __MetadataBearer {} + +/** + *

              Deletes the email monitoring configuration for a specified organization.

              + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkMailClient, DeleteEmailMonitoringConfigurationCommand } from "@aws-sdk/client-workmail"; // ES Modules import + * // const { WorkMailClient, DeleteEmailMonitoringConfigurationCommand } = require("@aws-sdk/client-workmail"); // CommonJS import + * const client = new WorkMailClient(config); + * const command = new DeleteEmailMonitoringConfigurationCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteEmailMonitoringConfigurationCommandInput} for command's `input` shape. + * @see {@link DeleteEmailMonitoringConfigurationCommandOutput} for command's `response` shape. + * @see {@link WorkMailClientResolvedConfig | config} for WorkMailClient's `config` shape. + * + */ +export class DeleteEmailMonitoringConfigurationCommand extends $Command< + DeleteEmailMonitoringConfigurationCommandInput, + DeleteEmailMonitoringConfigurationCommandOutput, + WorkMailClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteEmailMonitoringConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: WorkMailClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "WorkMailClient"; + const commandName = "DeleteEmailMonitoringConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteEmailMonitoringConfigurationRequest.filterSensitiveLog, + outputFilterSensitiveLog: DeleteEmailMonitoringConfigurationResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DeleteEmailMonitoringConfigurationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteEmailMonitoringConfigurationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DeleteEmailMonitoringConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-workmail/src/commands/DescribeEmailMonitoringConfigurationCommand.ts b/clients/client-workmail/src/commands/DescribeEmailMonitoringConfigurationCommand.ts new file mode 100644 index 000000000000..a8dc6db49e86 --- /dev/null +++ b/clients/client-workmail/src/commands/DescribeEmailMonitoringConfigurationCommand.ts @@ -0,0 +1,106 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + DescribeEmailMonitoringConfigurationRequest, + DescribeEmailMonitoringConfigurationResponse, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeEmailMonitoringConfigurationCommand, + serializeAws_json1_1DescribeEmailMonitoringConfigurationCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkMailClientResolvedConfig } from "../WorkMailClient"; + +export interface DescribeEmailMonitoringConfigurationCommandInput extends DescribeEmailMonitoringConfigurationRequest {} +export interface DescribeEmailMonitoringConfigurationCommandOutput + extends DescribeEmailMonitoringConfigurationResponse, + __MetadataBearer {} + +/** + *

              Describes the current email monitoring configuration for a specified organization.

              + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkMailClient, DescribeEmailMonitoringConfigurationCommand } from "@aws-sdk/client-workmail"; // ES Modules import + * // const { WorkMailClient, DescribeEmailMonitoringConfigurationCommand } = require("@aws-sdk/client-workmail"); // CommonJS import + * const client = new WorkMailClient(config); + * const command = new DescribeEmailMonitoringConfigurationCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeEmailMonitoringConfigurationCommandInput} for command's `input` shape. + * @see {@link DescribeEmailMonitoringConfigurationCommandOutput} for command's `response` shape. + * @see {@link WorkMailClientResolvedConfig | config} for WorkMailClient's `config` shape. + * + */ +export class DescribeEmailMonitoringConfigurationCommand extends $Command< + DescribeEmailMonitoringConfigurationCommandInput, + DescribeEmailMonitoringConfigurationCommandOutput, + WorkMailClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeEmailMonitoringConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: WorkMailClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "WorkMailClient"; + const commandName = "DescribeEmailMonitoringConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeEmailMonitoringConfigurationRequest.filterSensitiveLog, + outputFilterSensitiveLog: DescribeEmailMonitoringConfigurationResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeEmailMonitoringConfigurationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeEmailMonitoringConfigurationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1DescribeEmailMonitoringConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-workmail/src/commands/PutEmailMonitoringConfigurationCommand.ts b/clients/client-workmail/src/commands/PutEmailMonitoringConfigurationCommand.ts new file mode 100644 index 000000000000..0da5fa9fb225 --- /dev/null +++ b/clients/client-workmail/src/commands/PutEmailMonitoringConfigurationCommand.ts @@ -0,0 +1,103 @@ +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { PutEmailMonitoringConfigurationRequest, PutEmailMonitoringConfigurationResponse } from "../models/models_0"; +import { + deserializeAws_json1_1PutEmailMonitoringConfigurationCommand, + serializeAws_json1_1PutEmailMonitoringConfigurationCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, WorkMailClientResolvedConfig } from "../WorkMailClient"; + +export interface PutEmailMonitoringConfigurationCommandInput extends PutEmailMonitoringConfigurationRequest {} +export interface PutEmailMonitoringConfigurationCommandOutput + extends PutEmailMonitoringConfigurationResponse, + __MetadataBearer {} + +/** + *

              Creates or updates the email monitoring configuration for a specified organization.

              + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { WorkMailClient, PutEmailMonitoringConfigurationCommand } from "@aws-sdk/client-workmail"; // ES Modules import + * // const { WorkMailClient, PutEmailMonitoringConfigurationCommand } = require("@aws-sdk/client-workmail"); // CommonJS import + * const client = new WorkMailClient(config); + * const command = new PutEmailMonitoringConfigurationCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link PutEmailMonitoringConfigurationCommandInput} for command's `input` shape. + * @see {@link PutEmailMonitoringConfigurationCommandOutput} for command's `response` shape. + * @see {@link WorkMailClientResolvedConfig | config} for WorkMailClient's `config` shape. + * + */ +export class PutEmailMonitoringConfigurationCommand extends $Command< + PutEmailMonitoringConfigurationCommandInput, + PutEmailMonitoringConfigurationCommandOutput, + WorkMailClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: PutEmailMonitoringConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: WorkMailClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "WorkMailClient"; + const commandName = "PutEmailMonitoringConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: PutEmailMonitoringConfigurationRequest.filterSensitiveLog, + outputFilterSensitiveLog: PutEmailMonitoringConfigurationResponse.filterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: PutEmailMonitoringConfigurationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_json1_1PutEmailMonitoringConfigurationCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return deserializeAws_json1_1PutEmailMonitoringConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-workmail/src/commands/index.ts b/clients/client-workmail/src/commands/index.ts index 43626786578d..edf175a35f74 100644 --- a/clients/client-workmail/src/commands/index.ts +++ b/clients/client-workmail/src/commands/index.ts @@ -9,6 +9,7 @@ export * from "./CreateResourceCommand"; export * from "./CreateUserCommand"; export * from "./DeleteAccessControlRuleCommand"; export * from "./DeleteAliasCommand"; +export * from "./DeleteEmailMonitoringConfigurationCommand"; export * from "./DeleteGroupCommand"; export * from "./DeleteMailboxPermissionsCommand"; export * from "./DeleteMobileDeviceAccessOverrideCommand"; @@ -19,6 +20,7 @@ export * from "./DeleteRetentionPolicyCommand"; export * from "./DeleteUserCommand"; export * from "./DeregisterFromWorkMailCommand"; export * from "./DeregisterMailDomainCommand"; +export * from "./DescribeEmailMonitoringConfigurationCommand"; export * from "./DescribeGroupCommand"; export * from "./DescribeInboundDmarcSettingsCommand"; export * from "./DescribeMailboxExportJobCommand"; @@ -48,6 +50,7 @@ export * from "./ListResourcesCommand"; export * from "./ListTagsForResourceCommand"; export * from "./ListUsersCommand"; export * from "./PutAccessControlRuleCommand"; +export * from "./PutEmailMonitoringConfigurationCommand"; export * from "./PutInboundDmarcSettingsCommand"; export * from "./PutMailboxPermissionsCommand"; export * from "./PutMobileDeviceAccessOverrideCommand"; diff --git a/clients/client-workmail/src/endpoints.ts b/clients/client-workmail/src/endpoints.ts index fabd9741700e..a671d748aedb 100644 --- a/clients/client-workmail/src/endpoints.ts +++ b/clients/client-workmail/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-workmail/src/models/models_0.ts b/clients/client-workmail/src/models/models_0.ts index baba6917b39a..f5da2dafcf4c 100644 --- a/clients/client-workmail/src/models/models_0.ts +++ b/clients/client-workmail/src/models/models_0.ts @@ -968,6 +968,33 @@ export namespace DeleteAliasResponse { }); } +export interface DeleteEmailMonitoringConfigurationRequest { + /** + *

              The ID of the organization from which the email monitoring configuration is deleted.

              + */ + OrganizationId: string | undefined; +} + +export namespace DeleteEmailMonitoringConfigurationRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteEmailMonitoringConfigurationRequest): any => ({ + ...obj, + }); +} + +export interface DeleteEmailMonitoringConfigurationResponse {} + +export namespace DeleteEmailMonitoringConfigurationResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DeleteEmailMonitoringConfigurationResponse): any => ({ + ...obj, + }); +} + export interface DeleteGroupRequest { /** *

              The organization that contains the group.

              @@ -1367,6 +1394,61 @@ export namespace MailDomainInUseException { }); } +export interface DescribeEmailMonitoringConfigurationRequest { + /** + *

              The ID of the organization for which the email monitoring configuration is described.

              + */ + OrganizationId: string | undefined; +} + +export namespace DescribeEmailMonitoringConfigurationRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeEmailMonitoringConfigurationRequest): any => ({ + ...obj, + }); +} + +export interface DescribeEmailMonitoringConfigurationResponse { + /** + *

              The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

              + */ + RoleArn?: string; + + /** + *

              The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

              + */ + LogGroupArn?: string; +} + +export namespace DescribeEmailMonitoringConfigurationResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: DescribeEmailMonitoringConfigurationResponse): any => ({ + ...obj, + }); +} + +/** + *

              The resource cannot be found.

              + */ +export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { + name: "ResourceNotFoundException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceNotFoundException { + /** + * @internal + */ + export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ + ...obj, + }); +} + export interface DescribeGroupRequest { /** *

              The identifier for the organization under which the group exists.

              @@ -2347,24 +2429,6 @@ export namespace GetMobileDeviceAccessOverrideResponse { }); } -/** - *

              The resource cannot be found.

              - */ -export interface ResourceNotFoundException extends __SmithyException, $MetadataBearer { - name: "ResourceNotFoundException"; - $fault: "client"; - Message?: string; -} - -export namespace ResourceNotFoundException { - /** - * @internal - */ - export const filterSensitiveLog = (obj: ResourceNotFoundException): any => ({ - ...obj, - }); -} - /** *

              The representation of an Amazon WorkMail group.

              */ @@ -3646,6 +3710,43 @@ export namespace PutAccessControlRuleResponse { }); } +export interface PutEmailMonitoringConfigurationRequest { + /** + *

              The ID of the organization for which the email monitoring configuration is set.

              + */ + OrganizationId: string | undefined; + + /** + *

              The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

              + */ + RoleArn: string | undefined; + + /** + *

              The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

              + */ + LogGroupArn: string | undefined; +} + +export namespace PutEmailMonitoringConfigurationRequest { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutEmailMonitoringConfigurationRequest): any => ({ + ...obj, + }); +} + +export interface PutEmailMonitoringConfigurationResponse {} + +export namespace PutEmailMonitoringConfigurationResponse { + /** + * @internal + */ + export const filterSensitiveLog = (obj: PutEmailMonitoringConfigurationResponse): any => ({ + ...obj, + }); +} + export interface PutInboundDmarcSettingsRequest { /** *

              The ID of the organization that you are applying the DMARC policy to.

              diff --git a/clients/client-workmail/src/protocols/Aws_json1_1.ts b/clients/client-workmail/src/protocols/Aws_json1_1.ts index 4413b9dc9127..0b76dd06f889 100644 --- a/clients/client-workmail/src/protocols/Aws_json1_1.ts +++ b/clients/client-workmail/src/protocols/Aws_json1_1.ts @@ -44,6 +44,10 @@ import { DeleteAccessControlRuleCommandOutput, } from "../commands/DeleteAccessControlRuleCommand"; import { DeleteAliasCommandInput, DeleteAliasCommandOutput } from "../commands/DeleteAliasCommand"; +import { + DeleteEmailMonitoringConfigurationCommandInput, + DeleteEmailMonitoringConfigurationCommandOutput, +} from "../commands/DeleteEmailMonitoringConfigurationCommand"; import { DeleteGroupCommandInput, DeleteGroupCommandOutput } from "../commands/DeleteGroupCommand"; import { DeleteMailboxPermissionsCommandInput, @@ -72,6 +76,10 @@ import { DeregisterMailDomainCommandInput, DeregisterMailDomainCommandOutput, } from "../commands/DeregisterMailDomainCommand"; +import { + DescribeEmailMonitoringConfigurationCommandInput, + DescribeEmailMonitoringConfigurationCommandOutput, +} from "../commands/DescribeEmailMonitoringConfigurationCommand"; import { DescribeGroupCommandInput, DescribeGroupCommandOutput } from "../commands/DescribeGroupCommand"; import { DescribeInboundDmarcSettingsCommandInput, @@ -152,6 +160,10 @@ import { PutAccessControlRuleCommandInput, PutAccessControlRuleCommandOutput, } from "../commands/PutAccessControlRuleCommand"; +import { + PutEmailMonitoringConfigurationCommandInput, + PutEmailMonitoringConfigurationCommandOutput, +} from "../commands/PutEmailMonitoringConfigurationCommand"; import { PutInboundDmarcSettingsCommandInput, PutInboundDmarcSettingsCommandOutput, @@ -214,6 +226,8 @@ import { DeleteAccessControlRuleResponse, DeleteAliasRequest, DeleteAliasResponse, + DeleteEmailMonitoringConfigurationRequest, + DeleteEmailMonitoringConfigurationResponse, DeleteGroupRequest, DeleteGroupResponse, DeleteMailboxPermissionsRequest, @@ -234,6 +248,8 @@ import { DeregisterFromWorkMailResponse, DeregisterMailDomainRequest, DeregisterMailDomainResponse, + DescribeEmailMonitoringConfigurationRequest, + DescribeEmailMonitoringConfigurationResponse, DescribeGroupRequest, DescribeGroupResponse, DescribeInboundDmarcSettingsRequest, @@ -323,6 +339,8 @@ import { PermissionType, PutAccessControlRuleRequest, PutAccessControlRuleResponse, + PutEmailMonitoringConfigurationRequest, + PutEmailMonitoringConfigurationResponse, PutInboundDmarcSettingsRequest, PutInboundDmarcSettingsResponse, PutMailboxPermissionsRequest, @@ -505,6 +523,19 @@ export const serializeAws_json1_1DeleteAliasCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteEmailMonitoringConfigurationCommand = async ( + input: DeleteEmailMonitoringConfigurationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "WorkMailService.DeleteEmailMonitoringConfiguration", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteEmailMonitoringConfigurationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteGroupCommand = async ( input: DeleteGroupCommandInput, context: __SerdeContext @@ -635,6 +666,19 @@ export const serializeAws_json1_1DeregisterMailDomainCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeEmailMonitoringConfigurationCommand = async ( + input: DescribeEmailMonitoringConfigurationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "WorkMailService.DescribeEmailMonitoringConfiguration", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeEmailMonitoringConfigurationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeGroupCommand = async ( input: DescribeGroupCommandInput, context: __SerdeContext @@ -1012,6 +1056,19 @@ export const serializeAws_json1_1PutAccessControlRuleCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1PutEmailMonitoringConfigurationCommand = async ( + input: PutEmailMonitoringConfigurationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "WorkMailService.PutEmailMonitoringConfiguration", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1PutEmailMonitoringConfigurationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1PutInboundDmarcSettingsCommand = async ( input: PutInboundDmarcSettingsCommandInput, context: __SerdeContext @@ -2241,6 +2298,76 @@ const deserializeAws_json1_1DeleteAliasCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DeleteEmailMonitoringConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DeleteEmailMonitoringConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DeleteEmailMonitoringConfigurationResponse(data, context); + const response: DeleteEmailMonitoringConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DeleteEmailMonitoringConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.workmail#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OrganizationNotFoundException": + case "com.amazonaws.workmail#OrganizationNotFoundException": + response = { + ...(await deserializeAws_json1_1OrganizationNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OrganizationStateException": + case "com.amazonaws.workmail#OrganizationStateException": + response = { + ...(await deserializeAws_json1_1OrganizationStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DeleteGroupCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -3069,6 +3196,84 @@ const deserializeAws_json1_1DeregisterMailDomainCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1DescribeEmailMonitoringConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeEmailMonitoringConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeEmailMonitoringConfigurationResponse(data, context); + const response: DescribeEmailMonitoringConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeEmailMonitoringConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.workmail#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OrganizationNotFoundException": + case "com.amazonaws.workmail#OrganizationNotFoundException": + response = { + ...(await deserializeAws_json1_1OrganizationNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OrganizationStateException": + case "com.amazonaws.workmail#OrganizationStateException": + response = { + ...(await deserializeAws_json1_1OrganizationStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.workmail#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1DescribeGroupCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -5259,6 +5464,84 @@ const deserializeAws_json1_1PutAccessControlRuleCommandError = async ( return Promise.reject(Object.assign(new Error(message), response)); }; +export const deserializeAws_json1_1PutEmailMonitoringConfigurationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1PutEmailMonitoringConfigurationCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1PutEmailMonitoringConfigurationResponse(data, context); + const response: PutEmailMonitoringConfigurationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1PutEmailMonitoringConfigurationCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __SmithyException & __MetadataBearer & { [key: string]: any }; + let errorCode = "UnknownError"; + errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InvalidParameterException": + case "com.amazonaws.workmail#InvalidParameterException": + response = { + ...(await deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OrganizationNotFoundException": + case "com.amazonaws.workmail#OrganizationNotFoundException": + response = { + ...(await deserializeAws_json1_1OrganizationNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "OrganizationStateException": + case "com.amazonaws.workmail#OrganizationStateException": + response = { + ...(await deserializeAws_json1_1OrganizationStateExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + case "ResourceNotFoundException": + case "com.amazonaws.workmail#ResourceNotFoundException": + response = { + ...(await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)), + name: errorCode, + $metadata: deserializeMetadata(output), + }; + break; + default: + const parsedBody = parsedOutput.body; + errorCode = parsedBody.code || parsedBody.Code || errorCode; + response = { + ...parsedBody, + name: `${errorCode}`, + message: parsedBody.message || parsedBody.Message || errorCode, + $fault: "client", + $metadata: deserializeMetadata(output), + } as any; + } + const message = response.message || response.Message || errorCode; + response.message = message; + delete response.Message; + return Promise.reject(Object.assign(new Error(message), response)); +}; + export const deserializeAws_json1_1PutInboundDmarcSettingsCommand = async ( output: __HttpResponse, context: __SerdeContext @@ -7140,6 +7423,16 @@ const serializeAws_json1_1DeleteAliasRequest = (input: DeleteAliasRequest, conte }; }; +const serializeAws_json1_1DeleteEmailMonitoringConfigurationRequest = ( + input: DeleteEmailMonitoringConfigurationRequest, + context: __SerdeContext +): any => { + return { + ...(input.OrganizationId !== undefined && + input.OrganizationId !== null && { OrganizationId: input.OrganizationId }), + }; +}; + const serializeAws_json1_1DeleteGroupRequest = (input: DeleteGroupRequest, context: __SerdeContext): any => { return { ...(input.GroupId !== undefined && input.GroupId !== null && { GroupId: input.GroupId }), @@ -7246,6 +7539,16 @@ const serializeAws_json1_1DeregisterMailDomainRequest = ( }; }; +const serializeAws_json1_1DescribeEmailMonitoringConfigurationRequest = ( + input: DescribeEmailMonitoringConfigurationRequest, + context: __SerdeContext +): any => { + return { + ...(input.OrganizationId !== undefined && + input.OrganizationId !== null && { OrganizationId: input.OrganizationId }), + }; +}; + const serializeAws_json1_1DescribeGroupRequest = (input: DescribeGroupRequest, context: __SerdeContext): any => { return { ...(input.GroupId !== undefined && input.GroupId !== null && { GroupId: input.GroupId }), @@ -7670,6 +7973,18 @@ const serializeAws_json1_1PutAccessControlRuleRequest = ( }; }; +const serializeAws_json1_1PutEmailMonitoringConfigurationRequest = ( + input: PutEmailMonitoringConfigurationRequest, + context: __SerdeContext +): any => { + return { + ...(input.LogGroupArn !== undefined && input.LogGroupArn !== null && { LogGroupArn: input.LogGroupArn }), + ...(input.OrganizationId !== undefined && + input.OrganizationId !== null && { OrganizationId: input.OrganizationId }), + ...(input.RoleArn !== undefined && input.RoleArn !== null && { RoleArn: input.RoleArn }), + }; +}; + const serializeAws_json1_1PutInboundDmarcSettingsRequest = ( input: PutInboundDmarcSettingsRequest, context: __SerdeContext @@ -8100,6 +8415,13 @@ const deserializeAws_json1_1DeleteAliasResponse = (output: any, context: __Serde return {} as any; }; +const deserializeAws_json1_1DeleteEmailMonitoringConfigurationResponse = ( + output: any, + context: __SerdeContext +): DeleteEmailMonitoringConfigurationResponse => { + return {} as any; +}; + const deserializeAws_json1_1DeleteGroupResponse = (output: any, context: __SerdeContext): DeleteGroupResponse => { return {} as any; }; @@ -8164,6 +8486,16 @@ const deserializeAws_json1_1DeregisterMailDomainResponse = ( return {} as any; }; +const deserializeAws_json1_1DescribeEmailMonitoringConfigurationResponse = ( + output: any, + context: __SerdeContext +): DescribeEmailMonitoringConfigurationResponse => { + return { + LogGroupArn: __expectString(output.LogGroupArn), + RoleArn: __expectString(output.RoleArn), + } as any; +}; + const deserializeAws_json1_1DescribeGroupResponse = (output: any, context: __SerdeContext): DescribeGroupResponse => { return { DisabledDate: @@ -9079,6 +9411,13 @@ const deserializeAws_json1_1PutAccessControlRuleResponse = ( return {} as any; }; +const deserializeAws_json1_1PutEmailMonitoringConfigurationResponse = ( + output: any, + context: __SerdeContext +): PutEmailMonitoringConfigurationResponse => { + return {} as any; +}; + const deserializeAws_json1_1PutInboundDmarcSettingsResponse = ( output: any, context: __SerdeContext diff --git a/clients/client-workmailmessageflow/src/endpoints.ts b/clients/client-workmailmessageflow/src/endpoints.ts index 873f83feb210..8983dc3a1571 100644 --- a/clients/client-workmailmessageflow/src/endpoints.ts +++ b/clients/client-workmailmessageflow/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-workspaces-web/src/endpoints.ts b/clients/client-workspaces-web/src/endpoints.ts index 412690e0b58c..ea63d00e8e41 100644 --- a/clients/client-workspaces-web/src/endpoints.ts +++ b/clients/client-workspaces-web/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-workspaces/src/endpoints.ts b/clients/client-workspaces/src/endpoints.ts index be32ee83c533..522e0d809d56 100644 --- a/clients/client-workspaces/src/endpoints.ts +++ b/clients/client-workspaces/src/endpoints.ts @@ -51,6 +51,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/clients/client-xray/src/endpoints.ts b/clients/client-xray/src/endpoints.ts index 5bd2cab35ed0..2b21592a896c 100644 --- a/clients/client-xray/src/endpoints.ts +++ b/clients/client-xray/src/endpoints.ts @@ -87,6 +87,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/codegen/sdk-codegen/aws-models/amplifyuibuilder.json b/codegen/sdk-codegen/aws-models/amplifyuibuilder.json new file mode 100644 index 000000000000..a6f7ed19acec --- /dev/null +++ b/codegen/sdk-codegen/aws-models/amplifyuibuilder.json @@ -0,0 +1,2404 @@ +{ + "smithy": "1.0", + "shapes": { + "com.amazonaws.amplifyuibuilder#AmplifyUIBuilder": { + "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "AmplifyUIBuilder", + "arnNamespace": "amplifyuibuilder", + "cloudFormationName": "AmplifyUIBuilder", + "cloudTrailEventSource": "amplifyuibuilder.amazonaws.com", + "endpointPrefix": "amplifyuibuilder" + }, + "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#title": "AWS Amplify UI Builder" + }, + "version": "2021-08-11", + "operations": [ + { + "target": "com.amazonaws.amplifyuibuilder#ExchangeCodeForToken" + }, + { + "target": "com.amazonaws.amplifyuibuilder#RefreshToken" + } + ], + "resources": [ + { + "target": "com.amazonaws.amplifyuibuilder#ComponentResource" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ThemeResource" + } + ] + }, + "com.amazonaws.amplifyuibuilder#Component": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#required": {} + } + }, + "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#required": {} + } + }, + "sourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID of the component in its original source system, such as Figma.

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

              The unique ID of the component.

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

              The name of the component.

              ", + "smithy.api#required": {} + } + }, + "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#required": {} + } + }, + "properties": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperties", + "traits": { + "smithy.api#documentation": "

              Describes the component's properties.

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

              A list of the component's ComponentChild instances.

              " + } + }, + "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#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#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#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.

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

              The time that the component was created.

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

              The time that the component was modified.

              ", + "smithy.api#timestampFormat": "date-time" + } + }, + "tags": { + "target": "com.amazonaws.amplifyuibuilder#Tags", + "traits": { + "aws.cloudformation#cfnMutability": "create-and-read", + "smithy.api#documentation": "

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

              " + } + } + }, + "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#references": [ + { + "resource": "com.amazonaws.amplifyuibuilder#ComponentResource" + } + ] + } + }, + "com.amazonaws.amplifyuibuilder#ComponentBindingProperties": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#ComponentBindingPropertiesValue" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentBindingPropertiesValue": { + "type": "structure", + "members": { + "type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The property type.

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

              Describes the properties to customize with data at runtime.

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

              The default value of the property.

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

              Represents the data binding configuration for a component at runtime. You can use\n ComponentBindingPropertiesValue to add exposed properties to a component to\n allow different values to be entered when a component is reused in different places in an\n app.

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

              An Amplify DataStore model.

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

              The field to bind the data to.

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

              A list of predicates for binding a component's properties to data.

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

              An authenticated user attribute.

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

              An Amazon S3 bucket.

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

              The storage key for an Amazon S3 bucket.

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

              The default value to assign to the property.

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

              Represents the data binding configuration for a specific property using data stored in\n Amazon Web Services. For Amazon Web Services connected properties, you can bind a property to\n data stored in an Amazon S3 bucket, an Amplify DataStore model or an\n authenticated user attribute.

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

              The type of the child component.

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

              The name of the child component.

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

              Describes the properties of the child component.

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

              The list of ComponentChild instances for this component.

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

              A nested UI configuration within a parent Component.

              " + } + }, + "com.amazonaws.amplifyuibuilder#ComponentChildList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#ComponentChild" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentCollectionProperties": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#ComponentDataConfiguration" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentConditionProperty": { + "type": "structure", + "members": { + "property": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The name of the conditional property.

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

              The name of a field. Specify this when the property is a data model.

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

              The operator to use to perform the evaluation, such as eq to represent\n equals.

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

              The value of the property to evaluate.

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

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

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

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

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

              Represents a conditional expression to set a component property. Use\n ComponentConditionProperty to set a property to different values conditionally,\n based on the value of another property.

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

              The name of the data model to use to bind data to a component.

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

              Describes how to sort the component's properties.

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

              Represents the conditional logic to use when binding data to a component. Use this\n property to retrieve only a subset of the data in a collection.

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

              A list of IDs to use to bind data to a component. Use this property to bind specifically\n chosen data, rather than data retrieved from a query.

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

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

              " + } + }, + "com.amazonaws.amplifyuibuilder#ComponentList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#Component" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.amplifyuibuilder#ComponentOverrides": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#ComponentOverridesValue" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentOverridesValue": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentProperties": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentProperty": { + "type": "structure", + "members": { + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The value to assign to the component property.

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

              The information to bind the component property to data at runtime.

              " + } + }, + "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.

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

              The default value to assign to the component property.

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

              The data model to use to assign a value to the component property.

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

              The information to bind the component property to form data.

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

              An event that occurs in your app. Use this for workflow data binding.

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

              An authenticated user attribute to use to assign a value to the component property.

              " + } + }, + "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.

              " + } + }, + "condition": { + "target": "com.amazonaws.amplifyuibuilder#ComponentConditionProperty", + "traits": { + "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.

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

              The component type.

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

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

              " + } + } + }, + "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.

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

              The component property to bind to the data field.

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

              The data field to bind the property to.

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

              Associates a component property to a binding property. This enables exposed properties on\n the top level component to propagate data to the component's property values.

              " + } + }, + "com.amazonaws.amplifyuibuilder#ComponentPropertyList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperty" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentResource": { + "type": "resource", + "identifiers": { + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid" + }, + "appId": { + "target": "smithy.api#String" + }, + "environmentName": { + "target": "smithy.api#String" + } + }, + "create": { + "target": "com.amazonaws.amplifyuibuilder#CreateComponent" + }, + "read": { + "target": "com.amazonaws.amplifyuibuilder#GetComponent" + }, + "update": { + "target": "com.amazonaws.amplifyuibuilder#UpdateComponent" + }, + "delete": { + "target": "com.amazonaws.amplifyuibuilder#DeleteComponent" + }, + "list": { + "target": "com.amazonaws.amplifyuibuilder#ListComponents" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.amplifyuibuilder#ExportComponents" + } + ], + "traits": { + "aws.api#arn": { + "template": "app/{appId}/environment/{environmentName}/components/{id}", + "absolute": false, + "noAccount": false, + "noRegion": false + }, + "aws.cloudformation#cfnResource": { + "additionalSchemas": ["com.amazonaws.amplifyuibuilder#Component"], + "name": "Component" + } + } + }, + "com.amazonaws.amplifyuibuilder#ComponentSummary": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#required": {} + } + }, + "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#required": {} + } + }, + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid", + "traits": { + "smithy.api#documentation": "

              The unique ID of the component.

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

              The name of the component.

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

              The component type.

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

              Contains a summary of a component. This is a read-only data type that is returned by\n ListComponents.

              " + } + }, + "com.amazonaws.amplifyuibuilder#ComponentSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#ComponentSummary" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.amplifyuibuilder#ComponentVariant": { + "type": "structure", + "members": { + "variantValues": { + "target": "com.amazonaws.amplifyuibuilder#ComponentVariantValues", + "traits": { + "smithy.api#documentation": "

              The combination of variants that comprise this variant.

              " + } + }, + "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.

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

              Describes the style configuration of a unique variation of a main component.

              " + } + }, + "com.amazonaws.amplifyuibuilder#ComponentVariantValues": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.amplifyuibuilder#ComponentVariants": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#ComponentVariant" + } + }, + "com.amazonaws.amplifyuibuilder#CreateComponent": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#CreateComponentRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#CreateComponentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceConflictException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ServiceQuotaExceededException" + } + ], + "traits": { + "smithy.api#documentation": "

              Creates a new component for an Amplify app.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/app/{appId}/environment/{environmentName}/components", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#CreateComponentData": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.amplifyuibuilder#ComponentName", + "traits": { + "smithy.api#documentation": "

              The name of the component

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

              The unique ID of the component in its original source system, such as Figma.

              " + } + }, + "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#required": {} + } + }, + "properties": { + "target": "com.amazonaws.amplifyuibuilder#ComponentProperties", + "traits": { + "smithy.api#documentation": "

              Describes the component's properties.

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

              A list of child components that are instances of the main component.

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

              A list of the unique variants of this component.

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

              Describes the component properties that can be overriden to customize an instance of the\n component.

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

              The data binding information for the component's properties.

              ", + "smithy.api#required": {} + } + }, + "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.

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

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

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

              Represents all of the information that is required to create a component.

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

              The unique ID of the Amplify app to associate with the component.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "smithy.api#String", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              The unique client token.

              ", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + }, + "componentToCreate": { + "target": "com.amazonaws.amplifyuibuilder#CreateComponentData", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              Represents the configuration of the component to create.

              ", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#CreateComponentResponse": { + "type": "structure", + "members": { + "entity": { + "target": "com.amazonaws.amplifyuibuilder#Component", + "traits": { + "smithy.api#documentation": "

              Describes the configuration of the new component.

              ", + "smithy.api#httpPayload": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#CreateTheme": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#CreateThemeRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#CreateThemeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceConflictException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ServiceQuotaExceededException" + } + ], + "traits": { + "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 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#CreateThemeData": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.amplifyuibuilder#ThemeName", + "traits": { + "smithy.api#documentation": "

              The name of the theme.

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

              A list of key-value pairs that defines the properties of the theme.

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

              Describes the properties that can be overriden to customize an instance of the\n theme.

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

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

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

              Represents all of the information that is required to create a theme.

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

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

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "smithy.api#String", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              The unique client token.

              ", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + }, + "themeToCreate": { + "target": "com.amazonaws.amplifyuibuilder#CreateThemeData", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              Represents the configuration of the theme to create.

              ", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#CreateThemeResponse": { + "type": "structure", + "members": { + "entity": { + "target": "com.amazonaws.amplifyuibuilder#Theme", + "traits": { + "smithy.api#documentation": "

              Describes the configuration of the new theme.

              ", + "smithy.api#httpPayload": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#DeleteComponent": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#DeleteComponentRequest" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes a component from an Amplify app.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/app/{appId}/environment/{environmentName}/components/{id}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#DeleteComponentRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#httpLabel": {}, + "smithy.api#required": {} + } + }, + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid", + "traits": { + "smithy.api#documentation": "

              The unique ID of the component to delete.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#DeleteTheme": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#DeleteThemeRequest" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes a theme from an Amplify app.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#DeleteThemeRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#httpLabel": {}, + "smithy.api#required": {} + } + }, + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid", + "traits": { + "smithy.api#documentation": "

              The unique ID of the theme to delete.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ExchangeCodeForToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#ExchangeCodeForTokenRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#ExchangeCodeForTokenResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + } + ], + "traits": { + "smithy.api#documentation": "

              Exchanges an access code for a token.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/tokens/{provider}", + "code": 200 + } + } + }, + "com.amazonaws.amplifyuibuilder#ExchangeCodeForTokenRequest": { + "type": "structure", + "members": { + "provider": { + "target": "com.amazonaws.amplifyuibuilder#TokenProviders", + "traits": { + "smithy.api#documentation": "

              The third-party provider for the token. The only valid value is figma.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "request": { + "target": "com.amazonaws.amplifyuibuilder#ExchangeCodeForTokenRequestBody", + "traits": { + "smithy.api#documentation": "

              Describes the configuration of the request.

              ", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ExchangeCodeForTokenRequestBody": { + "type": "structure", + "members": { + "code": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The access code to send in the request.

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

              The location of the application that will receive the access code.

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

              Describes the configuration of a request to exchange an access code for a token.

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

              The access token.

              ", + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "expiresIn": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

              The date and time when the new access token expires.

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

              The token to use to refresh a previously issued access token that might have\n expired.

              ", + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ExportComponents": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#ExportComponentsRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#ExportComponentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + } + ], + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/export/app/{appId}/environment/{environmentName}/components", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#ExportComponentsRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID of the Amplify app to export components to.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ExportComponentsResponse": { + "type": "structure", + "members": { + "entities": { + "target": "com.amazonaws.amplifyuibuilder#ComponentList", + "traits": { + "smithy.api#documentation": "

              Represents the configuration of the exported components.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ExportThemes": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#ExportThemesRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#ExportThemesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + } + ], + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/export/app/{appId}/environment/{environmentName}/themes", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#ExportThemesRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID of the Amplify app to export the themes to.

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

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

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ExportThemesResponse": { + "type": "structure", + "members": { + "entities": { + "target": "com.amazonaws.amplifyuibuilder#ThemeList", + "traits": { + "smithy.api#documentation": "

              Represents the configuration of the exported themes.

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

              The name of the component to retrieve a value from.

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

              The property to retrieve a value from.

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

              Describes how to bind a component property to form data.

              " + } + }, + "com.amazonaws.amplifyuibuilder#FormBindings": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#FormBindingElement" + } + }, + "com.amazonaws.amplifyuibuilder#GetComponent": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#GetComponentRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#GetComponentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + } + ], + "traits": { + "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 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#GetComponentRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID of the Amplify app.

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

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

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

              The unique ID of the component.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#GetComponentResponse": { + "type": "structure", + "members": { + "component": { + "target": "com.amazonaws.amplifyuibuilder#Component", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              Represents the configuration settings for the component.

              ", + "smithy.api#httpPayload": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#GetTheme": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#GetThemeRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#GetThemeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceNotFoundException" + } + ], + "traits": { + "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 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#GetThemeRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID of the Amplify app.

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

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

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

              The unique ID for the theme.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#GetThemeResponse": { + "type": "structure", + "members": { + "theme": { + "target": "com.amazonaws.amplifyuibuilder#Theme", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              Represents the configuration settings for the theme.

              ", + "smithy.api#httpPayload": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#IdentifierList": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.amplifyuibuilder#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

              An internal error has occurred. Please retry your request.

              ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.amplifyuibuilder#InvalidParameterException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

              An invalid or out-of-range value was supplied for the input parameter.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.amplifyuibuilder#ListComponents": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#ListComponentsRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#ListComponentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + } + ], + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/app/{appId}/environment/{environmentName}/components", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "entities", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#ListComponentsLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.amplifyuibuilder#ListComponentsRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID for the Amplify app.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#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" + } + }, + "maxResults": { + "target": "com.amazonaws.amplifyuibuilder#ListComponentsLimit", + "traits": { + "smithy.api#documentation": "

              The maximum number of components to retrieve.

              ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ListComponentsResponse": { + "type": "structure", + "members": { + "entities": { + "target": "com.amazonaws.amplifyuibuilder#ComponentSummaryList", + "traits": { + "smithy.api#documentation": "

              The list of components for the Amplify app.

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

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

              " + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ListThemes": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#ListThemesRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#ListThemesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + } + ], + "traits": { + "smithy.api#documentation": "

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

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/app/{appId}/environment/{environmentName}/themes", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "items": "entities", + "pageSize": "maxResults" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.amplifyuibuilder#ListThemesLimit": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.amplifyuibuilder#ListThemesRequest": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID for the Amplify app.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "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#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" + } + }, + "maxResults": { + "target": "com.amazonaws.amplifyuibuilder#ListThemesLimit", + "traits": { + "smithy.api#documentation": "

              The maximum number of theme results to return in the response.

              ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.amplifyuibuilder#ListThemesResponse": { + "type": "structure", + "members": { + "entities": { + "target": "com.amazonaws.amplifyuibuilder#ThemeSummaryList", + "traits": { + "smithy.api#documentation": "

              The list of themes for the Amplify app.

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

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

              " + } + } + } + }, + "com.amazonaws.amplifyuibuilder#Predicate": { + "type": "structure", + "members": { + "or": { + "target": "com.amazonaws.amplifyuibuilder#PredicateList", + "traits": { + "smithy.api#documentation": "

              A list of predicates to combine logically.

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

              A list of predicates to combine logically.

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

              The field to query.

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

              The operator to use to perform the evaluation.

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

              The value to use when performing the evaluation.

              " + } + } + }, + "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.

              " + } + }, + "com.amazonaws.amplifyuibuilder#PredicateList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#Predicate" + } + }, + "com.amazonaws.amplifyuibuilder#RefreshToken": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#RefreshTokenRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#RefreshTokenResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + } + ], + "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 + } + } + }, + "com.amazonaws.amplifyuibuilder#RefreshTokenRequest": { + "type": "structure", + "members": { + "provider": { + "target": "com.amazonaws.amplifyuibuilder#TokenProviders", + "traits": { + "smithy.api#documentation": "

              The third-party provider for the token. The only valid value is figma.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "refreshTokenBody": { + "target": "com.amazonaws.amplifyuibuilder#RefreshTokenRequestBody", + "traits": { + "smithy.api#documentation": "

              Information about the refresh token request.

              ", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#RefreshTokenRequestBody": { + "type": "structure", + "members": { + "token": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The token to use to refresh a previously issued access token that might have\n expired.

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

              Describes a refresh token.

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

              The access token.

              ", + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "expiresIn": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

              The date and time when the new access token expires.

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

              The resource specified in the request conflicts with an existing resource.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.amplifyuibuilder#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

              The requested resource does not exist, or access was denied.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.amplifyuibuilder#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#documentation": "

              You exceeded your service quota. Service quotas, also referred to as limits, are the\n maximum number of service resources or operations for your Amazon Web Services account.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.amplifyuibuilder#SortDirection": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ASC" + }, + { + "value": "DESC" + } + ] + } + }, + "com.amazonaws.amplifyuibuilder#SortProperty": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The field to perform the sort on.

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

              The direction of the sort, either ascending or descending.

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

              Describes how to sort the data that you bind to a component.

              " + } + }, + "com.amazonaws.amplifyuibuilder#SortPropertyList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#SortProperty" + } + }, + "com.amazonaws.amplifyuibuilder#TagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$" + } + }, + "com.amazonaws.amplifyuibuilder#TagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.amplifyuibuilder#Tags": { + "type": "map", + "key": { + "target": "com.amazonaws.amplifyuibuilder#TagKey" + }, + "value": { + "target": "com.amazonaws.amplifyuibuilder#TagValue" + } + }, + "com.amazonaws.amplifyuibuilder#Theme": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID for the Amplify app associated with the theme.

              ", + "smithy.api#required": {} + } + }, + "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#required": {} + } + }, + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid", + "traits": { + "smithy.api#documentation": "

              The ID for the theme.

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

              The name of the theme.

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

              The time that the theme was created.

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

              The time that the theme was modified.

              ", + "smithy.api#timestampFormat": "date-time" + } + }, + "values": { + "target": "com.amazonaws.amplifyuibuilder#ThemeValuesList", + "traits": { + "smithy.api#documentation": "

              A list of key-value pairs that defines the properties of the theme.

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

              Describes the properties that can be overriden to customize a theme.

              " + } + }, + "tags": { + "target": "com.amazonaws.amplifyuibuilder#Tags", + "traits": { + "aws.cloudformation#cfnMutability": "create-and-read", + "smithy.api#documentation": "

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

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

              A theme is a collection of style settings that apply globally to the components associated\n with an Amplify application.

              ", + "smithy.api#references": [ + { + "resource": "com.amazonaws.amplifyuibuilder#ThemeResource" + } + ] + } + }, + "com.amazonaws.amplifyuibuilder#ThemeList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#Theme" + } + }, + "com.amazonaws.amplifyuibuilder#ThemeName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.amplifyuibuilder#ThemeResource": { + "type": "resource", + "identifiers": { + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid" + }, + "appId": { + "target": "smithy.api#String" + }, + "environmentName": { + "target": "smithy.api#String" + } + }, + "create": { + "target": "com.amazonaws.amplifyuibuilder#CreateTheme" + }, + "read": { + "target": "com.amazonaws.amplifyuibuilder#GetTheme" + }, + "update": { + "target": "com.amazonaws.amplifyuibuilder#UpdateTheme" + }, + "delete": { + "target": "com.amazonaws.amplifyuibuilder#DeleteTheme" + }, + "list": { + "target": "com.amazonaws.amplifyuibuilder#ListThemes" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.amplifyuibuilder#ExportThemes" + } + ], + "traits": { + "aws.api#arn": { + "template": "app/{appId}/environment/{environmentName}/themes/{id}", + "absolute": false, + "noAccount": false, + "noRegion": false + }, + "aws.cloudformation#cfnResource": { + "additionalSchemas": ["com.amazonaws.amplifyuibuilder#Theme"], + "name": "Theme" + } + } + }, + "com.amazonaws.amplifyuibuilder#ThemeSummary": { + "type": "structure", + "members": { + "appId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The unique ID for the app associated with the theme summary.

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

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

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

              The ID of the theme.

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

              The name of the theme.

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

              Describes the basic information about a theme.

              " + } + }, + "com.amazonaws.amplifyuibuilder#ThemeSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#ThemeSummary" + } + }, + "com.amazonaws.amplifyuibuilder#ThemeValue": { + "type": "structure", + "members": { + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The value of a theme property.

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

              A list of key-value pairs that define the theme's properties.

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

              Describes the configuration of a theme's properties.

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

              The name of the property.

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

              The value of the property.

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

              A key-value pair that defines a property of a theme.

              " + } + }, + "com.amazonaws.amplifyuibuilder#ThemeValuesList": { + "type": "list", + "member": { + "target": "com.amazonaws.amplifyuibuilder#ThemeValues" + } + }, + "com.amazonaws.amplifyuibuilder#TokenProviders": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "figma", + "name": "FIGMA", + "documentation": "The figma token provider." + } + ] + } + }, + "com.amazonaws.amplifyuibuilder#UpdateComponent": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#UpdateComponentRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#UpdateComponentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceConflictException" + } + ], + "traits": { + "smithy.api#documentation": "

              Updates an existing component.

              ", + "smithy.api#http": { + "method": "PATCH", + "uri": "/app/{appId}/environment/{environmentName}/components/{id}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#UpdateComponentData": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid", + "traits": { + "smithy.api#documentation": "

              The unique ID of the component to update.

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

              The name of the component to update.

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

              The unique ID of the component in its original source system, such as Figma.

              " + } + }, + "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.

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

              Describes the component's properties.

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

              The components that are instances of the main component.

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

              A list of the unique variants of the main component being updated.

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

              Describes the properties that can be overriden to customize the component.

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

              The data binding information for the component's properties.

              " + } + }, + "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.

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

              Updates and saves all of the information about a component, based on component ID.

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

              The unique ID for the Amplify app.

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

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

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

              The unique ID for the component.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "smithy.api#String", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              The unique client token.

              ", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + }, + "updatedComponent": { + "target": "com.amazonaws.amplifyuibuilder#UpdateComponentData", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              The configuration of the updated component.

              ", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#UpdateComponentResponse": { + "type": "structure", + "members": { + "entity": { + "target": "com.amazonaws.amplifyuibuilder#Component", + "traits": { + "smithy.api#documentation": "

              Describes the configuration of the updated component.

              ", + "smithy.api#httpPayload": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#UpdateTheme": { + "type": "operation", + "input": { + "target": "com.amazonaws.amplifyuibuilder#UpdateThemeRequest" + }, + "output": { + "target": "com.amazonaws.amplifyuibuilder#UpdateThemeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.amplifyuibuilder#InternalServerException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#InvalidParameterException" + }, + { + "target": "com.amazonaws.amplifyuibuilder#ResourceConflictException" + } + ], + "traits": { + "smithy.api#documentation": "

              Updates an existing theme.

              ", + "smithy.api#http": { + "method": "PATCH", + "uri": "/app/{appId}/environment/{environmentName}/themes/{id}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.amplifyuibuilder#UpdateThemeData": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.amplifyuibuilder#Uuid", + "traits": { + "smithy.api#documentation": "

              The unique ID of the theme to update.

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

              The name of the theme to update.

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

              A list of key-value pairs that define the theme's properties.

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

              Describes the properties that can be overriden to customize the theme.

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

              Saves the data binding information for a theme.

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

              The unique ID for the Amplify app.

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

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

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

              The unique ID for the theme.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "smithy.api#String", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              The unique client token.

              ", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + }, + "updatedTheme": { + "target": "com.amazonaws.amplifyuibuilder#UpdateThemeData", + "traits": { + "aws.cloudformation#cfnExcludeProperty": {}, + "smithy.api#documentation": "

              The configuration of the updated theme.

              ", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#UpdateThemeResponse": { + "type": "structure", + "members": { + "entity": { + "target": "com.amazonaws.amplifyuibuilder#Theme", + "traits": { + "smithy.api#documentation": "

              Describes the configuration of the updated theme.

              ", + "smithy.api#httpPayload": {} + } + } + } + }, + "com.amazonaws.amplifyuibuilder#Uuid": { + "type": "string" + } + } +} diff --git a/codegen/sdk-codegen/aws-models/api-gateway.json b/codegen/sdk-codegen/aws-models/api-gateway.json index 46a418c8dd77..4f60fc563e27 100644 --- a/codegen/sdk-codegen/aws-models/api-gateway.json +++ b/codegen/sdk-codegen/aws-models/api-gateway.json @@ -8839,7 +8839,7 @@ "limit": { "target": "com.amazonaws.apigateway#Integer", "traits": { - "smithy.api#documentation": "

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              The API request steady-state rate limit.

              " + "smithy.api#documentation": "

              The API target request rate limit.

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

              The request throttle limits of a usage plan.

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              \n
              \n

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

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

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

              \n
              \n

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

              \n
              \n " } }, "com.amazonaws.apigateway#UsagePlanKey": { diff --git a/codegen/sdk-codegen/aws-models/appsync.json b/codegen/sdk-codegen/aws-models/appsync.json index 945569df8a08..eb80e4124982 100644 --- a/codegen/sdk-codegen/aws-models/appsync.json +++ b/codegen/sdk-codegen/aws-models/appsync.json @@ -31,8 +31,29 @@ "shapes": { "com.amazonaws.appsync#AWSDeepdishControlPlaneService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "AppSync", + "arnNamespace": "appsync", + "cloudFormationName": "AppSync", + "cloudTrailEventSource": "appsync.amazonaws.com", + "endpointPrefix": "appsync" + }, + "aws.auth#sigv4": { + "name": "appsync" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

              The OpenID Connect configuration.

              " + "smithy.api#documentation": "

              The OIDC configuration.

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

              Configuration for Amazon Web Services Lambda function authorization.

              " + "smithy.api#documentation": "

              Configuration for Lambda function authorization.

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

              The domain name.

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

              The API ID.

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

              Identifies the status of an association.

              \n
                \n
              • \n

                \n PROCESSING: The API association is being\n created. You cannot modify association requests during processing.

                \n
              • \n
              • \n

                \n SUCCESS: The API association was successful.\n You can modify associations after success.

                \n
              • \n
              • \n

                \n FAILED: The API association has failed. You\n can modify associations after failure.

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

              Details about the last deployment status.

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

              Describes an ApiAssociation object.

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

              TTL in seconds for cache entries.

              \n

              Valid values are between 1 and 3600 seconds.

              " + "smithy.api#documentation": "

              TTL in seconds for cache entries.

              \n

              Valid values are 1–3,600 seconds.

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              Describes an API key.

              \n

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

              \n

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

              \n
                \n
              • \n

                \n ListApiKeys returns the expiration time in milliseconds.

                \n
              • \n
              • \n

                \n CreateApiKey returns the expiration time in\n milliseconds.

                \n
              • \n
              • \n

                \n UpdateApiKey is not available for this key version.

                \n
              • \n
              • \n

                \n DeleteApiKey deletes the item from the table.

                \n
              • \n
              • \n

                Expiration is stored in Amazon DynamoDB as milliseconds. This results in a bug\n where keys are not automatically deleted because DynamoDB expects the TTL to be\n stored in seconds. As a one-time action, we will delete these keys from the table\n after February 21, 2018.

                \n
              • \n
              \n

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

              \n
                \n
              • \n

                \n ListApiKeys returns the expiration time and deletion time in\n seconds.

                \n
              • \n
              • \n

                \n CreateApiKey returns the expiration time and deletion time in\n seconds and accepts a user-provided expiration time in seconds.

                \n
              • \n
              • \n

                \n UpdateApiKey returns the expiration time and and deletion time in\n seconds and accepts a user-provided expiration time in seconds. Expired API keys are\n kept for 60 days after the expiration time. Key expiration time can be updated while\n the key is not deleted.

                \n
              • \n
              • \n

                \n DeleteApiKey deletes the item from the table.

                \n
              • \n
              • \n

                Expiration is stored in Amazon DynamoDB as seconds. After the expiration time,\n using the key to authenticate will fail. But the key can be reinstated before\n deletion.

                \n
              • \n
              • \n

                Deletion is stored in Amazon DynamoDB as seconds. The key will be deleted after\n deletion time.

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

              Describes an API key.

              \n

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

              \n

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

              \n
                \n
              • \n

                \n ListApiKeys returns the expiration time in milliseconds.

                \n
              • \n
              • \n

                \n CreateApiKey returns the expiration time in\n milliseconds.

                \n
              • \n
              • \n

                \n UpdateApiKey is not available for this key version.

                \n
              • \n
              • \n

                \n DeleteApiKey deletes the item from the table.

                \n
              • \n
              • \n

                Expiration is stored in DynamoDB as milliseconds. This results in a\n bug where keys are not automatically deleted because DynamoDB expects the\n TTL to be stored in seconds. As a one-time action, we deleted these keys from the\n table on February 21, 2018.

                \n
              • \n
              \n

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

              \n
                \n
              • \n

                \n ListApiKeys returns the expiration time and deletion time in\n seconds.

                \n
              • \n
              • \n

                \n CreateApiKey returns the expiration time and deletion time in\n seconds and accepts a user-provided expiration time in seconds.

                \n
              • \n
              • \n

                \n UpdateApiKey returns the expiration time and and deletion time in\n seconds and accepts a user-provided expiration time in seconds. Expired API keys are\n kept for 60 days after the expiration time. You can update the key expiration time as\n long as the key isn't deleted.

                \n
              • \n
              • \n

                \n DeleteApiKey deletes the item from the table.

                \n
              • \n
              • \n

                Expiration is stored in DynamoDB as seconds. After the expiration\n time, using the key to authenticate will fail. However, you can reinstate the key\n before deletion.

                \n
              • \n
              • \n

                Deletion is stored in DynamoDB as seconds. The key is deleted after\n deletion time.

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

              Maps an endpoint to your custom domain.

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

              The domain name.

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

              The API ID.

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

              The ApiAssociation object.

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

              The authorization type required by the HTTP endpoint.

              \n
                \n
              • \n

                \n AWS_IAM: The authorization type is\n Sigv4.

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

              The authorization type that the HTTP endpoint requires.

              \n
                \n
              • \n

                \n AWS_IAM: The authorization type is Signature\n Version 4 (SigV4).

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

              The Identity and Access Management settings.

              " + "smithy.api#documentation": "

              The Identity and Access Management (IAM) settings.

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

              The authorization config in case the HTTP endpoint requires authorization.

              " + "smithy.api#documentation": "

              The authorization configuration in case the HTTP endpoint requires authorization.

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

              The signing region for Identity and Access Management authorization.

              " + "smithy.api#documentation": "

              The signing Amazon Web Services Region for IAM authorization.

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

              The signing service name for Identity and Access Management authorization.

              " + "smithy.api#documentation": "

              The signing service name for IAM authorization.

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

              The Identity and Access Management configuration.

              " + "smithy.api#documentation": "

              The Identity and Access Management (IAM) configuration.

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

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

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

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

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

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

              \n

              Valid values are between 1 and 3600 seconds.

              " + "smithy.api#documentation": "

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

              \n

              Valid values are 1–3,600 seconds.

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

              The caching keys for a resolver that has caching enabled.

              \n

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

              " + "smithy.api#documentation": "

              The caching keys for a resolver that has caching activated.

              \n

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

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

              The caching configuration for a resolver that has caching enabled.

              " + "smithy.api#documentation": "

              The caching configuration for a resolver that has caching activated.

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

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

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

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

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

              The GraphQL API Id.

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

              The GraphQL API ID.

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

              TTL in seconds for cache entries.

              \n

              Valid values are between 1 and 3600 seconds.

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

              TTL in seconds for cache entries.

              \n

              Valid values are 1–3,600 seconds.

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              Amazon Web Services Lambda settings.

              " + "smithy.api#documentation": "

              Lambda settings.

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

              Creates a custom DomainName object.

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

              The domain name.

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

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

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

              A description of the DomainName.

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

              The configuration for the DomainName.

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

              Creates a Function object.

              \n

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

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

              Creates a Function object.

              \n

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

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

              The Function response mapping template.

              " + "smithy.api#documentation": "

              The Function response mapping template.

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

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

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

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

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

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

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

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

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

              The OpenID Connect configuration.

              " + "smithy.api#documentation": "

              The OIDC configuration.

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

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

              " + "smithy.api#documentation": "

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

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

              Configuration for Amazon Web Services Lambda function authorization.

              " + "smithy.api#documentation": "

              Configuration for Lambda function authorization.

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

              Creates a Resolver object.

              \n

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

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

              Creates a Resolver object.

              \n

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

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

              The mapping template to be used for requests.

              \n

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

              \n

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

              " + "smithy.api#documentation": "

              The mapping template to use for requests.

              \n

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

              \n

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

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

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

              " + "smithy.api#documentation": "

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

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

              The resolver type.

              \n
                \n
              • \n

                \n UNIT: A UNIT resolver type. A UNIT resolver is\n the default resolver type. A UNIT resolver enables you to execute a GraphQL query\n against a single data source.

                \n
              • \n
              • \n

                \n PIPELINE: A PIPELINE resolver type. A PIPELINE\n resolver enables you to execute a series of Function in a serial manner.\n You can use a pipeline resolver to execute a GraphQL query against multiple data\n sources.

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

              The resolver type.

              \n
                \n
              • \n

                \n UNIT: A UNIT resolver type. A UNIT resolver is\n the default resolver type. You can use a UNIT resolver to run a GraphQL query against\n a single data source.

                \n
              • \n
              • \n

                \n PIPELINE: A PIPELINE resolver type. You can\n use a PIPELINE resolver to invoke a series of Function objects in a\n serial manner. You can use a pipeline resolver to run a GraphQL query against\n multiple data sources.

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

              The SyncConfig for a resolver attached to a versioned datasource.

              " + "smithy.api#documentation": "

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

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

              The data source ARN.

              " + "smithy.api#documentation": "

              The data source Amazon Resource Name (ARN).

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

              The type of the data source.

              \n
                \n
              • \n

                \n AWS_LAMBDA: The data source is an Amazon Web Services Lambda function.

                \n
              • \n
              • \n

                \n AMAZON_DYNAMODB: The data source is an Amazon\n DynamoDB table.

                \n
              • \n
              • \n

                \n AMAZON_ELASTICSEARCH: The data source is an\n Amazon OpenSearch Service domain.

                \n
              • \n
              • \n

                \n AMAZON_OPENSEARCH_SERVICE: The data source is\n an Amazon OpenSearch Service domain.

                \n
              • \n
              • \n

                \n NONE: There is no data source. This type is\n used when you wish to invoke a GraphQL operation without connecting to a data source,\n such as performing data transformation with resolvers or triggering a subscription to\n be invoked from a mutation.

                \n
              • \n
              • \n

                \n HTTP: The data source is an HTTP\n endpoint.

                \n
              • \n
              • \n

                \n RELATIONAL_DATABASE: The data source is a\n relational database.

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

              The type of the data source.

              \n
                \n
              • \n

                \n AWS_LAMBDA: The data source is an Lambda function.

                \n
              • \n
              • \n

                \n AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table.

                \n
              • \n
              • \n

                \n AMAZON_ELASTICSEARCH: The data source is an\n Amazon OpenSearch Service domain.

                \n
              • \n
              • \n

                \n AMAZON_OPENSEARCH_SERVICE: The data source is\n an Amazon OpenSearch Service domain.

                \n
              • \n
              • \n

                \n NONE: There is no data source. Use this type\n when you want to invoke a GraphQL operation without connecting to a data source, such\n as when you're performing data transformation with resolvers or invoking a\n subscription from a mutation.

                \n
              • \n
              • \n

                \n HTTP: The data source is an HTTP\n endpoint.

                \n
              • \n
              • \n

                \n RELATIONAL_DATABASE: The data source is a\n relational database.

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

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

              " + "smithy.api#documentation": "

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

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

              Amazon DynamoDB settings.

              " + "smithy.api#documentation": "

              DynamoDB settings.

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

              Amazon Web Services Lambda settings.

              " + "smithy.api#documentation": "

              Lambda settings.

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

              Deletes a custom DomainName object.

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

              The domain name.

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

              Deletes a Type object.

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

              The API ID.

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

              The type name.

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

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

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

              The Delta Sync table name.

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

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

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

              Describes a Delta Sync configuration.

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

              Deletes a Type object.

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

              Removes an ApiAssociation object from a custom domain.

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

              The API ID.

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

              The type name.

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

              The domain name.

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

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

              " + "smithy.api#documentation": "

              The domain name.

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

              A description of the DomainName configuration.

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

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

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

              The Delta Sync table name.

              " + "smithy.api#documentation": "

              The domain name that AppSync provides.

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

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

              " + "smithy.api#documentation": "

              The ID of your Amazon Route 53 hosted zone.

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

              Describes a Delta Sync configuration.

              " + "smithy.api#documentation": "

              Describes a configuration for a custom domain.

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

              The DeltaSyncConfig for a versioned datasource.

              " + "smithy.api#documentation": "

              The DeltaSyncConfig for a versioned data source.

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

              The ARN of the Function object.

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              Retrieves an ApiAssociation object.

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

              The domain name.

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

              The ApiAssociation object.

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

              Retrieves a custom DomainName object.

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

              The domain name.

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

              The configuration for the DomainName.

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

              The ARN.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN).

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              Configuration for Amazon Web Services Lambda function authorization.

              " + "smithy.api#documentation": "

              Configuration for Lambda function authorization.

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

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

              " + "smithy.api#documentation": "

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

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

              The authorization config in case the HTTP endpoint requires authorization.

              " + "smithy.api#documentation": "

              The authorization configuration in case the HTTP endpoint requires authorization.

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

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

              " + "smithy.api#documentation": "

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

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

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

              \n

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

              \n

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

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

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

              \n

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

              \n

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              The ARN for the Lambda function.

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

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

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

              Describes an Amazon Web Services Lambda data source configuration.

              " + "smithy.api#documentation": "

              Describes an Lambda data source configuration.

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

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

              Lists multiple custom domain names.

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

              The API token.

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

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

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

              Lists configurations for multiple domain names.

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

              The API token.

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

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

              The Function ID.

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

              The function ID.

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

              The GraphqlApi ARN.

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

              The GraphqlApi Amazon Resource Name (ARN).

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

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

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

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

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              \n
                \n
              • \n

                \n NONE: No field-level logs are\n captured.

                \n
              • \n
              • \n

                \n ERROR: Logs the following information only for\n the fields that are in error:

                \n
                  \n
                • \n

                  The error section in the server response.

                  \n
                • \n
                • \n

                  Field-level errors.

                  \n
                • \n
                • \n

                  The generated request/response functions that got resolved for error\n fields.

                  \n
                • \n
                \n
              • \n
              • \n

                \n ALL: The following information is logged for\n all fields in the query:

                \n
                  \n
                • \n

                  Field-level tracing information.

                  \n
                • \n
                • \n

                  The generated request/response functions that got resolved for each\n field.

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

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

              \n
                \n
              • \n

                \n NONE: No field-level logs are\n captured.

                \n
              • \n
              • \n

                \n ERROR: Logs the following information only for\n the fields that are in error:

                \n
                  \n
                • \n

                  The error section in the server response.

                  \n
                • \n
                • \n

                  Field-level errors.

                  \n
                • \n
                • \n

                  The generated request/response functions that got resolved for error\n fields.

                  \n
                • \n
                \n
              • \n
              • \n

                \n ALL: The following information is logged for\n all fields in the query:

                \n
                  \n
                • \n

                  Field-level tracing information.

                  \n
                • \n
                • \n

                  The generated request/response functions that got resolved for each\n field.

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

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

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

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

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

              The CloudWatch Logs configuration.

              " + "smithy.api#documentation": "

              The Amazon CloudWatch Logs configuration.

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

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

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

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

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

              " + "smithy.api#documentation": "

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

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

              Describes an OpenID Connect configuration.

              " + "smithy.api#documentation": "

              Describes an OpenID Connect (OIDC) configuration.

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

              Amazon Web Services Region for RDS HTTP endpoint.

              " + "smithy.api#documentation": "

              Amazon Web Services Region for Amazon RDS HTTP endpoint.

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

              Amazon RDS cluster ARN.

              " + "smithy.api#documentation": "

              Amazon RDS cluster Amazon Resource Name (ARN).

              " } }, "databaseName": { @@ -3648,12 +4199,12 @@ "awsSecretStoreArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

              Amazon Web Services secret store ARN for database credentials.

              " + "smithy.api#documentation": "

              Amazon Web Services secret store Amazon Resource Name (ARN) for database\n credentials.

              " } } }, "traits": { - "smithy.api#documentation": "

              The Amazon RDS HTTP endpoint configuration.

              " + "smithy.api#documentation": "

              The Amazon Relational Database Service (Amazon RDS) HTTP endpoint configuration.

              " } }, "com.amazonaws.appsync#RelationalDatabaseDataSourceConfig": { @@ -3662,7 +4213,7 @@ "relationalDatabaseSourceType": { "target": "com.amazonaws.appsync#RelationalDatabaseSourceType", "traits": { - "smithy.api#documentation": "

              Source type for the relational database.

              \n
                \n
              • \n

                \n RDS_HTTP_ENDPOINT: The relational database\n source type is an Amazon RDS HTTP endpoint.

                \n
              • \n
              " + "smithy.api#documentation": "

              Source type for the relational database.

              \n
                \n
              • \n

                \n RDS_HTTP_ENDPOINT: The relational database\n source type is an Amazon Relational Database Service (Amazon RDS) HTTP\n endpoint.

                \n
              • \n
              " } }, "rdsHttpEndpointConfig": { @@ -3711,7 +4262,7 @@ "resolverArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

              The resolver ARN.

              " + "smithy.api#documentation": "

              The resolver Amazon Resource Name (ARN).

              " } }, "requestMappingTemplate": { @@ -3729,7 +4280,7 @@ "kind": { "target": "com.amazonaws.appsync#ResolverKind", "traits": { - "smithy.api#documentation": "

              The resolver type.

              \n
                \n
              • \n

                \n UNIT: A UNIT resolver type. A UNIT resolver is\n the default resolver type. A UNIT resolver enables you to execute a GraphQL query\n against a single data source.

                \n
              • \n
              • \n

                \n PIPELINE: A PIPELINE resolver type. A PIPELINE\n resolver enables you to execute a series of Function in a serial manner.\n You can use a pipeline resolver to execute a GraphQL query against multiple data\n sources.

                \n
              • \n
              " + "smithy.api#documentation": "

              The resolver type.

              \n
                \n
              • \n

                \n UNIT: A UNIT resolver type. A UNIT resolver is\n the default resolver type. You can use a UNIT resolver to run a GraphQL query against\n a single data source.

                \n
              • \n
              • \n

                \n PIPELINE: A PIPELINE resolver type. You can\n use a PIPELINE resolver to invoke a series of Function objects in a\n serial manner. You can use a pipeline resolver to run a GraphQL query against\n multiple data sources.

                \n
              • \n
              " } }, "pipelineConfig": { @@ -3741,7 +4292,7 @@ "syncConfig": { "target": "com.amazonaws.appsync#SyncConfig", "traits": { - "smithy.api#documentation": "

              The SyncConfig for a resolver attached to a versioned datasource.

              " + "smithy.api#documentation": "

              The SyncConfig for a resolver attached to a versioned data source.

              " } }, "cachingConfig": { @@ -3901,24 +4452,24 @@ "conflictHandler": { "target": "com.amazonaws.appsync#ConflictHandlerType", "traits": { - "smithy.api#documentation": "

              The Conflict Resolution strategy to perform in the event of a conflict.

              \n
                \n
              • \n

                \n OPTIMISTIC_CONCURRENCY: Resolve conflicts by\n rejecting mutations when versions do not match the latest version at the\n server.

                \n
              • \n
              • \n

                \n AUTOMERGE: Resolve conflicts with the\n Automerge conflict resolution strategy.

                \n
              • \n
              • \n

                \n LAMBDA: Resolve conflicts with a Lambda\n function supplied in the LambdaConflictHandlerConfig.

                \n
              • \n
              " + "smithy.api#documentation": "

              The Conflict Resolution strategy to perform in the event of a conflict.

              \n
                \n
              • \n

                \n OPTIMISTIC_CONCURRENCY: Resolve conflicts by\n rejecting mutations when versions don't match the latest version at the\n server.

                \n
              • \n
              • \n

                \n AUTOMERGE: Resolve conflicts with the\n Automerge conflict resolution strategy.

                \n
              • \n
              • \n

                \n LAMBDA: Resolve conflicts with an Lambda function supplied in the\n LambdaConflictHandlerConfig.

                \n
              • \n
              " } }, "conflictDetection": { "target": "com.amazonaws.appsync#ConflictDetectionType", "traits": { - "smithy.api#documentation": "

              The Conflict Detection strategy to use.

              \n
                \n
              • \n

                \n VERSION: Detect conflicts based on object\n versions for this resolver.

                \n
              • \n
              • \n

                \n NONE: Do not detect conflicts when executing\n this resolver.

                \n
              • \n
              " + "smithy.api#documentation": "

              The Conflict Detection strategy to use.

              \n
                \n
              • \n

                \n VERSION: Detect conflicts based on object\n versions for this resolver.

                \n
              • \n
              • \n

                \n NONE: Do not detect conflicts when invoking\n this resolver.

                \n
              • \n
              " } }, "lambdaConflictHandlerConfig": { "target": "com.amazonaws.appsync#LambdaConflictHandlerConfig", "traits": { - "smithy.api#documentation": "

              The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict\n Handler.

              " + "smithy.api#documentation": "

              The LambdaConflictHandlerConfig when configuring LAMBDA as the\n Conflict Handler.

              " } } }, "traits": { - "smithy.api#documentation": "

              Describes a Sync configuration for a resolver.

              \n

              Contains information on which Conflict Detection as well as Resolution strategy should\n be performed when the resolver is invoked.

              " + "smithy.api#documentation": "

              Describes a Sync configuration for a resolver.

              \n

              Specifies which Conflict Detection strategy and Resolution strategy to use when the\n resolver is invoked.

              " } }, "com.amazonaws.appsync#TTL": { @@ -4012,7 +4563,7 @@ "resourceArn": { "target": "com.amazonaws.appsync#ResourceArn", "traits": { - "smithy.api#documentation": "

              The GraphqlApi ARN.

              ", + "smithy.api#documentation": "

              The GraphqlApi Amazon Resource Name (ARN).

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4058,7 +4609,7 @@ "arn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

              The type ARN.

              " + "smithy.api#documentation": "

              The type Amazon Resource Name (ARN).

              " } }, "definition": { @@ -4107,7 +4658,7 @@ } }, "traits": { - "smithy.api#documentation": "

              You are not authorized to perform this operation.

              ", + "smithy.api#documentation": "

              You aren't authorized to perform this operation.

              ", "smithy.api#error": "client", "smithy.api#httpError": 401 } @@ -4155,7 +4706,7 @@ "resourceArn": { "target": "com.amazonaws.appsync#ResourceArn", "traits": { - "smithy.api#documentation": "

              The GraphqlApi ARN.

              ", + "smithy.api#documentation": "

              The GraphqlApi Amazon Resource Name (ARN).

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4214,7 +4765,7 @@ "apiId": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

              The GraphQL API Id.

              ", + "smithy.api#documentation": "

              The GraphQL API ID.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4222,7 +4773,7 @@ "ttl": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

              TTL in seconds for cache entries.

              \n

              Valid values are between 1 and 3600 seconds.

              ", + "smithy.api#documentation": "

              TTL in seconds for cache entries.

              \n

              Valid values are 1–3,600 seconds.

              ", "smithy.api#required": {} } }, @@ -4288,7 +4839,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Updates an API key. The key can be updated while it is not deleted.

              ", + "smithy.api#documentation": "

              Updates an API key. You can update the key as long as it's not deleted.

              ", "smithy.api#http": { "method": "POST", "uri": "/v1/apis/{apiId}/apikeys/{id}", @@ -4324,7 +4875,7 @@ "expires": { "target": "com.amazonaws.appsync#Long", "traits": { - "smithy.api#documentation": "

              The time from update time after which the API key expires. The date is represented as\n seconds since the epoch. For more information, see .

              " + "smithy.api#documentation": "

              From the update time, the time after which the API key expires. The date is represented\n as seconds since the epoch. For more information, see .

              " } } } @@ -4409,7 +4960,7 @@ "serviceRoleArn": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

              The new service role ARN for the data source.

              " + "smithy.api#documentation": "

              The new service role Amazon Resource Name (ARN) for the data source.

              " } }, "dynamodbConfig": { @@ -4421,7 +4972,7 @@ "lambdaConfig": { "target": "com.amazonaws.appsync#LambdaDataSourceConfig", "traits": { - "smithy.api#documentation": "

              The new Amazon Web Services Lambda configuration.

              " + "smithy.api#documentation": "

              The new Lambda configuration.

              " } }, "elasticsearchConfig": { @@ -4461,6 +5012,70 @@ } } }, + "com.amazonaws.appsync#UpdateDomainName": { + "type": "operation", + "input": { + "target": "com.amazonaws.appsync#UpdateDomainNameRequest" + }, + "output": { + "target": "com.amazonaws.appsync#UpdateDomainNameResponse" + }, + "errors": [ + { + "target": "com.amazonaws.appsync#AccessDeniedException" + }, + { + "target": "com.amazonaws.appsync#BadRequestException" + }, + { + "target": "com.amazonaws.appsync#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.appsync#InternalFailureException" + }, + { + "target": "com.amazonaws.appsync#NotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

              Updates a custom DomainName object.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/domainnames/{domainName}", + "code": 200 + } + } + }, + "com.amazonaws.appsync#UpdateDomainNameRequest": { + "type": "structure", + "members": { + "domainName": { + "target": "com.amazonaws.appsync#DomainName", + "traits": { + "smithy.api#documentation": "

              The domain name.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.appsync#Description", + "traits": { + "smithy.api#documentation": "

              A description of the DomainName.

              " + } + } + } + }, + "com.amazonaws.appsync#UpdateDomainNameResponse": { + "type": "structure", + "members": { + "domainNameConfig": { + "target": "com.amazonaws.appsync#DomainNameConfig", + "traits": { + "smithy.api#documentation": "

              The configuration for the DomainName.

              " + } + } + } + }, "com.amazonaws.appsync#UpdateFunction": { "type": "operation", "input": { @@ -4540,13 +5155,13 @@ "responseMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

              The Function request mapping template.

              " + "smithy.api#documentation": "

              The Function request mapping template.

              " } }, "functionVersion": { "target": "com.amazonaws.appsync#String", "traits": { - "smithy.api#documentation": "

              The version of the request mapping template. Currently the supported value\n is 2018-05-29.

              ", + "smithy.api#documentation": "

              The version of the request mapping template. Currently, the supported value\n is 2018-05-29.

              ", "smithy.api#required": {} } }, @@ -4636,7 +5251,7 @@ "userPoolConfig": { "target": "com.amazonaws.appsync#UserPoolConfig", "traits": { - "smithy.api#documentation": "

              The new Amazon Cognito user pool configuration for the GraphqlApi\n object.

              " + "smithy.api#documentation": "

              The new Amazon Cognito user pool configuration for the ~GraphqlApi\n object.

              " } }, "openIDConnectConfig": { @@ -4654,13 +5269,13 @@ "xrayEnabled": { "target": "com.amazonaws.appsync#Boolean", "traits": { - "smithy.api#documentation": "

              A flag indicating whether to enable X-Ray tracing for the\n GraphqlApi.

              " + "smithy.api#documentation": "

              A flag indicating whether to use X-Ray tracing for the\n GraphqlApi.

              " } }, "lambdaAuthorizerConfig": { "target": "com.amazonaws.appsync#LambdaAuthorizerConfig", "traits": { - "smithy.api#documentation": "

              Configuration for Amazon Web Services Lambda function authorization.

              " + "smithy.api#documentation": "

              Configuration for Lambda function authorization.

              " } } } @@ -4743,7 +5358,7 @@ "requestMappingTemplate": { "target": "com.amazonaws.appsync#MappingTemplate", "traits": { - "smithy.api#documentation": "

              The new request mapping template.

              \n

              A resolver uses a request mapping template to convert a GraphQL expression into a format\n that a data source can understand. Mapping templates are written in Apache Velocity\n Template Language (VTL).

              \n

              VTL request mapping templates are optional when using a Lambda data source. For all\n other data sources, VTL request and response mapping templates are required.

              " + "smithy.api#documentation": "

              The new request mapping template.

              \n

              A resolver uses a request mapping template to convert a GraphQL expression into a format\n that a data source can understand. Mapping templates are written in Apache Velocity\n Template Language (VTL).

              \n

              VTL request mapping templates are optional when using an Lambda data\n source. For all other data sources, VTL request and response mapping templates are\n required.

              " } }, "responseMappingTemplate": { @@ -4755,7 +5370,7 @@ "kind": { "target": "com.amazonaws.appsync#ResolverKind", "traits": { - "smithy.api#documentation": "

              The resolver type.

              \n
                \n
              • \n

                \n UNIT: A UNIT resolver type. A UNIT resolver is\n the default resolver type. A UNIT resolver enables you to execute a GraphQL query\n against a single data source.

                \n
              • \n
              • \n

                \n PIPELINE: A PIPELINE resolver type. A PIPELINE\n resolver enables you to execute a series of Function in a serial manner.\n You can use a pipeline resolver to execute a GraphQL query against multiple data\n sources.

                \n
              • \n
              " + "smithy.api#documentation": "

              The resolver type.

              \n
                \n
              • \n

                \n UNIT: A UNIT resolver type. A UNIT resolver is\n the default resolver type. You can use a UNIT resolver to run a GraphQL query against\n a single data source.

                \n
              • \n
              • \n

                \n PIPELINE: A PIPELINE resolver type. You can\n use a PIPELINE resolver to invoke a series of Function objects in a\n serial manner. You can use a pipeline resolver to run a GraphQL query against\n multiple data sources.

                \n
              • \n
              " } }, "pipelineConfig": { @@ -4767,7 +5382,7 @@ "syncConfig": { "target": "com.amazonaws.appsync#SyncConfig", "traits": { - "smithy.api#documentation": "

              The SyncConfig for a resolver attached to a versioned datasource.

              " + "smithy.api#documentation": "

              The SyncConfig for a resolver attached to a versioned data source.

              " } }, "cachingConfig": { @@ -4888,7 +5503,7 @@ "defaultAction": { "target": "com.amazonaws.appsync#DefaultAction", "traits": { - "smithy.api#documentation": "

              The action that you want your GraphQL API to take when a request that uses Amazon\n Cognito user pool authentication doesn't match the Amazon Cognito user pool\n configuration.

              ", + "smithy.api#documentation": "

              The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool\n configuration.

              ", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/chime-sdk-messaging.json b/codegen/sdk-codegen/aws-models/chime-sdk-messaging.json index a3c8475094c7..6b7b51259a5d 100644 --- a/codegen/sdk-codegen/aws-models/chime-sdk-messaging.json +++ b/codegen/sdk-codegen/aws-models/chime-sdk-messaging.json @@ -874,6 +874,18 @@ "traits": { "smithy.api#documentation": "

              The message metadata.

              " } + }, + "PushNotification": { + "target": "com.amazonaws.chimesdkmessaging#PushNotificationConfiguration", + "traits": { + "smithy.api#documentation": "

              The push notification configuration of the message.

              " + } + }, + "MessageAttributes": { + "target": "com.amazonaws.chimesdkmessaging#MessageAttributeMap", + "traits": { + "smithy.api#documentation": "

              The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

              " + } } }, "traits": { @@ -1197,6 +1209,21 @@ }, "com.amazonaws.chimesdkmessaging#ChimeMessagingService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Chime SDK Messaging", + "arnNamespace": "chime", + "cloudFormationName": "ChimeSDKMessaging", + "cloudTrailEventSource": "chimesdkmessaging.amazonaws.com", + "endpointPrefix": "messaging-chime" + }, + "aws.auth#sigv4": { + "name": "chime" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              The Amazon Chime SDK Messaging APIs in this section allow software developers to send\n and receive messages in custom messaging applications. These APIs depend on the frameworks\n provided by the Amazon Chime SDK Identity APIs. For more information about the messaging\n APIs, see Amazon Chime SDK messaging\n

              ", + "smithy.api#title": "Amazon Chime SDK Messaging" + }, "version": "2021-05-15", "operations": [ { @@ -1334,22 +1361,7 @@ { "target": "com.amazonaws.chimesdkmessaging#UpdateChannelReadMarker" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Chime SDK Messaging", - "arnNamespace": "chime", - "cloudFormationName": "ChimeSDKMessaging", - "cloudTrailEventSource": "chimesdkmessaging.amazonaws.com", - "endpointPrefix": "messaging-chime" - }, - "aws.auth#sigv4": { - "name": "chime" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              The Amazon Chime SDK Messaging APIs in this section allow software developers to send\n and receive messages in custom messaging applications. These APIs depend on the frameworks\n provided by the Amazon Chime SDK Identity APIs. For more information about the messaging\n APIs, see Amazon Chime SDK messaging\n

              ", - "smithy.api#title": "Amazon Chime SDK Messaging" - } + ] }, "com.amazonaws.chimesdkmessaging#ClientRequestToken": { "type": "string", @@ -3617,7 +3629,7 @@ "Type": { "target": "com.amazonaws.chimesdkmessaging#ChannelMembershipType", "traits": { - "smithy.api#documentation": "

              The membership type of a user, DEFAULT or HIDDEN. Default\n members are always returned as part of ListChannelMemberships. Hidden members\n are only returned if the type filter in ListChannelMemberships equals\n HIDDEN. Otherwise hidden members are not returned.

              ", + "smithy.api#documentation": "

              The membership type of a user, DEFAULT or HIDDEN. Default\n members are returned as part of ListChannelMemberships if no type is specified. Hidden members\n are only returned if the type filter in ListChannelMemberships equals\n HIDDEN.

              ", "smithy.api#httpQuery": "type" } }, @@ -4475,22 +4487,19 @@ "Title": { "target": "com.amazonaws.chimesdkmessaging#PushNotificationTitle", "traits": { - "smithy.api#documentation": "

              The title of the push notification.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The title of the push notification.

              " } }, "Body": { "target": "com.amazonaws.chimesdkmessaging#PushNotificationBody", "traits": { - "smithy.api#documentation": "

              The body of the push notification.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The body of the push notification.

              " } }, "Type": { "target": "com.amazonaws.chimesdkmessaging#PushNotificationType", "traits": { - "smithy.api#documentation": "

              Enum value that indicates the type of the push notification for a message.\n DEFAULT: Normal mobile push notification.\n VOIP: VOIP mobile push notification.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Enum value that indicates the type of the push notification for a message.\n DEFAULT: Normal mobile push notification.\n VOIP: VOIP mobile push notification.

              " } } }, diff --git a/codegen/sdk-codegen/aws-models/cloudwatch-logs.json b/codegen/sdk-codegen/aws-models/cloudwatch-logs.json index d03ba9424ba3..14b2ae9ac2fc 100644 --- a/codegen/sdk-codegen/aws-models/cloudwatch-logs.json +++ b/codegen/sdk-codegen/aws-models/cloudwatch-logs.json @@ -1799,6 +1799,12 @@ "target": "com.amazonaws.cloudwatchlogs#FilteredLogEvent" } }, + "com.amazonaws.cloudwatchlogs#ForceUpdate": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.cloudwatchlogs#GetLogEvents": { "type": "operation", "input": { @@ -2890,6 +2896,12 @@ "smithy.api#documentation": "

              An IAM policy document that authorizes cross-account users to deliver their log events\n to the associated destination. This can be up to 5120 bytes.

              ", "smithy.api#required": {} } + }, + "forceUpdate": { + "target": "com.amazonaws.cloudwatchlogs#ForceUpdate", + "traits": { + "smithy.api#documentation": "

              Specify true if you are updating an existing destination policy to grant permission to\n an organization ID instead of granting permission to individual AWS accounts. Before\n you update a destination policy this way, you must first update the subscription\n filters in the accounts that send logs to this destination. If you do not, the subscription\n filters might stop working. By specifying true\n for forceUpdate, you are affirming that you have already updated the subscription \n filters.\n For more information, see \n Updating an existing cross-account subscription\n

              \n

              If you omit this parameter, the default of false is used.

              " + } } } }, @@ -3082,6 +3094,9 @@ { "target": "com.amazonaws.cloudwatchlogs#InvalidParameterException" }, + { + "target": "com.amazonaws.cloudwatchlogs#LimitExceededException" + }, { "target": "com.amazonaws.cloudwatchlogs#ResourceNotFoundException" }, @@ -3170,7 +3185,7 @@ "policyDocument": { "target": "com.amazonaws.cloudwatchlogs#PolicyDocument", "traits": { - "smithy.api#documentation": "

              Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string.\n This parameter is required.

              \n

              The following example creates a resource policy enabling the Route 53 service to put\n DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of \n your CloudWatch Logs resource, such as a log group or log stream.

              \n

              CloudWatch Logs also supports aws:SourceArn\n and aws:SourceAccount\ncondition context keys.

              \n

              In the example resource policy, you would replace the value of SourceArn with the resource making the\n call from Route 53 to CloudWatch Logs and replace the value of SourceAccount with \n the Amazon Web Services account ID making that call.

              \n

              \n

              \n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"Route53LogsToCloudWatchLogs\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"route53.amazonaws.com\"\n ]\n },\n \"Action\": \"logs:PutLogEvents\",\n \"Resource\": \"logArn\",\n \"Condition\": {\n \"ArnLike\": {\n \"aws:SourceArn\": \"myRoute53ResourceArn\"\n },\n \"StringEquals\": {\n \"aws:SourceAccount\": \"myAwsAccountId\"\n }\n }\n }\n ]\n}\n \n

              " + "smithy.api#documentation": "

              Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string.\n This parameter is required.

              \n

              The following example creates a resource policy enabling the Route 53 service to put\n DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of \n your CloudWatch Logs resource, such as a log group or log stream.

              \n

              CloudWatch Logs also supports aws:SourceArn\n and aws:SourceAccount\ncondition context keys.

              \n

              In the example resource policy, you would replace the value of SourceArn with the resource making the\n call from Route 53 to CloudWatch Logs and replace the value of SourceAccount with \n the Amazon Web Services account ID making that call.

              \n

              \n

              \n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"Route53LogsToCloudWatchLogs\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"route53.amazonaws.com\"\n ]\n },\n \"Action\": \"logs:PutLogEvents\",\n \"Resource\": \"logArn\",\n \"Condition\": {\n \"ArnLike\": {\n \"aws:SourceArn\": \"myRoute53ResourceArn\"\n },\n \"StringEquals\": {\n \"aws:SourceAccount\": \"myAwsAccountId\"\n }\n }\n }\n ]\n}\n \n

              " } } } diff --git a/codegen/sdk-codegen/aws-models/comprehendmedical.json b/codegen/sdk-codegen/aws-models/comprehendmedical.json index 4ac6b338a0a2..d39fbf9c12de 100644 --- a/codegen/sdk-codegen/aws-models/comprehendmedical.json +++ b/codegen/sdk-codegen/aws-models/comprehendmedical.json @@ -44,13 +44,13 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

              The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized\n as an attribute.

              " + "smithy.api#documentation": "

              The level of confidence that Comprehend Medical; has that the segment of text is correctly recognized\n as an attribute.

              " } }, "RelationshipScore": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

              The level of confidence that Amazon Comprehend Medical has that this attribute is correctly related to this\n entity.

              " + "smithy.api#documentation": "

              The level of confidence that Comprehend Medical; has that this attribute is correctly related to this\n entity.

              " } }, "RelationshipType": { @@ -138,6 +138,20 @@ } } }, + "com.amazonaws.comprehendmedical#Characters": { + "type": "structure", + "members": { + "OriginalTextCharacters": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The number of characters present in the input text document as processed by Comprehend Medical.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n The number of characters in the input text to be analyzed. \n

              " + } + }, "com.amazonaws.comprehendmedical#ClientRequestTokenString": { "type": "string", "traits": { @@ -246,7 +260,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that gives Comprehend Medical; read access to your input data.

              " } }, "ManifestFilePath": { @@ -280,6 +294,21 @@ }, "com.amazonaws.comprehendmedical#ComprehendMedical_20181030": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "ComprehendMedical", + "arnNamespace": "comprehendmedical", + "cloudFormationName": "ComprehendMedical", + "cloudTrailEventSource": "comprehendmedical.amazonaws.com", + "endpointPrefix": "comprehendmedical" + }, + "aws.auth#sigv4": { + "name": "comprehendmedical" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

              Comprehend Medical; extracts structured information from unstructured clinical text. Use these actions\n to gain insight in your documents.

              ", + "smithy.api#title": "AWS Comprehend Medical" + }, "version": "2018-10-30", "operations": [ { @@ -294,6 +323,9 @@ { "target": "com.amazonaws.comprehendmedical#DescribeRxNormInferenceJob" }, + { + "target": "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJob" + }, { "target": "com.amazonaws.comprehendmedical#DetectEntities" }, @@ -309,6 +341,9 @@ { "target": "com.amazonaws.comprehendmedical#InferRxNorm" }, + { + "target": "com.amazonaws.comprehendmedical#InferSNOMEDCT" + }, { "target": "com.amazonaws.comprehendmedical#ListEntitiesDetectionV2Jobs" }, @@ -321,6 +356,9 @@ { "target": "com.amazonaws.comprehendmedical#ListRxNormInferenceJobs" }, + { + "target": "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobs" + }, { "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2Job" }, @@ -333,6 +371,9 @@ { "target": "com.amazonaws.comprehendmedical#StartRxNormInferenceJob" }, + { + "target": "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJob" + }, { "target": "com.amazonaws.comprehendmedical#StopEntitiesDetectionV2Job" }, @@ -344,23 +385,11 @@ }, { "target": "com.amazonaws.comprehendmedical#StopRxNormInferenceJob" - } - ], - "traits": { - "aws.api#service": { - "sdkId": "ComprehendMedical", - "arnNamespace": "comprehendmedical", - "cloudFormationName": "ComprehendMedical", - "cloudTrailEventSource": "comprehendmedical.amazonaws.com", - "endpointPrefix": "comprehendmedical" - }, - "aws.auth#sigv4": { - "name": "comprehendmedical" }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

              Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions\n to gain insight in your documents.

              ", - "smithy.api#title": "AWS Comprehend Medical" - } + { + "target": "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJob" + } + ] }, "com.amazonaws.comprehendmedical#DescribeEntitiesDetectionV2Job": { "type": "operation", @@ -394,7 +423,7 @@ "JobId": { "target": "com.amazonaws.comprehendmedical#JobId", "traits": { - "smithy.api#documentation": "

              The identifier that Amazon Comprehend Medical generated for the job. The\n StartEntitiesDetectionV2Job operation returns this identifier in its\n response.

              ", + "smithy.api#documentation": "

              The identifier that Comprehend Medical; generated for the job. The\n StartEntitiesDetectionV2Job operation returns this identifier in its\n response.

              ", "smithy.api#required": {} } } @@ -492,7 +521,7 @@ "JobId": { "target": "com.amazonaws.comprehendmedical#JobId", "traits": { - "smithy.api#documentation": "

              The identifier that Amazon Comprehend Medical generated for the job. The StartPHIDetectionJob\n operation returns this identifier in its response.

              ", + "smithy.api#documentation": "

              The identifier that Comprehend Medical; generated for the job. The StartPHIDetectionJob\n operation returns this identifier in its response.

              ", "smithy.api#required": {} } } @@ -558,6 +587,52 @@ } } }, + "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

              \n Gets the properties associated with an InferSNOMEDCT job. Use this operation to get the status of an inference job.\n

              " + } + }, + "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

              \n The identifier that Amazon Comprehend Medical generated for the job. The StartSNOMEDCTInferenceJob operation returns this identifier in its response.\n

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#DescribeSNOMEDCTInferenceJobResponse": { + "type": "structure", + "members": { + "ComprehendMedicalAsyncJobProperties": { + "target": "com.amazonaws.comprehendmedical#ComprehendMedicalAsyncJobProperties" + } + } + }, "com.amazonaws.comprehendmedical#DetectEntities": { "type": "operation", "input": { @@ -611,7 +686,7 @@ "Entities": { "target": "com.amazonaws.comprehendmedical#EntityList", "traits": { - "smithy.api#documentation": "

              The collection of medical entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in the\n detection and analysis. Attributes and traits of the entity are also returned.

              ", + "smithy.api#documentation": "

              The collection of medical entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Comprehend Medical; has in the\n detection and analysis. Attributes and traits of the entity are also returned.

              ", "smithy.api#required": {} } }, @@ -761,7 +836,7 @@ "Entities": { "target": "com.amazonaws.comprehendmedical#EntityList", "traits": { - "smithy.api#documentation": "

              The collection of PHI entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in its\n detection.

              ", + "smithy.api#documentation": "

              The collection of PHI entities extracted from the input text and their associated\n information. For each entity, the response provides the entity text, the entity category,\n where the entity text begins and ends, and the level of confidence that Comprehend Medical; has in its\n detection.

              ", "smithy.api#required": {} } }, @@ -804,7 +879,7 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

              The level of confidence that Amazon Comprehend Medical has in the accuracy of the detection.

              " + "smithy.api#documentation": "

              The level of confidence that Comprehend Medical; has in the accuracy of the detection.

              " } }, "Text": { @@ -856,6 +931,10 @@ "value": "NAME", "name": "NAME" }, + { + "value": "DX_NAME", + "name": "DX_NAME" + }, { "value": "DOSAGE", "name": "DOSAGE" @@ -908,6 +987,10 @@ "value": "TEST_UNITS", "name": "TEST_UNITS" }, + { + "value": "TEST_UNIT", + "name": "TEST_UNIT" + }, { "value": "PROCEDURE_NAME", "name": "PROCEDURE_NAME" @@ -928,6 +1011,10 @@ "value": "CONTACT_POINT", "name": "CONTACT_POINT" }, + { + "value": "PHONE_OR_FAX", + "name": "PHONE_OR_FAX" + }, { "value": "EMAIL", "name": "EMAIL" @@ -936,6 +1023,10 @@ "value": "IDENTIFIER", "name": "IDENTIFIER" }, + { + "value": "ID", + "name": "ID" + }, { "value": "URL", "name": "URL" @@ -1296,7 +1387,7 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

              The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized\n as a trait.

              " + "smithy.api#documentation": "

              The level of confidence that Comprehend Medical; has that the segment of text is correctly recognized\n as a trait.

              " } } }, @@ -1340,7 +1431,7 @@ "min": 20, "max": 2048 }, - "smithy.api#pattern": "arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+" + "smithy.api#pattern": "^arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+$" } }, "com.amazonaws.comprehendmedical#InferICD10CM": { @@ -1479,6 +1570,86 @@ } } }, + "com.amazonaws.comprehendmedical#InferSNOMEDCT": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#InferSNOMEDCTRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#InferSNOMEDCTResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidEncodingException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.comprehendmedical#TextSizeLimitExceededException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

              \n InferSNOMEDCT detects possible medical concepts as entities and links them to codes from the Systematized Nomenclature of Medicine, Clinical Terms (SNOMED-CT) ontology

              " + } + }, + "com.amazonaws.comprehendmedical#InferSNOMEDCTRequest": { + "type": "structure", + "members": { + "Text": { + "target": "com.amazonaws.comprehendmedical#OntologyLinkingBoundedLengthString", + "traits": { + "smithy.api#documentation": "

              \n The input text to be analyzed using InferSNOMEDCT. The text should be a string with 1 to 10000 characters. \n

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#InferSNOMEDCTResponse": { + "type": "structure", + "members": { + "Entities": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityList", + "traits": { + "smithy.api#documentation": "

              \n The collection of medical concept entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. \n

              ", + "smithy.api#required": {} + } + }, + "PaginationToken": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n If the result of the request is truncated, the pagination token can be used to fetch the next page of entities.\n

              " + } + }, + "ModelVersion": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The version of the model used to analyze the documents, in the format n.n.n You can use this information to track the model used for a particular batch of documents.\n

              " + } + }, + "SNOMEDCTDetails": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTDetails", + "traits": { + "smithy.api#documentation": "

              \n The details of the SNOMED-CT revision, including the edition, language, and version date. \n

              " + } + }, + "Characters": { + "target": "com.amazonaws.comprehendmedical#Characters", + "traits": { + "smithy.api#documentation": "

              \n The number of characters in the input request documentation. \n

              " + } + } + } + }, "com.amazonaws.comprehendmedical#InputDataConfig": { "type": "structure", "members": { @@ -1885,6 +2056,69 @@ } } }, + "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + }, + { + "target": "com.amazonaws.comprehendmedical#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              \n Gets a list of InferSNOMEDCT jobs a user has submitted.\n

              " + } + }, + "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsRequest": { + "type": "structure", + "members": { + "Filter": { + "target": "com.amazonaws.comprehendmedical#ComprehendMedicalAsyncJobFilter" + }, + "NextToken": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n Identifies the next page of InferSNOMEDCT results to return.\n

              " + } + }, + "MaxResults": { + "target": "com.amazonaws.comprehendmedical#MaxResultsInteger", + "traits": { + "smithy.api#documentation": "

              \n The maximum number of results to return in each page. The default is 100.\n

              " + } + } + } + }, + "com.amazonaws.comprehendmedical#ListSNOMEDCTInferenceJobsResponse": { + "type": "structure", + "members": { + "ComprehendMedicalAsyncJobPropertiesList": { + "target": "com.amazonaws.comprehendmedical#ComprehendMedicalAsyncJobPropertiesList", + "traits": { + "smithy.api#documentation": "

              \n A list containing the properties of each job that is returned.\n

              " + } + }, + "NextToken": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n Identifies the next page of results to return.\n

              " + } + } + } + }, "com.amazonaws.comprehendmedical#ManifestFilePath": { "type": "string", "traits": { @@ -1929,7 +2163,7 @@ "S3Key": { "target": "com.amazonaws.comprehendmedical#S3Key", "traits": { - "smithy.api#documentation": "

              The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory\n using the job ID so that the output from one job does not overwrite the output of\n another.

              " + "smithy.api#documentation": "

              The path to the output data files in the S3 bucket. Comprehend Medical; creates an output directory\n using the job ID so that the output from one job does not overwrite the output of\n another.

              " } } }, @@ -2005,6 +2239,10 @@ "value": "TEST_UNITS", "name": "TEST_UNITS" }, + { + "value": "TEST_UNIT", + "name": "TEST_UNIT" + }, { "value": "DIRECTION", "name": "DIRECTION" @@ -2315,44 +2553,409 @@ "smithy.api#pattern": ".*" } }, - "com.amazonaws.comprehendmedical#ServiceUnavailableException": { + "com.amazonaws.comprehendmedical#SNOMEDCTAttribute": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.comprehendmedical#String" - } - }, - "traits": { - "smithy.api#documentation": "

              The Amazon Comprehend Medical service is temporarily unavailable. Please wait and then retry your request.\n

              ", - "smithy.api#error": "server", - "smithy.api#httpError": 503 - } - }, - "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2Job": { - "type": "operation", - "input": { - "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobRequest" - }, - "output": { - "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobResponse" - }, - "errors": [ - { - "target": "com.amazonaws.comprehendmedical#InternalServerException" + "Category": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityCategory", + "traits": { + "smithy.api#documentation": "

              \n The category of the detected attribute. Possible categories include MEDICAL_CONDITION, ANATOMY, and TEST_TREATMENT_PROCEDURE.\n

              " + } }, - { - "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + "Type": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTAttributeType", + "traits": { + "smithy.api#documentation": "

              \n The type of attribute. Possible types include DX_NAME, ACUITY, DIRECTION, SYSTEM_ORGAN_SITE,TEST_NAME, TEST_VALUE, TEST_UNIT, PROCEDURE_NAME, and TREATMENT_NAME.\n

              " + } }, - { - "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

              \n The level of confidence that Comprehend Medical has that the segment of text is correctly recognized as an attribute.\n

              " + } }, - { - "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" - } - ], - "traits": { - "smithy.api#documentation": "

              Starts an asynchronous medical entity detection job for a collection of documents. Use the\n DescribeEntitiesDetectionV2Job operation to track the status of a job.

              " - } + "RelationshipScore": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

              \n The level of confidence that Comprehend Medical has that this attribute is correctly related to this entity.\n

              " + } + }, + "RelationshipType": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTRelationshipType", + "traits": { + "smithy.api#documentation": "

              \n The type of relationship that exists between the entity and the related attribute. \n

              " + } + }, + "Id": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The numeric identifier for this attribute. This is a monotonically increasing id unique within this response rather than a global unique identifier.\n

              " + } + }, + "BeginOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The 0-based character offset in the input text that shows where the attribute begins. The offset returns the UTF-8 code point in the string.\n

              " + } + }, + "EndOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The 0-based character offset in the input text that shows where the attribute ends. The offset returns the UTF-8 code point in the string.\n

              " + } + }, + "Text": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The segment of input text extracted as this attribute.\n

              " + } + }, + "Traits": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTraitList", + "traits": { + "smithy.api#documentation": "

              \n Contextual information for an attribute. Examples include signs, symptoms, diagnosis, and negation.\n

              " + } + }, + "SNOMEDCTConcepts": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTConceptList", + "traits": { + "smithy.api#documentation": "

              \n The SNOMED-CT concepts specific to an attribute, along with a score indicating the likelihood of the match.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n The extracted attributes that relate to an entity. An extracted segment of the text that is an attribute of an entity, or otherwise related to an entity, such as the dosage of a medication taken.\n

              " + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTAttributeList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTAttribute" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTAttributeType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACUITY", + "name": "ACUITY" + }, + { + "value": "QUALITY", + "name": "QUALITY" + }, + { + "value": "DIRECTION", + "name": "DIRECTION" + }, + { + "value": "SYSTEM_ORGAN_SITE", + "name": "SYSTEM_ORGAN_SITE" + }, + { + "value": "TEST_VALUE", + "name": "TEST_VALUE" + }, + { + "value": "TEST_UNIT", + "name": "TEST_UNIT" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTConcept": { + "type": "structure", + "members": { + "Description": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The description of the SNOMED-CT concept. \n

              " + } + }, + "Code": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The numeric ID for the SNOMED-CT concept.\n

              " + } + }, + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

              \n The level of confidence Comprehend Medical has that the entity should be linked to the identified SNOMED-CT concept.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n The SNOMED-CT concepts that the entity could refer to, along with a score indicating the likelihood of the match.\n

              " + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTConceptList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTConcept" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTDetails": { + "type": "structure", + "members": { + "Edition": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The edition of SNOMED-CT used. The edition used for the InferSNOMEDCT editions is the US edition. \n

              " + } + }, + "Language": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The language used in the SNOMED-CT ontology. All Amazon Comprehend Medical operations are US English (en).\n

              " + } + }, + "VersionDate": { + "target": "com.amazonaws.comprehendmedical#String", + "traits": { + "smithy.api#documentation": "

              \n The version date of the SNOMED-CT ontology used. \n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n The information about the revision of the SNOMED-CT ontology in the response. Specifically, the details include the SNOMED-CT edition, language, and version date. \n

              " + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntity": { + "type": "structure", + "members": { + "Id": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The numeric identifier for the entity. This is a monotonically increasing id unique within this response rather than a global unique identifier.\n

              " + } + }, + "Text": { + "target": "com.amazonaws.comprehendmedical#OntologyLinkingBoundedLengthString", + "traits": { + "smithy.api#documentation": "

              \n The segment of input text extracted as this entity.\n

              " + } + }, + "Category": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityCategory", + "traits": { + "smithy.api#documentation": "

              \n The category of the detected entity. Possible categories are MEDICAL_CONDITION, ANATOMY, or TEST_TREATMENT_PROCEDURE. \n

              " + } + }, + "Type": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntityType", + "traits": { + "smithy.api#documentation": "

              \n Describes the specific type of entity with category of entities. Possible types include DX_NAME, ACUITY, DIRECTION, SYSTEM_ORGAN_SITE, TEST_NAME, TEST_VALUE, TEST_UNIT, PROCEDURE_NAME, or TREATMENT_NAME. \n

              " + } + }, + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

              \n The level of confidence that Comprehend Medical has in the accuracy of the detected entity.\n

              " + } + }, + "BeginOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The 0-based character offset in the input text that shows where the entity begins. The offset returns the UTF-8 code point in the string.\n

              " + } + }, + "EndOffset": { + "target": "com.amazonaws.comprehendmedical#Integer", + "traits": { + "smithy.api#documentation": "

              \n The 0-based character offset in the input text that shows where the entity ends. The offset returns the UTF-8 code point in the string.\n

              " + } + }, + "Attributes": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTAttributeList", + "traits": { + "smithy.api#documentation": "

              \n An extracted segment of the text that is an attribute of an entity, or otherwise related to an entity, such as the dosage of a medication taken.\n

              " + } + }, + "Traits": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTraitList", + "traits": { + "smithy.api#documentation": "

              \n Contextual information for the entity.\n

              " + } + }, + "SNOMEDCTConcepts": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTConceptList", + "traits": { + "smithy.api#documentation": "

              \n The SNOMED concepts that the entity could refer to, along with a score indicating the likelihood of the match.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. \n

              " + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntityCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MEDICAL_CONDITION", + "name": "MEDICAL_CONDITION" + }, + { + "value": "ANATOMY", + "name": "ANATOMY" + }, + { + "value": "TEST_TREATMENT_PROCEDURE", + "name": "TEST_TREATMENT_PROCEDURE" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntityList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTEntity" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTEntityType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DX_NAME", + "name": "DX_NAME" + }, + { + "value": "TEST_NAME", + "name": "TEST_NAME" + }, + { + "value": "PROCEDURE_NAME", + "name": "PROCEDURE_NAME" + }, + { + "value": "TREATMENT_NAME", + "name": "TREATMENT_NAME" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTRelationshipType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACUITY", + "name": "ACUITY" + }, + { + "value": "QUALITY", + "name": "QUALITY" + }, + { + "value": "TEST_VALUE", + "name": "TEST_VALUE" + }, + { + "value": "TEST_UNITS", + "name": "TEST_UNITS" + }, + { + "value": "DIRECTION", + "name": "DIRECTION" + }, + { + "value": "SYSTEM_ORGAN_SITE", + "name": "SYSTEM_ORGAN_SITE" + } + ] + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTTrait": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTraitName", + "traits": { + "smithy.api#documentation": "

              \n The name or contextual description of a detected trait.\n

              " + } + }, + "Score": { + "target": "com.amazonaws.comprehendmedical#Float", + "traits": { + "smithy.api#documentation": "

              \n The level of confidence that Comprehend Medical has in the accuracy of a detected trait.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n Contextual information for an entity.\n

              " + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTTraitList": { + "type": "list", + "member": { + "target": "com.amazonaws.comprehendmedical#SNOMEDCTTrait" + } + }, + "com.amazonaws.comprehendmedical#SNOMEDCTTraitName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NEGATION", + "name": "NEGATION" + }, + { + "value": "DIAGNOSIS", + "name": "DIAGNOSIS" + }, + { + "value": "SIGN", + "name": "SIGN" + }, + { + "value": "SYMPTOM", + "name": "SYMPTOM" + } + ] + } + }, + "com.amazonaws.comprehendmedical#ServiceUnavailableException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.comprehendmedical#String" + } + }, + "traits": { + "smithy.api#documentation": "

              The Comprehend Medical; service is temporarily unavailable. Please wait and then retry your request.\n

              ", + "smithy.api#error": "server", + "smithy.api#httpError": 503 + } + }, + "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2Job": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

              Starts an asynchronous medical entity detection job for a collection of documents. Use the\n DescribeEntitiesDetectionV2Job operation to track the status of a job.

              " + } }, "com.amazonaws.comprehendmedical#StartEntitiesDetectionV2JobRequest": { "type": "structure", @@ -2360,21 +2963,21 @@ "InputDataConfig": { "target": "com.amazonaws.comprehendmedical#InputDataConfig", "traits": { - "smithy.api#documentation": "

              Specifies the format and location of the input data for the job.

              ", + "smithy.api#documentation": "

              The input configuration that specifies the format and location of the input data for the job.

              ", "smithy.api#required": {} } }, "OutputDataConfig": { "target": "com.amazonaws.comprehendmedical#OutputDataConfig", "traits": { - "smithy.api#documentation": "

              Specifies where to send the output files.

              ", + "smithy.api#documentation": "

              The output configuration that specifies where to send the output files.

              ", "smithy.api#required": {} } }, "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", "smithy.api#required": {} } }, @@ -2387,7 +2990,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

              ", + "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one for you.

              ", "smithy.api#idempotencyToken": {} } }, @@ -2400,7 +3003,7 @@ "LanguageCode": { "target": "com.amazonaws.comprehendmedical#LanguageCode", "traits": { - "smithy.api#documentation": "

              The language of the input documents. All documents must be in the same language.

              ", + "smithy.api#documentation": "

              The language of the input documents. All documents must be in the same language. Comprehend Medical; processes files in US English (en).

              ", "smithy.api#required": {} } } @@ -2463,7 +3066,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", "smithy.api#required": {} } }, @@ -2476,7 +3079,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

              ", + "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one.

              ", "smithy.api#idempotencyToken": {} } }, @@ -2552,7 +3155,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", "smithy.api#required": {} } }, @@ -2565,7 +3168,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

              ", + "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one.

              ", "smithy.api#idempotencyToken": {} } }, @@ -2641,7 +3244,7 @@ "DataAccessRoleArn": { "target": "com.amazonaws.comprehendmedical#IamRoleArn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Amazon Comprehend Medical read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that\n grants Comprehend Medical; read access to your input data. For more information, see Role-Based Permissions Required for Asynchronous Operations.

              ", "smithy.api#required": {} } }, @@ -2654,7 +3257,7 @@ "ClientRequestToken": { "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", "traits": { - "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical\n generates one.

              ", + "smithy.api#documentation": "

              A unique identifier for the request. If you don't set the client request token, Comprehend Medical;\n generates one.

              ", "smithy.api#idempotencyToken": {} } }, @@ -2684,6 +3287,93 @@ } } }, + "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

              \n Starts an asynchronous job to detect medical concepts and link them to the SNOMED-CT ontology. Use the DescribeSNOMEDCTInferenceJob operation to track the status of a job.\n

              " + } + }, + "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobRequest": { + "type": "structure", + "members": { + "InputDataConfig": { + "target": "com.amazonaws.comprehendmedical#InputDataConfig", + "traits": { + "smithy.api#required": {} + } + }, + "OutputDataConfig": { + "target": "com.amazonaws.comprehendmedical#OutputDataConfig", + "traits": { + "smithy.api#required": {} + } + }, + "DataAccessRoleArn": { + "target": "com.amazonaws.comprehendmedical#IamRoleArn", + "traits": { + "smithy.api#documentation": "

              \n The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. \n

              ", + "smithy.api#required": {} + } + }, + "JobName": { + "target": "com.amazonaws.comprehendmedical#JobName", + "traits": { + "smithy.api#documentation": "

              \n The user generated name the asynchronous InferSNOMEDCT job.\n

              " + } + }, + "ClientRequestToken": { + "target": "com.amazonaws.comprehendmedical#ClientRequestTokenString", + "traits": { + "smithy.api#documentation": "

              \n A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one.\n

              ", + "smithy.api#idempotencyToken": {} + } + }, + "KMSKey": { + "target": "com.amazonaws.comprehendmedical#KMSKey", + "traits": { + "smithy.api#documentation": "

              \n An AWS Key Management Service key used to encrypt your output files. If you do not specify a key, the files are written in plain text.\n

              " + } + }, + "LanguageCode": { + "target": "com.amazonaws.comprehendmedical#LanguageCode", + "traits": { + "smithy.api#documentation": "

              \n The language of the input documents. All documents must be in the same language.\n

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#StartSNOMEDCTInferenceJobResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

              \n The identifier generated for the job. To get the status of a job, use this identifier with the StartSNOMEDCTInferenceJob operation.\n

              " + } + } + } + }, "com.amazonaws.comprehendmedical#StopEntitiesDetectionV2Job": { "type": "operation", "input": { @@ -2868,6 +3558,55 @@ } } }, + "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobRequest" + }, + "output": { + "target": "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.comprehendmedical#InternalServerException" + }, + { + "target": "com.amazonaws.comprehendmedical#InvalidRequestException" + }, + { + "target": "com.amazonaws.comprehendmedical#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.comprehendmedical#TooManyRequestsException" + } + ], + "traits": { + "smithy.api#documentation": "

              \n Stops an InferSNOMEDCT inference job in progress.\n

              " + } + }, + "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobRequest": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

              \n The job id of the asynchronous InferSNOMEDCT job to be stopped.\n

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.comprehendmedical#StopSNOMEDCTInferenceJobResponse": { + "type": "structure", + "members": { + "JobId": { + "target": "com.amazonaws.comprehendmedical#JobId", + "traits": { + "smithy.api#documentation": "

              \n The identifier generated for the job. To get the status of job, use this identifier with the DescribeSNOMEDCTInferenceJob operation.\n

              " + } + } + } + }, "com.amazonaws.comprehendmedical#String": { "type": "string", "traits": { @@ -2917,7 +3656,7 @@ "Score": { "target": "com.amazonaws.comprehendmedical#Float", "traits": { - "smithy.api#documentation": "

              The level of confidence that Amazon Comprehend Medical has in the accuracy of this trait.

              " + "smithy.api#documentation": "

              The level of confidence that Comprehend Medical; has in the accuracy of this trait.

              " } } }, @@ -2937,7 +3676,7 @@ "Type": { "target": "com.amazonaws.comprehendmedical#EntityType", "traits": { - "smithy.api#documentation": "

              The type of the attribute, could be one of the following values: \"MEDICATION\",\n \"MEDICAL_CONDITION\", \"ANATOMY\", \"TEST_AND_TREATMENT_PROCEDURE\" or\n \"PROTECTED_HEALTH_INFORMATION\".

              " + "smithy.api#documentation": "

              The type of the unmapped attribute, could be one of the following values: \"MEDICATION\",\n \"MEDICAL_CONDITION\", \"ANATOMY\", \"TEST_AND_TREATMENT_PROCEDURE\" or\n \"PROTECTED_HEALTH_INFORMATION\".

              " } }, "Attribute": { @@ -2948,7 +3687,7 @@ } }, "traits": { - "smithy.api#documentation": "

              An attribute that we extracted, but were unable to relate to an entity.

              " + "smithy.api#documentation": "

              An attribute that was extracted, but Comprehend Medical; was unable to relate to an entity.

              " } }, "com.amazonaws.comprehendmedical#UnmappedAttributeList": { diff --git a/codegen/sdk-codegen/aws-models/customer-profiles.json b/codegen/sdk-codegen/aws-models/customer-profiles.json index 3b7a9a4e456c..d9c7040cb0db 100644 --- a/codegen/sdk-codegen/aws-models/customer-profiles.json +++ b/codegen/sdk-codegen/aws-models/customer-profiles.json @@ -1320,7 +1320,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

              \n \n

              You need to give Customer Profiles service principal write permission to your S3 bucket.\n Otherwise, you'll get an exception in the API response. For an example policy, see\n Amazon Connect Customer Profiles cross-service confused deputy prevention.\n

              \n
              " + "smithy.api#documentation": "

              Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

              \n \n

              You need to give Customer Profiles service principal write permission to your S3 bucket.\n Otherwise, you'll get an exception in the API response. For an example policy, see\n Amazon Connect Customer Profiles cross-service confused deputy prevention.

              \n
              " } }, "com.amazonaws.customerprofiles#ExportingLocation": { @@ -2001,8 +2001,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

              The name of the profile object type.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The name of the profile object type.

              " } }, "CreatedAt": { @@ -2024,6 +2023,12 @@ "traits": { "smithy.api#documentation": "

              The tags used to organize, track, or control access for this resource.

              " } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

              A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

              " + } } } }, @@ -2053,7 +2058,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This API is in preview release for Amazon Connect and subject to change.

              \n

              Before calling this API, use CreateDomain or\n UpdateDomain to\n enable identity resolution: set Matching to true.

              \n

              GetMatches returns potentially matching profiles, based on the results of the latest run\n of a machine learning process.

              \n \n

              The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

              \n

              After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

              \n
              \n\n

              Amazon Connect uses the following profile attributes to identify matches:

              \n
                \n
              • \n

                PhoneNumber

                \n
              • \n
              • \n

                HomePhoneNumber

                \n
              • \n
              • \n

                BusinessPhoneNumber

                \n
              • \n
              • \n

                MobilePhoneNumber

                \n
              • \n
              • \n

                EmailAddress

                \n
              • \n
              • \n

                PersonalEmailAddress

                \n
              • \n
              • \n

                BusinessEmailAddress

                \n
              • \n
              • \n

                FullName

                \n
              • \n
              • \n

                BusinessName

                \n
              • \n
              \n

              For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing\n email addresses such as JOHN_DOE@ANYCOMPANY.COM and\n johndoe@anycompany.com, or different phone number\n formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

              ", + "smithy.api#documentation": "

              Before calling this API, use CreateDomain or\n UpdateDomain to\n enable identity resolution: set Matching to true.

              \n

              GetMatches returns potentially matching profiles, based on the results of the latest run\n of a machine learning process.

              \n \n

              The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

              \n

              After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

              \n
              \n\n

              Amazon Connect uses the following profile attributes to identify matches:

              \n
                \n
              • \n

                PhoneNumber

                \n
              • \n
              • \n

                HomePhoneNumber

                \n
              • \n
              • \n

                BusinessPhoneNumber

                \n
              • \n
              • \n

                MobilePhoneNumber

                \n
              • \n
              • \n

                EmailAddress

                \n
              • \n
              • \n

                PersonalEmailAddress

                \n
              • \n
              • \n

                BusinessEmailAddress

                \n
              • \n
              • \n

                FullName

                \n
              • \n
              • \n

                BusinessName

                \n
              • \n
              \n

              For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing\n email addresses such as JOHN_DOE@ANYCOMPANY.COM and\n johndoe@anycompany.com, or different phone number\n formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

              ", "smithy.api#http": { "method": "GET", "uri": "/domains/{DomainName}/matches", @@ -2867,8 +2872,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

              The name of the profile object type.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The name of the profile object type.

              " } }, "CreatedAt": { @@ -2890,6 +2894,12 @@ "traits": { "smithy.api#documentation": "

              The tags used to organize, track, or control access for this resource.

              " } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

              A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

              " + } } }, "traits": { @@ -3290,7 +3300,7 @@ "ObjectFilter": { "target": "com.amazonaws.customerprofiles#ObjectFilter", "traits": { - "smithy.api#documentation": "

              Applies a filter to the response to include profile objects with the specified index\n values. This filter is only supported for ObjectTypeName _asset and _case.

              " + "smithy.api#documentation": "

              Applies a filter to the response to include profile objects with the specified index\n values. This filter is only supported for ObjectTypeName _asset, _case and _order.

              " } } } @@ -3594,7 +3604,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This API is in preview release for Amazon Connect and subject to change.

              \n

              Runs an AWS Lambda job that does the following:

              \n
                \n
              1. \n

                All the profileKeys in the ProfileToBeMerged will be moved to the\n main profile.

                \n
              2. \n
              3. \n

                All the objects in the ProfileToBeMerged will be moved to the main\n profile.

                \n
              4. \n
              5. \n

                All the ProfileToBeMerged will be deleted at the end.

                \n
              6. \n
              7. \n

                All the profileKeys in the ProfileIdsToBeMerged will be moved to the\n main profile.

                \n
              8. \n
              9. \n

                Standard fields are merged as follows:

                \n
                  \n
                1. \n

                  Fields are always \"union\"-ed if there are no conflicts in standard fields or\n attributeKeys.

                  \n
                2. \n
                3. \n

                  When there are conflicting fields:

                  \n\n
                    \n
                  1. \n

                    If no SourceProfileIds entry is specified, the main\n Profile value is always taken.

                    \n
                  2. \n
                  3. \n

                    If a SourceProfileIds entry is specified, the specified\n profileId is always taken, even if it is a NULL value.

                    \n
                  4. \n
                  \n
                4. \n
                \n
              10. \n
              \n

              You can use MergeProfiles together with GetMatches, which\n returns potentially matching profiles, or use it with the results of another matching\n system. After profiles have been merged, they cannot be separated (unmerged).

              ", + "smithy.api#documentation": "

              Runs an AWS Lambda job that does the following:

              \n
                \n
              1. \n

                All the profileKeys in the ProfileToBeMerged will be moved to the\n main profile.

                \n
              2. \n
              3. \n

                All the objects in the ProfileToBeMerged will be moved to the main\n profile.

                \n
              4. \n
              5. \n

                All the ProfileToBeMerged will be deleted at the end.

                \n
              6. \n
              7. \n

                All the profileKeys in the ProfileIdsToBeMerged will be moved to the\n main profile.

                \n
              8. \n
              9. \n

                Standard fields are merged as follows:

                \n
                  \n
                1. \n

                  Fields are always \"union\"-ed if there are no conflicts in standard fields or\n attributeKeys.

                  \n
                2. \n
                3. \n

                  When there are conflicting fields:

                  \n\n
                    \n
                  1. \n

                    If no SourceProfileIds entry is specified, the main\n Profile value is always taken.

                    \n
                  2. \n
                  3. \n

                    If a SourceProfileIds entry is specified, the specified\n profileId is always taken, even if it is a NULL value.

                    \n
                  4. \n
                  \n
                4. \n
                \n
              10. \n
              \n

              You can use MergeProfiles together with GetMatches, which\n returns potentially matching profiles, or use it with the results of another matching\n system. After profiles have been merged, they cannot be separated (unmerged).

              ", "smithy.api#http": { "method": "POST", "uri": "/domains/{DomainName}/profiles/objects/merge", @@ -3662,7 +3672,7 @@ "KeyName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

              A searchable identifier of a standard profile object. The predefined keys you can use to\n search for _asset include: _assetId, _assetName, _serialNumber. The predefined keys you can\n use to search for _case include: _caseId.

              ", + "smithy.api#documentation": "

              A searchable identifier of a standard profile object. The predefined keys you can use to\n search for _asset include: _assetId, _assetName, _serialNumber. The predefined keys you can\n use to search for _case include: _caseId. The predefined keys you can use to search for\n _order include: _orderId.

              ", "smithy.api#required": {} } }, @@ -3675,7 +3685,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The filter applied to ListProfileObjects response to include profile objects with the\n specified index values. This filter is only supported for ObjectTypeName _asset and\n _case.

              " + "smithy.api#documentation": "

              The filter applied to ListProfileObjects response to include profile objects with the\n specified index values. This filter is only supported for ObjectTypeName _asset, _case and\n _order.

              " } }, "com.amazonaws.customerprofiles#ObjectTypeField": { @@ -3710,7 +3720,7 @@ "StandardIdentifiers": { "target": "com.amazonaws.customerprofiles#StandardIdentifierList", "traits": { - "smithy.api#documentation": "

              The types of keys that a ProfileObject can have. Each ProfileObject can have only 1\n UNIQUE key but multiple PROFILE keys. PROFILE, ASSET or CASE means that this key can be\n used to tie an object to a PROFILE, ASSET or CASE respectively. UNIQUE means that it can be\n used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to\n search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is\n only used to match a profile but is not persisted to be used for searching of the profile.\n A NEW_ONLY key is only used if the profile does not already exist before the object is\n ingested, otherwise it is only used for matching objects to profiles.

              " + "smithy.api#documentation": "

              The types of keys that a ProfileObject can have. Each ProfileObject can have only 1\n UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER means that this key can be\n used to tie an object to a PROFILE, ASSET, CASE, or ORDER respectively. UNIQUE means that it can be\n used to uniquely identify an object. If a key a is marked as SECONDARY, it will be used to\n search for profiles after all other PROFILE keys have been searched. A LOOKUP_ONLY key is\n only used to match a profile but is not persisted to be used for searching of the profile.\n A NEW_ONLY key is only used if the profile does not already exist before the object is\n ingested, otherwise it is only used for matching objects to profiles.

              " } }, "FieldNames": { @@ -3730,6 +3740,15 @@ "target": "com.amazonaws.customerprofiles#ObjectTypeKey" } }, + "com.amazonaws.customerprofiles#ObjectTypeNames": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "value": { + "target": "com.amazonaws.customerprofiles#typeName" + } + }, "com.amazonaws.customerprofiles#OperatorPropertiesKeys": { "type": "string", "traits": { @@ -4058,8 +4077,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

              The name of the profile object type.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The name of the profile object type.

              " } }, "Tags": { @@ -4073,6 +4091,12 @@ "traits": { "smithy.api#documentation": "

              The configuration that controls how Customer Profiles retrieves data from the\n source.

              " } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

              A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

              " + } } } }, @@ -4096,8 +4120,7 @@ "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

              The name of the profile object type.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The name of the profile object type.

              " } }, "CreatedAt": { @@ -4119,6 +4142,12 @@ "traits": { "smithy.api#documentation": "

              The tags used to organize, track, or control access for this resource.

              " } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

              A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

              " + } } } }, @@ -4281,7 +4310,7 @@ "SourceLastUpdatedTimestampFormat": { "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

              The format of your sourceLastUpdatedTimestamp that was previously set up.\n

              " + "smithy.api#documentation": "

              The format of your sourceLastUpdatedTimestamp that was previously set up.\n

              " } }, "Fields": { @@ -4796,7 +4825,7 @@ "KeyName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

              A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId,\n _fullName, _phone, _email, _ctrContactId, _marketoLeadId, _salesforceAccountId,\n _salesforceContactId, _zendeskUserId, _zendeskExternalId, _serviceNowSystemId.

              ", + "smithy.api#documentation": "

              A searchable identifier of a customer profile. The predefined keys you can use\n to search include: _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone,\n _email, _ctrContactId, _marketoLeadId, _salesforceAccountId, _salesforceContactId,\n _salesforceAssetId, _zendeskUserId, _zendeskExternalId, _zendeskTicketId,\n _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId,\n _shopifyOrderId.

              ", "smithy.api#required": {} } }, @@ -5068,6 +5097,10 @@ { "value": "NEW_ONLY", "name": "NEW_ONLY" + }, + { + "value": "ORDER", + "name": "ORDER" } ] } diff --git a/codegen/sdk-codegen/aws-models/datasync.json b/codegen/sdk-codegen/aws-models/datasync.json index 865ed07b89f3..7c998cea417d 100644 --- a/codegen/sdk-codegen/aws-models/datasync.json +++ b/codegen/sdk-codegen/aws-models/datasync.json @@ -318,6 +318,68 @@ "smithy.api#documentation": "

              CreateLocationEfs

              " } }, + "com.amazonaws.datasync#CreateLocationFsxLustre": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#CreateLocationFsxLustreRequest" + }, + "output": { + "target": "com.amazonaws.datasync#CreateLocationFsxLustreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

              Creates an endpoint for an Amazon FSx for Lustre file system.

              " + } + }, + "com.amazonaws.datasync#CreateLocationFsxLustreRequest": { + "type": "structure", + "members": { + "FsxFilesystemArn": { + "target": "com.amazonaws.datasync#FsxFilesystemArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the FSx for Lustre file system.

              ", + "smithy.api#required": {} + } + }, + "SecurityGroupArns": { + "target": "com.amazonaws.datasync#Ec2SecurityGroupArnList", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the security groups that are used to configure the FSx for Lustre file system.

              ", + "smithy.api#required": {} + } + }, + "Subdirectory": { + "target": "com.amazonaws.datasync#FsxLustreSubdirectory", + "traits": { + "smithy.api#documentation": "

              A subdirectory in the location's path. This subdirectory in the FSx for Lustre file system is used to read data from the FSx for Lustre source location or write data to the FSx for Lustre destination.

              " + } + }, + "Tags": { + "target": "com.amazonaws.datasync#InputTagList", + "traits": { + "smithy.api#documentation": "

              The key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.

              " + } + } + } + }, + "com.amazonaws.datasync#CreateLocationFsxLustreResponse": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the FSx for Lustre file system location that's\n created.

              " + } + } + } + }, "com.amazonaws.datasync#CreateLocationFsxWindows": { "type": "operation", "input": { @@ -344,7 +406,7 @@ "Subdirectory": { "target": "com.amazonaws.datasync#FsxWindowsSubdirectory", "traits": { - "smithy.api#documentation": "

              A subdirectory in the location’s path. This subdirectory in the Amazon FSx for Windows\n File Server file system is used to read data from the Amazon FSx for Windows File Server\n source location or write data to the FSx for Windows File Server destination.

              " + "smithy.api#documentation": "

              A subdirectory in the location's path. This subdirectory in the Amazon FSx for Windows\n File Server file system is used to read data from the Amazon FSx for Windows File Server\n source location or write data to the FSx for Windows File Server destination.

              " } }, "FsxFilesystemArn": { @@ -357,7 +419,7 @@ "SecurityGroupArns": { "target": "com.amazonaws.datasync#Ec2SecurityGroupArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the security groups that are to use to configure the\n FSx for Windows File Server file system.

              ", + "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the security groups that are used to configure the\n FSx for Windows File Server file system.

              ", "smithy.api#required": {} } }, @@ -1229,6 +1291,67 @@ "smithy.api#documentation": "

              DescribeLocationEfsResponse

              " } }, + "com.amazonaws.datasync#DescribeLocationFsxLustre": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#DescribeLocationFsxLustreRequest" + }, + "output": { + "target": "com.amazonaws.datasync#DescribeLocationFsxLustreResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns metadata, such as the path information about an Amazon FSx for Lustre\n location.

              " + } + }, + "com.amazonaws.datasync#DescribeLocationFsxLustreRequest": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the FSx for Lustre location to describe.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.datasync#DescribeLocationFsxLustreResponse": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the FSx for Lustre location that was described.

              " + } + }, + "LocationUri": { + "target": "com.amazonaws.datasync#LocationUri", + "traits": { + "smithy.api#documentation": "

              The URI of the FSx for Lustre location that was described.

              " + } + }, + "SecurityGroupArns": { + "target": "com.amazonaws.datasync#Ec2SecurityGroupArnList", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the security groups that are configured for the FSx for Lustre file system.

              " + } + }, + "CreationTime": { + "target": "com.amazonaws.datasync#Time", + "traits": { + "smithy.api#documentation": "

              The time that the FSx for Lustre location was created.

              " + } + } + } + }, "com.amazonaws.datasync#DescribeLocationFsxWindows": { "type": "operation", "input": { @@ -2198,6 +2321,9 @@ { "target": "com.amazonaws.datasync#CreateLocationEfs" }, + { + "target": "com.amazonaws.datasync#CreateLocationFsxLustre" + }, { "target": "com.amazonaws.datasync#CreateLocationFsxWindows" }, @@ -2234,6 +2360,9 @@ { "target": "com.amazonaws.datasync#DescribeLocationEfs" }, + { + "target": "com.amazonaws.datasync#DescribeLocationFsxLustre" + }, { "target": "com.amazonaws.datasync#DescribeLocationFsxWindows" }, @@ -2315,6 +2444,16 @@ "smithy.api#pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$" } }, + "com.amazonaws.datasync#FsxLustreSubdirectory": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + }, + "smithy.api#pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$" + } + }, "com.amazonaws.datasync#FsxWindowsSubdirectory": { "type": "string", "traits": { @@ -3024,7 +3163,7 @@ "LocationUri": { "target": "com.amazonaws.datasync#LocationUri", "traits": { - "smithy.api#documentation": "

              Represents a list of URLs of a location. LocationUri returns an array that\n contains a list of locations when the ListLocations operation is\n called.

              \n

              Format: TYPE://GLOBAL_ID/SUBDIR.

              \n

              TYPE designates the type of location. Valid values: NFS | EFS | S3.

              \n

              GLOBAL_ID is the globally unique identifier of the resource that backs the location. An\n example for EFS is us-east-2.fs-abcd1234. An example for Amazon S3 is the bucket\n name, such as myBucket. An example for NFS is a valid IPv4 address or a host name\n compliant with Domain Name Service (DNS).

              \n

              SUBDIR is a valid file system path, delimited by forward slashes as is the *nix\n convention. For NFS and Amazon EFS, it's the export path to mount the location. For\n Amazon S3, it's the prefix path that you mount to and treat as the root of the\n location.

              \n

              " + "smithy.api#documentation": "

              Represents a list of URIs of a location. LocationUri returns an array that\n contains a list of locations when the ListLocations operation is\n called.

              \n

              Format: TYPE://GLOBAL_ID/SUBDIR.

              \n

              TYPE designates the type of location. Valid values: NFS | EFS | S3.

              \n

              GLOBAL_ID is the globally unique identifier of the resource that backs the location. An\n example for EFS is us-east-2.fs-abcd1234. An example for Amazon S3 is the bucket\n name, such as myBucket. An example for NFS is a valid IPv4 address or a host name\n compliant with Domain Name Service (DNS).

              \n

              SUBDIR is a valid file system path, delimited by forward slashes as is the *nix\n convention. For NFS and Amazon EFS, it's the export path to mount the location. For\n Amazon S3, it's the prefix path that you mount to and treat as the root of the\n location.

              \n

              " } } }, @@ -3039,7 +3178,7 @@ "min": 0, "max": 4356 }, - "smithy.api#pattern": "^(efs|nfs|s3|smb|fsxw)://[a-zA-Z0-9.\\-]+$" + "smithy.api#pattern": "^(efs|nfs|s3|smb|fsxw|fsxl)://[a-zA-Z0-9.\\-]+$" } }, "com.amazonaws.datasync#LogGroupArn": { diff --git a/codegen/sdk-codegen/aws-models/devops-guru.json b/codegen/sdk-codegen/aws-models/devops-guru.json index a5a248715025..d0f2c1ef953b 100644 --- a/codegen/sdk-codegen/aws-models/devops-guru.json +++ b/codegen/sdk-codegen/aws-models/devops-guru.json @@ -1439,6 +1439,12 @@ "traits": { "smithy.api#documentation": "

              The pagination token to use to retrieve \n the next page of results for this operation. If there are no more pages, this value is null.

              " } + }, + "Tags": { + "target": "com.amazonaws.devopsguru#TagHealths", + "traits": { + "smithy.api#documentation": "

              Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support\n \t\ttagging, so you can assign the same tag to resources from different services to indicate\n \t\tthat the resources are related. For example, you can assign the same tag to an Amazon DynamoDB\n \t\ttable resource that you assign to an Lambda function. For more information about\n \t\tusing tags, see the Tagging\n \t\t\tbest practices whitepaper.

              \n \t

              Each Amazon Web Services tag has two parts.

              \n \t
                \n
              • \n \t\t\t

                A tag key (for example, CostCenter,\n \t\t\t\tEnvironment, Project, or Secret). Tag\n \t\t\t\tkeys are case-sensitive.

                \n \t\t
              • \n
              • \n \t\t\t

                An optional field known as a tag value (for example,\n \t\t\t\t111122223333, Production, or a team\n \t\t\t\tname). Omitting 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.

                \n \t\t
              • \n
              \n \t

              Together these are known as key-value pairs.

              \n \t \n\t\t

              The string used for a key in a tag that you use to define your resource coverage must begin with the\n\t\t\tprefix Devops-guru-. The tag key might be\n\t\t\tDevops-guru-deployment-application or\n\t\t\tDevops-guru-rds-application. While keys are case-sensitive, the\n\t\t\tcase of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a\n\t\t\tkey named devops-guru-rds and a key named\n\t\t\tDevOps-Guru-RDS. Possible key/value pairs in your\n\t\t\tapplication might be Devops-Guru-production-application/RDS or\n\t\t\tDevops-Guru-production-application/containers.

              \n\t
              " + } } } }, @@ -3070,6 +3076,10 @@ { "value": "AWS_ACCOUNT", "name": "AWS_ACCOUNT" + }, + { + "value": "AWS_TAGS", + "name": "AWS_TAGS" } ] } diff --git a/codegen/sdk-codegen/aws-models/ec2.json b/codegen/sdk-codegen/aws-models/ec2.json index a7c167acc979..df6c6581b2c9 100644 --- a/codegen/sdk-codegen/aws-models/ec2.json +++ b/codegen/sdk-codegen/aws-models/ec2.json @@ -23007,6 +23007,30 @@ "outputToken": "NextToken", "items": "InternetGateways", "pageSize": "MaxResults" + }, + "smithy.api#suppress": ["WaitableTraitInvalidErrorType"], + "smithy.waiters#waitable": { + "InternetGatewayExists": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "length(InternetGateways[].InternetGatewayId) > `0`", + "expected": "true", + "comparator": "booleanEquals" + } + } + }, + { + "state": "retry", + "matcher": { + "errorType": "InvalidInternetGateway.NotFound" + } + } + ], + "minDelay": 5 + } } } }, @@ -32341,7 +32365,7 @@ "type": "structure", "members": { "ElasticGpuId": { - "target": "com.amazonaws.ec2#String", + "target": "com.amazonaws.ec2#ElasticGpuId", "traits": { "aws.protocols#ec2QueryName": "ElasticGpuId", "smithy.api#documentation": "

              The ID of the Elastic Graphics accelerator.

              ", diff --git a/codegen/sdk-codegen/aws-models/finspace-data.json b/codegen/sdk-codegen/aws-models/finspace-data.json index f8efcb9a70be..ffda95d6d705 100644 --- a/codegen/sdk-codegen/aws-models/finspace-data.json +++ b/codegen/sdk-codegen/aws-models/finspace-data.json @@ -250,6 +250,12 @@ "smithy.api#documentation": "

              Time until which the Changeset is active. The value is determined as Epoch time in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.

              " } }, + "activeFromTimestamp": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#box": {} + } + }, "updatesChangesetId": { "target": "com.amazonaws.finspacedata#ChangesetId", "traits": { @@ -696,8 +702,7 @@ "datasetDescription": { "target": "com.amazonaws.finspacedata#DatasetDescription", "traits": { - "smithy.api#documentation": "

              Description of a Dataset.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Description of a Dataset.

              " } }, "ownerInfo": { @@ -716,8 +721,7 @@ "alias": { "target": "com.amazonaws.finspacedata#AliasString", "traits": { - "smithy.api#documentation": "

              The unique resource identifier for a Dataset.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The unique resource identifier for a Dataset.

              " } }, "schemaDefinition": { @@ -792,6 +796,12 @@ "smithy.api#documentation": "

              Destination type for a Dataview.

              \n
                \n
              • \n

                \n GLUE_TABLE - Glue table destination type.

                \n
              • \n
              ", "smithy.api#required": {} } + }, + "s3DestinationExportFileFormat": { + "target": "com.amazonaws.finspacedata#ExportFileFormat" + }, + "s3DestinationExportFileFormatOptions": { + "target": "com.amazonaws.finspacedata#S3DestinationFormatOptions" } }, "traits": { @@ -1038,7 +1048,7 @@ "smithy.api#documentation": "Description of a dataset", "smithy.api#length": { "min": 1, - "max": 256 + "max": 1000 }, "smithy.api#pattern": "^[\\s\\S]*\\S[\\s\\S]*$" } @@ -1281,6 +1291,22 @@ "com.amazonaws.finspacedata#ErrorMessage2": { "type": "string" }, + "com.amazonaws.finspacedata#ExportFileFormat": { + "type": "string", + "traits": { + "smithy.api#documentation": "Data View Export File Format", + "smithy.api#enum": [ + { + "value": "PARQUET", + "name": "PARQUET" + }, + { + "value": "DELIMITED_TEXT", + "name": "DELIMITED_TEXT" + } + ] + } + }, "com.amazonaws.finspacedata#FormatParams": { "type": "map", "key": { @@ -1418,6 +1444,12 @@ "smithy.api#documentation": "

              Time until which the Changeset is active. The value is determined as Epoch time in milliseconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.

              " } }, + "activeFromTimestamp": { + "target": "com.amazonaws.finspacedata#TimestampEpoch", + "traits": { + "smithy.api#box": {} + } + }, "updatesChangesetId": { "target": "com.amazonaws.finspacedata#ChangesetId", "traits": { @@ -2272,6 +2304,15 @@ } } }, + "com.amazonaws.finspacedata#S3DestinationFormatOptions": { + "type": "map", + "key": { + "target": "com.amazonaws.finspacedata#StringMapKey" + }, + "value": { + "target": "com.amazonaws.finspacedata#StringMapValue" + } + }, "com.amazonaws.finspacedata#SchemaDefinition": { "type": "structure", "members": { @@ -2582,8 +2623,7 @@ "alias": { "target": "com.amazonaws.finspacedata#AliasString", "traits": { - "smithy.api#documentation": "

              The unique resource identifier for a Dataset.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The unique resource identifier for a Dataset.

              " } }, "schemaDefinition": { diff --git a/codegen/sdk-codegen/aws-models/forecast.json b/codegen/sdk-codegen/aws-models/forecast.json index 6b6854d6dbb5..e74a2ad4459b 100644 --- a/codegen/sdk-codegen/aws-models/forecast.json +++ b/codegen/sdk-codegen/aws-models/forecast.json @@ -42,7 +42,7 @@ "Configuration": { "target": "com.amazonaws.forecast#Configuration", "traits": { - "smithy.api#documentation": "

              \n Weather Index\n

              \n

              To enable the Weather Index, do not specify a value for\n Configuration.

              \n

              \n Holidays\n

              \n

              To enable Holidays, specify a country with one of the following two-letter country\n codes:

              \n
                \n
              • \n

                \"AL\" - ALBANIA

                \n
              • \n
              • \n

                \"AR\" - ARGENTINA

                \n
              • \n
              • \n

                \"AT\" - AUSTRIA

                \n
              • \n
              • \n

                \"AU\" - AUSTRALIA

                \n
              • \n
              • \n

                \"BA\" - BOSNIA HERZEGOVINA

                \n
              • \n
              • \n

                \"BE\" - BELGIUM

                \n
              • \n
              • \n

                \"BG\" - BULGARIA

                \n
              • \n
              • \n

                \"BO\" - BOLIVIA

                \n
              • \n
              • \n

                \"BR\" - BRAZIL

                \n
              • \n
              • \n

                \"BY\" - BELARUS

                \n
              • \n
              • \n

                \"CA\" - CANADA

                \n
              • \n
              • \n

                \"CL\" - CHILE

                \n
              • \n
              • \n

                \"CO\" - COLOMBIA

                \n
              • \n
              • \n

                \"CR\" - COSTA RICA

                \n
              • \n
              • \n

                \"HR\" - CROATIA

                \n
              • \n
              • \n

                \"CZ\" - CZECH REPUBLIC

                \n
              • \n
              • \n

                \"DK\" - DENMARK

                \n
              • \n
              • \n

                \"EC\" - ECUADOR

                \n
              • \n
              • \n

                \"EE\" - ESTONIA

                \n
              • \n
              • \n

                \"ET\" - ETHIOPIA

                \n
              • \n
              • \n

                \"FI\" - FINLAND

                \n
              • \n
              • \n

                \"FR\" - FRANCE

                \n
              • \n
              • \n

                \"DE\" - GERMANY

                \n
              • \n
              • \n

                \"GR\" - GREECE

                \n
              • \n
              • \n

                \"HU\" - HUNGARY

                \n
              • \n
              • \n

                \"IS\" - ICELAND

                \n
              • \n
              • \n

                \"IN\" - INDIA

                \n
              • \n
              • \n

                \"IE\" - IRELAND

                \n
              • \n
              • \n

                \"IT\" - ITALY

                \n
              • \n
              • \n

                \"JP\" - JAPAN

                \n
              • \n
              • \n

                \"KZ\" - KAZAKHSTAN

                \n
              • \n
              • \n

                \"KR\" - KOREA

                \n
              • \n
              • \n

                \"LV\" - LATVIA

                \n
              • \n
              • \n

                \"LI\" - LIECHTENSTEIN

                \n
              • \n
              • \n

                \"LT\" - LITHUANIA

                \n
              • \n
              • \n

                \"LU\" - LUXEMBOURG

                \n
              • \n
              • \n

                \"MK\" - MACEDONIA

                \n
              • \n
              • \n

                \"MT\" - MALTA

                \n
              • \n
              • \n

                \"MX\" - MEXICO

                \n
              • \n
              • \n

                \"MD\" - MOLDOVA

                \n
              • \n
              • \n

                \"ME\" - MONTENEGRO

                \n
              • \n
              • \n

                \"NL\" - NETHERLANDS

                \n
              • \n
              • \n

                \"NZ\" - NEW ZEALAND

                \n
              • \n
              • \n

                \"NI\" - NICARAGUA

                \n
              • \n
              • \n

                \"NG\" - NIGERIA

                \n
              • \n
              • \n

                \"NO\" - NORWAY

                \n
              • \n
              • \n

                \"PA\" - PANAMA

                \n
              • \n
              • \n

                \"PY\" - PARAGUAY

                \n
              • \n
              • \n

                \"PE\" - PERU

                \n
              • \n
              • \n

                \"PL\" - POLAND

                \n
              • \n
              • \n

                \"PT\" - PORTUGAL

                \n
              • \n
              • \n

                \"RO\" - ROMANIA

                \n
              • \n
              • \n

                \"RU\" - RUSSIA

                \n
              • \n
              • \n

                \"RS\" - SERBIA

                \n
              • \n
              • \n

                \"SK\" - SLOVAKIA

                \n
              • \n
              • \n

                \"SI\" - SLOVENIA

                \n
              • \n
              • \n

                \"ZA\" - SOUTH AFRICA

                \n
              • \n
              • \n

                \"ES\" - SPAIN

                \n
              • \n
              • \n

                \"SE\" - SWEDEN

                \n
              • \n
              • \n

                \"CH\" - SWITZERLAND

                \n
              • \n
              • \n

                \"UA\" - UKRAINE

                \n
              • \n
              • \n

                \"AE\" - UNITED ARAB EMIRATES

                \n
              • \n
              • \n

                \"US\" - UNITED STATES

                \n
              • \n
              • \n

                \"UK\" - UNITED KINGDOM

                \n
              • \n
              • \n

                \"UY\" - URUGUAY

                \n
              • \n
              • \n

                \"VE\" - VENEZUELA

                \n
              • \n
              " + "smithy.api#documentation": "

              \n Weather Index\n

              \n

              To enable the Weather Index, do not specify a value for\n Configuration.

              \n

              \n Holidays\n

              \n

              To enable Holidays, set CountryCode to one of the following two-letter country\n codes:

              \n
                \n
              • \n

                \"AL\" - ALBANIA

                \n
              • \n
              • \n

                \"AR\" - ARGENTINA

                \n
              • \n
              • \n

                \"AT\" - AUSTRIA

                \n
              • \n
              • \n

                \"AU\" - AUSTRALIA

                \n
              • \n
              • \n

                \"BA\" - BOSNIA HERZEGOVINA

                \n
              • \n
              • \n

                \"BE\" - BELGIUM

                \n
              • \n
              • \n

                \"BG\" - BULGARIA

                \n
              • \n
              • \n

                \"BO\" - BOLIVIA

                \n
              • \n
              • \n

                \"BR\" - BRAZIL

                \n
              • \n
              • \n

                \"BY\" - BELARUS

                \n
              • \n
              • \n

                \"CA\" - CANADA

                \n
              • \n
              • \n

                \"CL\" - CHILE

                \n
              • \n
              • \n

                \"CO\" - COLOMBIA

                \n
              • \n
              • \n

                \"CR\" - COSTA RICA

                \n
              • \n
              • \n

                \"HR\" - CROATIA

                \n
              • \n
              • \n

                \"CZ\" - CZECH REPUBLIC

                \n
              • \n
              • \n

                \"DK\" - DENMARK

                \n
              • \n
              • \n

                \"EC\" - ECUADOR

                \n
              • \n
              • \n

                \"EE\" - ESTONIA

                \n
              • \n
              • \n

                \"ET\" - ETHIOPIA

                \n
              • \n
              • \n

                \"FI\" - FINLAND

                \n
              • \n
              • \n

                \"FR\" - FRANCE

                \n
              • \n
              • \n

                \"DE\" - GERMANY

                \n
              • \n
              • \n

                \"GR\" - GREECE

                \n
              • \n
              • \n

                \"HU\" - HUNGARY

                \n
              • \n
              • \n

                \"IS\" - ICELAND

                \n
              • \n
              • \n

                \"IN\" - INDIA

                \n
              • \n
              • \n

                \"IE\" - IRELAND

                \n
              • \n
              • \n

                \"IT\" - ITALY

                \n
              • \n
              • \n

                \"JP\" - JAPAN

                \n
              • \n
              • \n

                \"KZ\" - KAZAKHSTAN

                \n
              • \n
              • \n

                \"KR\" - KOREA

                \n
              • \n
              • \n

                \"LV\" - LATVIA

                \n
              • \n
              • \n

                \"LI\" - LIECHTENSTEIN

                \n
              • \n
              • \n

                \"LT\" - LITHUANIA

                \n
              • \n
              • \n

                \"LU\" - LUXEMBOURG

                \n
              • \n
              • \n

                \"MK\" - MACEDONIA

                \n
              • \n
              • \n

                \"MT\" - MALTA

                \n
              • \n
              • \n

                \"MX\" - MEXICO

                \n
              • \n
              • \n

                \"MD\" - MOLDOVA

                \n
              • \n
              • \n

                \"ME\" - MONTENEGRO

                \n
              • \n
              • \n

                \"NL\" - NETHERLANDS

                \n
              • \n
              • \n

                \"NZ\" - NEW ZEALAND

                \n
              • \n
              • \n

                \"NI\" - NICARAGUA

                \n
              • \n
              • \n

                \"NG\" - NIGERIA

                \n
              • \n
              • \n

                \"NO\" - NORWAY

                \n
              • \n
              • \n

                \"PA\" - PANAMA

                \n
              • \n
              • \n

                \"PY\" - PARAGUAY

                \n
              • \n
              • \n

                \"PE\" - PERU

                \n
              • \n
              • \n

                \"PL\" - POLAND

                \n
              • \n
              • \n

                \"PT\" - PORTUGAL

                \n
              • \n
              • \n

                \"RO\" - ROMANIA

                \n
              • \n
              • \n

                \"RU\" - RUSSIA

                \n
              • \n
              • \n

                \"RS\" - SERBIA

                \n
              • \n
              • \n

                \"SK\" - SLOVAKIA

                \n
              • \n
              • \n

                \"SI\" - SLOVENIA

                \n
              • \n
              • \n

                \"ZA\" - SOUTH AFRICA

                \n
              • \n
              • \n

                \"ES\" - SPAIN

                \n
              • \n
              • \n

                \"SE\" - SWEDEN

                \n
              • \n
              • \n

                \"CH\" - SWITZERLAND

                \n
              • \n
              • \n

                \"UA\" - UKRAINE

                \n
              • \n
              • \n

                \"AE\" - UNITED ARAB EMIRATES

                \n
              • \n
              • \n

                \"US\" - UNITED STATES

                \n
              • \n
              • \n

                \"UK\" - UNITED KINGDOM

                \n
              • \n
              • \n

                \"UY\" - URUGUAY

                \n
              • \n
              • \n

                \"VE\" - VENEZUELA

                \n
              • \n
              " } } }, @@ -432,7 +432,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates an Amazon Forecast predictor.

              \n

              Amazon Forecast creates predictors with AutoPredictor, which involves applying the\n optimal combination of algorithms to each time series in your datasets. You can use\n CreateAutoPredictor to create new predictors or upgrade/retrain existing\n predictors.

              \n

              \n Creating new predictors\n

              \n

              The following parameters are required when creating a new predictor:

              \n
                \n
              • \n

                \n PredictorName - A unique name for the predictor.

                \n
              • \n
              • \n

                \n DatasetGroupArn - The ARN of the dataset group used to train the\n predictor.

                \n
              • \n
              • \n

                \n ForecastFrequency - The granularity of your forecasts (hourly,\n daily, weekly, etc).

                \n
              • \n
              • \n

                \n ForecastHorizon - The number of time steps being\n forecasted.

                \n
              • \n
              \n

              When creating a new predictor, do not specify a value for\n ReferencePredictorArn.

              \n

              \n Upgrading and retraining predictors\n

              \n

              The following parameters are required when retraining or upgrading a predictor:

              \n
                \n
              • \n

                \n PredictorName - A unique name for the predictor.

                \n
              • \n
              • \n

                \n ReferencePredictorArn - The ARN of the predictor to retrain or\n upgrade.

                \n
              • \n
              \n

              When upgrading or retraining a predictor, only specify values for the\n ReferencePredictorArn and PredictorName.

              " + "smithy.api#documentation": "

              Creates an Amazon Forecast predictor.

              \n

              Amazon Forecast creates predictors with AutoPredictor, which involves applying the\n optimal combination of algorithms to each time series in your datasets. You can use\n CreateAutoPredictor to create new predictors or upgrade/retrain existing\n predictors.

              \n

              \n Creating new predictors\n

              \n

              The following parameters are required when creating a new predictor:

              \n
                \n
              • \n

                \n PredictorName - A unique name for the predictor.

                \n
              • \n
              • \n

                \n DatasetGroupArn - The ARN of the dataset group used to train the\n predictor.

                \n
              • \n
              • \n

                \n ForecastFrequency - The granularity of your forecasts (hourly,\n daily, weekly, etc).

                \n
              • \n
              • \n

                \n ForecastHorizon - The number of time steps being\n forecasted.

                \n
              • \n
              \n

              When creating a new predictor, do not specify a value for\n ReferencePredictorArn.

              \n

              \n Upgrading and retraining predictors\n

              \n

              The following parameters are required when retraining or upgrading a predictor:

              \n
                \n
              • \n

                \n PredictorName - A unique name for the predictor.

                \n
              • \n
              • \n

                \n ReferencePredictorArn - The ARN of the predictor to retrain or\n upgrade.

                \n
              • \n
              \n

              When upgrading or retraining a predictor, only specify values for the\n ReferencePredictorArn and PredictorName.

              " } }, "com.amazonaws.forecast#CreateAutoPredictorRequest": { @@ -491,7 +491,10 @@ } }, "ExplainPredictor": { - "target": "com.amazonaws.forecast#Boolean" + "target": "com.amazonaws.forecast#Boolean", + "traits": { + "smithy.api#documentation": "

              Create an Explainability resource for the predictor.

              " + } }, "Tags": { "target": "com.amazonaws.forecast#Tags", @@ -590,7 +593,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to the dataset group to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to the dataset group to help you categorize and\n organize them. Each tag consists of a key and an optional value, both of which you\n define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } } } @@ -686,7 +689,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to the dataset import job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to the dataset import job to help you categorize and\n organize them. Each tag consists of a key and an optional value, both of which you\n define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } } } @@ -748,7 +751,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to the dataset to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to the dataset to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } } } @@ -790,7 +793,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

              Explainability is only available for Forecasts and Predictors generated from an\n AutoPredictor (CreateAutoPredictor)

              \n
              \n

              Creates an Amazon Forecast Explainability.

              \n

              Explainability helps you better understand how the attributes in your datasets impact\n forecast. Amazon Forecast uses a metric called Impact scores to quantify the relative\n impact of each attribute and determine whether they increase or decrease forecast\n values.

              \n

              To enable Forecast Explainability, your predictor must include at least one of the\n following: related time series, item metadata, or additional datasets like Holidays and\n the Weather Index.

              \n

              CreateExplainability accepts either a Predictor ARN or Forecast ARN. To receive\n aggregated Impact scores for all time series and time points in your datasets, provide a\n Predictor ARN. To receive Impact scores for specific time series and time points,\n provide a Forecast ARN.

              \n

              \n CreateExplainability with a Predictor ARN\n

              \n \n

              You can only have one Explainability resource per predictor. If you already\n enabled ExplainPredictor in CreateAutoPredictor, that\n predictor already has an Explainability resource.

              \n
              \n

              The following parameters are required when providing a Predictor ARN:

              \n
                \n
              • \n

                \n ExplainabilityName - A unique name for the Explainability.

                \n
              • \n
              • \n

                \n ResourceArn - The Arn of the predictor.

                \n
              • \n
              • \n

                \n TimePointGranularity - Must be set to “ALL”.

                \n
              • \n
              • \n

                \n TimeSeriesGranularity - Must be set to “ALL”.

                \n
              • \n
              \n

              Do not specify a value for the following parameters:

              \n
                \n
              • \n

                \n DataSource - Only valid when TimeSeriesGranularity is\n “SPECIFIC”.

                \n
              • \n
              • \n

                \n Schema - Only valid when TimeSeriesGranularity is\n “SPECIFIC”.

                \n
              • \n
              • \n

                \n StartDateTime - Only valid when TimePointGranularity is\n “SPECIFIC”.

                \n
              • \n
              • \n

                \n EndDateTime - Only valid when TimePointGranularity is\n “SPECIFIC”.

                \n
              • \n
              \n

              \n CreateExplainability with a Forecast ARN\n

              \n \n

              You can specify a maximum of 50 time series and 1500 time points.

              \n
              \n

              The following parameters are required when providing a Predictor ARN:

              \n
                \n
              • \n

                \n ExplainabilityName - A unique name for the Explainability.

                \n
              • \n
              • \n

                \n ResourceArn - The Arn of the forecast.

                \n
              • \n
              • \n

                \n TimePointGranularity - Either “ALL” or “SPECIFIC”.

                \n
              • \n
              • \n

                \n TimeSeriesGranularity - Either “ALL” or “SPECIFIC”.

                \n
              • \n
              \n

              If you set TimeSeriesGranularity to “SPECIFIC”, you must also provide the\n following:

              \n
                \n
              • \n

                \n DataSource - The S3 location of the CSV file specifying your time\n series.

                \n
              • \n
              • \n

                \n Schema - The Schema defines the attributes and attribute types\n listed in the Data Source.

                \n
              • \n
              \n

              If you set TimePointGranularity to “SPECIFIC”, you must also provide the\n following:

              \n
                \n
              • \n

                \n StartDateTime - The first timestamp in the range of time\n points.

                \n
              • \n
              • \n

                \n EndDateTime - The last timestamp in the range of time\n points.

                \n
              • \n
              " + "smithy.api#documentation": "\n

              Explainability is only available for Forecasts and Predictors generated from an\n AutoPredictor (CreateAutoPredictor)

              \n
              \n

              Creates an Amazon Forecast Explainability.

              \n

              Explainability helps you better understand how the attributes in your datasets impact\n forecast. Amazon Forecast uses a metric called Impact scores to quantify the relative\n impact of each attribute and determine whether they increase or decrease forecast\n values.

              \n

              To enable Forecast Explainability, your predictor must include at least one of the\n following: related time series, item metadata, or additional datasets like Holidays and\n the Weather Index.

              \n

              CreateExplainability accepts either a Predictor ARN or Forecast ARN. To receive\n aggregated Impact scores for all time series and time points in your datasets, provide a\n Predictor ARN. To receive Impact scores for specific time series and time points,\n provide a Forecast ARN.

              \n

              \n CreateExplainability with a Predictor ARN\n

              \n \n

              You can only have one Explainability resource per predictor. If you already\n enabled ExplainPredictor in CreateAutoPredictor, that\n predictor already has an Explainability resource.

              \n
              \n

              The following parameters are required when providing a Predictor ARN:

              \n
                \n
              • \n

                \n ExplainabilityName - A unique name for the Explainability.

                \n
              • \n
              • \n

                \n ResourceArn - The Arn of the predictor.

                \n
              • \n
              • \n

                \n TimePointGranularity - Must be set to “ALL”.

                \n
              • \n
              • \n

                \n TimeSeriesGranularity - Must be set to “ALL”.

                \n
              • \n
              \n

              Do not specify a value for the following parameters:

              \n
                \n
              • \n

                \n DataSource - Only valid when TimeSeriesGranularity is\n “SPECIFIC”.

                \n
              • \n
              • \n

                \n Schema - Only valid when TimeSeriesGranularity is\n “SPECIFIC”.

                \n
              • \n
              • \n

                \n StartDateTime - Only valid when TimePointGranularity is\n “SPECIFIC”.

                \n
              • \n
              • \n

                \n EndDateTime - Only valid when TimePointGranularity is\n “SPECIFIC”.

                \n
              • \n
              \n

              \n CreateExplainability with a Forecast ARN\n

              \n \n

              You can specify a maximum of 50 time series and 500 time points.

              \n
              \n

              The following parameters are required when providing a Predictor ARN:

              \n
                \n
              • \n

                \n ExplainabilityName - A unique name for the Explainability.

                \n
              • \n
              • \n

                \n ResourceArn - The Arn of the forecast.

                \n
              • \n
              • \n

                \n TimePointGranularity - Either “ALL” or “SPECIFIC”.

                \n
              • \n
              • \n

                \n TimeSeriesGranularity - Either “ALL” or “SPECIFIC”.

                \n
              • \n
              \n

              If you set TimeSeriesGranularity to “SPECIFIC”, you must also provide the\n following:

              \n
                \n
              • \n

                \n DataSource - The S3 location of the CSV file specifying your time\n series.

                \n
              • \n
              • \n

                \n Schema - The Schema defines the attributes and attribute types\n listed in the Data Source.

                \n
              • \n
              \n

              If you set TimePointGranularity to “SPECIFIC”, you must also provide the\n following:

              \n
                \n
              • \n

                \n StartDateTime - The first timestamp in the range of time\n points.

                \n
              • \n
              • \n

                \n EndDateTime - The last timestamp in the range of time\n points.

                \n
              • \n
              " } }, "com.amazonaws.forecast#CreateExplainabilityExport": { @@ -903,13 +906,13 @@ "StartDateTime": { "target": "com.amazonaws.forecast#LocalDateTime", "traits": { - "smithy.api#documentation": "

              If TimePointGranularity is set to SPECIFIC, define the first\n point for the Explainability.

              " + "smithy.api#documentation": "

              If TimePointGranularity is set to SPECIFIC, define the first\n point for the Explainability.

              \n

              Use the following timestamp format: yyyy-MM-ddTHH:mm:ss (example: 2015-01-01T20:00:00)

              " } }, "EndDateTime": { "target": "com.amazonaws.forecast#LocalDateTime", "traits": { - "smithy.api#documentation": "

              If TimePointGranularity is set to SPECIFIC, define the last\n time point for the Explainability.

              " + "smithy.api#documentation": "

              If TimePointGranularity is set to SPECIFIC, define the last\n time point for the Explainability.

              \n

              Use the following timestamp format: yyyy-MM-ddTHH:mm:ss (example: 2015-01-01T20:00:00)

              " } }, "Tags": { @@ -1016,7 +1019,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to the forecast export job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to the forecast export job to help you categorize and\n organize them. Each tag consists of a key and an optional value, both of which you\n define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } } } @@ -1058,7 +1061,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to the forecast to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to the forecast to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } } } @@ -1100,7 +1103,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

              This operation creates a legacy predictor that does not include all the predictor\n functionalities provided by Amazon Forecast. To create a predictor that is compatible with all\n aspects of Forecast, use CreateAutoPredictor.

              \n
              \n

              Creates an Amazon Forecast predictor.

              \n

              In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast\n choose an algorithm for you using AutoML. If you specify an algorithm, you also can override\n algorithm-specific hyperparameters.

              \n

              Amazon Forecast uses the algorithm to train a predictor using the latest version of the datasets\n in the specified dataset group. You can then generate a forecast using the CreateForecast operation.

              \n

              To see the evaluation metrics, use the GetAccuracyMetrics operation.

              \n

              You can specify a featurization configuration to fill and aggregate the data fields in the\n TARGET_TIME_SERIES dataset to improve model training. For more information, see\n FeaturizationConfig.

              \n

              For RELATED_TIME_SERIES datasets, CreatePredictor verifies that the\n DataFrequency specified when the dataset was created matches the\n ForecastFrequency. TARGET_TIME_SERIES datasets don't have this restriction.\n Amazon Forecast also verifies the delimiter and timestamp format. For more information, see howitworks-datasets-groups.

              \n

              By default, predictors are trained and evaluated at the 0.1 (P10), 0.5 (P50), and 0.9\n (P90) quantiles. You can choose custom forecast types to train and evaluate your predictor by\n setting the ForecastTypes.

              \n

              \n AutoML\n

              \n

              If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the\n objective function, set PerformAutoML to true. The\n objective function is defined as the mean of the weighted losses over the\n forecast types. By default, these are the p10, p50, and p90 quantile losses. For more\n information, see EvaluationResult.

              \n

              When AutoML is enabled, the following properties are disallowed:

              \n
                \n
              • \n

                \n AlgorithmArn\n

                \n
              • \n
              • \n

                \n HPOConfig\n

                \n
              • \n
              • \n

                \n PerformHPO\n

                \n
              • \n
              • \n

                \n TrainingParameters\n

                \n
              • \n
              \n\n \n\n

              To get a list of all of your predictors, use the ListPredictors\n operation.

              \n \n

              Before you can use the predictor to create a forecast, the Status of the\n predictor must be ACTIVE, signifying that training has completed. To get the\n status, use the DescribePredictor operation.

              \n
              " + "smithy.api#documentation": "\n

              This operation creates a legacy predictor that does not include all the predictor\n functionalities provided by Amazon Forecast. To create a predictor that is compatible with all\n aspects of Forecast, use CreateAutoPredictor.

              \n
              \n

              Creates an Amazon Forecast predictor.

              \n

              In the request, provide a dataset group and either specify an algorithm or let Amazon Forecast\n choose an algorithm for you using AutoML. If you specify an algorithm, you also can override\n algorithm-specific hyperparameters.

              \n

              Amazon Forecast uses the algorithm to train a predictor using the latest version of the datasets\n in the specified dataset group. You can then generate a forecast using the CreateForecast operation.

              \n

              To see the evaluation metrics, use the GetAccuracyMetrics operation.

              \n

              You can specify a featurization configuration to fill and aggregate the data fields in the\n TARGET_TIME_SERIES dataset to improve model training. For more information, see\n FeaturizationConfig.

              \n

              For RELATED_TIME_SERIES datasets, CreatePredictor verifies that the\n DataFrequency specified when the dataset was created matches the\n ForecastFrequency. TARGET_TIME_SERIES datasets don't have this restriction.\n Amazon Forecast also verifies the delimiter and timestamp format. For more information, see howitworks-datasets-groups.

              \n

              By default, predictors are trained and evaluated at the 0.1 (P10), 0.5 (P50), and 0.9\n (P90) quantiles. You can choose custom forecast types to train and evaluate your predictor by\n setting the ForecastTypes.

              \n

              \n AutoML\n

              \n

              If you want Amazon Forecast to evaluate each algorithm and choose the one that minimizes the\n objective function, set PerformAutoML to true. The\n objective function is defined as the mean of the weighted losses over the\n forecast types. By default, these are the p10, p50, and p90 quantile losses. For more\n information, see EvaluationResult.

              \n

              When AutoML is enabled, the following properties are disallowed:

              \n
                \n
              • \n

                \n AlgorithmArn\n

                \n
              • \n
              • \n

                \n HPOConfig\n

                \n
              • \n
              • \n

                \n PerformHPO\n

                \n
              • \n
              • \n

                \n TrainingParameters\n

                \n
              • \n
              \n\n \n\n

              To get a list of all of your predictors, use the ListPredictors\n operation.

              \n \n

              Before you can use the predictor to create a forecast, the Status of the\n predictor must be ACTIVE, signifying that training has completed. To get the\n status, use the DescribePredictor operation.

              \n
              " } }, "com.amazonaws.forecast#CreatePredictorBacktestExportJob": { @@ -1129,7 +1132,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Exports backtest forecasts and accuracy metrics generated by the CreatePredictor operation. Two folders containing CSV files are exported\n to your specified S3 bucket.

              \n

              The export file names will match the following conventions:

              \n

              \n __.csv\n

              \n

              The component is in Java SimpleDate format\n (yyyy-MM-ddTHH-mm-ssZ).

              \n

              You must specify a DataDestination object that includes an Amazon S3\n bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3\n bucket. For more information, see aws-forecast-iam-roles.

              \n \n

              The Status of the export job must be ACTIVE before\n you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

              \n
              " + "smithy.api#documentation": "

              Exports backtest forecasts and accuracy metrics generated by the CreateAutoPredictor or CreatePredictor operations. Two\n folders containing CSV files are exported to your specified S3 bucket.

              \n

              The export file names will match the following conventions:

              \n

              \n __.csv\n

              \n

              The component is in Java SimpleDate format\n (yyyy-MM-ddTHH-mm-ssZ).

              \n

              You must specify a DataDestination object that includes an Amazon S3\n bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3\n bucket. For more information, see aws-forecast-iam-roles.

              \n \n

              The Status of the export job must be ACTIVE before you\n can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

              \n
              " } }, "com.amazonaws.forecast#CreatePredictorBacktestExportJobRequest": { @@ -1158,7 +1161,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              Optional metadata to help you categorize and organize your backtests. Each tag consists\n of a key and an optional value, both of which you define. Tag keys and values are case\n sensitive.

              \n

              The following restrictions apply to tags:

              \n
                \n
              • \n

                For each resource, each tag key must be unique and each tag key must have one\n value.

                \n
              • \n
              • \n

                Maximum number of tags per resource: 50.

                \n
              • \n
              • \n

                Maximum key length: 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length: 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Accepted characters: all letters and numbers, spaces representable in UTF-8, and +\n - = . _ : / @. If your tagging schema is used across other services and resources,\n the character restrictions of those services also apply.

                \n
              • \n
              • \n

                Key prefixes cannot include any upper or lowercase combination of\n aws: or AWS:. Values can have this prefix. If a tag\n value has aws as its prefix but the key does not, Forecast considers it\n to be a user tag and will count against the limit of 50 tags. Tags with only the key\n prefix of aws do not count against your tags per resource limit. You\n cannot edit or delete tag keys with this prefix.

                \n
              • \n
              " + "smithy.api#documentation": "

              Optional metadata to help you categorize and organize your backtests. Each tag\n consists of a key and an optional value, both of which you define. Tag keys and values\n are case sensitive.

              \n

              The following restrictions apply to tags:

              \n
                \n
              • \n

                For each resource, each tag key must be unique and each tag key must have one\n value.

                \n
              • \n
              • \n

                Maximum number of tags per resource: 50.

                \n
              • \n
              • \n

                Maximum key length: 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length: 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Accepted characters: all letters and numbers, spaces representable in UTF-8,\n and + - = . _ : / @. If your tagging schema is used across other services and\n resources, the character restrictions of those services also apply.

                \n
              • \n
              • \n

                Key prefixes cannot include any upper or lowercase combination of\n aws: or AWS:. Values can have this prefix. If a\n tag value has aws as its prefix but the key does not, Forecast\n considers it to be a user tag and will count against the limit of 50 tags. Tags\n with only the key prefix of aws do not count against your tags per\n resource limit. You cannot edit or delete tag keys with this prefix.

                \n
              • \n
              " } } } @@ -1262,7 +1265,7 @@ "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to the predictor to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to the predictor to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } }, "OptimizationMetric": { @@ -1332,13 +1335,13 @@ "S3Config": { "target": "com.amazonaws.forecast#S3Config", "traits": { - "smithy.api#documentation": "

              The path to the training data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the\n credentials to access the data.

              ", + "smithy.api#documentation": "

              The path to the data stored in an Amazon Simple Storage Service (Amazon S3) bucket along with the\n credentials to access the data.

              ", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

              The source of your training data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to\n access the data and, optionally, an AWS Key Management Service (KMS) key. This object is submitted in the\n CreateDatasetImportJob request.

              " + "smithy.api#documentation": "

              The source of your data, an AWS Identity and Access Management (IAM) role that allows Amazon Forecast to\n access the data and, optionally, an AWS Key Management Service (KMS) key.

              " } }, "com.amazonaws.forecast#DatasetGroupSummary": { @@ -1641,7 +1644,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes an Explainability export job.

              ", + "smithy.api#documentation": "

              Deletes an Explainability export.

              ", "smithy.api#idempotent": {} } }, @@ -1752,7 +1755,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes a predictor created using the CreatePredictor operation. You can\n delete only predictor that have a status of ACTIVE or CREATE_FAILED.\n To get the status, use the DescribePredictor operation.

              ", + "smithy.api#documentation": "

              Deletes a predictor created using the DescribePredictor or CreatePredictor operations. You can delete only predictor that have a status of\n ACTIVE or CREATE_FAILED. To get the status, use the DescribePredictor operation.

              ", "smithy.api#idempotent": {} } }, @@ -1900,6 +1903,12 @@ "smithy.api#documentation": "

              The frequency of predictions in a forecast.

              \n

              Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30\n minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute).\n For example, \"Y\" indicates every year and \"5min\" indicates every five minutes.

              " } }, + "ForecastDimensions": { + "target": "com.amazonaws.forecast#ForecastDimensions", + "traits": { + "smithy.api#documentation": "

              An array of dimension (field) names that specify the attributes used to group your time series.

              " + } + }, "DatasetImportJobArns": { "target": "com.amazonaws.forecast#ArnList", "traits": { @@ -1958,7 +1967,10 @@ } }, "ExplainabilityInfo": { - "target": "com.amazonaws.forecast#ExplainabilityInfo" + "target": "com.amazonaws.forecast#ExplainabilityInfo", + "traits": { + "smithy.api#documentation": "

              Provides the status and ARN of the Predictor Explainability.

              " + } } } }, @@ -2668,7 +2680,7 @@ } ], "traits": { - "smithy.api#documentation": "\n

              This operation is only valid for legacy predictors created with CreatePredictor. If you\n are not using a legacy predictor, use DescribeAutoPredictor.

              \n

              To upgrade a legacy predictor to AutoPredictor, see Upgrading to AutoPredictor.

              \n
              \n

              Describes a predictor created using the CreatePredictor\n operation.

              \n

              In addition to listing the properties provided in the CreatePredictor\n request, this operation lists the following properties:

              \n
                \n
              • \n

                \n DatasetImportJobArns - The dataset import jobs used to import training\n data.

                \n
              • \n
              • \n

                \n AutoMLAlgorithmArns - If AutoML is performed, the algorithms that were\n evaluated.

                \n
              • \n
              • \n

                \n CreationTime\n

                \n
              • \n
              • \n

                \n LastModificationTime\n

                \n
              • \n
              • \n

                \n Status\n

                \n
              • \n
              • \n

                \n Message - If an error occurred, information about the error.

                \n
              • \n
              ", + "smithy.api#documentation": "\n

              This operation is only valid for legacy predictors created with CreatePredictor. If you\n are not using a legacy predictor, use DescribeAutoPredictor.

              \n
              \n

              Describes a predictor created using the CreatePredictor\n operation.

              \n

              In addition to listing the properties provided in the CreatePredictor\n request, this operation lists the following properties:

              \n
                \n
              • \n

                \n DatasetImportJobArns - The dataset import jobs used to import training\n data.

                \n
              • \n
              • \n

                \n AutoMLAlgorithmArns - If AutoML is performed, the algorithms that were\n evaluated.

                \n
              • \n
              • \n

                \n CreationTime\n

                \n
              • \n
              • \n

                \n LastModificationTime\n

                \n
              • \n
              • \n

                \n Status\n

                \n
              • \n
              • \n

                \n Message - If an error occurred, information about the error.

                \n
              • \n
              ", "smithy.api#idempotent": {} } }, @@ -2689,7 +2701,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

              \n

              In addition to listing the properties provided by the user in the\n CreatePredictorBacktestExportJob request, this operation lists the\n following properties:

              \n
                \n
              • \n

                \n CreationTime\n

                \n
              • \n
              • \n

                \n LastModificationTime\n

                \n
              • \n
              • \n

                \n Status\n

                \n
              • \n
              • \n

                \n Message (if an error occurred)

                \n
              • \n
              ", + "smithy.api#documentation": "

              Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

              \n

              In addition to listing the properties provided by the user in the\n CreatePredictorBacktestExportJob request, this operation lists the\n following properties:

              \n
                \n
              • \n

                \n CreationTime\n

                \n
              • \n
              • \n

                \n LastModificationTime\n

                \n
              • \n
              • \n

                \n Status\n

                \n
              • \n
              • \n

                \n Message (if an error occurred)

                \n
              • \n
              ", "smithy.api#idempotent": {} } }, @@ -2738,7 +2750,7 @@ "Status": { "target": "com.amazonaws.forecast#Status", "traits": { - "smithy.api#documentation": "

              The status of the predictor backtest export job. States include:

              \n
                \n
              • \n

                \n ACTIVE\n

                \n
              • \n
              • \n

                \n CREATE_PENDING, CREATE_IN_PROGRESS,\n CREATE_FAILED\n

                \n
              • \n
              • \n

                \n CREATE_STOPPING, CREATE_STOPPED\n

                \n
              • \n
              • \n

                \n DELETE_PENDING, DELETE_IN_PROGRESS,\n DELETE_FAILED\n

                \n
              • \n
              " + "smithy.api#documentation": "

              The status of the predictor backtest export job. States include:

              \n
                \n
              • \n

                \n ACTIVE\n

                \n
              • \n
              • \n

                \n CREATE_PENDING, CREATE_IN_PROGRESS,\n CREATE_FAILED\n

                \n
              • \n
              • \n

                \n CREATE_STOPPING, CREATE_STOPPED\n

                \n
              • \n
              • \n

                \n DELETE_PENDING, DELETE_IN_PROGRESS,\n DELETE_FAILED\n

                \n
              • \n
              " } }, "CreationTime": { @@ -2750,7 +2762,7 @@ "LastModificationTime": { "target": "com.amazonaws.forecast#Timestamp", "traits": { - "smithy.api#documentation": "

              The last time the resource was modified. The timestamp depends on the status of the job:

              \n
                \n
              • \n

                \n CREATE_PENDING - The CreationTime.

                \n
              • \n
              • \n

                \n CREATE_IN_PROGRESS - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPING - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPED - When the job stopped.

                \n
              • \n
              • \n

                \n ACTIVE or CREATE_FAILED - When the job finished or\n failed.

                \n
              • \n
              " + "smithy.api#documentation": "

              The last time the resource was modified. The timestamp depends on the status of the\n job:

              \n
                \n
              • \n

                \n CREATE_PENDING - The CreationTime.

                \n
              • \n
              • \n

                \n CREATE_IN_PROGRESS - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPING - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPED - When the job stopped.

                \n
              • \n
              • \n

                \n ACTIVE or CREATE_FAILED - When the job finished or\n failed.

                \n
              • \n
              " } } } @@ -3166,11 +3178,20 @@ "type": "structure", "members": { "ExplainabilityArn": { - "target": "com.amazonaws.forecast#Arn" + "target": "com.amazonaws.forecast#Arn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the Explainability.

              " + } }, "Status": { - "target": "com.amazonaws.forecast#Status" + "target": "com.amazonaws.forecast#Status", + "traits": { + "smithy.api#documentation": "

              The status of the Explainability. States include:

              \n
                \n
              • \n

                \n ACTIVE\n

                \n
              • \n
              • \n

                \n CREATE_PENDING, CREATE_IN_PROGRESS,\n CREATE_FAILED\n

                \n
              • \n
              • \n

                \n CREATE_STOPPING, CREATE_STOPPED\n

                \n
              • \n
              • \n

                \n DELETE_PENDING, DELETE_IN_PROGRESS,\n DELETE_FAILED\n

                \n
              • \n
              " + } } + }, + "traits": { + "smithy.api#documentation": "

              Provides information about the Explainability resource.

              " } }, "com.amazonaws.forecast#ExplainabilitySummary": { @@ -3235,7 +3256,7 @@ "AttributeName": { "target": "com.amazonaws.forecast#Name", "traits": { - "smithy.api#documentation": "

              The name of the schema attribute that specifies the data field to be featurized. Amazon Forecast supports the target field of \n the TARGET_TIME_SERIES and the RELATED_TIME_SERIES datasets. For example, for the RETAIL domain, the target is\n demand, and for the CUSTOM domain, the target is\n target_value.\n For more information, see howitworks-missing-values.

              ", + "smithy.api#documentation": "

              The name of the schema attribute that specifies the data field to be featurized. Amazon\n Forecast supports the target field of the TARGET_TIME_SERIES and the\n RELATED_TIME_SERIES datasets. For example, for the RETAIL domain,\n the target is demand, and for the CUSTOM domain, the target is\n target_value. For more information, see howitworks-missing-values.

              ", "smithy.api#required": {} } }, @@ -3247,7 +3268,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Provides featurization (transformation) information for a dataset field. This object\n is part of the FeaturizationConfig object.

              \n

              For example:

              \n

              \n {\n

              \n

              \n \"AttributeName\": \"demand\",\n

              \n

              \n FeaturizationPipeline [ {\n

              \n \n

              \n \"FeaturizationMethodName\": \"filling\",\n

              \n

              \n \"FeaturizationMethodParameters\": {\"aggregation\": \"avg\", \"backfill\": \"nan\"}\n

              \n

              \n } ]\n

              \n

              \n }\n

              " + "smithy.api#documentation": "\n

              This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see AttributeConfig.

              \n
              \n

              Provides featurization (transformation) information for a dataset field. This object is\n part of the FeaturizationConfig object.

              \n

              For example:

              \n

              \n {\n

              \n

              \n \"AttributeName\": \"demand\",\n

              \n

              \n FeaturizationPipeline [ {\n

              \n \n

              \n \"FeaturizationMethodName\": \"filling\",\n

              \n

              \n \"FeaturizationMethodParameters\": {\"aggregation\": \"avg\", \"backfill\":\n \"nan\"}\n

              \n

              \n } ]\n

              \n

              \n }\n

              " } }, "com.amazonaws.forecast#FeaturizationConfig": { @@ -3256,14 +3277,14 @@ "ForecastFrequency": { "target": "com.amazonaws.forecast#Frequency", "traits": { - "smithy.api#documentation": "

              The frequency of predictions in a forecast.

              \n

              Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes),\n 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute).\n For example, \"Y\" indicates every year and \"5min\" indicates every five minutes.

              \n

              The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset\n frequency.

              \n

              When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the\n RELATED_TIME_SERIES dataset frequency.

              ", + "smithy.api#documentation": "

              The frequency of predictions in a forecast.

              \n

              Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes),\n 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example,\n \"Y\" indicates every year and \"5min\" indicates every five minutes.

              \n

              The frequency must be greater than or equal to the TARGET_TIME_SERIES dataset\n frequency.

              \n

              When a RELATED_TIME_SERIES dataset is provided, the frequency must be equal to the\n RELATED_TIME_SERIES dataset frequency.

              ", "smithy.api#required": {} } }, "ForecastDimensions": { "target": "com.amazonaws.forecast#ForecastDimensions", "traits": { - "smithy.api#documentation": "

              An array of dimension (field) names that specify how to group the generated forecast.

              \n

              For example, suppose that you are generating a forecast for item sales across all of\n your stores, and your dataset contains a store_id field. If you want the sales\n forecast for each item by store, you would specify store_id as the dimension.

              \n

              All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't\n need to be specified in the CreatePredictor request.\n All forecast dimensions specified in the RELATED_TIME_SERIES dataset must\n be specified in the CreatePredictor request.

              " + "smithy.api#documentation": "

              An array of dimension (field) names that specify how to group the generated\n forecast.

              \n

              For example, suppose that you are generating a forecast for item sales across all of your\n stores, and your dataset contains a store_id field. If you want the sales\n forecast for each item by store, you would specify store_id as the\n dimension.

              \n

              All forecast dimensions specified in the TARGET_TIME_SERIES dataset don't\n need to be specified in the CreatePredictor request. All forecast dimensions\n specified in the RELATED_TIME_SERIES dataset must be specified in the\n CreatePredictor request.

              " } }, "Featurizations": { @@ -3274,7 +3295,7 @@ } }, "traits": { - "smithy.api#documentation": "

              In a CreatePredictor operation, the specified algorithm\n trains a model using the specified dataset group. You can optionally tell the operation\n to modify data fields prior to training a model. These modifications are referred to as\n featurization.

              \n

              You define featurization using the FeaturizationConfig object.\n You specify an array of transformations, one for each field that you want to\n featurize. You then include the FeaturizationConfig object in your\n CreatePredictor request. Amazon Forecast applies the featurization to the\n TARGET_TIME_SERIES and RELATED_TIME_SERIES datasets before model training.

              \n

              You can create multiple featurization configurations. For example, you\n might call the CreatePredictor operation twice by specifying different\n featurization configurations.

              " + "smithy.api#documentation": "\n

              This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see AttributeConfig.

              \n
              \n

              In a CreatePredictor operation, the specified algorithm trains a model\n using the specified dataset group. You can optionally tell the operation to modify data fields\n prior to training a model. These modifications are referred to as\n featurization.

              \n

              You define featurization using the FeaturizationConfig object. You specify an\n array of transformations, one for each field that you want to featurize. You then include the\n FeaturizationConfig object in your CreatePredictor request.\n Amazon Forecast applies the featurization to the TARGET_TIME_SERIES and\n RELATED_TIME_SERIES datasets before model training.

              \n

              You can create multiple featurization configurations. For example, you might call the\n CreatePredictor operation twice by specifying different featurization\n configurations.

              " } }, "com.amazonaws.forecast#FeaturizationMethod": { @@ -3290,12 +3311,12 @@ "FeaturizationMethodParameters": { "target": "com.amazonaws.forecast#FeaturizationMethodParameters", "traits": { - "smithy.api#documentation": "

              The method parameters (key-value pairs), which are a map of override parameters. Specify these parameters to override the default values. \n Related Time Series attributes do not accept aggregation parameters.

              \n

              The following list shows the parameters and their valid values for the \"filling\" featurization method for a Target Time Series dataset. Bold signifies the default\n value.

              \n
                \n
              • \n

                \n aggregation: sum, avg, first, min, max\n

                \n
              • \n
              • \n

                \n frontfill: none\n

                \n
              • \n
              • \n

                \n middlefill: zero, nan (not a number), value, median, mean, min, max\n

                \n
              • \n
              • \n

                \n backfill: zero, nan, value, median, mean, min, max\n

                \n
              • \n
              \n\n

              The following list shows the parameters and their valid values for a Related Time Series featurization method (there are no defaults):

              \n
                \n
              • \n

                \n middlefill: zero, value, median, mean, min, max\n

                \n
              • \n
              • \n

                \n backfill: zero, value, median, mean, min, max\n

                \n
              • \n
              • \n

                \n futurefill: zero, value, median, mean, min, max\n

                \n
              • \n
              \n

              To set a filling method to a specific value, set the fill parameter to value\n and define the value in a corresponding _value parameter. For example, to set\n backfilling to a value of 2, include the following: \"backfill\": \"value\" and\n \"backfill_value\":\"2\".

              " + "smithy.api#documentation": "

              The method parameters (key-value pairs), which are a map of override parameters. Specify\n these parameters to override the default values. Related Time Series attributes do not accept\n aggregation parameters.

              \n

              The following list shows the parameters and their valid values for the \"filling\"\n featurization method for a Target Time Series dataset. Bold\n signifies the default value.

              \n
                \n
              • \n

                \n aggregation: sum, avg,\n first, min, max\n

                \n
              • \n
              • \n

                \n frontfill: none\n

                \n
              • \n
              • \n

                \n middlefill: zero, nan (not\n a number), value, median, mean, min,\n max\n

                \n
              • \n
              • \n

                \n backfill: zero, nan,\n value, median, mean, min,\n max\n

                \n
              • \n
              \n\n

              The following list shows the parameters and their valid values for a Related Time Series featurization method (there are no defaults):

              \n
                \n
              • \n

                \n middlefill: zero, value, median,\n mean, min, max\n

                \n
              • \n
              • \n

                \n backfill: zero, value, median,\n mean, min, max\n

                \n
              • \n
              • \n

                \n futurefill: zero, value, median,\n mean, min, max\n

                \n
              • \n
              \n

              To set a filling method to a specific value, set the fill parameter to value\n and define the value in a corresponding _value parameter. For example, to set\n backfilling to a value of 2, include the following: \"backfill\": \"value\" and\n \"backfill_value\":\"2\".

              " } } }, "traits": { - "smithy.api#documentation": "

              Provides information about the method that featurizes (transforms) a dataset field.\n The method is part of the FeaturizationPipeline of the\n Featurization object.

              \n

              The following is an example of how you specify a FeaturizationMethod object.

              \n

              \n {\n

              \n

              \n \"FeaturizationMethodName\": \"filling\",\n

              \n

              \n \"FeaturizationMethodParameters\": {\"aggregation\": \"sum\", \"middlefill\": \"zero\", \"backfill\": \"zero\"}\n

              \n

              \n }\n

              " + "smithy.api#documentation": "

              Provides information about the method that featurizes (transforms) a dataset field. The\n method is part of the FeaturizationPipeline of the Featurization object.

              \n

              The following is an example of how you specify a FeaturizationMethod\n object.

              \n

              \n {\n

              \n

              \n \"FeaturizationMethodName\": \"filling\",\n

              \n

              \n \"FeaturizationMethodParameters\": {\"aggregation\": \"sum\", \"middlefill\": \"zero\",\n \"backfill\": \"zero\"}\n

              \n

              \n }\n

              " } }, "com.amazonaws.forecast#FeaturizationMethodName": { @@ -3497,7 +3518,10 @@ } }, "CreatedUsingAutoPredictor": { - "target": "com.amazonaws.forecast#Boolean" + "target": "com.amazonaws.forecast#Boolean", + "traits": { + "smithy.api#documentation": "

              Whether the Forecast was created from an AutoPredictor.

              " + } }, "DatasetGroupArn": { "target": "com.amazonaws.forecast#String", @@ -3679,7 +3703,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The data used to train a predictor. The data includes a dataset group and any\n supplementary features. You specify this object in the CreatePredictor\n request.

              " + "smithy.api#documentation": "\n

              This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see DataConfig.

              \n
              \n

              The data used to train a predictor. The data includes a dataset group and any\n supplementary features. You specify this object in the CreatePredictor\n request.

              " } }, "com.amazonaws.forecast#Integer": { @@ -4006,7 +4030,7 @@ "Filters": { "target": "com.amazonaws.forecast#Filters", "traits": { - "smithy.api#documentation": "

              An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the resources that match the statement from the list. The match\n statement consists of a key and a value.

              \n

              \n Filter properties\n

              \n
                \n
              • \n

                \n Condition - The condition to apply. Valid values are\n IS and IS_NOT.

                \n
              • \n
              • \n

                \n Key - The name of the parameter to filter on. Valid values are\n PredictorArn and Status.

                \n
              • \n
              • \n

                \n Value - The value to match.

                \n
              • \n
              " + "smithy.api#documentation": "

              An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the resources that match the statement from the list. The match\n statement consists of a key and a value.

              \n

              \n Filter properties\n

              \n
                \n
              • \n

                \n Condition - The condition to apply. Valid values are\n IS and IS_NOT.

                \n
              • \n
              • \n

                \n Key - The name of the parameter to filter on. Valid values are\n ResourceArn and Status.

                \n
              • \n
              • \n

                \n Value - The value to match.

                \n
              • \n
              " } } } @@ -4067,7 +4091,7 @@ "Filters": { "target": "com.amazonaws.forecast#Filters", "traits": { - "smithy.api#documentation": "

              An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude resources that match the statement from the list. The match statement\n consists of a key and a value.

              \n

              \n Filter properties\n

              \n
                \n
              • \n

                \n Condition - The condition to apply. Valid values are\n IS and IS_NOT.

                \n
              • \n
              • \n

                \n Key - The name of the parameter to filter on. Valid values are\n PredictorArn and Status.

                \n
              • \n
              • \n

                \n Value - The value to match.

                \n
              • \n
              " + "smithy.api#documentation": "

              An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude resources that match the statement from the list. The match statement\n consists of a key and a value.

              \n

              \n Filter properties\n

              \n
                \n
              • \n

                \n Condition - The condition to apply. Valid values are\n IS and IS_NOT.

                \n
              • \n
              • \n

                \n Key - The name of the parameter to filter on. Valid values are\n ResourceArn and Status.

                \n
              • \n
              • \n

                \n Value - The value to match.

                \n
              • \n
              " } } } @@ -4240,7 +4264,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a summary\n for each backtest export job. You can filter the list using an array of Filter objects.

              \n

              To retrieve the complete set of properties for a particular backtest export job, use the\n ARN with the DescribePredictorBacktestExportJob operation.

              ", + "smithy.api#documentation": "

              Returns a list of predictor backtest export jobs created using the CreatePredictorBacktestExportJob operation. This operation returns a\n summary for each backtest export job. You can filter the list using an array of Filter objects.

              \n

              To retrieve the complete set of properties for a particular backtest export job, use\n the ARN with the DescribePredictorBacktestExportJob operation.

              ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -4256,7 +4280,7 @@ "NextToken": { "target": "com.amazonaws.forecast#NextToken", "traits": { - "smithy.api#documentation": "

              If the result of the previous request was truncated, the response includes a NextToken.\n To retrieve the next set of results, use the token in the next request. Tokens expire after\n 24 hours.

              " + "smithy.api#documentation": "

              If the result of the previous request was truncated, the response includes a\n NextToken. To retrieve the next set of results, use the token in the next request.\n Tokens expire after 24 hours.

              " } }, "MaxResults": { @@ -4268,7 +4292,7 @@ "Filters": { "target": "com.amazonaws.forecast#Filters", "traits": { - "smithy.api#documentation": "

              An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the predictor backtest export jobs that match the statement from the\n list. The match statement consists of a key and a value.

              \n

              \n Filter properties\n

              \n
                \n
              • \n

                \n Condition - The condition to apply. Valid values are\n IS and IS_NOT. To include the predictor backtest\n export jobs that match the statement, specify IS. To exclude matching\n predictor backtest export jobs, specify IS_NOT.

                \n
              • \n
              • \n

                \n Key - The name of the parameter to filter on. Valid values are\n PredictorArn and Status.

                \n
              • \n
              • \n

                \n Value - The value to match.

                \n
              • \n
              " + "smithy.api#documentation": "

              An array of filters. For each filter, provide a condition and a match statement. The\n condition is either IS or IS_NOT, which specifies whether to\n include or exclude the predictor backtest export jobs that match the statement from the\n list. The match statement consists of a key and a value.

              \n

              \n Filter properties\n

              \n
                \n
              • \n

                \n Condition - The condition to apply. Valid values are\n IS and IS_NOT. To include the predictor backtest\n export jobs that match the statement, specify IS. To exclude\n matching predictor backtest export jobs, specify IS_NOT.

                \n
              • \n
              • \n

                \n Key - The name of the parameter to filter on. Valid values are\n PredictorArn and Status.

                \n
              • \n
              • \n

                \n Value - The value to match.

                \n
              • \n
              " } } } @@ -4285,7 +4309,7 @@ "NextToken": { "target": "com.amazonaws.forecast#NextToken", "traits": { - "smithy.api#documentation": "

              Returns this token if the response is truncated. To retrieve the next\n set of results, use the token in the next request.

              " + "smithy.api#documentation": "

              Returns this token if the response is truncated. To retrieve the next set of results,\n use the token in the next request.

              " } } } @@ -4307,7 +4331,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns a list of predictors created using the CreatePredictor\n operation. For each predictor, this operation returns a summary of its properties, including\n its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the\n ARN with the DescribePredictor operation. You can filter the list using an\n array of Filter objects.

              ", + "smithy.api#documentation": "

              Returns a list of predictors created using the CreateAutoPredictor or\n CreatePredictor operations. For each predictor, this operation returns a\n summary of its properties, including its Amazon Resource Name (ARN).

              \n

              You can retrieve the complete set of properties by using the ARN with the DescribeAutoPredictor and DescribePredictor operations. You\n can filter the list using an array of Filter objects.

              ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "NextToken", @@ -4383,7 +4407,7 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource for which to list the tags.\n

              ", "smithy.api#required": {} } } @@ -4578,7 +4602,7 @@ "Status": { "target": "com.amazonaws.forecast#Status", "traits": { - "smithy.api#documentation": "

              The status of the predictor backtest export job. States include:

              \n
                \n
              • \n

                \n ACTIVE\n

                \n
              • \n
              • \n

                \n CREATE_PENDING, CREATE_IN_PROGRESS,\n CREATE_FAILED\n

                \n
              • \n
              • \n

                \n CREATE_STOPPING, CREATE_STOPPED\n

                \n
              • \n
              • \n

                \n DELETE_PENDING, DELETE_IN_PROGRESS,\n DELETE_FAILED\n

                \n
              • \n
              " + "smithy.api#documentation": "

              The status of the predictor backtest export job. States include:

              \n
                \n
              • \n

                \n ACTIVE\n

                \n
              • \n
              • \n

                \n CREATE_PENDING, CREATE_IN_PROGRESS,\n CREATE_FAILED\n

                \n
              • \n
              • \n

                \n CREATE_STOPPING, CREATE_STOPPED\n

                \n
              • \n
              • \n

                \n DELETE_PENDING, DELETE_IN_PROGRESS,\n DELETE_FAILED\n

                \n
              • \n
              " } }, "Message": { @@ -4596,12 +4620,12 @@ "LastModificationTime": { "target": "com.amazonaws.forecast#Timestamp", "traits": { - "smithy.api#documentation": "

              The last time the resource was modified. The timestamp depends on the status of the job:

              \n
                \n
              • \n

                \n CREATE_PENDING - The CreationTime.

                \n
              • \n
              • \n

                \n CREATE_IN_PROGRESS - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPING - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPED - When the job stopped.

                \n
              • \n
              • \n

                \n ACTIVE or CREATE_FAILED - When the job finished or\n failed.

                \n
              • \n
              " + "smithy.api#documentation": "

              The last time the resource was modified. The timestamp depends on the status of the\n job:

              \n
                \n
              • \n

                \n CREATE_PENDING - The CreationTime.

                \n
              • \n
              • \n

                \n CREATE_IN_PROGRESS - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPING - The current timestamp.

                \n
              • \n
              • \n

                \n CREATE_STOPPED - When the job stopped.

                \n
              • \n
              • \n

                \n ACTIVE or CREATE_FAILED - When the job finished or\n failed.

                \n
              • \n
              " } } }, "traits": { - "smithy.api#documentation": "

              Provides a summary of the predictor backtest export job properties used in the ListPredictorBacktestExportJobs operation. To get a complete set of properties, call\n the DescribePredictorBacktestExportJob operation, and provide the listed\n PredictorBacktestExportJobArn.

              " + "smithy.api#documentation": "

              Provides a summary of the predictor backtest export job properties used in the ListPredictorBacktestExportJobs operation. To get a complete set of\n properties, call the DescribePredictorBacktestExportJob operation, and\n provide the listed PredictorBacktestExportJobArn.

              " } }, "com.amazonaws.forecast#PredictorBacktestExportJobs": { @@ -4861,7 +4885,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Defines the fields of a dataset. You specify this object in the CreateDataset request.

              " + "smithy.api#documentation": "

              Defines the fields of a dataset.

              " } }, "com.amazonaws.forecast#SchemaAttribute": { @@ -5017,7 +5041,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Stops a resource.

              \n

              The resource undergoes the following states:\n CREATE_STOPPING and CREATE_STOPPED. You cannot resume\n a resource once it has been stopped.

              \n

              This operation can be applied to the following resources (and their corresponding child\n resources):

              \n
                \n
              • \n

                Dataset Import Job

                \n
              • \n
              • \n

                Predictor Job

                \n
              • \n
              • \n

                Forecast Job

                \n
              • \n
              • \n

                Forecast Export Job

                \n
              • \n
              • \n

                Predictor Backtest Export Job

                \n
              • \n
              ", + "smithy.api#documentation": "

              Stops a resource.

              \n

              The resource undergoes the following states: CREATE_STOPPING and\n CREATE_STOPPED. You cannot resume a resource once it has been\n stopped.

              \n

              This operation can be applied to the following resources (and their corresponding child\n resources):

              \n
                \n
              • \n

                Dataset Import Job

                \n
              • \n
              • \n

                Predictor Job

                \n
              • \n
              • \n

                Forecast Job

                \n
              • \n
              • \n

                Forecast Export Job

                \n
              • \n
              • \n

                Predictor Backtest Export Job

                \n
              • \n
              • \n

                Explainability Job

                \n
              • \n
              • \n

                Explainability Export Job

                \n
              • \n
              ", "smithy.api#idempotent": {} } }, @@ -5027,7 +5051,7 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource to stop. The supported ARNs\n are DatasetImportJobArn, PredictorArn,\n PredictorBacktestExportJobArn, ForecastArn, and\n ForecastExportJobArn.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource to stop. The supported ARNs\n are DatasetImportJobArn, PredictorArn,\n PredictorBacktestExportJobArn, ForecastArn,\n ForecastExportJobArn, ExplainabilityArn, and\n ExplainabilityExportArn.

              ", "smithy.api#required": {} } } @@ -5062,7 +5086,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in\n featurizations.

              \n

              \n Weather Index\n

              \n

              The Amazon Forecast Weather Index is a built-in featurization that incorporates historical and\n projected weather information into your model. The Weather Index supplements your datasets\n with over two years of historical weather data and up to 14 days of projected weather data.\n For more information, see Amazon Forecast Weather\n Index.

              \n

              \n Holidays\n

              \n

              Holidays is a built-in featurization that incorporates a feature-engineered dataset of\n national holiday information into your model. It provides native support for the holiday\n calendars of 66 countries. To view the holiday calendars, refer to the Jollyday library. For more\n information, see Holidays Featurization.

              " + "smithy.api#documentation": "\n

              This object belongs to the CreatePredictor operation. If you created\n your predictor with CreateAutoPredictor, see AdditionalDataset.

              \n
              \n

              Describes a supplementary feature of a dataset group. This object is part of the InputDataConfig object. Forecast supports the Weather Index and Holidays built-in\n featurizations.

              \n

              \n Weather Index\n

              \n

              The Amazon Forecast Weather Index is a built-in featurization that incorporates historical and\n projected weather information into your model. The Weather Index supplements your datasets\n with over two years of historical weather data and up to 14 days of projected weather data.\n For more information, see Amazon Forecast Weather\n Index.

              \n

              \n Holidays\n

              \n

              Holidays is a built-in featurization that incorporates a feature-engineered dataset of\n national holiday information into your model. It provides native support for the holiday\n calendars of 66 countries. To view the holiday calendars, refer to the Jollyday library. For more\n information, see Holidays Featurization.

              " } }, "com.amazonaws.forecast#SupplementaryFeatures": { @@ -5083,20 +5107,20 @@ "Key": { "target": "com.amazonaws.forecast#TagKey", "traits": { - "smithy.api#documentation": "

              One part of a key-value pair that makes up a tag. A key is a general label that acts like a category for more specific tag values.

              ", + "smithy.api#documentation": "

              One part of a key-value pair that makes up a tag. A key is a general label\n that acts like a category for more specific tag values.

              ", "smithy.api#required": {} } }, "Value": { "target": "com.amazonaws.forecast#TagValue", "traits": { - "smithy.api#documentation": "

              The optional part of a key-value pair that makes up a tag. A value acts as a descriptor within a tag category (key).

              ", + "smithy.api#documentation": "

              The optional part of a key-value pair that makes up a tag. A value acts as a\n descriptor within a tag category (key).

              ", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

              The optional metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              " + "smithy.api#documentation": "

              The optional metadata that you apply to a resource to help you categorize and organize\n them. Each tag consists of a key and an optional value, both of which you define.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              " } }, "com.amazonaws.forecast#TagKey": { @@ -5142,7 +5166,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.

              " + "smithy.api#documentation": "

              Associates the specified tags to a resource with the specified resourceArn.\n If existing tags on a resource are not specified in the request parameters, they are not\n changed. When a resource is deleted, the tags associated with that resource are also\n deleted.

              " } }, "com.amazonaws.forecast#TagResourceRequest": { @@ -5151,14 +5175,14 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast export jobs.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource for which to list the tags.\n

              ", "smithy.api#required": {} } }, "Tags": { "target": "com.amazonaws.forecast#Tags", "traits": { - "smithy.api#documentation": "

              The tags to add to the resource. A tag is an array of key-value pairs.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

                \n
              • \n
              ", + "smithy.api#documentation": "

              The tags to add to the resource. A tag is an array of key-value pairs.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per resource - 50.

                \n
              • \n
              • \n

                For each resource, each tag key must be unique, and each tag key can have only one\n value.

                \n
              • \n
              • \n

                Maximum key length - 128 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                Maximum value length - 256 Unicode characters in UTF-8.

                \n
              • \n
              • \n

                If your tagging schema is used across multiple services and resources, remember that\n other services may have restrictions on allowed characters. Generally allowed characters\n are: letters, numbers, and spaces representable in UTF-8, and the following characters: +\n - = . _ : / @.

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use aws:, AWS:, or any upper or lowercase combination\n of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag\n keys with this prefix. Values can have this prefix. If a tag value has aws as\n its prefix but the key does not, then Forecast considers it to be a user tag and will\n count against the limit of 50 tags. Tags with only the key prefix of aws do\n not count against your tags per resource limit.

                \n
              • \n
              ", "smithy.api#required": {} } } @@ -5344,7 +5368,7 @@ "ResourceArn": { "target": "com.amazonaws.forecast#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are Forecast dataset groups, datasets, dataset import jobs, predictors, forecasts, and forecast exports.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) that identifies the resource for which to list the tags.\n

              ", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/health.json b/codegen/sdk-codegen/aws-models/health.json index 57448992b7c7..bf18eee8dd5b 100644 --- a/codegen/sdk-codegen/aws-models/health.json +++ b/codegen/sdk-codegen/aws-models/health.json @@ -43,7 +43,7 @@ "name": "health" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Health\n \n

              The Health API provides programmatic access to the Health information that\n appears in the Personal Health Dashboard. You\n can use the API operations to get information about events that might affect your Amazon Web Services\n services and resources.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the\n Health API. If you call the Health API from an Amazon Web Services account that\n doesn't have a Business or Enterprise Support plan, you receive a\n SubscriptionRequiredException error.

                \n
              • \n
              • \n

                You can use the Health endpoint health.us-east-1.amazonaws.com (HTTPS) to\n call the Health API operations. Health supports a multi-Region\n application architecture and has two regional endpoints in an active-passive\n configuration. You can use the high availability endpoint example to determine\n which Amazon Web Services Region is active, so that you can get the latest information from the\n API. For more information, see Accessing the Health API in the\n Health User Guide.

                \n
              • \n
              \n
              \n

              For authentication of requests, Health uses the Signature Version 4 Signing\n Process.

              \n

              If your Amazon Web Services account is part of Organizations, you can use the Health organizational\n view feature. This feature provides a centralized view of Health events across all\n accounts in your organization. You can aggregate Health events in real time to\n identify accounts in your organization that are affected by an operational event or get\n notified of security vulnerabilities. Use the organizational view API operations to enable\n this feature and return event information. For more information, see Aggregating\n Health events in the Health User Guide.

              \n \n

              When you use the Health API operations to return Health events, see the\n following recommendations:

              \n
                \n
              • \n

                Use the eventScopeCode parameter to specify whether to return Health\n events that are public or account-specific.

                \n
              • \n
              • \n

                Use pagination to view all events from the response. For example, if you call\n the DescribeEventsForOrganization operation to get all events in your\n organization, you might receive several page results. Specify the\n nextToken in the next request to return more results.

                \n
              • \n
              \n
              ", + "smithy.api#documentation": "Health\n \n

              The Health API provides programmatic access to the Health information that\n appears in the Personal Health Dashboard. You\n can use the API operations to get information about events that might affect your Amazon Web Services services and resources.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health\n API. If you call the Health API from an Amazon Web Services account that\n doesn't have a Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a\n SubscriptionRequiredException error.

                \n
              • \n
              • \n

                You can use the Health endpoint health.us-east-1.amazonaws.com (HTTPS) to\n call the Health API operations. Health supports a multi-Region\n application architecture and has two regional endpoints in an active-passive\n configuration. You can use the high availability endpoint example to determine\n which Amazon Web Services Region is active, so that you can get the latest information from the\n API. For more information, see Accessing the Health API in the\n Health User Guide.

                \n
              • \n
              \n
              \n

              For authentication of requests, Health uses the Signature Version 4 Signing\n Process.

              \n

              If your Amazon Web Services account is part of Organizations, you can use the Health organizational\n view feature. This feature provides a centralized view of Health events across all\n accounts in your organization. You can aggregate Health events in real time to\n identify accounts in your organization that are affected by an operational event or get\n notified of security vulnerabilities. Use the organizational view API operations to enable\n this feature and return event information. For more information, see Aggregating\n Health events in the Health User Guide.

              \n \n

              When you use the Health API operations to return Health events, see the\n following recommendations:

              \n
                \n
              • \n

                Use the eventScopeCode parameter to specify whether to return Health\n events that are public or account-specific.

                \n
              • \n
              • \n

                Use pagination to view all events from the response. For example, if you call\n the DescribeEventsForOrganization operation to get all events in your\n organization, you might receive several page results. Specify the\n nextToken in the next request to return more results.

                \n
              • \n
              \n
              ", "smithy.api#title": "AWS Health APIs and Notifications" }, "version": "2016-08-04", @@ -265,7 +265,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns a list of entities that have been affected by the specified events, based on the\n specified filter criteria. Entities can refer to individual customer resources, groups of\n customer resources, or any other construct, depending on the Amazon Web Services service. Events that\n have impact beyond that of the affected entities, or where the extent of impact is unknown,\n include at least one entity indicating this.

              \n

              At least one event ARN is required.

              \n \n \n
                \n
              • \n

                This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

                \n
              • \n
              • \n

                This operation supports resource-level permissions. You can use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

                \n
              • \n
              \n
              ", + "smithy.api#documentation": "

              Returns a list of entities that have been affected by the specified events, based on the\n specified filter criteria. Entities can refer to individual customer resources, groups of\n customer resources, or any other construct, depending on the Amazon Web Services service. Events that\n have impact beyond that of the affected entities, or where the extent of impact is unknown,\n include at least one entity indicating this.

              \n

              At least one event ARN is required.

              \n\n \n
                \n
              • \n

                This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

                \n
              • \n
              • \n

                This operation supports resource-level permissions. You can use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

                \n
              • \n
              \n
              ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -292,7 +292,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns a list of entities that have been affected by one or more events for one or more\n accounts in your organization in Organizations, based on the filter criteria. Entities can refer\n to individual customer resources, groups of customer resources, or any other construct,\n depending on the Amazon Web Services service.

              \n

              At least one event Amazon Resource Name (ARN) and account ID are required.

              \n

              Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization\n operation from your organization's management account.

              \n \n
                \n
              • \n

                This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

                \n
              • \n
              • \n

                This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

                \n
              • \n
              \n \n
              ", + "smithy.api#documentation": "

              Returns a list of entities that have been affected by one or more events for one or more\n accounts in your organization in Organizations, based on the filter criteria. Entities can refer\n to individual customer resources, groups of customer resources, or any other construct,\n depending on the Amazon Web Services service.

              \n

              At least one event Amazon Resource Name (ARN) and account ID are required.

              \n

              Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's\n management account.

              \n \n
                \n
              • \n

                This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

                \n
              • \n
              • \n

                This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

                \n
              • \n
              \n\n
              ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -552,7 +552,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns detailed information about one or more specified events for one or more\n Amazon Web Services accounts in your organization. This information includes standard event data (such as the\n Amazon Web Services Region and service), an event description, and (depending on the event) possible\n metadata. This operation doesn't return affected entities, such as the resources related to\n the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

              \n \n

              Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's\n management account.

              \n
              \n

              When you call the DescribeEventDetailsForOrganization operation, specify\n the organizationEventDetailFilters object in the request. Depending on the\n Health event type, note the following differences:

              \n
                \n
              • \n

                To return event details for a public event, you must specify a null value for the\n awsAccountId parameter. If you specify an account ID for a public\n event, Health returns an error message because public events aren't specific to\n an account.

                \n
              • \n
              • \n

                To return event details for an event that is specific to an account in your\n organization, you must specify the awsAccountId parameter in the\n request. If you don't specify an account ID, Health returns an error message\n because the event is specific to an account in your organization.

                \n
              • \n
              \n

              For more information, see Event.

              \n\n \n

              This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

              \n
              ", + "smithy.api#documentation": "

              Returns detailed information about one or more specified events for one or more\n Amazon Web Services accounts in your organization. This information includes standard event data (such as\n the Amazon Web Services Region and service), an event description, and (depending on the event) possible\n metadata. This operation doesn't return affected entities, such as the resources related to\n the event. To return affected entities, use the DescribeAffectedEntitiesForOrganization operation.

              \n \n

              Before you can call this operation, you must first enable Health to work with\n Organizations. To do this, call the EnableHealthServiceAccessForOrganization operation from your organization's\n management account.

              \n
              \n

              When you call the DescribeEventDetailsForOrganization operation, specify\n the organizationEventDetailFilters object in the request. Depending on the\n Health event type, note the following differences:

              \n
                \n
              • \n

                To return event details for a public event, you must specify a null value for the\n awsAccountId parameter. If you specify an account ID for a public\n event, Health returns an error message because public events aren't specific to\n an account.

                \n
              • \n
              • \n

                To return event details for an event that is specific to an account in your\n organization, you must specify the awsAccountId parameter in the\n request. If you don't specify an account ID, Health returns an error message\n because the event is specific to an account in your organization.

                \n
              • \n
              \n

              For more information, see Event.

              \n\n \n

              This operation doesn't support resource-level permissions. You can't use this operation to allow or deny access to specific Health events. For more\n information, see Resource- and action-based conditions in the Health User Guide.

              \n
              ", "smithy.api#idempotent": {} } }, @@ -661,7 +661,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the event types that meet the specified filter criteria. You can use this API\n operation to find information about the Health event, such as the category, Amazon Web Services\n service, and event code. The metadata for each event appears in the EventType object.

              \n

              If you don't specify a filter criteria, the API operation returns all event types, in no\n particular order.

              \n \n

              This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

              \n
              ", + "smithy.api#documentation": "

              Returns the event types that meet the specified filter criteria. You can use this API\n operation to find information about the Health event, such as the category, Amazon Web Services\n service, and event code. The metadata for each event appears in the EventType object.

              \n

              If you don't specify a filter criteria, the API operation returns all event types, in no\n particular order.

              \n \n

              This API operation uses pagination. Specify the nextToken parameter in the next request to return more results.

              \n
              ", "smithy.api#idempotent": {}, "smithy.api#paginated": { "inputToken": "nextToken", @@ -879,7 +879,7 @@ "healthServiceAccessStatusForOrganization": { "target": "com.amazonaws.health#healthServiceAccessStatusForOrganization", "traits": { - "smithy.api#documentation": "

              Information about the status of enabling or disabling the Health organizational\n view feature in\n your organization.

              \n

              Valid values are ENABLED | DISABLED | PENDING.

              " + "smithy.api#documentation": "

              Information about the status of enabling or disabling the Health organizational\n view feature in your organization.

              \n

              Valid values are ENABLED | DISABLED | PENDING.

              " } } } @@ -892,7 +892,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Disables Health from working with Organizations. To call this operation, you must sign\n in as an Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not\n recommended) in the organization's management account. For more information, see Aggregating\n Health events in the\n Health User Guide.

              \n

              This operation doesn't remove the service-linked role from the management account in your organization. You must use the IAM console, API, or Command Line Interface (CLI) to\n remove the service-linked role. For more information, see Deleting a Service-Linked Role in the\n IAM User Guide.

              \n \n

              You can also disable the organizational feature by using the Organizations DisableAWSServiceAccess API operation. After you call this operation,\n Health stops aggregating events for all other Amazon Web Services accounts in your organization.\n If you call the Health API operations for organizational view, Health returns\n an error. Health continues to aggregate health events for your Amazon Web Services account.

              \n
              ", + "smithy.api#documentation": "

              Disables Health from working with Organizations. To call this operation, you must sign\n in as an Identity and Access Management (IAM) user, assume an IAM role, or sign in as the root user (not\n recommended) in the organization's management account. For more information, see Aggregating\n Health events in the Health User Guide.

              \n

              This operation doesn't remove the service-linked role from the management account in your\n organization. You must use the IAM console, API, or Command Line Interface (CLI) to remove the\n service-linked role. For more information, see Deleting a Service-Linked Role in the\n IAM User Guide.

              \n \n

              You can also disable the organizational feature by using the Organizations DisableAWSServiceAccess API operation. After you call this operation,\n Health stops aggregating events for all other Amazon Web Services accounts in your organization.\n If you call the Health API operations for organizational view, Health returns\n an error. Health continues to aggregate health events for your\n Amazon Web Services account.

              \n
              ", "smithy.api#idempotent": {} } }, @@ -904,7 +904,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Enables Health to work with Organizations. You can use the organizational view feature\n to aggregate events from all Amazon Web Services accounts in your organization in a centralized location.

              \n

              This operation also creates a service-linked role for the management account in the\n organization.

              \n \n

              To call this operation, you must meet the following requirements:

              \n
                \n
              • \n

                You must have a Business or Enterprise Support plan from Amazon Web Services Support to use the Health\n API. If you call the Health API from an Amazon Web Services account that doesn't have a\n Business or Enterprise Support plan, you receive a\n SubscriptionRequiredException error.

                \n
              • \n
              • \n

                You must have permission to call this operation from the organization's\n management account. For example IAM policies, see Health\n identity-based policy examples.

                \n
              • \n
              \n
              \n

              If you don't have the required support plan, you can instead use the Health console\n to enable the organizational view feature. For more information, see Aggregating\n Health events in the Health User Guide.

              ", + "smithy.api#documentation": "

              Enables Health to work with Organizations. You can use the organizational view feature\n to aggregate events from all Amazon Web Services accounts in your organization in a centralized location.

              \n

              This operation also creates a service-linked role for the management account in the\n organization.

              \n \n

              To call this operation, you must meet the following requirements:

              \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan from Amazon Web Services Support to use the Health\n API. If you call the Health API from an Amazon Web Services account that doesn't have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, you receive a\n SubscriptionRequiredException error.

                \n
              • \n
              • \n

                You must have permission to call this operation from the organization's\n management account. For example IAM policies, see Health\n identity-based policy examples.

                \n
              • \n
              \n
              \n

              If you don't have the required support plan, you can instead use the Health console\n to enable the organizational view feature. For more information, see Aggregating\n Health events in the Health User Guide.

              ", "smithy.api#idempotent": {} } }, @@ -976,7 +976,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The values to use to filter results from the DescribeAffectedEntities\n operation.

              " + "smithy.api#documentation": "

              The values to use to filter results from the DescribeAffectedEntities operation.

              " } }, "com.amazonaws.health#EntityList": { @@ -1056,7 +1056,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Summary information about an Health event.

              \n

              Health events can be public or account-specific:

              \n
                \n
              • \n

                \n Public events might be service events that are not specific\n to an Amazon Web Services account. For example, if there is an issue with an Amazon Web Services Region,\n Health provides information about the event, even if you don't use services or\n resources in that Region.

                \n
              • \n
              • \n

                \n Account-specific events are specific to either your Amazon Web Services account or an account in your organization. For example, if there's an issue with\n Amazon Elastic Compute Cloud in a Region that you use, Health provides information about the event\n and the affected resources in the account.

                \n
              • \n
              \n

              You can determine if an event is public or account-specific by using the\n eventScopeCode parameter. For more information, see eventScopeCode.

              " + "smithy.api#documentation": "

              Summary information about an Health event.

              \n

              Health events can be public or account-specific:

              \n
                \n
              • \n

                \n Public events might be service events that are not specific\n to an Amazon Web Services account. For example, if there is an issue with an Amazon Web Services Region,\n Health provides information about the event, even if you don't use services or\n resources in that Region.

                \n
              • \n
              • \n

                \n Account-specific events are specific to either your\n Amazon Web Services account or an account in your organization. For example, if there's an issue\n with Amazon Elastic Compute Cloud in a Region that you use, Health provides information about the\n event and the affected resources in the account.

                \n
              • \n
              \n

              You can determine if an event is public or account-specific by using the\n eventScopeCode parameter. For more information, see eventScopeCode.

              " } }, "com.amazonaws.health#EventAccountFilter": { @@ -1557,7 +1557,7 @@ "errorMessage": { "target": "com.amazonaws.health#string", "traits": { - "smithy.api#documentation": "

              A message that describes the error.

              \n

              If you call the DescribeEventDetailsForOrganization operation and receive one of the following errors, follow the recommendations in the message:

              \n
                \n
              • \n

                We couldn't find a public event that matches your request. To find an event that is account specific, you must enter an Amazon Web Services account ID in the request.

                \n
              • \n
              • \n

                We couldn't find an account specific event for the specified Amazon Web Services account. To find an event that is public, you must enter a null value for the Amazon Web Services account ID in the request.

                \n
              • \n
              • \n

                Your Amazon Web Services account doesn't include the Amazon Web Services Support plan required to use the Health API. You must have either a Business or Enterprise Support plan.

                \n
              • \n
              " + "smithy.api#documentation": "

              A message that describes the error.

              \n

              If you call the DescribeEventDetailsForOrganization operation and receive one of the following errors, follow the recommendations in the message:

              \n
                \n
              • \n

                We couldn't find a public event that matches your request. To find an event that is account specific, you must enter an Amazon Web Services account ID in the request.

                \n
              • \n
              • \n

                We couldn't find an account specific event for the specified Amazon Web Services account. To find an event that is public, you must enter a null value for the Amazon Web Services account ID in the request.

                \n
              • \n
              • \n

                Your Amazon Web Services account doesn't include the Amazon Web Services Support plan required to use the\nHealth API. You must have either a Business, Enterprise On-Ramp, or Enterprise Support plan.

                \n
              • \n
              " } } }, diff --git a/codegen/sdk-codegen/aws-models/imagebuilder.json b/codegen/sdk-codegen/aws-models/imagebuilder.json index d01bf34f5a7d..8453dc8a0a63 100644 --- a/codegen/sdk-codegen/aws-models/imagebuilder.json +++ b/codegen/sdk-codegen/aws-models/imagebuilder.json @@ -174,6 +174,25 @@ "com.amazonaws.imagebuilder#Boolean": { "type": "boolean" }, + "com.amazonaws.imagebuilder#BuildType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "USER_INITIATED", + "name": "USER_INITIATED" + }, + { + "value": "SCHEDULED", + "name": "SCHEDULED" + }, + { + "value": "IMPORT", + "name": "IMPORT" + } + ] + } + }, "com.amazonaws.imagebuilder#CallRateLimitExceededException": { "type": "structure", "members": { @@ -243,7 +262,7 @@ "clientToken": { "target": "com.amazonaws.imagebuilder#ClientToken", "traits": { - "smithy.api#documentation": "

              The idempotency token used to make this request idempotent.

              ", + "smithy.api#documentation": "

              Unique, case-sensitive identifier you provide to ensure\n idempotency of the request. For more information, see Ensuring idempotency \n in the Amazon EC2 API Reference.

              ", "smithy.api#idempotencyToken": {}, "smithy.api#required": {} } @@ -262,7 +281,7 @@ "clientToken": { "target": "com.amazonaws.imagebuilder#ClientToken", "traits": { - "smithy.api#documentation": "

              The idempotency token used to make this request idempotent.

              " + "smithy.api#documentation": "

              The idempotency token that was used for this request.

              " } }, "imageBuildVersionArn": { @@ -2018,7 +2037,7 @@ "snsTopicArn": { "target": "com.amazonaws.imagebuilder#SnsTopicArn", "traits": { - "smithy.api#documentation": "

              The SNS topic on which to send image build events.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

              \n\t\t \n\t\t\t

              EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys \n\t\t\t\tfrom other accounts. The key that is used to encrypt the SNS topic must reside in the \n\t\t\t\taccount that the Image Builder service runs under.

              \n\t\t
              " } }, "resourceTags": { @@ -2565,6 +2584,25 @@ } } }, + "com.amazonaws.imagebuilder#DiskImageFormat": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "VMDK", + "name": "VMDK" + }, + { + "value": "RAW", + "name": "RAW" + }, + { + "value": "VHD", + "name": "VHD" + } + ] + } + }, "com.amazonaws.imagebuilder#Distribution": { "type": "structure", "members": { @@ -2598,6 +2636,12 @@ "traits": { "smithy.api#documentation": "

              A group of launchTemplateConfiguration settings that apply to image distribution \n\t\t\tfor specified accounts.

              " } + }, + "s3ExportConfiguration": { + "target": "com.amazonaws.imagebuilder#S3ExportConfiguration", + "traits": { + "smithy.api#documentation": "

              Configure export settings to deliver disk images created from your image build, \n\t\t\tusing a file format that is compatible with your VMs in that Region.

              " + } } }, "traits": { @@ -3826,6 +3870,12 @@ "traits": { "smithy.api#documentation": "

              The tags of the image.

              " } + }, + "buildType": { + "target": "com.amazonaws.imagebuilder#BuildType", + "traits": { + "smithy.api#documentation": "

              Indicates the type of build that created this image. The build can be initiated \n\t\t\tin the following ways:

              \n\t\t
                \n
              • \n\t\t\t\t

                \n USER_INITIATED – A manual \n\t\t\t\t\tpipeline build request.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n SCHEDULED – A pipeline build \n\t\t\t\t\tinitiated by a cron expression in the Image Builder pipeline, or from EventBridge.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n IMPORT – A VM import created \n\t\t\t\t\tthe image to use as the base image for the recipe.

                \n\t\t\t
              • \n
              " + } } }, "traits": { @@ -4285,6 +4335,12 @@ "traits": { "smithy.api#documentation": "

              The tags of the image.

              " } + }, + "buildType": { + "target": "com.amazonaws.imagebuilder#BuildType", + "traits": { + "smithy.api#documentation": "

              Indicates the type of build that created this image. The build can be initiated \n\t\t\tin the following ways:

              \n\t\t
                \n
              • \n\t\t\t\t

                \n USER_INITIATED – A manual \n\t\t\t\t\tpipeline build request.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n SCHEDULED – A pipeline build \n\t\t\t\t\tinitiated by a cron expression in the Image Builder pipeline, or from EventBridge.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n IMPORT – A VM import created \n\t\t\t\t\tthe image to use as the base image for the recipe.

                \n\t\t\t
              • \n
              " + } } }, "traits": { @@ -4303,7 +4359,7 @@ "imageTestsEnabled": { "target": "com.amazonaws.imagebuilder#NullableBoolean", "traits": { - "smithy.api#documentation": "

              Defines if tests should be executed when building this image.

              " + "smithy.api#documentation": "

              Determines if tests should run after building the image. Image Builder defaults \n\t\t\tto enable tests to run following the image build, before image distribution.

              " } }, "timeoutMinutes": { @@ -4314,7 +4370,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Image tests configuration.

              " + "smithy.api#documentation": "

              Configure image tests for your pipeline build. Tests run after building \n\t\t\tthe image, to verify that the AMI or container image is valid before \n\t\t\tdistributing it.

              " } }, "com.amazonaws.imagebuilder#ImageTestsTimeoutMinutes": { @@ -4392,6 +4448,12 @@ "traits": { "smithy.api#documentation": "

              The date on which this specific version of the Image Builder image was created.

              " } + }, + "buildType": { + "target": "com.amazonaws.imagebuilder#BuildType", + "traits": { + "smithy.api#documentation": "

              Indicates the type of build that created this image. The build can be initiated \n\t\t\tin the following ways:

              \n\t\t
                \n
              • \n\t\t\t\t

                \n USER_INITIATED – A manual \n\t\t\t\t\tpipeline build request.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n SCHEDULED – A pipeline build \n\t\t\t\t\tinitiated by a cron expression in the Image Builder pipeline, or from EventBridge.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n IMPORT – A VM import created \n\t\t\t\t\tthe image to use as the base image for the recipe.

                \n\t\t\t
              • \n
              " + } } }, "traits": { @@ -4572,6 +4634,116 @@ } } }, + "com.amazonaws.imagebuilder#ImportVmImage": { + "type": "operation", + "input": { + "target": "com.amazonaws.imagebuilder#ImportVmImageRequest" + }, + "output": { + "target": "com.amazonaws.imagebuilder#ImportVmImageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.imagebuilder#ClientException" + }, + { + "target": "com.amazonaws.imagebuilder#ServiceException" + }, + { + "target": "com.amazonaws.imagebuilder#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

              When you export your virtual machine (VM) from its virtualization environment, \n\t\t\tthat process creates a set of one or more disk container files that act as \n\t\t\tsnapshots of your VM’s environment, settings, and data. The Amazon EC2 API \n\t\t\tImportImage \n\t\t\taction uses those files to import your VM and create an AMI. To import using the \n\t\t\tCLI command, see import-image\n\t\t

              \n\t\t

              You can reference the task ID from the VM import to pull in the AMI that \n\t\t\tthe import created as the base image for your Image Builder recipe.

              ", + "smithy.api#http": { + "method": "PUT", + "uri": "/ImportVmImage", + "code": 200 + } + } + }, + "com.amazonaws.imagebuilder#ImportVmImageRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The name of the base image that is created by the import process.

              ", + "smithy.api#required": {} + } + }, + "semanticVersion": { + "target": "com.amazonaws.imagebuilder#VersionNumber", + "traits": { + "smithy.api#documentation": "

              The semantic version to attach to the base image that was created during the \n\t\t\timport process. This version follows the semantic version syntax.

              \n\t\t \n\t\t\t

              The semantic version has four nodes: ../. \n\tYou can assign values for the first three, and can filter on all of them.

              \n\t\t\t

              \n Assignment: For the first three nodes you can assign any positive integer value, including \n\tzero, with an upper limit of 2^30-1, or 1073741823 for each node. Image Builder automatically assigns the \n\tbuild number to the fourth node.

              \n\t\t\t

              \n Patterns: You can use any numeric pattern that adheres to the assignment requirements for \n\tthe nodes that you can assign. For example, you might choose a software version pattern, such as 1.0.0, or \n\ta date, such as 2021.01.01.

              \n\t\t
              ", + "smithy.api#required": {} + } + }, + "description": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The description for the base image that is created by the import process.

              " + } + }, + "platform": { + "target": "com.amazonaws.imagebuilder#Platform", + "traits": { + "smithy.api#documentation": "

              The operating system platform for the imported VM.

              ", + "smithy.api#required": {} + } + }, + "osVersion": { + "target": "com.amazonaws.imagebuilder#OsVersion", + "traits": { + "smithy.api#documentation": "

              The operating system version for the imported VM.

              " + } + }, + "vmImportTaskId": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The importTaskId (API) or ImportTaskId (CLI) from the \n\t\t\tAmazon EC2 VM import process. Image Builder retrieves information from the import process to pull \n\t\t\tin the AMI that is created from the VM source as the base image for your recipe.

              ", + "smithy.api#required": {} + } + }, + "tags": { + "target": "com.amazonaws.imagebuilder#TagMap", + "traits": { + "smithy.api#documentation": "

              Tags that are attached to the import resources.

              " + } + }, + "clientToken": { + "target": "com.amazonaws.imagebuilder#ClientToken", + "traits": { + "smithy.api#documentation": "

              Unique, case-sensitive identifier you provide to ensure\n idempotency of the request. For more information, see Ensuring idempotency \n in the Amazon EC2 API Reference.

              ", + "smithy.api#idempotencyToken": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.imagebuilder#ImportVmImageResponse": { + "type": "structure", + "members": { + "requestId": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The request ID that uniquely identifies this request.

              " + } + }, + "imageArn": { + "target": "com.amazonaws.imagebuilder#Arn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the AMI that was created during the VM \n\t\t\timport process. This AMI is used as the base image for the recipe that \n\t\t\timported the VM.

              " + } + }, + "clientToken": { + "target": "com.amazonaws.imagebuilder#ClientToken", + "traits": { + "smithy.api#documentation": "

              The idempotency token that was used for this request.

              " + } + } + } + }, "com.amazonaws.imagebuilder#InfrastructureConfiguration": { "type": "structure", "members": { @@ -4638,7 +4810,7 @@ "snsTopicArn": { "target": "com.amazonaws.imagebuilder#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The SNS topic Amazon Resource Name (ARN) of the infrastructure configuration.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

              \n\t\t \n\t\t\t

              EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys \n\t\t\t\tfrom other accounts. The key that is used to encrypt the SNS topic must reside in the \n\t\t\t\taccount that the Image Builder service runs under.

              \n\t\t
              " } }, "dateCreated": { @@ -6759,19 +6931,54 @@ } } }, + "com.amazonaws.imagebuilder#S3ExportConfiguration": { + "type": "structure", + "members": { + "roleName": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The name of the role that grants VM Import/Export permission to \n\t\t\texport images to your S3 bucket.

              ", + "smithy.api#required": {} + } + }, + "diskImageFormat": { + "target": "com.amazonaws.imagebuilder#DiskImageFormat", + "traits": { + "smithy.api#documentation": "

              Export the updated image to one of the following supported disk \n\t\t\timage formats:

              \n\t\t
                \n
              • \n\t\t\t\t

                \n Virtual Hard Disk (VHD) – \n\t\t\t\t\tCompatible with Citrix Xen and Microsoft Hyper-V virtualization products.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n Stream-optimized ESX Virtual Machine Disk \n\t\t\t\t\t(VMDK) – Compatible with VMware ESX and \n\t\t\t\t\tVMware vSphere versions 4, 5, and 6.

                \n\t\t\t
              • \n
              • \n\t\t\t\t

                \n Raw – Raw format.

                \n\t\t\t
              • \n
              ", + "smithy.api#required": {} + } + }, + "s3Bucket": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The S3 bucket in which to store the output disk images for your VM.

              ", + "smithy.api#required": {} + } + }, + "s3Prefix": { + "target": "com.amazonaws.imagebuilder#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The Amazon S3 path for the bucket where the output disk images for your VM are stored.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Properties that configure export from your build instance \n\t\t\tto a compatible file format for your VM.

              " + } + }, "com.amazonaws.imagebuilder#S3Logs": { "type": "structure", "members": { "s3BucketName": { "target": "com.amazonaws.imagebuilder#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The Amazon S3 bucket in which to store the logs.

              " + "smithy.api#documentation": "

              The S3 bucket in which to store the logs.

              " } }, "s3KeyPrefix": { "target": "com.amazonaws.imagebuilder#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The Amazon S3 path in which to store the logs.

              " + "smithy.api#documentation": "

              The Amazon S3 path to the bucket where the logs are stored.

              " } } }, @@ -7496,7 +7703,7 @@ "snsTopicArn": { "target": "com.amazonaws.imagebuilder#SnsTopicArn", "traits": { - "smithy.api#documentation": "

              The SNS topic on which to send image build events.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the SNS topic to which we send image build event notifications.

              \n\t\t \n\t\t\t

              EC2 Image Builder is unable to send notifications to SNS topics that are encrypted using keys \n\t\t\t\tfrom other accounts. The key that is used to encrypt the SNS topic must reside in the \n\t\t\t\taccount that the Image Builder service runs under.

              \n\t\t
              " } }, "clientToken": { @@ -7663,6 +7870,9 @@ { "target": "com.amazonaws.imagebuilder#ImportComponent" }, + { + "target": "com.amazonaws.imagebuilder#ImportVmImage" + }, { "target": "com.amazonaws.imagebuilder#ListComponentBuildVersions" }, diff --git a/codegen/sdk-codegen/aws-models/iot.json b/codegen/sdk-codegen/aws-models/iot.json index a8f5e1b88073..a50863ac8b16 100644 --- a/codegen/sdk-codegen/aws-models/iot.json +++ b/codegen/sdk-codegen/aws-models/iot.json @@ -2827,6 +2827,12 @@ "traits": { "smithy.api#documentation": "

              Specifies whether IoT validates the token signature in an authorization request.

              " } + }, + "enableCachingForHttp": { + "target": "com.amazonaws.iot#EnableCachingForHttp", + "traits": { + "smithy.api#documentation": "

              When true, the result from the authorizer’s Lambda function is\n\t cached for the time specified in refreshAfterInSeconds. The cached\n\t result is used while the device reuses the same HTTP connection.

              " + } } }, "traits": { @@ -2839,7 +2845,8 @@ "smithy.api#length": { "min": 0, "max": 2048 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#AuthorizerName": { @@ -4222,15 +4229,18 @@ "smithy.api#length": { "min": 1, "max": 65536 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#CertificateSigningRequest": { "type": "string", "traits": { "smithy.api#length": { - "min": 1 - } + "min": 1, + "max": 4096 + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#CertificateStateException": { @@ -4969,6 +4979,12 @@ "traits": { "smithy.api#documentation": "

              Specifies whether IoT validates the token signature in an authorization request.

              " } + }, + "enableCachingForHttp": { + "target": "com.amazonaws.iot#EnableCachingForHttp", + "traits": { + "smithy.api#documentation": "

              When true, the result from the authorizer’s Lambda function is\n\t cached for clients that use persistent HTTP connections. The results are cached for the time\n\t specified by the Lambda function in refreshAfterInSeconds. This value\n does not affect authorization of clients that use MQTT connections.

              \n

              The default value is false.

              " + } } } }, @@ -13077,7 +13093,8 @@ "smithy.api#length": { "min": 1, "max": 253 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#DomainType": { @@ -13326,6 +13343,12 @@ "com.amazonaws.iot#ElasticsearchType": { "type": "string" }, + "com.amazonaws.iot#EnableCachingForHttp": { + "type": "boolean", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.iot#EnableIoTLoggingParams": { "type": "structure", "members": { @@ -13407,7 +13430,8 @@ "smithy.api#length": { "min": 0, "max": 128 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#Environment": { @@ -15327,7 +15351,8 @@ "smithy.api#length": { "min": 1, "max": 8192 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#HttpHeaderValue": { @@ -15336,7 +15361,8 @@ "smithy.api#length": { "min": 1, "max": 8192 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#HttpHeaders": { @@ -15354,7 +15380,8 @@ "smithy.api#length": { "min": 1, "max": 4096 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#HttpUrlDestinationConfiguration": { @@ -16466,7 +16493,8 @@ "smithy.api#length": { "min": 0, "max": 5120 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#KinesisAction": { @@ -21638,7 +21666,8 @@ "smithy.api#length": { "min": 0, "max": 128 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#MessageFormat": { @@ -21996,7 +22025,8 @@ "smithy.api#length": { "min": 1, "max": 65535 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#MqttContext": { @@ -22040,7 +22070,8 @@ "smithy.api#length": { "min": 1, "max": 65535 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#NamedShadowIndexingMode": { @@ -22512,7 +22543,14 @@ } }, "com.amazonaws.iot#Parameter": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#ParameterKey": { "type": "string", @@ -22654,7 +22692,14 @@ "type": "string" }, "com.amazonaws.iot#PolicyDocument": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 404600 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#PolicyDocuments": { "type": "list", @@ -24051,7 +24096,8 @@ "smithy.api#length": { "min": 0, "max": 2048 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#ResourceAlreadyExistsException": { @@ -24844,7 +24890,8 @@ "smithy.api#length": { "min": 1, "max": 253 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#ServiceName": { @@ -26391,7 +26438,14 @@ "type": "string" }, "com.amazonaws.iot#TemplateBody": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10240 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#TemplateDescription": { "type": "string", @@ -27368,7 +27422,8 @@ "smithy.api#length": { "min": 1, "max": 6144 - } + }, + "smithy.api#pattern": "^[\\s\\S]*$" } }, "com.amazonaws.iot#TokenKeyName": { @@ -28172,6 +28227,12 @@ "traits": { "smithy.api#documentation": "

              The status of the update authorizer request.

              " } + }, + "enableCachingForHttp": { + "target": "com.amazonaws.iot#EnableCachingForHttp", + "traits": { + "smithy.api#documentation": "

              When true, the result from the authorizer’s Lambda function is\n\t cached for the time specified in refreshAfterInSeconds. The cached\n\t result is used while the device reuses the same HTTP connection.

              " + } } } }, @@ -30047,7 +30108,14 @@ } }, "com.amazonaws.iot#Value": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 4096 + }, + "smithy.api#pattern": "^[\\s\\S]*$" + } }, "com.amazonaws.iot#Variance": { "type": "double" diff --git a/codegen/sdk-codegen/aws-models/lex-models-v2.json b/codegen/sdk-codegen/aws-models/lex-models-v2.json index 15e196c30ac8..9c0d3c4d4f33 100644 --- a/codegen/sdk-codegen/aws-models/lex-models-v2.json +++ b/codegen/sdk-codegen/aws-models/lex-models-v2.json @@ -3073,8 +3073,7 @@ "valueSelectionSetting": { "target": "com.amazonaws.lexmodelsv2#SlotValueSelectionSetting", "traits": { - "smithy.api#documentation": "

              Determines the strategy that Amazon Lex uses to select a value from the\n list of possible values. The field can be set to one of the following\n values:

              \n
                \n
              • \n

                \n OriginalValue - Returns the value entered by the\n user, if the user value is similar to the slot value.

                \n
              • \n
              • \n

                \n TopResolution - If there is a resolution list for\n the slot, return the first value in the resolution list. If there\n is no resolution list, return null.

                \n
              • \n
              \n

              If you don't specify the valueSelectionSetting\n parameter, the default is OriginalValue.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Determines the strategy that Amazon Lex uses to select a value from the\n list of possible values. The field can be set to one of the following\n values:

              \n
                \n
              • \n

                \n OriginalValue - Returns the value entered by the\n user, if the user value is similar to the slot value.

                \n
              • \n
              • \n

                \n TopResolution - If there is a resolution list for\n the slot, return the first value in the resolution list. If there\n is no resolution list, return null.

                \n
              • \n
              \n

              If you don't specify the valueSelectionSetting\n parameter, the default is OriginalValue.

              " } }, "parentSlotTypeSignature": { @@ -3106,6 +3105,12 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting", + "traits": { + "smithy.api#documentation": "

              Sets the type of external information used to create the slot\n type.

              " + } } } }, @@ -3171,6 +3176,12 @@ "traits": { "smithy.api#documentation": "

              A timestamp of the date and time that the slot type was\n created.

              " } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting", + "traits": { + "smithy.api#documentation": "

              The type of external information used to create the slot\n type.

              " + } } } }, @@ -4758,6 +4769,12 @@ "traits": { "smithy.api#documentation": "

              History of changes, such as when a locale is used in an alias, that\n have taken place for the locale.

              " } + }, + "recommendedActions": { + "target": "com.amazonaws.lexmodelsv2#RecommendedActions", + "traits": { + "smithy.api#documentation": "

              Recommended actions to take to resolve an error in the\n failureReasons field.

              " + } } } }, @@ -5961,6 +5978,9 @@ "traits": { "smithy.api#documentation": "

              A timestamp of the date and time that the slot type was last\n updated.

              " } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting" } } }, @@ -6235,6 +6255,20 @@ "target": "com.amazonaws.lexmodelsv2#ExportSummary" } }, + "com.amazonaws.lexmodelsv2#ExternalSourceSetting": { + "type": "structure", + "members": { + "grammarSlotTypeSetting": { + "target": "com.amazonaws.lexmodelsv2#GrammarSlotTypeSetting", + "traits": { + "smithy.api#documentation": "

              Settings required for a slot type based on a grammar that you\n provide.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Provides information about the external source of the slot type's\n definition.

              " + } + }, "com.amazonaws.lexmodelsv2#FailureReason": { "type": "string" }, @@ -6422,6 +6456,48 @@ "smithy.api#documentation": "

              Provides information for updating the user on the progress of\n fulfilling an intent.

              " } }, + "com.amazonaws.lexmodelsv2#GrammarSlotTypeSetting": { + "type": "structure", + "members": { + "source": { + "target": "com.amazonaws.lexmodelsv2#GrammarSlotTypeSource", + "traits": { + "smithy.api#documentation": "

              The source of the grammar used to create the slot type.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Settings requried for a slot type based on a grammar that you\n provide.

              " + } + }, + "com.amazonaws.lexmodelsv2#GrammarSlotTypeSource": { + "type": "structure", + "members": { + "s3BucketName": { + "target": "com.amazonaws.lexmodelsv2#S3BucketName", + "traits": { + "smithy.api#documentation": "

              The name of the S3 bucket that contains the grammar source.

              ", + "smithy.api#required": {} + } + }, + "s3ObjectKey": { + "target": "com.amazonaws.lexmodelsv2#S3ObjectPath", + "traits": { + "smithy.api#documentation": "

              The path to the grammar in the S3 bucket.

              ", + "smithy.api#required": {} + } + }, + "kmsKeyArn": { + "target": "com.amazonaws.lexmodelsv2#KmsKeyArn", + "traits": { + "smithy.api#documentation": "

              The Amazon KMS key required to decrypt the contents of the grammar,\n if any.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes the Amazon S3 bucket name and location for the grammar\n that is the source for the slot type.

              " + } + }, "com.amazonaws.lexmodelsv2#HitCount": { "type": "integer", "traits": { @@ -9331,6 +9407,15 @@ } } }, + "com.amazonaws.lexmodelsv2#RecommendedAction": { + "type": "string" + }, + "com.amazonaws.lexmodelsv2#RecommendedActions": { + "type": "list", + "member": { + "target": "com.amazonaws.lexmodelsv2#RecommendedAction" + } + }, "com.amazonaws.lexmodelsv2#RecommendedIntentSummary": { "type": "structure", "members": { @@ -9545,6 +9630,16 @@ "smithy.api#documentation": "

              The object representing the Amazon S3 bucket containing the transcript,\n as well as the associated metadata.

              " } }, + "com.amazonaws.lexmodelsv2#S3ObjectPath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$" + } + }, "com.amazonaws.lexmodelsv2#SSMLMessage": { "type": "structure", "members": { @@ -10084,6 +10179,25 @@ "target": "com.amazonaws.lexmodelsv2#SlotSummary" } }, + "com.amazonaws.lexmodelsv2#SlotTypeCategory": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "Custom", + "name": "Custom" + }, + { + "value": "Extended", + "name": "Extended" + }, + { + "value": "ExternalGrammar", + "name": "ExternalGrammar" + } + ] + } + }, "com.amazonaws.lexmodelsv2#SlotTypeFilter": { "type": "structure", "members": { @@ -10120,6 +10234,10 @@ { "value": "SlotTypeName", "name": "SlotTypeName" + }, + { + "value": "ExternalSourceType", + "name": "ExternalSourceType" } ] } @@ -10237,6 +10355,12 @@ "traits": { "smithy.api#documentation": "

              A timestamp of the date and time that the slot type was last\n updated.

              " } + }, + "slotTypeCategory": { + "target": "com.amazonaws.lexmodelsv2#SlotTypeCategory", + "traits": { + "smithy.api#documentation": "

              Indicates the type of the slot type.

              \n
                \n
              • \n

                \n Custom - A slot type that you created using\n custom values. For more information, see Creating custom slot\n types.

                \n
              • \n
              • \n

                \n Extended - A slot type created by extending the\n AMAZON.AlphaNumeric built-in slot type. For more information, see\n AMAZON.AlphaNumeric.

                \n
              • \n
              • \n

                \n ExternalGrammar - A slot type using a custom\n GRXML grammar to define values. For more information, see Using a custom grammar slot type.

                \n
              • \n
              " + } } }, "traits": { @@ -11342,6 +11466,12 @@ "traits": { "smithy.api#documentation": "

              A timestamp of the date and time that the locale was last\n updated.

              " } + }, + "recommendedActions": { + "target": "com.amazonaws.lexmodelsv2#RecommendedActions", + "traits": { + "smithy.api#documentation": "

              Recommended actions to take to resolve an error in the\n failureReasons field.

              " + } } } }, @@ -12306,8 +12436,7 @@ "valueSelectionSetting": { "target": "com.amazonaws.lexmodelsv2#SlotValueSelectionSetting", "traits": { - "smithy.api#documentation": "

              The strategy that Amazon Lex should use when deciding on a value from the\n list of slot type values.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The strategy that Amazon Lex should use when deciding on a value from the\n list of slot type values.

              " } }, "parentSlotTypeSignature": { @@ -12339,6 +12468,9 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting" } } }, @@ -12410,6 +12542,9 @@ "traits": { "smithy.api#documentation": "

              A timestamp of the date and time that the slot type was last\n updated.

              " } + }, + "externalSourceSetting": { + "target": "com.amazonaws.lexmodelsv2#ExternalSourceSetting" } } }, @@ -12484,7 +12619,7 @@ "engine": { "target": "com.amazonaws.lexmodelsv2#VoiceEngine", "traits": { - "smithy.api#documentation": "

              Indicates the type of Amazon Polly\n voice that Amazon Lex should use for voice interaction with the user. \n For more information, see Voices in Amazon Polly.

              " + "smithy.api#documentation": "

              Indicates the type of Amazon Polly voice that Amazon Lex should use for voice interaction with the user. For more\n information, see the \n engine parameter of the\n SynthesizeSpeech operation in the\n Amazon Polly developer guide.

              \n

              If you do not specify a value, the default is\n standard.

              " } } }, diff --git a/codegen/sdk-codegen/aws-models/location.json b/codegen/sdk-codegen/aws-models/location.json index 83a26bc6ede7..2fa3a1b7d77e 100644 --- a/codegen/sdk-codegen/aws-models/location.json +++ b/codegen/sdk-codegen/aws-models/location.json @@ -328,8 +328,7 @@ } ], "traits": { - "smithy.api#auth": [], - "smithy.api#documentation": "

              Evaluates device positions against the geofence geometries from a given geofence\n collection.

              \n

              This operation always returns an empty response because geofences are asynchronously\n evaluated. The evaluation determines if the device has entered or exited a geofenced\n area, and then publishes one of the following events to Amazon EventBridge:

              \n
                \n
              • \n

                \n ENTER if Amazon Location determines that the tracked device has entered\n a geofenced area.

                \n
              • \n
              • \n

                \n EXIT if Amazon Location determines that the tracked device has exited a\n geofenced area.

                \n
              • \n
              \n \n

              The last geofence that a device was observed within is tracked for 30 days after\n the most recent device position update.

              \n
              ", + "smithy.api#documentation": "

              Evaluates device positions against the geofence geometries from a given geofence\n collection.

              \n

              This operation always returns an empty response because geofences are asynchronously\n evaluated. The evaluation determines if the device has entered or exited a geofenced\n area, and then publishes one of the following events to Amazon EventBridge:

              \n
                \n
              • \n

                \n ENTER if Amazon Location determines that the tracked device has entered\n a geofenced area.

                \n
              • \n
              • \n

                \n EXIT if Amazon Location determines that the tracked device has exited a\n geofenced area.

                \n
              • \n
              \n \n

              The last geofence that a device was observed within is tracked for 30 days after\n the most recent device position update.

              \n
              \n \n

              Geofence evaluation uses the given device position. It does not account for the \n optional Accuracy of a DevicePositionUpdate.

              \n
              ", "smithy.api#endpoint": { "hostPrefix": "geofencing." }, @@ -771,7 +770,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Uploads position update data for one or more devices to a tracker resource. Amazon Location\n uses the data when it reports the last known device position and position history. Amazon Location retains location data for 30 \n days.

              \n \n

              Position updates are handled based on the PositionFiltering property of the tracker. \n When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, \n and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than \n every 30 seconds, only one update per 30 seconds is stored for each unique device ID.\n When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence \n collections only if the device has moved more than 30 m (98.4 ft).

              \n
              ", + "smithy.api#documentation": "

              Uploads position update data for one or more devices to a tracker resource. Amazon Location\n uses the data when it reports the last known device position and position history. Amazon Location retains location data for 30 \n days.

              \n \n

              Position updates are handled based on the PositionFiltering property of the tracker. \n When PositionFiltering is set to TimeBased, updates are evaluated against linked geofence collections, \n and location data is stored at a maximum of one position per 30 second interval. If your update frequency is more often than \n every 30 seconds, only one update per 30 seconds is stored for each unique device ID.

              \n

              When PositionFiltering is set to DistanceBased filtering, location data is stored and evaluated against linked geofence \n collections only if the device has moved more than 30 m (98.4 ft).

              \n

              When PositionFiltering is set to AccuracyBased filtering,\n location data is stored and evaluated against linked geofence collections only if the\n device has moved more than the measured accuracy. For example, if two consecutive\n updates from a device have a horizontal accuracy of 5 m and 10 m, the second update\n is neither stored or evaluated if the device has moved less than 15 m. If\n PositionFiltering is set to AccuracyBased filtering, Amazon Location\n uses the default value { \"Horizontal\": 0} when accuracy is not provided on\n a DevicePositionUpdate.

              \n
              ", "smithy.api#endpoint": { "hostPrefix": "tracking." }, @@ -1194,8 +1193,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

              Specifies the pricing plan for the geofence collection.

              \n

              For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Optionally specifies the pricing plan for the geofence collection. Defaults to\n RequestBasedUsage.

              \n

              For additional details and restrictions on each pricing plan option, see the Amazon Location Service pricing\n page.

              " } }, "PricingPlanDataSource": { @@ -1308,8 +1306,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

              Specifies the pricing plan for your map resource.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Optionally specifies the pricing plan for the map resource. Defaults to\n RequestBasedUsage.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              " } }, "Description": { @@ -1378,7 +1375,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a place index resource in your AWS account. Use a place index resource to\n geocode addresses and other text queries by using the SearchPlaceIndexForText operation,\n and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation.

              ", + "smithy.api#documentation": "

              Creates a place index resource in your AWS account. Use a place index resource to\n geocode addresses and other text queries by using the SearchPlaceIndexForText operation,\n and reverse geocode coordinates by using the SearchPlaceIndexForPosition operation, and\n enable autosuggestions by using the SearchPlaceIndexForSuggestions operation.

              ", "smithy.api#endpoint": { "hostPrefix": "places." }, @@ -1410,8 +1407,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

              Specifies the pricing plan for your place index resource.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Optionally specifies the pricing plan for the place index resource. Defaults to\n RequestBasedUsage.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              " } }, "Description": { @@ -1518,8 +1514,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

              Specifies the pricing plan for your route calculator resource.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Optionally specifies the pricing plan for the route calculator resource. Defaults to\n RequestBasedUsage.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              " } }, "Description": { @@ -1613,8 +1608,7 @@ "PricingPlan": { "target": "com.amazonaws.location#PricingPlan", "traits": { - "smithy.api#documentation": "

              Specifies the pricing plan for the tracker resource.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              Optionally specifies the pricing plan for the tracker resource. Defaults to\n RequestBasedUsage.

              \n

              For additional details and restrictions on each pricing plan option, see Amazon Location Service pricing.

              " } }, "KmsKeyId": { @@ -1644,7 +1638,7 @@ "PositionFiltering": { "target": "com.amazonaws.location#PositionFiltering", "traits": { - "smithy.api#documentation": "

              Specifies the position filtering for the tracker resource.

              \n

              Valid values:

              \n
                \n
              • \n

                \n TimeBased - Location updates are evaluated against linked geofence collections, \n but not every location update is stored. If your update frequency is more often than 30 seconds, \n only one update per 30 seconds is stored for each unique device ID.\n

                \n
              • \n
              • \n

                \n DistanceBased - If the device has moved less than 30 m (98.4 ft), location updates are \n ignored. Location updates within this area are neither evaluated against linked geofence collections, nor stored.\n This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through.\n Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map.\n

                \n
              • \n
              \n

              This field is optional. If not specified, the default value is TimeBased.

              " + "smithy.api#documentation": "

              Specifies the position filtering for the tracker resource.

              \n

              Valid values:

              \n
                \n
              • \n

                \n TimeBased - Location updates are evaluated against linked geofence collections, \n but not every location update is stored. If your update frequency is more often than 30 seconds, \n only one update per 30 seconds is stored for each unique device ID.\n

                \n
              • \n
              • \n

                \n DistanceBased - If the device has moved less than 30 m (98.4 ft), location updates are \n ignored. Location updates within this area are neither evaluated against linked geofence collections, nor stored.\n This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through.\n Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map.\n

                \n
              • \n
              • \n

                \n AccuracyBased - If the device has moved less than the measured accuracy,\n location updates are ignored. For example, if two consecutive updates from a device\n have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device\n has moved less than 15 m. Ignored location updates are neither evaluated against\n linked geofence collections, nor stored. This can reduce the effects of GPS noise\n when displaying device trajectories on a map, and can help control your costs by reducing the\n number of geofence evaluations.\n

                \n
              • \n
              \n

              This field is optional. If not specified, the default value is TimeBased.

              " } } } @@ -1990,7 +1984,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

              Retrieves the geofence collection details.

              ", "smithy.api#endpoint": { "hostPrefix": "geofencing." @@ -2107,7 +2100,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

              Retrieves the map resource details.

              ", "smithy.api#endpoint": { "hostPrefix": "maps." @@ -2226,7 +2218,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

              Retrieves the place index resource details.

              ", "smithy.api#endpoint": { "hostPrefix": "places." @@ -2345,7 +2336,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

              Retrieves the route calculator resource details.

              ", "smithy.api#endpoint": { "hostPrefix": "routes." @@ -2457,7 +2447,6 @@ } ], "traits": { - "smithy.api#auth": [], "smithy.api#documentation": "

              Retrieves the tracker resource details.

              ", "smithy.api#endpoint": { "hostPrefix": "tracking." @@ -2589,6 +2578,18 @@ "smithy.api#documentation": "

              The last known device position.

              ", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

              The accuracy of the device position.

              " + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

              The properties associated with the position.

              " + } } }, "traits": { @@ -2624,6 +2625,18 @@ "smithy.api#documentation": "

              The latest device position defined in WGS 84 format:\n [X or longitude, Y or latitude].

              ", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

              The accuracy of the device position.

              " + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

              Associates one of more properties with the position update. A property is a key-value\n pair stored with the position update and added to any geofence event the update may\n trigger.

              \n

              Format: \"key\" : \"value\"\n

              " + } } }, "traits": { @@ -3000,6 +3013,18 @@ "smithy.api#documentation": "

              The last known device position.

              ", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

              The accuracy of the device position.

              " + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

              The properties associated with the position.

              " + } } } }, @@ -3735,6 +3760,18 @@ "smithy.api#documentation": "

              The last known device position. Empty if no positions currently stored.

              ", "smithy.api#required": {} } + }, + "Accuracy": { + "target": "com.amazonaws.location#PositionalAccuracy", + "traits": { + "smithy.api#documentation": "

              The accuracy of the device position.

              " + } + }, + "PositionProperties": { + "target": "com.amazonaws.location#PropertyMap", + "traits": { + "smithy.api#documentation": "

              The properties associated with the position.

              " + } } }, "traits": { @@ -4937,6 +4974,9 @@ { "target": "com.amazonaws.location#SearchPlaceIndexForPosition" }, + { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestions" + }, { "target": "com.amazonaws.location#SearchPlaceIndexForText" } @@ -4995,6 +5035,25 @@ ] } }, + "com.amazonaws.location#PositionalAccuracy": { + "type": "structure", + "members": { + "Horizontal": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

              Estimated maximum distance, in meters, between the measured position and the true\n position of a device, along the Earth's surface.

              ", + "smithy.api#range": { + "min": 0, + "max": 10000 + }, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              Defines the level of certainty of the position.

              " + } + }, "com.amazonaws.location#PricingPlan": { "type": "string", "traits": { @@ -5014,6 +5073,34 @@ ] } }, + "com.amazonaws.location#PropertyMap": { + "type": "map", + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 40 + } + } + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 3 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.location#PutGeofence": { "type": "operation", "input": { @@ -5212,6 +5299,27 @@ "target": "com.amazonaws.location#SearchForPositionResult" } }, + "com.amazonaws.location#SearchForSuggestionsResult": { + "type": "structure", + "members": { + "Text": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The text of the place suggestion, typically formatted as an address string.

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              Contains a place suggestion resulting from a place suggestion query that is run on a place index resource.

              " + } + }, + "com.amazonaws.location#SearchForSuggestionsResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.location#SearchForSuggestionsResult" + } + }, "com.amazonaws.location#SearchForTextResult": { "type": "structure", "members": { @@ -5375,6 +5483,175 @@ "smithy.api#documentation": "

              A summary of the request sent by using SearchPlaceIndexForPosition.

              " } }, + "com.amazonaws.location#SearchPlaceIndexForSuggestions": { + "type": "operation", + "input": { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestionsRequest" + }, + "output": { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.location#AccessDeniedException" + }, + { + "target": "com.amazonaws.location#InternalServerException" + }, + { + "target": "com.amazonaws.location#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.location#ThrottlingException" + }, + { + "target": "com.amazonaws.location#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Generates suggestions for addresses and points of interest based on partial or\n misspelled free-form text. This operation is also known as autocomplete, autosuggest,\n or fuzzy matching.

              \n

              Optional parameters let you narrow your search results by bounding box or\n country, or bias your search toward a specific position on the globe.

              \n \n

              You can search for suggested place names near a specified position by using BiasPosition, or\n filter results within a bounding box by using FilterBBox. These parameters are mutually exclusive; \n using both BiasPosition and FilterBBox in the same command returns an error.

              \n
              ", + "smithy.api#endpoint": { + "hostPrefix": "places." + }, + "smithy.api#http": { + "method": "POST", + "uri": "/places/v0/indexes/{IndexName}/search/suggestions", + "code": 200 + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.location#SearchPlaceIndexForSuggestionsRequest": { + "type": "structure", + "members": { + "IndexName": { + "target": "com.amazonaws.location#ResourceName", + "traits": { + "smithy.api#documentation": "

              The name of the place index resource you want to use for the search.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Text": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The free-form partial text to use to generate place suggestions. For example,\n eiffel tow.

              ", + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "BiasPosition": { + "target": "com.amazonaws.location#Position", + "traits": { + "smithy.api#documentation": "

              An optional parameter that indicates a preference for place suggestions that are closer to a specified position.

              \n

              \n If provided, this parameter must contain a pair of numbers. The first number represents the X coordinate, or longitude; \n the second number represents the Y coordinate, or latitude.

              \n

              For example, [-123.1174, 49.2847] represents the position with\n longitude -123.1174 and\n latitude 49.2847.

              \n \n

              \n BiasPosition and FilterBBox are mutually exclusive. Specifying both options results in an error.\n

              \n
              " + } + }, + "FilterBBox": { + "target": "com.amazonaws.location#BoundingBox", + "traits": { + "smithy.api#documentation": "

              An optional parameter that limits the search results by returning only suggestions within a specified bounding box.

              \n

              \n If provided, this parameter must contain a total of four consecutive numbers in two pairs.\n The first pair of numbers represents the X and Y coordinates (longitude and latitude, respectively)\n of the southwest corner of the bounding box; the second pair of numbers represents the X and Y coordinates (longitude and latitude, respectively)\n of the northeast corner of the bounding box.

              \n

              For example, [-12.7935, -37.4835, -12.0684, -36.9542] represents\n a bounding box where the southwest corner has longitude -12.7935 and latitude -37.4835, \n and the northeast corner has longitude -12.0684 and latitude -36.9542.

              \n \n

              \n FilterBBox and BiasPosition are mutually exclusive. Specifying both options results in an error.\n

              \n
              " + } + }, + "FilterCountries": { + "target": "com.amazonaws.location#CountryCodeList", + "traits": { + "smithy.api#documentation": "

              An optional parameter that limits the search results by returning only suggestions within the provided list of countries.

              \n
                \n
              • \n

                Use the ISO 3166 3-digit\n country code. For example, Australia uses three upper-case characters:\n AUS.

                \n
              • \n
              " + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

              An optional parameter. The maximum number of results returned per request.

              \n

              The default: 5\n

              ", + "smithy.api#range": { + "min": 1, + "max": 15 + } + } + }, + "Language": { + "target": "com.amazonaws.location#LanguageTag", + "traits": { + "smithy.api#documentation": "

              The preferred language used to return results. The value must be a valid BCP 47 language tag, for example,\n en for English.

              \n

              This setting affects the languages used in the results. It does not change which \n results are returned. If the language is not specified, or not supported for a \n particular result, the partner automatically chooses a language for the result.

              \n

              Used only when the partner selected is Here.

              " + } + } + } + }, + "com.amazonaws.location#SearchPlaceIndexForSuggestionsResponse": { + "type": "structure", + "members": { + "Summary": { + "target": "com.amazonaws.location#SearchPlaceIndexForSuggestionsSummary", + "traits": { + "smithy.api#documentation": "

              Contains a summary of the request. Echoes the input values for BiasPosition,\n FilterBBox, FilterCountries, Language, MaxResults,\n and Text. Also includes the DataSource of the place index.\n

              ", + "smithy.api#required": {} + } + }, + "Results": { + "target": "com.amazonaws.location#SearchForSuggestionsResultList", + "traits": { + "smithy.api#documentation": "

              A list of place suggestions that best match the search text.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.location#SearchPlaceIndexForSuggestionsSummary": { + "type": "structure", + "members": { + "Text": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The free-form partial text input specified in the request.

              ", + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "BiasPosition": { + "target": "com.amazonaws.location#Position", + "traits": { + "smithy.api#documentation": "

              Contains the coordinates for the optional bias position specified in the request.

              \n

              This parameter contains a pair of numbers. The first number represents the X \n coordinate, or longitude; the second number represents the Y coordinate, or latitude.

              \n

              For example, [-123.1174, 49.2847] represents the position with\n longitude -123.1174 and latitude 49.2847.

              " + } + }, + "FilterBBox": { + "target": "com.amazonaws.location#BoundingBox", + "traits": { + "smithy.api#documentation": "

              Contains the coordinates for the optional bounding box specified in the request.

              " + } + }, + "FilterCountries": { + "target": "com.amazonaws.location#CountryCodeList", + "traits": { + "smithy.api#documentation": "

              Contains the optional country filter specified in the request.

              " + } + }, + "MaxResults": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

              Contains the optional result count limit specified in the request.

              " + } + }, + "DataSource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

              The geospatial data provider attached to the place index resource specified in the request.\n Values can be one of the following:

              \n
                \n
              • \n

                Esri

                \n
              • \n
              • \n

                Here

                \n
              • \n
              \n

              For more information about data providers, see Amazon Location Service data providers.

              ", + "smithy.api#required": {} + } + }, + "Language": { + "target": "com.amazonaws.location#LanguageTag", + "traits": { + "smithy.api#documentation": "

              The preferred language used to return results. Matches the language in the request. \n The value is a valid BCP 47 language tag, for example,\n en for English.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A summary of the request sent by using SearchPlaceIndexForSuggestions.

              " + } + }, "com.amazonaws.location#SearchPlaceIndexForText": { "type": "operation", "input": { @@ -5501,7 +5778,7 @@ "BiasPosition": { "target": "com.amazonaws.location#Position", "traits": { - "smithy.api#documentation": "

              Contains the coordinates for the optional bias position specified in the request.

              " + "smithy.api#documentation": "

              Contains the coordinates for the optional bias position specified in the request.

              \n

              This parameter contains a pair of numbers. The first number represents the X \n coordinate, or longitude; the second number represents the Y coordinate, or latitude.

              \n

              For example, [-123.1174, 49.2847] represents the position with\n longitude -123.1174 and latitude 49.2847.

              " } }, "FilterBBox": { @@ -6427,7 +6704,7 @@ "PositionFiltering": { "target": "com.amazonaws.location#PositionFiltering", "traits": { - "smithy.api#documentation": "

              Updates the position filtering for the tracker resource.

              \n

              Valid values:

              \n
                \n
              • \n

                \n TimeBased - Location updates are evaluated against linked geofence collections, \n but not every location update is stored. If your update frequency is more often than 30 seconds, \n only one update per 30 seconds is stored for each unique device ID.\n

                \n
              • \n
              • \n

                \n DistanceBased - If the device has moved less than 30 m (98.4 ft), location updates are \n ignored. Location updates within this distance are neither evaluated against linked geofence collections, nor stored. \n This helps control costs by reducing the number of geofence evaluations and device positions to retrieve. \n Distance-based filtering can also reduce the jitter effect when displaying device trajectory on a map.\n

                \n
              • \n
              " + "smithy.api#documentation": "

              Updates the position filtering for the tracker resource.

              \n

              Valid values:

              \n
                \n
              • \n

                \n TimeBased - Location updates are evaluated against linked geofence collections, \n but not every location update is stored. If your update frequency is more often than 30 seconds, \n only one update per 30 seconds is stored for each unique device ID.\n

                \n
              • \n
              • \n

                \n DistanceBased - If the device has moved less than 30 m (98.4 ft), location updates are \n ignored. Location updates within this distance are neither evaluated against linked geofence collections, nor stored.\n This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through.\n Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map.\n

                \n
              • \n
              • \n

                \n AccuracyBased - If the device has moved less than the measured accuracy,\n location updates are ignored. For example, if two consecutive updates from a device\n have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device\n has moved less than 15 m. Ignored location updates are neither evaluated against\n linked geofence collections, nor stored. This helps educe the effects of GPS noise \n when displaying device trajectories on a map, and can help control costs by reducing the\n number of geofence evaluations.\n

                \n
              • \n
              " } } } diff --git a/codegen/sdk-codegen/aws-models/lookoutmetrics.json b/codegen/sdk-codegen/aws-models/lookoutmetrics.json index 8ea3cb304da6..2a303958b6ab 100644 --- a/codegen/sdk-codegen/aws-models/lookoutmetrics.json +++ b/codegen/sdk-codegen/aws-models/lookoutmetrics.json @@ -2168,6 +2168,44 @@ "com.amazonaws.lookoutmetrics#Integer": { "type": "integer" }, + "com.amazonaws.lookoutmetrics#InterMetricImpactDetails": { + "type": "structure", + "members": { + "MetricName": { + "target": "com.amazonaws.lookoutmetrics#MetricName", + "traits": { + "smithy.api#documentation": "

              The name of the measure.

              " + } + }, + "AnomalyGroupId": { + "target": "com.amazonaws.lookoutmetrics#UUID", + "traits": { + "smithy.api#documentation": "

              The ID of the anomaly group.

              " + } + }, + "RelationshipType": { + "target": "com.amazonaws.lookoutmetrics#RelationshipType", + "traits": { + "smithy.api#documentation": "

              Whether a measure is a potential cause of the anomaly group\n (CAUSE_OF_INPUT_ANOMALY_GROUP), or whether the measure is impacted by the\n anomaly group (EFFECT_OF_INPUT_ANOMALY_GROUP).

              " + } + }, + "ContributionPercentage": { + "target": "com.amazonaws.lookoutmetrics#MetricChangePercentage", + "traits": { + "smithy.api#documentation": "

              For potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP), the percentage\n contribution the measure has in causing the anomalies.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Aggregated details about the measures contributing to the anomaly group, and the measures\n potentially impacted by the anomaly group.

              \n

              " + } + }, + "com.amazonaws.lookoutmetrics#InterMetricImpactList": { + "type": "list", + "member": { + "target": "com.amazonaws.lookoutmetrics#InterMetricImpactDetails" + } + }, "com.amazonaws.lookoutmetrics#InternalServerException": { "type": "structure", "members": { @@ -2431,6 +2469,100 @@ } } }, + "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetrics": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsRequest" + }, + "output": { + "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutmetrics#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutmetrics#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutmetrics#TooManyRequestsException" + }, + { + "target": "com.amazonaws.lookoutmetrics#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns a list of measures that are potential causes or effects of an\n anomaly group.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/ListAnomalyGroupRelatedMetrics", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsRequest": { + "type": "structure", + "members": { + "AnomalyDetectorArn": { + "target": "com.amazonaws.lookoutmetrics#Arn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the anomaly detector.

              ", + "smithy.api#required": {} + } + }, + "AnomalyGroupId": { + "target": "com.amazonaws.lookoutmetrics#UUID", + "traits": { + "smithy.api#documentation": "

              The ID of the anomaly group.

              ", + "smithy.api#required": {} + } + }, + "RelationshipTypeFilter": { + "target": "com.amazonaws.lookoutmetrics#RelationshipType", + "traits": { + "smithy.api#documentation": "

              Filter for potential causes (CAUSE_OF_INPUT_ANOMALY_GROUP) or\n downstream effects (EFFECT_OF_INPUT_ANOMALY_GROUP) of the anomaly group.

              " + } + }, + "MaxResults": { + "target": "com.amazonaws.lookoutmetrics#MaxResults", + "traits": { + "smithy.api#box": {}, + "smithy.api#documentation": "

              The maximum number of results to return.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.lookoutmetrics#NextToken", + "traits": { + "smithy.api#documentation": "

              Specify the pagination token that's returned by a previous request to retrieve the next\n page of results.

              " + } + } + } + }, + "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetricsResponse": { + "type": "structure", + "members": { + "InterMetricImpactList": { + "target": "com.amazonaws.lookoutmetrics#InterMetricImpactList", + "traits": { + "smithy.api#documentation": "

              Aggregated details about the measures contributing to the anomaly group, and the measures\n potentially impacted by the anomaly group.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.lookoutmetrics#NextToken", + "traits": { + "smithy.api#documentation": "

              The pagination token that's included if more results are available.

              " + } + } + } + }, "com.amazonaws.lookoutmetrics#ListAnomalyGroupSummaries": { "type": "operation", "input": { @@ -2774,6 +2906,21 @@ }, "com.amazonaws.lookoutmetrics#LookoutMetrics": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "LookoutMetrics", + "arnNamespace": "lookoutmetrics", + "cloudFormationName": "LookoutMetrics", + "cloudTrailEventSource": "lookoutmetrics.amazonaws.com", + "endpointPrefix": "lookoutmetrics" + }, + "aws.auth#sigv4": { + "name": "lookoutmetrics" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              This is the Amazon Lookout for Metrics API Reference. For an introduction to the service\n with tutorials for getting started, visit Amazon\n Lookout for Metrics Developer Guide.

              ", + "smithy.api#title": "Amazon Lookout for Metrics" + }, "version": "2017-07-25", "operations": [ { @@ -2824,6 +2971,9 @@ { "target": "com.amazonaws.lookoutmetrics#ListAnomalyDetectors" }, + { + "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupRelatedMetrics" + }, { "target": "com.amazonaws.lookoutmetrics#ListAnomalyGroupSummaries" }, @@ -2851,22 +3001,7 @@ { "target": "com.amazonaws.lookoutmetrics#UpdateMetricSet" } - ], - "traits": { - "aws.api#service": { - "sdkId": "LookoutMetrics", - "arnNamespace": "lookoutmetrics", - "cloudFormationName": "LookoutMetrics", - "cloudTrailEventSource": "lookoutmetrics.amazonaws.com", - "endpointPrefix": "lookoutmetrics" - }, - "aws.auth#sigv4": { - "name": "lookoutmetrics" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              This is the Amazon Lookout for Metrics API Reference. For an introduction to the service\n with tutorials for getting started, visit Amazon\n Lookout for Metrics Developer Guide.

              ", - "smithy.api#title": "Amazon Lookout for Metrics" - } + ] }, "com.amazonaws.lookoutmetrics#MaxResults": { "type": "integer", @@ -2908,6 +3043,16 @@ "smithy.api#documentation": "

              A calculation made by contrasting a measure and a dimension from your source data.

              " } }, + "com.amazonaws.lookoutmetrics#MetricChangePercentage": { + "type": "double", + "traits": { + "smithy.api#box": {}, + "smithy.api#range": { + "min": 0.0, + "max": 100.0 + } + } + }, "com.amazonaws.lookoutmetrics#MetricLevelImpact": { "type": "structure", "members": { @@ -3363,6 +3508,21 @@ "smithy.api#documentation": "

              Provides information about the Amazon Redshift database configuration.

              " } }, + "com.amazonaws.lookoutmetrics#RelationshipType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CAUSE_OF_INPUT_ANOMALY_GROUP", + "name": "CAUSE_OF_INPUT_ANOMALY_GROUP" + }, + { + "value": "EFFECT_OF_INPUT_ANOMALY_GROUP", + "name": "EFFECT_OF_INPUT_ANOMALY_GROUP" + } + ] + } + }, "com.amazonaws.lookoutmetrics#ResourceId": { "type": "string" }, diff --git a/codegen/sdk-codegen/aws-models/lookoutvision.json b/codegen/sdk-codegen/aws-models/lookoutvision.json index 052adca90da2..17968bfc1ee0 100644 --- a/codegen/sdk-codegen/aws-models/lookoutvision.json +++ b/codegen/sdk-codegen/aws-models/lookoutvision.json @@ -52,7 +52,7 @@ "min": 1, "max": 10 }, - "smithy.api#pattern": "(normal|anomaly)" + "smithy.api#pattern": "^(normal|anomaly)$" } }, "com.amazonaws.lookoutvision#Boolean": { @@ -68,6 +68,52 @@ "smithy.api#pattern": "^[a-zA-Z0-9-]+$" } }, + "com.amazonaws.lookoutvision#CompilerOptions": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 1024 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.lookoutvision#ComponentDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_. ()':,;?]+$" + } + }, + "com.amazonaws.lookoutvision#ComponentName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_.]+$" + } + }, + "com.amazonaws.lookoutvision#ComponentVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^([0-9]{1,6})\\.([0-9]{1,6})\\.([0-9]{1,6})$" + } + }, + "com.amazonaws.lookoutvision#ComponentVersionArn": { + "type": "string", + "traits": { + "smithy.api#pattern": "^arn:[^:]*:greengrass:[^:]*:aws:components:[^:]+$" + } + }, "com.amazonaws.lookoutvision#ConflictException": { "type": "structure", "members": { @@ -175,7 +221,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to CreateDataset\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from CreateDataset.\n In this case, safely retry your call\n to CreateDataset by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateDataset. An idempotency\n token is active for 8 hours.\n

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to CreateDataset\n completes only once. You choose the value to pass. For example, An issue might prevent you\n from getting a response from CreateDataset.\n In this case, safely retry your call\n to CreateDataset by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple dataset creation requests. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateDataset. An idempotency\n token is active for 8 hours.\n

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -253,7 +299,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to CreateModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from CreateModel.\n In this case, safely retry your call\n to CreateModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateModel. An idempotency\n token is active for 8 hours.

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to CreateModel\n completes only once. You choose the value to pass. For example, An issue\n might prevent you from getting a response from CreateModel.\n In this case, safely retry your call\n to CreateModel by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from starting multiple training jobs. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateModel. An idempotency\n token is active for 8 hours.

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -268,7 +314,7 @@ "KmsKeyId": { "target": "com.amazonaws.lookoutvision#KmsKeyId", "traits": { - "smithy.api#documentation": "

              The identifier for your AWS Key Management Service (AWS KMS) customer master key (CMK).\n The key is used to encrypt training and test images copied into the service for model training. Your \n source images are unaffected.\n If this parameter is not specified, the copied images are encrypted by a key that AWS owns and manages.

              " + "smithy.api#documentation": "

              The identifier for your AWS KMS key.\n The key is used to encrypt training and test images copied into the service for model training. Your \n source images are unaffected.\n If this parameter is not specified, the copied images are encrypted by a key that AWS owns and manages.

              " } }, "Tags": { @@ -343,7 +389,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to CreateProject\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from CreateProject.\n In this case, safely retry your call\n to CreateProject by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateProject. An idempotency\n token is active for 8 hours.

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to CreateProject\n completes only once. You choose the value to pass. For example, An issue might prevent you from \n getting a response from CreateProject.\n In this case, safely retry your call\n to CreateProject by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple project creation requests. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to CreateProject. An idempotency\n token is active for 8 hours.

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -412,7 +458,7 @@ "ImageStats": { "target": "com.amazonaws.lookoutvision#DatasetImageStats", "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              Statistics about the images in a dataset.

              " } } }, @@ -511,7 +557,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Sumary information for an Amazon Lookout for Vision dataset.

              " + "smithy.api#documentation": "

              Summary information for an Amazon Lookout for Vision dataset. For more information,\n see DescribeDataset and ProjectDescription.

              " } }, "com.amazonaws.lookoutvision#DatasetMetadataList": { @@ -591,7 +637,7 @@ "min": 1, "max": 10 }, - "smithy.api#pattern": "train|test" + "smithy.api#pattern": "^train|test$" } }, "com.amazonaws.lookoutvision#DateTime": { @@ -656,7 +702,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to DeleteDataset\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from DeleteDataset.\n In this case, safely retry your call\n to DeleteDataset by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteDataset. An idempotency\n token is active for 8 hours.

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to DeleteDataset\n completes only once. You choose the value to pass. For example, An issue might prevent you from getting a response from DeleteDataset.\n In this case, safely retry your call\n to DeleteDataset by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple deletetion requests. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteDataset. An idempotency\n token is active for 8 hours.

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -696,7 +742,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model,\n use the StopModel operation.

              \n

              It might take a few seconds to delete a model. To determine if a model has been deleted, call\n ListProjects and check if the version of the model (ModelVersion) is in the\n Models array.

              \n

              This operation requires permissions to perform the\n lookoutvision:DeleteModel operation.

              ", + "smithy.api#documentation": "

              Deletes an Amazon Lookout for Vision model. You can't delete a running model. To stop a running model,\n use the StopModel operation.

              \n

              It might take a few seconds to delete a model. To determine if a model has been deleted, call\n ListModels and check if the version of the model (ModelVersion) is in the\n Models array.

              \n

              \n

              This operation requires permissions to perform the\n lookoutvision:DeleteModel operation.

              ", "smithy.api#http": { "method": "DELETE", "uri": "/2020-11-20/projects/{ProjectName}/models/{ModelVersion}", @@ -716,7 +762,7 @@ } }, "ModelVersion": { - "target": "com.amazonaws.lookoutvision#ModelVersion", + "target": "com.amazonaws.lookoutvision#ModelVersionNoLatest", "traits": { "smithy.api#documentation": "

              The version of the model that you want to delete.

              ", "smithy.api#httpLabel": {}, @@ -726,7 +772,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to DeleteModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from DeleteModel.\n In this case, safely retry your call\n to DeleteModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteModel. An idempotency\n token is active for 8 hours.

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to DeleteModel\n completes only once. You choose the value to pass. For example, an issue might prevent\n you from getting a response from DeleteModel.\n In this case, safely retry your call\n to DeleteModel by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple model deletion requests. You'll need to\n provide your own value for other use cases.

              \n \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteModel. An idempotency\n token is active for 8 hours.

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -795,7 +841,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to DeleteProject\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from DeleteProject.\n In this case, safely retry your call\n to DeleteProject by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteProject. An idempotency\n token is active for 8 hours.

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to DeleteProject\n completes only once. You choose the value to pass. For example, An issue\n might prevent you from getting a response from DeleteProject.\n In this case, safely retry your call\n to DeleteProject by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple project deletion requests. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to DeleteProject. An idempotency\n token is active for 8 hours.

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -919,6 +965,72 @@ } } }, + "com.amazonaws.lookoutvision#DescribeModelPackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutvision#DescribeModelPackagingJobRequest" + }, + "output": { + "target": "com.amazonaws.lookoutvision#DescribeModelPackagingJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutvision#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutvision#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutvision#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutvision#ThrottlingException" + }, + { + "target": "com.amazonaws.lookoutvision#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Describes an Amazon Lookout for Vision model packaging job.\n

              \n

              This operation requires permissions to perform the\n lookoutvision:DescribeModelPackagingJob operation.

              \n \n

              For more information, see \n Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-11-20/projects/{ProjectName}/modelpackagingjobs/{JobName}", + "code": 200 + } + } + }, + "com.amazonaws.lookoutvision#DescribeModelPackagingJobRequest": { + "type": "structure", + "members": { + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

              The name of the project that contains the model packaging job that you want to describe. \n

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

              The job name for the model packaging job. \n\n

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.lookoutvision#DescribeModelPackagingJobResponse": { + "type": "structure", + "members": { + "ModelPackagingDescription": { + "target": "com.amazonaws.lookoutvision#ModelPackagingDescription", + "traits": { + "smithy.api#documentation": "

              The description of the model packaging job.\n

              " + } + } + } + }, "com.amazonaws.lookoutvision#DescribeModelRequest": { "type": "structure", "members": { @@ -1132,6 +1244,91 @@ "smithy.api#box": {} } }, + "com.amazonaws.lookoutvision#GreengrassConfiguration": { + "type": "structure", + "members": { + "CompilerOptions": { + "target": "com.amazonaws.lookoutvision#CompilerOptions", + "traits": { + "smithy.api#documentation": "

              Additional compiler options for the Greengrass component. Currently, \n only NVIDIA Graphics Processing Units (GPU) are supported.

              \n \n \n

              For more information, see \n Compiler options in the Amazon Lookout for Vision Developer Guide.

              ", + "smithy.api#required": {} + } + }, + "TargetDevice": { + "target": "com.amazonaws.lookoutvision#TargetDevice", + "traits": { + "smithy.api#documentation": "

              The target device for the model. Currently the only supported value is jetson_xavier.\n If you specify TargetDevice, you can't specify\n TargetPlatform.\n\n

              " + } + }, + "TargetPlatform": { + "target": "com.amazonaws.lookoutvision#TargetPlatform", + "traits": { + "smithy.api#documentation": "

              The target platform for the model. If you specify TargetPlatform, you can't specify\n TargetDevice.\n

              " + } + }, + "S3OutputLocation": { + "target": "com.amazonaws.lookoutvision#S3Location", + "traits": { + "smithy.api#documentation": "

              \n An S3 location in which Lookout for Vision stores the component artifacts. \n

              ", + "smithy.api#required": {} + } + }, + "ComponentName": { + "target": "com.amazonaws.lookoutvision#ComponentName", + "traits": { + "smithy.api#documentation": "

              \n A name for the AWS IoT Greengrass component. \n

              ", + "smithy.api#required": {} + } + }, + "ComponentVersion": { + "target": "com.amazonaws.lookoutvision#ComponentVersion", + "traits": { + "smithy.api#documentation": "

              A Version for the AWS IoT Greengrass component. If you don't provide a\n value, a default value of \n Model Version.0.0 is used.\n

              " + } + }, + "ComponentDescription": { + "target": "com.amazonaws.lookoutvision#ComponentDescription", + "traits": { + "smithy.api#documentation": "

              \n A description for the AWS IoT Greengrass component.\n

              " + } + }, + "Tags": { + "target": "com.amazonaws.lookoutvision#TagList", + "traits": { + "smithy.api#documentation": "

              \n A set of tags (key-value pairs) that you want to attach to the AWS IoT Greengrass component.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Configuration information for the AWS IoT Greengrass component created in a model packaging job. \n For more information, see StartModelPackagingJob.\n

              \n \n

              You can't specify a component with the same ComponentName and Componentversion as\n an existing component with the same component name and component version.

              \n
              " + } + }, + "com.amazonaws.lookoutvision#GreengrassOutputDetails": { + "type": "structure", + "members": { + "ComponentVersionArn": { + "target": "com.amazonaws.lookoutvision#ComponentVersionArn", + "traits": { + "smithy.api#documentation": "

              \nThe Amazon Resource Name (ARN) of the component.\n

              " + } + }, + "ComponentName": { + "target": "com.amazonaws.lookoutvision#ComponentName", + "traits": { + "smithy.api#documentation": "

              \nThe name of the component.\n

              " + } + }, + "ComponentVersion": { + "target": "com.amazonaws.lookoutvision#ComponentVersion", + "traits": { + "smithy.api#documentation": "

              \nThe version of the component.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Information about the AWS IoT Greengrass component created by a model packaging job.\n\n

              " + } + }, "com.amazonaws.lookoutvision#ImageSource": { "type": "structure", "members": { @@ -1149,7 +1346,7 @@ "com.amazonaws.lookoutvision#ImageSourceType": { "type": "string", "traits": { - "smithy.api#pattern": "direct" + "smithy.api#pattern": "^direct$" } }, "com.amazonaws.lookoutvision#InferenceUnits": { @@ -1363,6 +1560,89 @@ } } }, + "com.amazonaws.lookoutvision#ListModelPackagingJobs": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutvision#ListModelPackagingJobsRequest" + }, + "output": { + "target": "com.amazonaws.lookoutvision#ListModelPackagingJobsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutvision#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutvision#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutvision#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutvision#ThrottlingException" + }, + { + "target": "com.amazonaws.lookoutvision#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              \nLists the model packaging jobs created for an Amazon Lookout for Vision project.\n

              \n

              This operation requires permissions to perform the\n lookoutvision:ListModelPackagingJobs operation.\n

              \n \n

              For more information, see \n Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/2020-11-20/projects/{ProjectName}/modelpackagingjobs", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.lookoutvision#ListModelPackagingJobsRequest": { + "type": "structure", + "members": { + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

              \nThe name of the project for which you want to list the model packaging jobs.\n

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "NextToken": { + "target": "com.amazonaws.lookoutvision#PaginationToken", + "traits": { + "smithy.api#documentation": "

              If the previous response was incomplete (because there is more\n results to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination \n token to retrieve the next set of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + }, + "MaxResults": { + "target": "com.amazonaws.lookoutvision#PageSize", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return per paginated call. The largest value you can specify is 100. \n If you specify a value greater than 100, a ValidationException\n error occurs. The default value is 100.

              ", + "smithy.api#httpQuery": "maxResults" + } + } + } + }, + "com.amazonaws.lookoutvision#ListModelPackagingJobsResponse": { + "type": "structure", + "members": { + "ModelPackagingJobs": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobsList", + "traits": { + "smithy.api#documentation": "

              \nA list of the model packaging jobs created for the specified Amazon Lookout for Vision project.\n

              " + } + }, + "NextToken": { + "target": "com.amazonaws.lookoutvision#PaginationToken", + "traits": { + "smithy.api#documentation": "

              If the previous response was incomplete (because there is more\n results to retrieve), Amazon Lookout for Vision returns a pagination token in the response. You can use this pagination \n token to retrieve the next set of results.\n

              " + } + } + } + }, "com.amazonaws.lookoutvision#ListModels": { "type": "operation", "input": { @@ -1392,7 +1672,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists the versions of a model in an Amazon Lookout for Vision project.

              \n

              This operation requires permissions to perform the\n lookoutvision:ListModels operation.

              ", + "smithy.api#documentation": "

              Lists the versions of a model in an Amazon Lookout for Vision project.

              \n

              The ListModels operation is eventually consistent. \n Recent calls to CreateModel might\n take a while to appear in the response from ListProjects.

              \n

              This operation requires permissions to perform the\n lookoutvision:ListModels operation.

              ", "smithy.api#http": { "method": "GET", "uri": "/2020-11-20/projects/{ProjectName}/models", @@ -1478,7 +1758,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists the Amazon Lookout for Vision projects in your AWS account.

              \n

              This operation requires permissions to perform the\n lookoutvision:ListProjects operation.

              ", + "smithy.api#documentation": "

              Lists the Amazon Lookout for Vision projects in your AWS account.

              \n

              The ListProjects operation is eventually consistent. \n Recent calls to CreateProject and DeleteProject might\n take a while to appear in the response from ListProjects.

              \n

              This operation requires permissions to perform the\n lookoutvision:ListProjects operation.

              ", "smithy.api#http": { "method": "GET", "uri": "/2020-11-20/projects", @@ -1590,6 +1870,21 @@ }, "com.amazonaws.lookoutvision#LookoutVisionService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "LookoutVision", + "arnNamespace": "lookoutvision", + "cloudFormationName": "LookoutVision", + "cloudTrailEventSource": "lookoutvision.amazonaws.com", + "endpointPrefix": "lookoutvision" + }, + "aws.auth#sigv4": { + "name": "lookoutvision" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              This is the Amazon Lookout for Vision API Reference. It provides descriptions of actions, \n data types, common parameters, and common errors.

              \n

              Amazon Lookout for Vision enables you to find visual defects in industrial products,\n accurately and at scale. It uses computer vision to identify missing components in an industrial product,\n damage to vehicles or structures, irregularities in production lines, and even minuscule defects in\n silicon wafers — or any other physical item where quality is important such as a missing capacitor\n on printed circuit boards.

              ", + "smithy.api#title": "Amazon Lookout for Vision" + }, "version": "2020-11-20", "operations": [ { @@ -1616,6 +1911,9 @@ { "target": "com.amazonaws.lookoutvision#DescribeModel" }, + { + "target": "com.amazonaws.lookoutvision#DescribeModelPackagingJob" + }, { "target": "com.amazonaws.lookoutvision#DescribeProject" }, @@ -1625,6 +1923,9 @@ { "target": "com.amazonaws.lookoutvision#ListDatasetEntries" }, + { + "target": "com.amazonaws.lookoutvision#ListModelPackagingJobs" + }, { "target": "com.amazonaws.lookoutvision#ListModels" }, @@ -1637,6 +1938,9 @@ { "target": "com.amazonaws.lookoutvision#StartModel" }, + { + "target": "com.amazonaws.lookoutvision#StartModelPackagingJob" + }, { "target": "com.amazonaws.lookoutvision#StopModel" }, @@ -1649,22 +1953,7 @@ { "target": "com.amazonaws.lookoutvision#UpdateDatasetEntries" } - ], - "traits": { - "aws.api#service": { - "sdkId": "LookoutVision", - "arnNamespace": "lookoutvision", - "cloudFormationName": "LookoutVision", - "cloudTrailEventSource": "lookoutvision.amazonaws.com", - "endpointPrefix": "lookoutvision" - }, - "aws.auth#sigv4": { - "name": "lookoutvision" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              This is the Amazon Lookout for Vision API Reference. It provides descriptions of actions, \n data types, common parameters, and common errors.

              \n

              Amazon Lookout for Vision enables you to find visual defects in industrial products,\n accurately and at scale. It uses computer vision to identify missing components in an industrial product,\n damage to vehicles or structures, irregularities in production lines, and even minuscule defects in\n silicon wafers — or any other physical item where quality is important such as a missing capacitor\n on printed circuit boards.

              ", - "smithy.api#title": "Amazon Lookout for Vision" - } + ] }, "com.amazonaws.lookoutvision#ModelArn": { "type": "string" @@ -1756,7 +2045,7 @@ "min": 1, "max": 500 }, - "smithy.api#pattern": "[0-9A-Za-z\\.\\-_]*" + "smithy.api#pattern": "^[0-9A-Za-z\\.\\-_]*$" } }, "com.amazonaws.lookoutvision#ModelHostingStatus": { @@ -1842,18 +2131,245 @@ "target": "com.amazonaws.lookoutvision#ModelMetadata" } }, - "com.amazonaws.lookoutvision#ModelPerformance": { + "com.amazonaws.lookoutvision#ModelPackagingConfiguration": { "type": "structure", "members": { - "F1Score": { - "target": "com.amazonaws.lookoutvision#Float", + "Greengrass": { + "target": "com.amazonaws.lookoutvision#GreengrassConfiguration", "traits": { - "smithy.api#documentation": "

              The overall F1 score metric for the trained model.

              " + "smithy.api#documentation": "

              \nConfiguration information for the AWS IoT Greengrass component in a model packaging job.\n

              ", + "smithy.api#required": {} } - }, - "Recall": { - "target": "com.amazonaws.lookoutvision#Float", - "traits": { + } + }, + "traits": { + "smithy.api#documentation": "

              \nConfiguration information for a Amazon Lookout for Vision model packaging job. For more information,\nsee StartModelPackagingJob.\n

              " + } + }, + "com.amazonaws.lookoutvision#ModelPackagingDescription": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

              \nThe name of the model packaging job.\n

              " + } + }, + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

              The name of the project that's associated with a model that's in the model package.\n\n

              " + } + }, + "ModelVersion": { + "target": "com.amazonaws.lookoutvision#ModelVersion", + "traits": { + "smithy.api#documentation": "

              The version of the model used in the model packaging job.\n\n

              " + } + }, + "ModelPackagingConfiguration": { + "target": "com.amazonaws.lookoutvision#ModelPackagingConfiguration", + "traits": { + "smithy.api#documentation": "

              \nThe configuration information used in the model packaging job.\n

              " + } + }, + "ModelPackagingJobDescription": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobDescription", + "traits": { + "smithy.api#documentation": "

              The description for the model packaging job.\n\n

              " + } + }, + "ModelPackagingMethod": { + "target": "com.amazonaws.lookoutvision#ModelPackagingMethod", + "traits": { + "smithy.api#documentation": "

              The AWS service used to package the job. Currently Lookout for Vision can package\njobs with AWS IoT Greengrass.\n

              " + } + }, + "ModelPackagingOutputDetails": { + "target": "com.amazonaws.lookoutvision#ModelPackagingOutputDetails", + "traits": { + "smithy.api#documentation": "

              Information about the output of the model packaging job. For more information,\n see DescribeModelPackagingJob.\n

              " + } + }, + "Status": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobStatus", + "traits": { + "smithy.api#documentation": "

              \nThe status of the model packaging job.\n

              " + } + }, + "StatusMessage": { + "target": "com.amazonaws.lookoutvision#ModelPackagingStatusMessage", + "traits": { + "smithy.api#documentation": "

              \nThe status message for the model packaging job.\n

              " + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

              \n The Unix timestamp for the time and date that the model packaging job was created.\n

              " + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

              \n The Unix timestamp for the time and date that the model packaging job was last updated.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \nInformation about a model packaging job. For more information, see \nDescribeModelPackagingJob.\n

              " + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-_. ()':,;?]+$" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobMetadata": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

              \nThe name of the model packaging job.\n

              " + } + }, + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

              \nThe project that contains the model that is in the model package.\n

              " + } + }, + "ModelVersion": { + "target": "com.amazonaws.lookoutvision#ModelVersion", + "traits": { + "smithy.api#documentation": "

              \nThe version of the model that is in the model package.\n

              " + } + }, + "ModelPackagingJobDescription": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobDescription", + "traits": { + "smithy.api#documentation": "

              \nThe description for the model packaging job.\n

              " + } + }, + "ModelPackagingMethod": { + "target": "com.amazonaws.lookoutvision#ModelPackagingMethod", + "traits": { + "smithy.api#documentation": "

              \nThe AWS service used to package the job. Currently Lookout for Vision can package\n jobs with AWS IoT Greengrass.\n

              " + } + }, + "Status": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobStatus", + "traits": { + "smithy.api#documentation": "

              The status of the model packaging job.\n

              " + } + }, + "StatusMessage": { + "target": "com.amazonaws.lookoutvision#ModelPackagingStatusMessage", + "traits": { + "smithy.api#documentation": "

              The status message for the model packaging job.\n

              " + } + }, + "CreationTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

              The Unix timestamp for the time and date that the model packaging job was created.

              " + } + }, + "LastUpdatedTimestamp": { + "target": "com.amazonaws.lookoutvision#DateTime", + "traits": { + "smithy.api#documentation": "

              The Unix timestamp for the time and date that the model packaging job was last updated.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \n Metadata for a model packaging job. For more information, see ListModelPackagingJobs.\n

              " + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATED", + "name": "CREATED" + }, + { + "value": "RUNNING", + "name": "RUNNING" + }, + { + "value": "SUCCEEDED", + "name": "SUCCEEDED" + }, + { + "value": "FAILED", + "name": "FAILED" + } + ] + } + }, + "com.amazonaws.lookoutvision#ModelPackagingJobsList": { + "type": "list", + "member": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobMetadata" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingMethod": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]+$" + } + }, + "com.amazonaws.lookoutvision#ModelPackagingOutputDetails": { + "type": "structure", + "members": { + "Greengrass": { + "target": "com.amazonaws.lookoutvision#GreengrassOutputDetails", + "traits": { + "smithy.api#documentation": "

              \nInformation about the AWS IoT Greengrass component in a model packaging job.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              \nInformation about the output from a model packaging job.\n

              " + } + }, + "com.amazonaws.lookoutvision#ModelPackagingStatusMessage": { + "type": "string" + }, + "com.amazonaws.lookoutvision#ModelPerformance": { + "type": "structure", + "members": { + "F1Score": { + "target": "com.amazonaws.lookoutvision#Float", + "traits": { + "smithy.api#documentation": "

              The overall F1 score metric for the trained model.

              " + } + }, + "Recall": { + "target": "com.amazonaws.lookoutvision#Float", + "traits": { "smithy.api#documentation": "

              The overall recall metric value for the trained model.

              " } }, @@ -1921,7 +2437,17 @@ "min": 1, "max": 10 }, - "smithy.api#pattern": "([1-9][0-9]*|latest)" + "smithy.api#pattern": "^([1-9][0-9]*|latest)$" + } + }, + "com.amazonaws.lookoutvision#ModelVersionNoLatest": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + }, + "smithy.api#pattern": "^([1-9][0-9]*)$" } }, "com.amazonaws.lookoutvision#OutputConfig": { @@ -2055,7 +2581,7 @@ "min": 1, "max": 255 }, - "smithy.api#pattern": "[a-zA-Z0-9][a-zA-Z0-9_\\-]*" + "smithy.api#pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-]*$" } }, "com.amazonaws.lookoutvision#QueryString": { @@ -2065,7 +2591,7 @@ "min": 1, "max": 2048 }, - "smithy.api#pattern": ".*\\S.*" + "smithy.api#pattern": "\\S" } }, "com.amazonaws.lookoutvision#ResourceNotFoundException": { @@ -2117,6 +2643,10 @@ { "value": "TRIAL", "name": "TRIAL" + }, + { + "value": "MODEL_PACKAGE_JOB", + "name": "MODEL_PACKAGE_JOB" } ] } @@ -2131,7 +2661,7 @@ "min": 3, "max": 63 }, - "smithy.api#pattern": "[0-9A-Za-z\\.\\-_]*" + "smithy.api#pattern": "^[0-9A-Za-z\\.\\-_]*$" } }, "com.amazonaws.lookoutvision#S3KeyPrefix": { @@ -2150,19 +2680,19 @@ "Bucket": { "target": "com.amazonaws.lookoutvision#S3BucketName", "traits": { - "smithy.api#documentation": "

              The S3 bucket that contains the training output.

              ", + "smithy.api#documentation": "

              The S3 bucket that contains the training or model packaging job output. If you are training a model,\n the bucket must in your AWS account. If you use an S3 bucket for a model packaging job,\n the S3 bucket must be in the same AWS Region and AWS account in which you use AWS IoT Greengrass.

              ", "smithy.api#required": {} } }, "Prefix": { "target": "com.amazonaws.lookoutvision#S3KeyPrefix", "traits": { - "smithy.api#documentation": "

              The path of the folder, within the S3 bucket, that contains the training output.

              " + "smithy.api#documentation": "

              The path of the folder, within the S3 bucket, that contains the output.

              " } } }, "traits": { - "smithy.api#documentation": "

              Information about the location training output.

              " + "smithy.api#documentation": "

              Information about the location of training output or the output of a model packaging job.

              " } }, "com.amazonaws.lookoutvision#S3ObjectKey": { @@ -2267,6 +2797,104 @@ } } }, + "com.amazonaws.lookoutvision#StartModelPackagingJob": { + "type": "operation", + "input": { + "target": "com.amazonaws.lookoutvision#StartModelPackagingJobRequest" + }, + "output": { + "target": "com.amazonaws.lookoutvision#StartModelPackagingJobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lookoutvision#AccessDeniedException" + }, + { + "target": "com.amazonaws.lookoutvision#ConflictException" + }, + { + "target": "com.amazonaws.lookoutvision#InternalServerException" + }, + { + "target": "com.amazonaws.lookoutvision#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.lookoutvision#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.lookoutvision#ThrottlingException" + }, + { + "target": "com.amazonaws.lookoutvision#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Starts an Amazon Lookout for Vision model packaging job. A model packaging job creates an AWS IoT Greengrass component for\n a Lookout for Vision model. You can use the component to deploy your model to an edge device managed by Greengrass.\n

              \n \n

              Use the DescribeModelPackagingJob API to determine the current status of the job.\n \n The model packaging job is complete if the value of Status is SUCCEEDED.

              \n

              To deploy the component\n to the target device, use the component name and component version\n with the AWS IoT Greengrass CreateDeployment API.

              \n\n

              This operation requires the following permissions:

              \n
                \n
              • \n

                \n lookoutvision:StartModelPackagingJobs\n

                \n
              • \n
              • \n

                \n s3:PutObject\n

                \n
              • \n
              • \n

                \n s3:GetBucketLocation\n

                \n
              • \n
              • \n

                \n greengrass:CreateComponentVersion\n

                \n
              • \n
              • \n

                \n greengrass:DescribeComponent\n

                \n
              • \n
              • \n

                (Optional) greengrass:TagResource. Only required if you want to tag the component.

                \n
              • \n
              \n \n \n

              For more information, see \n Using your Amazon Lookout for Vision model on an edge device in the Amazon Lookout for Vision Developer Guide.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/2020-11-20/projects/{ProjectName}/modelpackagingjobs", + "code": 200 + } + } + }, + "com.amazonaws.lookoutvision#StartModelPackagingJobRequest": { + "type": "structure", + "members": { + "ProjectName": { + "target": "com.amazonaws.lookoutvision#ProjectName", + "traits": { + "smithy.api#documentation": "

              \nThe name of the project which contains the version of the model that you want to package.\n

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ModelVersion": { + "target": "com.amazonaws.lookoutvision#ModelVersion", + "traits": { + "smithy.api#documentation": "

              \nThe version of the model within the project that you want to package.\n

              ", + "smithy.api#required": {} + } + }, + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

              A name for the model packaging job. If you don't supply a value, the service creates\n a job name for you.\n

              " + } + }, + "Configuration": { + "target": "com.amazonaws.lookoutvision#ModelPackagingConfiguration", + "traits": { + "smithy.api#documentation": "

              The configuration for the model packaging job.\n

              ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobDescription", + "traits": { + "smithy.api#documentation": "

              A description for the model packaging job.\n

              " + } + }, + "ClientToken": { + "target": "com.amazonaws.lookoutvision#ClientToken", + "traits": { + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to StartModelPackagingJob\n completes only once. You choose the value to pass. For example, An issue might prevent you\n from getting a response from StartModelPackagingJob.\n In this case, safely retry your call\n to StartModelPackagingJob by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple dataset creation requests. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StartModelPackagingJob. An idempotency\n token is active for 8 hours.\n

              ", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.lookoutvision#StartModelPackagingJobResponse": { + "type": "structure", + "members": { + "JobName": { + "target": "com.amazonaws.lookoutvision#ModelPackagingJobName", + "traits": { + "smithy.api#documentation": "

              The job name for the model packaging job. If you don't supply a job name in the JobName input parameter,\n the service creates a job name for you.\n\n

              " + } + } + } + }, "com.amazonaws.lookoutvision#StartModelRequest": { "type": "structure", "members": { @@ -2289,14 +2917,14 @@ "MinInferenceUnits": { "target": "com.amazonaws.lookoutvision#InferenceUnits", "traits": { - "smithy.api#documentation": "

              The minimum number of inference units to use. A single\n inference unit represents 1 hour of processing and can support up to 5 Transaction Pers Second (TPS).\n Use a higher number to increase the TPS throughput of your model. You are charged for the number\n of inference units that you use.\n

              ", + "smithy.api#documentation": "

              The minimum number of inference units to use. A single\n inference unit represents 1 hour of processing. \n Use a higher number to increase the TPS throughput of your model. You are charged for the number\n of inference units that you use.\n

              ", "smithy.api#required": {} } }, "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to StartModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from StartModel.\n In this case, safely retry your call\n to StartModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StartModel. An idempotency\n token is active for 8 hours.\n

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to StartModel\n completes only once. You choose the value to pass. For example, An issue might prevent \n you from getting a response from StartModel.\n In this case, safely retry your call\n to StartModel by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple start requests. You'll need to\n provide your own value for other use cases.

              \n \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StartModel. An idempotency\n token is active for 8 hours.\n

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -2373,7 +3001,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to StopModel\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from StopModel.\n In this case, safely retry your call\n to StopModel by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StopModel. An idempotency\n token is active for 8 hours.\n \n \n

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to StopModel\n completes only once. You choose the value to pass. For example, An issue \n might prevent you from getting a response from StopModel.\n In this case, safely retry your call\n to StopModel by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple stop requests. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to StopModel. An idempotency\n token is active for 8 hours.\n \n \n

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } @@ -2537,6 +3165,83 @@ "smithy.api#pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" } }, + "com.amazonaws.lookoutvision#TargetDevice": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "jetson_xavier", + "name": "JETSON_XAVIER" + } + ] + } + }, + "com.amazonaws.lookoutvision#TargetPlatform": { + "type": "structure", + "members": { + "Os": { + "target": "com.amazonaws.lookoutvision#TargetPlatformOs", + "traits": { + "smithy.api#documentation": "

              The target operating system for the model. Linux is the only operating system\n that is currently supported.\n

              ", + "smithy.api#required": {} + } + }, + "Arch": { + "target": "com.amazonaws.lookoutvision#TargetPlatformArch", + "traits": { + "smithy.api#documentation": "

              The target architecture for the model. The currently supported architectures are\n X86_64 (64-bit version of the x86 instruction set) and ARM_64 (ARMv8 64-bit CPU).\n

              ", + "smithy.api#required": {} + } + }, + "Accelerator": { + "target": "com.amazonaws.lookoutvision#TargetPlatformAccelerator", + "traits": { + "smithy.api#documentation": "

              The target accelerator for the model. NVIDIA (Nvidia graphics processing unit) \n is the only accelerator that is currently supported. You must also specify the gpu-code, trt-ver,\n and cuda-ver compiler options.\n \n

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              The platform on which a model runs on an AWS IoT Greengrass core device.

              " + } + }, + "com.amazonaws.lookoutvision#TargetPlatformAccelerator": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NVIDIA", + "name": "NVIDIA" + } + ] + } + }, + "com.amazonaws.lookoutvision#TargetPlatformArch": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ARM64", + "name": "ARM64" + }, + { + "value": "X86_64", + "name": "X86_64" + } + ] + } + }, + "com.amazonaws.lookoutvision#TargetPlatformOs": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LINUX", + "name": "LINUX" + } + ] + } + }, "com.amazonaws.lookoutvision#ThrottlingException": { "type": "structure", "members": { @@ -2663,7 +3368,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Adds one or more JSON Line entries to a dataset. A JSON Line includes information about an image\n used for training or testing an Amazon Lookout for Vision model. The following is an example JSON Line.

              \n \n \n

              Updating a dataset might take a while to complete. To check the current status, call DescribeDataset and\n check the Status field in the response.

              \n

              This operation requires permissions to perform the\n lookoutvision:UpdateDatasetEntries operation.

              ", + "smithy.api#documentation": "

              Adds or updates one or more JSON Line entries in a dataset. A JSON Line includes information about an image\n used for training or testing an Amazon Lookout for Vision model.

              \n

              To update an existing JSON Line, use the source-ref field to identify the JSON Line. The JSON line\n that you supply replaces the existing JSON line. Any existing annotations that are not in the new JSON line are removed from the dataset.\n

              \n \n \n

              For more information, see \n Defining JSON lines for anomaly classification in the Amazon Lookout for Vision Developer Guide.

              \n \n \n

              The images you reference in the source-ref field of a JSON line, must be \n in the same S3 bucket as the existing images in the dataset.

              \n
              \n \n

              Updating a dataset might take a while to complete. To check the current status, call DescribeDataset and\n check the Status field in the response.

              \n

              This operation requires permissions to perform the\n lookoutvision:UpdateDatasetEntries operation.

              ", "smithy.api#http": { "method": "PATCH", "uri": "/2020-11-20/projects/{ProjectName}/datasets/{DatasetType}/entries", @@ -2700,7 +3405,7 @@ "ClientToken": { "target": "com.amazonaws.lookoutvision#ClientToken", "traits": { - "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to UpdateDatasetEntries\n completes only once. You choose the value to pass. For example, An issue, \n such as an network outage, might prevent you from getting a response from UpdateDatasetEntries.\n In this case, safely retry your call\n to UpdateDatasetEntries by using the same ClientToken parameter value. An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to UpdateDatasetEntries. An idempotency\n token is active for 8 hours.\n

              ", + "smithy.api#documentation": "

              ClientToken is an idempotency token that ensures a call to UpdateDatasetEntries\n completes only once. You choose the value to pass. For example, An issue \n might prevent you from getting a response from UpdateDatasetEntries.\n In this case, safely retry your call\n to UpdateDatasetEntries by using the same ClientToken parameter value.

              \n

              If you don't supply a value for ClientToken, the AWS SDK you are using inserts a value for you. \n This prevents retries after a network error from making multiple updates with the same dataset entries. You'll need to\n provide your own value for other use cases.

              \n

              An error occurs\n if the other input parameters are not the same as in the first request. Using a different \n value for ClientToken is considered a new call to UpdateDatasetEntries. An idempotency\n token is active for 8 hours.\n

              ", "smithy.api#httpHeader": "X-Amzn-Client-Token", "smithy.api#idempotencyToken": {} } diff --git a/codegen/sdk-codegen/aws-models/mediaconnect.json b/codegen/sdk-codegen/aws-models/mediaconnect.json index 0d390057b8ae..338bc8a384df 100644 --- a/codegen/sdk-codegen/aws-models/mediaconnect.json +++ b/codegen/sdk-codegen/aws-models/mediaconnect.json @@ -468,7 +468,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds for Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -515,6 +515,13 @@ "smithy.api#jsonName": "remoteId" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, "SmoothingLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { @@ -1500,7 +1507,7 @@ } }, "traits": { - "smithy.api#documentation": "The settings for source failover" + "smithy.api#documentation": "The settings for source failover." } }, "com.amazonaws.mediaconnect#FailoverMode": { @@ -2482,6 +2489,21 @@ }, "com.amazonaws.mediaconnect#MediaConnect": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "MediaConnect", + "arnNamespace": "mediaconnect", + "cloudFormationName": "MediaConnect", + "cloudTrailEventSource": "mediaconnect.amazonaws.com", + "endpointPrefix": "mediaconnect" + }, + "aws.auth#sigv4": { + "name": "mediaconnect" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "API for AWS Elemental MediaConnect", + "smithy.api#title": "AWS MediaConnect" + }, "version": "2018-11-14", "operations": [ { @@ -2574,22 +2596,7 @@ { "target": "com.amazonaws.mediaconnect#UpdateFlowSource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "MediaConnect", - "arnNamespace": "mediaconnect", - "cloudFormationName": "MediaConnect", - "cloudTrailEventSource": "mediaconnect.amazonaws.com", - "endpointPrefix": "mediaconnect" - }, - "aws.auth#sigv4": { - "name": "mediaconnect" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "API for AWS Elemental MediaConnect", - "smithy.api#title": "AWS MediaConnect" - } + ] }, "com.amazonaws.mediaconnect#MediaStream": { "type": "structure", @@ -3129,6 +3136,10 @@ { "value": "srt-listener", "name": "srt_listener" + }, + { + "value": "fujitsu-qos", + "name": "fujitsu_qos" } ] } @@ -3872,7 +3883,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -3911,6 +3922,20 @@ "smithy.api#jsonName": "protocol" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "StreamId": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -3997,6 +4022,20 @@ "smithy.api#required": {} } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SourceArn": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -4381,7 +4420,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -4414,6 +4453,20 @@ "smithy.api#jsonName": "remoteId" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SmoothingLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { @@ -4582,7 +4635,7 @@ } }, "traits": { - "smithy.api#documentation": "The settings for source failover" + "smithy.api#documentation": "The settings for source failover." } }, "com.amazonaws.mediaconnect#UpdateFlow": { @@ -4925,7 +4978,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds for Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -4972,6 +5025,20 @@ "smithy.api#jsonName": "remoteId" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SmoothingLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { @@ -5136,7 +5203,7 @@ "MaxLatency": { "target": "com.amazonaws.mediaconnect#__integer", "traits": { - "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based and Zixi-based streams.", + "smithy.api#documentation": "The maximum latency in milliseconds. This parameter applies only to RIST-based, Zixi-based, and Fujitsu-based streams.", "smithy.api#jsonName": "maxLatency" } }, @@ -5168,6 +5235,20 @@ "smithy.api#jsonName": "protocol" } }, + "SenderControlPort": { + "target": "com.amazonaws.mediaconnect#__integer", + "traits": { + "smithy.api#documentation": "The port that the flow uses to send outbound requests to initiate connection with the sender.", + "smithy.api#jsonName": "senderControlPort" + } + }, + "SenderIpAddress": { + "target": "com.amazonaws.mediaconnect#__string", + "traits": { + "smithy.api#documentation": "The IP address that the flow communicates with to initiate connection with the sender.", + "smithy.api#jsonName": "senderIpAddress" + } + }, "SourceArn": { "target": "com.amazonaws.mediaconnect#__string", "traits": { @@ -5227,7 +5308,7 @@ "Name": { "target": "com.amazonaws.mediaconnect#__string", "traits": { - "smithy.api#documentation": "Immutable and has to be a unique against other VpcInterfaces in this Flow", + "smithy.api#documentation": "Immutable and has to be a unique against other VpcInterfaces in this Flow.", "smithy.api#jsonName": "name", "smithy.api#required": {} } diff --git a/codegen/sdk-codegen/aws-models/network-firewall.json b/codegen/sdk-codegen/aws-models/network-firewall.json index 45cb0d738aa3..34ec5c76016c 100644 --- a/codegen/sdk-codegen/aws-models/network-firewall.json +++ b/codegen/sdk-codegen/aws-models/network-firewall.json @@ -1186,6 +1186,95 @@ "smithy.api#documentation": "

              Returns the data objects for the specified rule group.

              " } }, + "com.amazonaws.networkfirewall#DescribeRuleGroupMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataRequest" + }, + "output": { + "target": "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, + { + "target": "com.amazonaws.networkfirewall#InvalidRequestException" + }, + { + "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

              High-level information about a rule group, returned by operations like create and describe. \n You can use the information provided in the metadata to retrieve and manage a rule group. \n You can retrieve all objects for a rule group by calling DescribeRuleGroup.\n

              " + } + }, + "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataRequest": { + "type": "structure", + "members": { + "RuleGroupName": { + "target": "com.amazonaws.networkfirewall#ResourceName", + "traits": { + "smithy.api#documentation": "

              The descriptive name of the rule group. You can't change the name of a rule group after you create it.

              \n

              You must specify the ARN or the name, and you can specify both.

              " + } + }, + "RuleGroupArn": { + "target": "com.amazonaws.networkfirewall#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The descriptive name of the rule group. You can't change the name of a rule group after you create it.

              \n

              You must specify the ARN or the name, and you can specify both.

              " + } + }, + "Type": { + "target": "com.amazonaws.networkfirewall#RuleGroupType", + "traits": { + "smithy.api#documentation": "

              Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains \nstateless rules. If it is stateful, it contains stateful rules.

              \n \n

              This setting is required for requests that do not include the RuleGroupARN.

              \n
              " + } + } + } + }, + "com.amazonaws.networkfirewall#DescribeRuleGroupMetadataResponse": { + "type": "structure", + "members": { + "RuleGroupArn": { + "target": "com.amazonaws.networkfirewall#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The descriptive name of the rule group. You can't change the name of a rule group after you create it.

              \n

              You must specify the ARN or the name, and you can specify both.

              ", + "smithy.api#required": {} + } + }, + "RuleGroupName": { + "target": "com.amazonaws.networkfirewall#ResourceName", + "traits": { + "smithy.api#documentation": "

              The descriptive name of the rule group. You can't change the name of a rule group after you create it.

              \n

              You must specify the ARN or the name, and you can specify both.

              ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.networkfirewall#Description", + "traits": { + "smithy.api#documentation": "

              Returns the metadata objects for the specified rule group.\n

              " + } + }, + "Type": { + "target": "com.amazonaws.networkfirewall#RuleGroupType", + "traits": { + "smithy.api#documentation": "

              Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains \nstateless rules. If it is stateful, it contains stateful rules.

              \n \n

              This setting is required for requests that do not include the RuleGroupARN.

              \n
              " + } + }, + "Capacity": { + "target": "com.amazonaws.networkfirewall#RuleCapacity", + "traits": { + "smithy.api#documentation": "

              The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. \n When you update a rule group, you are limited to this capacity. When you reference a rule group \n from a firewall policy, Network Firewall reserves this capacity for the rule group.

              \n

              You can retrieve the capacity that would be required for a rule group before you create the rule group by calling \n CreateRuleGroup with DryRun set to TRUE.

              " + } + }, + "StatefulRuleOptions": { + "target": "com.amazonaws.networkfirewall#StatefulRuleOptions" + } + } + }, "com.amazonaws.networkfirewall#DescribeRuleGroupRequest": { "type": "structure", "members": { @@ -1530,7 +1619,7 @@ "StatefulDefaultActions": { "target": "com.amazonaws.networkfirewall#StatefulActions", "traits": { - "smithy.api#documentation": "

              The default actions to take on a packet that doesn't match any stateful rules.

              " + "smithy.api#documentation": "

              The default actions to take on a packet that doesn't match any stateful rules. The stateful default action is optional, \n and is only valid when using the strict rule order.

              \n

              Valid values of the stateful default action:

              \n
                \n
              • \n

                aws:drop_strict

                \n
              • \n
              • \n

                aws:drop_established

                \n
              • \n
              • \n

                aws:alert_strict

                \n
              • \n
              • \n

                aws:alert_established

                \n
              • \n
              \n

              For more information, see \n Strict evaluation order in the AWS Network Firewall Developer Guide.\n

              " } }, "StatefulEngineOptions": { @@ -2063,6 +2152,12 @@ "traits": { "smithy.api#documentation": "

              The maximum number of objects that you want Network Firewall to return for this request. If more \n objects are available, in the response, Network Firewall provides a \n NextToken value that you can use in a subsequent call to get the next batch of objects.

              " } + }, + "Scope": { + "target": "com.amazonaws.networkfirewall#ResourceManagedStatus", + "traits": { + "smithy.api#documentation": "

              The scope of the request. The default setting of ACCOUNT or a setting of \n NULL returns all of the rule groups in your account. A setting of \n MANAGED returns all available managed rule groups.

              " + } } } }, @@ -2092,11 +2187,17 @@ "target": "com.amazonaws.networkfirewall#ListTagsForResourceResponse" }, "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, { "target": "com.amazonaws.networkfirewall#InvalidRequestException" }, { "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" } ], "traits": { @@ -2305,6 +2406,21 @@ }, "com.amazonaws.networkfirewall#NetworkFirewall_20201112": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Network Firewall", + "arnNamespace": "network-firewall", + "cloudFormationName": "NetworkFirewall", + "cloudTrailEventSource": "networkfirewall.amazonaws.com", + "endpointPrefix": "network-firewall" + }, + "aws.auth#sigv4": { + "name": "network-firewall" + }, + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "

              This is the API Reference for AWS Network Firewall. This guide is for developers who need\n detailed information about the Network Firewall API actions, data types, and errors.

              \n
                \n
              • \n

                The REST API requires you to handle connection details, such as calculating\n signatures, handling request retries, and error handling. For general information\n about using the AWS REST APIs, see AWS APIs.

                \n

                To access Network Firewall using the REST API endpoint:\n https://network-firewall..amazonaws.com \n

                \n
              • \n
              • \n

                Alternatively, you can use one of the AWS SDKs to access an API that's tailored to\n the programming language or platform that you're using. For more information, see\n AWS SDKs.

                \n
              • \n
              • \n

                For descriptions of Network Firewall features, including and step-by-step\n instructions on how to use them through the Network Firewall console, see the Network Firewall Developer\n Guide.

                \n
              • \n
              \n

              Network Firewall is a stateful, managed, network firewall and intrusion detection and\n prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the\n perimeter of your VPC. This includes filtering traffic going to and coming from an internet\n gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible\n with Suricata, a free, open source intrusion detection system (IDS) engine. \n AWS Network Firewall supports Suricata version 5.0.2. For information about Suricata, \n see the Suricata website.

              \n

              You can use Network Firewall to monitor and protect your VPC traffic in a number of ways.\n The following are just a few examples:

              \n
                \n
              • \n

                Allow domains or IP addresses for known AWS service endpoints, such as Amazon S3, and\n block all other forms of traffic.

                \n
              • \n
              • \n

                Use custom lists of known bad domains to limit the types of domain names that your\n applications can access.

                \n
              • \n
              • \n

                Perform deep packet inspection on traffic entering or leaving your VPC.

                \n
              • \n
              • \n

                Use stateful protocol detection to filter protocols like HTTPS, regardless of the\n port used.

                \n
              • \n
              \n

              To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in\n Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

              \n

              To start using Network Firewall, do the following:

              \n
                \n
              1. \n

                (Optional) If you don't already have a VPC that you want to protect, create it in\n Amazon VPC.

                \n
              2. \n
              3. \n

                In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a\n subnet for the sole use of Network Firewall.

                \n
              4. \n
              5. \n

                In Network Firewall, create stateless and stateful rule groups, \n to define the components of the network traffic filtering behavior that you want your firewall to have.

                \n
              6. \n
              7. \n

                In Network Firewall, create a firewall policy that uses your rule groups and\n specifies additional default traffic filtering behavior.

                \n
              8. \n
              9. \n

                In Network Firewall, create a firewall and specify your new firewall policy and \n VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you\n specify, with the behavior that's defined in the firewall policy.

                \n
              10. \n
              11. \n

                In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall\n endpoints.

                \n
              12. \n
              ", + "smithy.api#title": "AWS Network Firewall" + }, "version": "2020-11-12", "operations": [ { @@ -2349,6 +2465,9 @@ { "target": "com.amazonaws.networkfirewall#DescribeRuleGroup" }, + { + "target": "com.amazonaws.networkfirewall#DescribeRuleGroupMetadata" + }, { "target": "com.amazonaws.networkfirewall#DisassociateSubnets" }, @@ -2394,22 +2513,7 @@ { "target": "com.amazonaws.networkfirewall#UpdateSubnetChangeProtection" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Network Firewall", - "arnNamespace": "network-firewall", - "cloudFormationName": "NetworkFirewall", - "cloudTrailEventSource": "networkfirewall.amazonaws.com", - "endpointPrefix": "network-firewall" - }, - "aws.auth#sigv4": { - "name": "network-firewall" - }, - "aws.protocols#awsJson1_0": {}, - "smithy.api#documentation": "

              This is the API Reference for AWS Network Firewall. This guide is for developers who need\n detailed information about the Network Firewall API actions, data types, and errors.

              \n
                \n
              • \n

                The REST API requires you to handle connection details, such as calculating\n signatures, handling request retries, and error handling. For general information\n about using the AWS REST APIs, see AWS APIs.

                \n

                To access Network Firewall using the REST API endpoint:\n https://network-firewall..amazonaws.com \n

                \n
              • \n
              • \n

                Alternatively, you can use one of the AWS SDKs to access an API that's tailored to\n the programming language or platform that you're using. For more information, see\n AWS SDKs.

                \n
              • \n
              • \n

                For descriptions of Network Firewall features, including and step-by-step\n instructions on how to use them through the Network Firewall console, see the Network Firewall Developer\n Guide.

                \n
              • \n
              \n

              Network Firewall is a stateful, managed, network firewall and intrusion detection and\n prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the\n perimeter of your VPC. This includes filtering traffic going to and coming from an internet\n gateway, NAT gateway, or over VPN or AWS Direct Connect. Network Firewall uses rules that are compatible\n with Suricata, a free, open source intrusion detection system (IDS) engine. \n AWS Network Firewall supports Suricata version 5.0.2. For information about Suricata, \n see the Suricata website.

              \n

              You can use Network Firewall to monitor and protect your VPC traffic in a number of ways.\n The following are just a few examples:

              \n
                \n
              • \n

                Allow domains or IP addresses for known AWS service endpoints, such as Amazon S3, and\n block all other forms of traffic.

                \n
              • \n
              • \n

                Use custom lists of known bad domains to limit the types of domain names that your\n applications can access.

                \n
              • \n
              • \n

                Perform deep packet inspection on traffic entering or leaving your VPC.

                \n
              • \n
              • \n

                Use stateful protocol detection to filter protocols like HTTPS, regardless of the\n port used.

                \n
              • \n
              \n

              To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in\n Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

              \n

              To start using Network Firewall, do the following:

              \n
                \n
              1. \n

                (Optional) If you don't already have a VPC that you want to protect, create it in\n Amazon VPC.

                \n
              2. \n
              3. \n

                In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a\n subnet for the sole use of Network Firewall.

                \n
              4. \n
              5. \n

                In Network Firewall, create stateless and stateful rule groups, \n to define the components of the network traffic filtering behavior that you want your firewall to have.

                \n
              6. \n
              7. \n

                In Network Firewall, create a firewall policy that uses your rule groups and\n specifies additional default traffic filtering behavior.

                \n
              8. \n
              9. \n

                In Network Firewall, create a firewall and specify your new firewall policy and \n VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you\n specify, with the behavior that's defined in the firewall policy.

                \n
              10. \n
              11. \n

                In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall\n endpoints.

                \n
              12. \n
              ", - "smithy.api#title": "AWS Network Firewall" - } + ] }, "com.amazonaws.networkfirewall#NumberOfAssociations": { "type": "integer", @@ -2417,6 +2521,17 @@ "smithy.api#box": {} } }, + "com.amazonaws.networkfirewall#OverrideAction": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DROP_TO_ALERT", + "name": "DROP_TO_ALERT" + } + ] + } + }, "com.amazonaws.networkfirewall#PaginationMaxResults": { "type": "integer", "traits": { @@ -2663,6 +2778,21 @@ "smithy.api#pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$" } }, + "com.amazonaws.networkfirewall#ResourceManagedStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MANAGED", + "name": "MANAGED" + }, + { + "value": "ACCOUNT", + "name": "ACCOUNT" + } + ] + } + }, "com.amazonaws.networkfirewall#ResourceName": { "type": "string", "traits": { @@ -2995,7 +3125,7 @@ "Targets": { "target": "com.amazonaws.networkfirewall#RuleTargets", "traits": { - "smithy.api#documentation": "

              The domains that you want to inspect for in your traffic flows. To provide multiple\n domains, separate them with commas. Valid domain specifications are the following:

              \n
                \n
              • \n

                Explicit names. For example, abc.example.com matches only the domain abc.example.com.

                \n
              • \n
              • \n

                Names that use a domain wildcard, which you indicate with an initial '.'. For example,.example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

                \n\t
              • \n
              ", + "smithy.api#documentation": "

              The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

              \n
                \n
              • \n

                Explicit names. For example, abc.example.com matches only the domain abc.example.com.

                \n
              • \n
              • \n

                Names that use a domain wildcard, which you indicate with an initial '.'. For example,.example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

                \n\t
              • \n
              ", "smithy.api#required": {} } }, @@ -3084,7 +3214,7 @@ "RuleOrder": { "target": "com.amazonaws.networkfirewall#RuleOrder", "traits": { - "smithy.api#documentation": "

              Indicates how to manage the order of stateful rule evaluation for the policy. By default, Network Firewall\n leaves the rule evaluation order up to the Suricata rule processing engine. If you set \n this to STRICT_ORDER, your rules are evaluated in the exact order that you provide them\n in the policy. With strict ordering, the rule groups are evaluated by order of priority, starting from the lowest number, and \n the rules in each rule group are processed in the order that they're defined.

              " + "smithy.api#documentation": "

              Indicates how to manage the order of stateful rule evaluation for the policy. DEFAULT_ACTION_ORDER is\n the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them\n based on certain settings. For more information, see \n Evaluation order for stateful rules in the AWS Network Firewall Developer Guide.\n

              " } } }, @@ -3136,6 +3266,20 @@ ] } }, + "com.amazonaws.networkfirewall#StatefulRuleGroupOverride": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.networkfirewall#OverrideAction", + "traits": { + "smithy.api#documentation": "

              The action that changes the rule group from DROP to ALERT. This only applies to\n managed rule groups.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The setting that allows the policy owner to change the behavior of the rule group within a policy.

              " + } + }, "com.amazonaws.networkfirewall#StatefulRuleGroupReference": { "type": "structure", "members": { @@ -3152,6 +3296,12 @@ "smithy.api#box": {}, "smithy.api#documentation": "

              An integer setting that indicates the order in which to run the stateful rule groups in\n a single FirewallPolicy. This setting only applies to firewall policies\n that specify the STRICT_ORDER rule order in the stateful engine options settings.

              \n

              Network Firewall evalutes each stateful rule group\n against a packet starting with the group that has the lowest priority setting. You must ensure\n that the priority settings are unique within each policy.

              \n

              You can change the priority settings of your rule groups at any time. To make it easier to\n insert rule groups later, number them so there's a wide range in between, for example use 100,\n 200, and so on.

              " } + }, + "Override": { + "target": "com.amazonaws.networkfirewall#StatefulRuleGroupOverride", + "traits": { + "smithy.api#documentation": "

              The action that allows the policy owner to override the behavior of the rule group within a policy.

              " + } } }, "traits": { @@ -3170,7 +3320,7 @@ "RuleOrder": { "target": "com.amazonaws.networkfirewall#RuleOrder", "traits": { - "smithy.api#documentation": "

              Indicates how to manage the order of the rule evaluation for the rule group. By default, Network Firewall\n leaves the rule evaluation order up to the Suricata rule processing engine. If you set \n this to STRICT_ORDER, your rules are evaluated in the exact order that they're listed \n in your Suricata rules string.

              " + "smithy.api#documentation": "

              Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is\n the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them\n based on certain settings. For more information, see \n Evaluation order for stateful rules in the AWS Network Firewall Developer Guide.\n

              " } } }, @@ -3540,11 +3690,17 @@ "target": "com.amazonaws.networkfirewall#TagResourceResponse" }, "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, { "target": "com.amazonaws.networkfirewall#InvalidRequestException" }, { "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" } ], "traits": { @@ -3648,11 +3804,17 @@ "target": "com.amazonaws.networkfirewall#UntagResourceResponse" }, "errors": [ + { + "target": "com.amazonaws.networkfirewall#InternalServerError" + }, { "target": "com.amazonaws.networkfirewall#InvalidRequestException" }, { "target": "com.amazonaws.networkfirewall#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkfirewall#ThrottlingException" } ], "traits": { @@ -3762,7 +3924,7 @@ "DeleteProtection": { "target": "com.amazonaws.networkfirewall#Boolean", "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              A flag indicating whether it is possible to delete the firewall. A setting of TRUE indicates\n that the firewall is protected against deletion. Use this setting to protect against\n accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to TRUE.

              " } }, "UpdateToken": { @@ -3918,7 +4080,7 @@ } ], "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              Modifies the flag, ChangeProtection, which indicates whether it \n is possible to change the firewall. If the flag is set to TRUE, the firewall is protected \n from changes. This setting helps protect against accidentally changing a firewall that's in use.

              " } }, "com.amazonaws.networkfirewall#UpdateFirewallPolicyChangeProtectionRequest": { diff --git a/codegen/sdk-codegen/aws-models/networkmanager.json b/codegen/sdk-codegen/aws-models/networkmanager.json index 0cbb83599859..3da58c875073 100644 --- a/codegen/sdk-codegen/aws-models/networkmanager.json +++ b/codegen/sdk-codegen/aws-models/networkmanager.json @@ -29,17 +29,26 @@ ] }, "shapes": { + "com.amazonaws.networkmanager#AWSAccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + } + } + }, "com.amazonaws.networkmanager#AWSLocation": { "type": "structure", "members": { "Zone": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The Zone that the device is located in. Specify the ID of an Availability Zone, Local\n Zone, Wavelength Zone, or an Outpost.

              " } }, "SubnetArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#SubnetArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the subnet that the device is located in.

              " } @@ -49,11 +58,72 @@ "smithy.api#documentation": "

              Specifies a location in Amazon Web Services.

              " } }, + "com.amazonaws.networkmanager#AcceptAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#AcceptAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#AcceptAttachmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Accepts a core network attachment request.

              \n

              Once the attachment request is accepted by a core network owner, the attachment is\n created and connected to a core network.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/attachments/{AttachmentId}/accept", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#AcceptAttachmentRequest": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#AcceptAttachmentResponse": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.networkmanager#Attachment", + "traits": { + "smithy.api#documentation": "

              The response to the attachment request.

              " + } + } + } + }, "com.amazonaws.networkmanager#AccessDeniedException": { "type": "structure", "members": { "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#required": {} } @@ -65,6 +135,90 @@ "smithy.api#httpError": 403 } }, + "com.amazonaws.networkmanager#AssociateConnectPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#AssociateConnectPeerRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#AssociateConnectPeerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Associates a core network Connect peer with a device and optionally, with a link.

              \n

              If you specify a link, it must be associated with the specified device. You can only\n associate core network Connect peers that have been created on a core network Connect\n attachment on a core network.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/global-networks/{GlobalNetworkId}/connect-peer-associations", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#AssociateConnectPeerRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of your global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", + "traits": { + "smithy.api#documentation": "

              The ID of the Connect peer.

              ", + "smithy.api#required": {} + } + }, + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the device.

              ", + "smithy.api#required": {} + } + }, + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link.

              " + } + } + } + }, + "com.amazonaws.networkmanager#AssociateConnectPeerResponse": { + "type": "structure", + "members": { + "ConnectPeerAssociation": { + "target": "com.amazonaws.networkmanager#ConnectPeerAssociation", + "traits": { + "smithy.api#documentation": "

              The response to the Connect peer request.

              " + } + } + } + }, "com.amazonaws.networkmanager#AssociateCustomerGateway": { "type": "operation", "input": { @@ -109,14 +263,14 @@ "type": "structure", "members": { "CustomerGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#CustomerGatewayArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the customer gateway.

              ", "smithy.api#required": {} } }, "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -124,14 +278,14 @@ } }, "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { "smithy.api#documentation": "

              The ID of the device.

              ", "smithy.api#required": {} } }, "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link.

              " } @@ -193,7 +347,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -201,14 +355,14 @@ } }, "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { "smithy.api#documentation": "

              The ID of the device.

              ", "smithy.api#required": {} } }, "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link.

              ", "smithy.api#required": {} @@ -271,7 +425,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -279,21 +433,21 @@ } }, "TransitGatewayConnectPeerArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the Connect peer.

              ", "smithy.api#required": {} } }, "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { "smithy.api#documentation": "

              The ID of the device.

              ", "smithy.api#required": {} } }, "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link.

              " } @@ -311,729 +465,794 @@ } } }, - "com.amazonaws.networkmanager#Bandwidth": { + "com.amazonaws.networkmanager#Attachment": { "type": "structure", "members": { - "UploadSpeed": { - "target": "com.amazonaws.networkmanager#Integer", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              Upload speed in Mbps.

              " + "smithy.api#documentation": "

              A core network ID.

              " } }, - "DownloadSpeed": { - "target": "com.amazonaws.networkmanager#Integer", + "CoreNetworkArn": { + "target": "com.amazonaws.networkmanager#CoreNetworkArn", "traits": { - "smithy.api#documentation": "

              Download speed in Mbps.

              " - } - } - }, - "traits": { - "smithy.api#documentation": "

              Describes bandwidth information.

              " - } - }, - "com.amazonaws.networkmanager#Boolean": { - "type": "boolean" - }, - "com.amazonaws.networkmanager#ConflictException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#required": {} + "smithy.api#documentation": "

              The ARN of a core network.

              " } }, - "ResourceId": { - "target": "com.amazonaws.networkmanager#String", + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              The ID of the resource.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of the attachment.

              " } }, - "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "OwnerAccountId": { + "target": "com.amazonaws.networkmanager#AWSAccountId", "traits": { - "smithy.api#documentation": "

              The resource type.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of the attachment account owner.

              " } - } - }, - "traits": { - "smithy.api#documentation": "

              There was a conflict processing the request. Updating or deleting the resource can\n cause an inconsistent state.

              ", - "smithy.api#error": "client", - "smithy.api#httpError": 409 - } - }, - "com.amazonaws.networkmanager#Connection": { - "type": "structure", - "members": { - "ConnectionId": { - "target": "com.amazonaws.networkmanager#String", + }, + "AttachmentType": { + "target": "com.amazonaws.networkmanager#AttachmentType", "traits": { - "smithy.api#documentation": "

              The ID of the connection.

              " + "smithy.api#documentation": "

              The type of attachment.

              " } }, - "ConnectionArn": { - "target": "com.amazonaws.networkmanager#String", + "State": { + "target": "com.amazonaws.networkmanager#AttachmentState", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the connection.

              " + "smithy.api#documentation": "

              The state of the attachment.

              " } }, - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              " + "smithy.api#documentation": "

              The Region where the edge is located.

              " } }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { - "smithy.api#documentation": "

              The ID of the first device in the connection.

              " + "smithy.api#documentation": "

              The attachment resource ARN.

              " } }, - "ConnectedDeviceId": { - "target": "com.amazonaws.networkmanager#String", + "AttachmentPolicyRuleNumber": { + "target": "com.amazonaws.networkmanager#Integer", "traits": { - "smithy.api#documentation": "

              The ID of the second device in the connection.

              " + "smithy.api#documentation": "

              The policy rule number associated with the attachment.

              " } }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "SegmentName": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              The ID of the link for the first device in the connection.

              " + "smithy.api#documentation": "

              The name of the segment attachment.

              " } }, - "ConnectedLinkId": { - "target": "com.amazonaws.networkmanager#String", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The ID of the link for the second device in the connection.

              " + "smithy.api#documentation": "

              The tags associated with the attachment.

              " } }, - "Description": { - "target": "com.amazonaws.networkmanager#String", + "ProposedSegmentChange": { + "target": "com.amazonaws.networkmanager#ProposedSegmentChange", "traits": { - "smithy.api#documentation": "

              The description of the connection.

              " + "smithy.api#documentation": "

              The attachment to move from one segment to another.

              " } }, "CreatedAt": { "target": "com.amazonaws.networkmanager#DateTime", "traits": { - "smithy.api#documentation": "

              The date and time that the connection was created.

              " - } - }, - "State": { - "target": "com.amazonaws.networkmanager#ConnectionState", - "traits": { - "smithy.api#documentation": "

              The state of the connection.

              " + "smithy.api#documentation": "

              The timestamp when the attachment was created.

              " } }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", + "UpdatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", "traits": { - "smithy.api#documentation": "

              The tags for the connection.

              " + "smithy.api#documentation": "

              The timestamp when the attachment was last updated.

              " } } }, "traits": { - "smithy.api#documentation": "

              Describes a connection.

              " + "smithy.api#documentation": "

              Describes a core network attachment.

              " } }, - "com.amazonaws.networkmanager#ConnectionHealth": { - "type": "structure", - "members": { - "Type": { - "target": "com.amazonaws.networkmanager#ConnectionType", - "traits": { - "smithy.api#documentation": "

              The connection type.

              " - } - }, - "Status": { - "target": "com.amazonaws.networkmanager#ConnectionStatus", - "traits": { - "smithy.api#documentation": "

              The connection status.

              " - } - }, - "Timestamp": { - "target": "com.amazonaws.networkmanager#DateTime", - "traits": { - "smithy.api#documentation": "

              The time the status was last updated.

              " - } - } - }, + "com.amazonaws.networkmanager#AttachmentId": { + "type": "string", "traits": { - "smithy.api#documentation": "

              Describes connection health.

              " + "smithy.api#length": { + "min": 0, + "max": 50 + }, + "smithy.api#pattern": "^attachment-([0-9a-f]{8,17})$" } }, - "com.amazonaws.networkmanager#ConnectionList": { + "com.amazonaws.networkmanager#AttachmentList": { "type": "list", "member": { - "target": "com.amazonaws.networkmanager#Connection" + "target": "com.amazonaws.networkmanager#Attachment" } }, - "com.amazonaws.networkmanager#ConnectionState": { + "com.amazonaws.networkmanager#AttachmentState": { "type": "string", "traits": { "smithy.api#enum": [ { - "value": "PENDING", - "name": "pending" + "value": "REJECTED", + "name": "REJECTED" }, { - "value": "AVAILABLE", - "name": "available" + "value": "PENDING_ATTACHMENT_ACCEPTANCE", + "name": "PENDING_ATTACHMENT_ACCEPTANCE" }, { - "value": "DELETING", - "name": "deleting" + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "FAILED", + "name": "FAILED" + }, + { + "value": "AVAILABLE", + "name": "AVAILABLE" }, { "value": "UPDATING", - "name": "updating" + "name": "UPDATING" + }, + { + "value": "PENDING_NETWORK_UPDATE", + "name": "PENDING_NETWORK_UPDATE" + }, + { + "value": "PENDING_TAG_ACCEPTANCE", + "name": "PENDING_TAG_ACCEPTANCE" + }, + { + "value": "DELETING", + "name": "DELETING" } ] } }, - "com.amazonaws.networkmanager#ConnectionStatus": { + "com.amazonaws.networkmanager#AttachmentType": { "type": "string", "traits": { "smithy.api#enum": [ { - "value": "UP", - "name": "UP" + "value": "CONNECT", + "name": "CONNECT" }, { - "value": "DOWN", - "name": "DOWN" + "value": "SITE_TO_SITE_VPN", + "name": "SITE_TO_SITE_VPN" + }, + { + "value": "VPC", + "name": "VPC" } ] } }, - "com.amazonaws.networkmanager#ConnectionType": { - "type": "string", + "com.amazonaws.networkmanager#Bandwidth": { + "type": "structure", + "members": { + "UploadSpeed": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              Upload speed in Mbps.

              " + } + }, + "DownloadSpeed": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              Download speed in Mbps.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes bandwidth information.

              " + } + }, + "com.amazonaws.networkmanager#BgpOptions": { + "type": "structure", + "members": { + "PeerAsn": { + "target": "com.amazonaws.networkmanager#Long", + "traits": { + "smithy.api#documentation": "

              The Peer ASN of the BGP.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes the BGP options.

              " + } + }, + "com.amazonaws.networkmanager#Boolean": { + "type": "boolean" + }, + "com.amazonaws.networkmanager#ChangeAction": { + "type": "string", "traits": { "smithy.api#enum": [ { - "value": "BGP", - "name": "BGP" + "value": "ADD", + "name": "ADD" }, { - "value": "IPSEC", - "name": "IPSEC" + "value": "MODIFY", + "name": "MODIFY" + }, + { + "value": "REMOVE", + "name": "REMOVE" } ] } }, - "com.amazonaws.networkmanager#CreateConnection": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#CreateConnectionRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#CreateConnectionResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" - }, - { - "target": "com.amazonaws.networkmanager#ConflictException" - }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" - }, - { - "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" - }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], + "com.amazonaws.networkmanager#ChangeSetState": { + "type": "string", "traits": { - "smithy.api#documentation": "

              Creates a connection between two devices. The devices can be a physical or virtual appliance that connects to a third-party appliance in a VPC, or a physical appliance that connects to another physical appliance in an on-premises network.

              ", - "smithy.api#http": { - "method": "POST", - "uri": "/global-networks/{GlobalNetworkId}/connections", - "code": 200 + "smithy.api#enum": [ + { + "value": "PENDING_GENERATION", + "name": "PENDING_GENERATION" + }, + { + "value": "FAILED_GENERATION", + "name": "FAILED_GENERATION" + }, + { + "value": "READY_TO_EXECUTE", + "name": "READY_TO_EXECUTE" + }, + { + "value": "EXECUTING", + "name": "EXECUTING" + }, + { + "value": "EXECUTION_SUCCEEDED", + "name": "EXECUTION_SUCCEEDED" + }, + { + "value": "OUT_OF_DATE", + "name": "OUT_OF_DATE" + } + ] + } + }, + "com.amazonaws.networkmanager#ChangeType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CORE_NETWORK_SEGMENT", + "name": "CORE_NETWORK_SEGMENT" + }, + { + "value": "CORE_NETWORK_EDGE", + "name": "CORE_NETWORK_EDGE" + }, + { + "value": "ATTACHMENT_MAPPING", + "name": "ATTACHMENT_MAPPING" + }, + { + "value": "ATTACHMENT_ROUTE_PROPAGATION", + "name": "ATTACHMENT_ROUTE_PROPAGATION" + }, + { + "value": "ATTACHMENT_ROUTE_STATIC", + "name": "ATTACHMENT_ROUTE_STATIC" + } + ] + } + }, + "com.amazonaws.networkmanager#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 } } }, - "com.amazonaws.networkmanager#CreateConnectionRequest": { + "com.amazonaws.networkmanager#ConflictException": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "Message": { + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "ResourceId": { + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { - "smithy.api#documentation": "

              The ID of the first device in the connection.

              ", + "smithy.api#documentation": "

              The ID of the resource.

              ", "smithy.api#required": {} } }, - "ConnectedDeviceId": { - "target": "com.amazonaws.networkmanager#String", + "ResourceType": { + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { - "smithy.api#documentation": "

              The ID of the second device in the connection.

              ", + "smithy.api#documentation": "

              The resource type.

              ", "smithy.api#required": {} } - }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the link for the first device.

              " - } - }, - "ConnectedLinkId": { - "target": "com.amazonaws.networkmanager#String", + } + }, + "traits": { + "smithy.api#documentation": "

              There was a conflict processing the request. Updating or deleting the resource can\n cause an inconsistent state.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.networkmanager#ConnectAttachment": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.networkmanager#Attachment", "traits": { - "smithy.api#documentation": "

              The ID of the link for the second device.

              " + "smithy.api#documentation": "

              The attachment details.

              " } }, - "Description": { - "target": "com.amazonaws.networkmanager#String", + "TransportAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              A description of the connection.

              \n

              Length Constraints: Maximum length of 256 characters.

              " + "smithy.api#documentation": "

              The ID of the transport attachment.

              " } }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", + "Options": { + "target": "com.amazonaws.networkmanager#ConnectAttachmentOptions", "traits": { - "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " + "smithy.api#documentation": "

              Options for connecting an attachment.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network Connect attachment.

              " } }, - "com.amazonaws.networkmanager#CreateConnectionResponse": { + "com.amazonaws.networkmanager#ConnectAttachmentOptions": { "type": "structure", "members": { - "Connection": { - "target": "com.amazonaws.networkmanager#Connection", + "Protocol": { + "target": "com.amazonaws.networkmanager#TunnelProtocol", "traits": { - "smithy.api#documentation": "

              Information about the connection.

              " + "smithy.api#documentation": "

              The protocol used for the attachment connection.

              " } } - } - }, - "com.amazonaws.networkmanager#CreateDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#CreateDeviceRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#CreateDeviceResponse" }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" - }, - { - "target": "com.amazonaws.networkmanager#ConflictException" - }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" - }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" - }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], "traits": { - "smithy.api#documentation": "

              Creates a new device in a global network. If you specify both a site ID and a\n location, the location of the site is used for visualization in the Network Manager console.

              ", - "smithy.api#http": { - "method": "POST", - "uri": "/global-networks/{GlobalNetworkId}/devices", - "code": 200 - } + "smithy.api#documentation": "

              Describes a core network Connect attachment options.

              " } }, - "com.amazonaws.networkmanager#CreateDeviceRequest": { + "com.amazonaws.networkmanager#ConnectPeer": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "AWSLocation": { - "target": "com.amazonaws.networkmanager#AWSLocation", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services location of the device, if applicable. For an on-premises device, you can omit this parameter.

              " - } - }, - "Description": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              A description of the device.

              \n

              Constraints: Maximum length of 256 characters.

              " + "smithy.api#documentation": "

              The ID of a core network.

              " } }, - "Type": { - "target": "com.amazonaws.networkmanager#String", + "ConnectAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              The type of the device.

              " + "smithy.api#documentation": "

              The ID of the attachment to connect.

              " } }, - "Vendor": { - "target": "com.amazonaws.networkmanager#String", + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", "traits": { - "smithy.api#documentation": "

              The vendor of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " + "smithy.api#documentation": "

              The ID of the Connect peer.

              " } }, - "Model": { - "target": "com.amazonaws.networkmanager#String", + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", "traits": { - "smithy.api#documentation": "

              The model of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " + "smithy.api#documentation": "

              The Connect peer Regions where edges are located.

              " } }, - "SerialNumber": { - "target": "com.amazonaws.networkmanager#String", + "State": { + "target": "com.amazonaws.networkmanager#ConnectPeerState", "traits": { - "smithy.api#documentation": "

              The serial number of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " + "smithy.api#documentation": "

              The state of the Connect peer.

              " } }, - "Location": { - "target": "com.amazonaws.networkmanager#Location", + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", "traits": { - "smithy.api#documentation": "

              The location of the device.

              " + "smithy.api#documentation": "

              The timestamp when the Connect peer was created.

              " } }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "Configuration": { + "target": "com.amazonaws.networkmanager#ConnectPeerConfiguration", "traits": { - "smithy.api#documentation": "

              The ID of the site.

              " + "smithy.api#documentation": "

              The configuration of the Connect peer.

              " } }, "Tags": { "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " + "smithy.api#documentation": "

              The tags associated with the Connect peer.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network Connect peer.

              " } }, - "com.amazonaws.networkmanager#CreateDeviceResponse": { + "com.amazonaws.networkmanager#ConnectPeerAssociation": { "type": "structure", "members": { - "Device": { - "target": "com.amazonaws.networkmanager#Device", + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", "traits": { - "smithy.api#documentation": "

              Information about the device.

              " + "smithy.api#documentation": "

              The ID of the Connect peer.

              " } - } - } - }, - "com.amazonaws.networkmanager#CreateGlobalNetwork": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#CreateGlobalNetworkRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#CreateGlobalNetworkResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - { - "target": "com.amazonaws.networkmanager#ConflictException" + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the device to connect to.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" - }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], - "traits": { - "smithy.api#documentation": "

              Creates a new, empty global network.

              ", - "smithy.api#http": { - "method": "POST", - "uri": "/global-networks", - "code": 200 - } - } - }, - "com.amazonaws.networkmanager#CreateGlobalNetworkRequest": { - "type": "structure", - "members": { - "Description": { - "target": "com.amazonaws.networkmanager#String", + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", "traits": { - "smithy.api#documentation": "

              A description of the global network.

              \n

              Constraints: Maximum length of 256 characters.

              " + "smithy.api#documentation": "

              The ID of the link.

              " } }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", + "State": { + "target": "com.amazonaws.networkmanager#ConnectPeerAssociationState", "traits": { - "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " + "smithy.api#documentation": "

              The state of the Connect peer association.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network Connect peer association.

              " } }, - "com.amazonaws.networkmanager#CreateGlobalNetworkResponse": { - "type": "structure", - "members": { - "GlobalNetwork": { - "target": "com.amazonaws.networkmanager#GlobalNetwork", - "traits": { - "smithy.api#documentation": "

              Information about the global network object.

              " - } - } + "com.amazonaws.networkmanager#ConnectPeerAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#ConnectPeerAssociation" } }, - "com.amazonaws.networkmanager#CreateLink": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#CreateLinkRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#CreateLinkResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" - }, - { - "target": "com.amazonaws.networkmanager#ConflictException" - }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" - }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" - }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], + "com.amazonaws.networkmanager#ConnectPeerAssociationState": { + "type": "string", "traits": { - "smithy.api#documentation": "

              Creates a new link for a specified site.

              ", - "smithy.api#http": { - "method": "POST", - "uri": "/global-networks/{GlobalNetworkId}/links", - "code": 200 - } + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "pending" + }, + { + "value": "AVAILABLE", + "name": "available" + }, + { + "value": "DELETING", + "name": "deleting" + }, + { + "value": "DELETED", + "name": "deleted" + } + ] } }, - "com.amazonaws.networkmanager#CreateLinkRequest": { + "com.amazonaws.networkmanager#ConnectPeerBgpConfiguration": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkAsn": { + "target": "com.amazonaws.networkmanager#Long", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ASN of the Coret Network.

              " } }, - "Description": { - "target": "com.amazonaws.networkmanager#String", + "PeerAsn": { + "target": "com.amazonaws.networkmanager#Long", "traits": { - "smithy.api#documentation": "

              A description of the link.

              \n

              Constraints: Maximum length of 256 characters.

              " + "smithy.api#documentation": "

              The ASN of the Connect peer.

              " } }, - "Type": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkAddress": { + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { - "smithy.api#documentation": "

              The type of the link.

              \n

              Constraints: Maximum length of 128 characters. Cannot include the following characters: | \\ ^

              " + "smithy.api#documentation": "

              The address of a core network.

              " } }, - "Bandwidth": { - "target": "com.amazonaws.networkmanager#Bandwidth", + "PeerAddress": { + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { - "smithy.api#documentation": "

              The upload speed and download speed in Mbps.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The address of a core network Connect peer.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network BGP configuration.

              " + } + }, + "com.amazonaws.networkmanager#ConnectPeerBgpConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#ConnectPeerBgpConfiguration" + } + }, + "com.amazonaws.networkmanager#ConnectPeerConfiguration": { + "type": "structure", + "members": { + "CoreNetworkAddress": { + "target": "com.amazonaws.networkmanager#IPAddress", + "traits": { + "smithy.api#documentation": "

              The IP address of a core network.

              " } }, - "Provider": { - "target": "com.amazonaws.networkmanager#String", + "PeerAddress": { + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { - "smithy.api#documentation": "

              The provider of the link.

              \n

              Constraints: Maximum length of 128 characters. Cannot include the following characters: | \\ ^

              " + "smithy.api#documentation": "

              The IP address of the Connect peer.

              " } }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "InsideCidrBlocks": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", "traits": { - "smithy.api#documentation": "

              The ID of the site.

              ", - "smithy.api#required": {} + "smithy.api#documentation": "

              The inside IP addresses used for a Connect peer configuration.

              " } }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", + "Protocol": { + "target": "com.amazonaws.networkmanager#TunnelProtocol", "traits": { - "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " + "smithy.api#documentation": "

              The protocol used for a Connect peer configuration.

              " } - } - } - }, - "com.amazonaws.networkmanager#CreateLinkResponse": { - "type": "structure", - "members": { - "Link": { - "target": "com.amazonaws.networkmanager#Link", + }, + "BgpConfigurations": { + "target": "com.amazonaws.networkmanager#ConnectPeerBgpConfigurationList", "traits": { - "smithy.api#documentation": "

              Information about the link.

              " + "smithy.api#documentation": "

              The Connect peer BGP configurations.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network Connect peer configuration.

              " } }, - "com.amazonaws.networkmanager#CreateSite": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#CreateSiteRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#CreateSiteResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" - }, - { - "target": "com.amazonaws.networkmanager#ConflictException" - }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" - }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" + "com.amazonaws.networkmanager#ConnectPeerId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], + "smithy.api#pattern": "^connect-peer-([0-9a-f]{8,17})$" + } + }, + "com.amazonaws.networkmanager#ConnectPeerIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#ConnectPeerId" + } + }, + "com.amazonaws.networkmanager#ConnectPeerState": { + "type": "string", "traits": { - "smithy.api#documentation": "

              Creates a new site in a global network.

              ", - "smithy.api#http": { - "method": "POST", - "uri": "/global-networks/{GlobalNetworkId}/sites", - "code": 200 - } + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "FAILED", + "name": "FAILED" + }, + { + "value": "AVAILABLE", + "name": "AVAILABLE" + }, + { + "value": "DELETING", + "name": "DELETING" + } + ] } }, - "com.amazonaws.networkmanager#CreateSiteRequest": { + "com.amazonaws.networkmanager#ConnectPeerSummary": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of a core network.

              " } }, - "Description": { - "target": "com.amazonaws.networkmanager#String", + "ConnectAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              A description of your site.

              \n

              Constraints: Maximum length of 256 characters.

              " + "smithy.api#documentation": "

              The ID of a Connect peer attachment.

              " } }, - "Location": { - "target": "com.amazonaws.networkmanager#Location", + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", "traits": { - "smithy.api#documentation": "

              The site location. This information is used for visualization in the Network Manager console. If you specify the address, the latitude and longitude are automatically calculated.

              \n
                \n
              • \n

                \n Address: The physical address of the site.

                \n
              • \n
              • \n

                \n Latitude: The latitude of the site.

                \n
              • \n
              • \n

                \n Longitude: The longitude of the site.

                \n
              • \n
              " + "smithy.api#documentation": "

              The ID of a Connect peer.

              " + } + }, + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The Region where the edge is located.

              " + } + }, + "ConnectPeerState": { + "target": "com.amazonaws.networkmanager#ConnectPeerState", + "traits": { + "smithy.api#documentation": "

              The state of a Connect peer.

              " + } + }, + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The timestamp when a Connect peer was created.

              " } }, "Tags": { "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " + "smithy.api#documentation": "

              The tags associated with a Connect peer summary.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Summary description of a Connect peer.

              " } }, - "com.amazonaws.networkmanager#CreateSiteResponse": { - "type": "structure", - "members": { - "Site": { - "target": "com.amazonaws.networkmanager#Site", - "traits": { - "smithy.api#documentation": "

              Information about the site.

              " - } - } + "com.amazonaws.networkmanager#ConnectPeerSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#ConnectPeerSummary" } }, - "com.amazonaws.networkmanager#CustomerGatewayAssociation": { + "com.amazonaws.networkmanager#Connection": { "type": "structure", "members": { - "CustomerGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "ConnectionId": { + "target": "com.amazonaws.networkmanager#ConnectionId", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the customer gateway.

              " + "smithy.api#documentation": "

              The ID of the connection.

              " + } + }, + "ConnectionArn": { + "target": "com.amazonaws.networkmanager#ConnectionArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the connection.

              " } }, "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              " } }, "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { - "smithy.api#documentation": "

              The ID of the device.

              " + "smithy.api#documentation": "

              The ID of the first device in the connection.

              " } }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "ConnectedDeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { - "smithy.api#documentation": "

              The ID of the link.

              " + "smithy.api#documentation": "

              The ID of the second device in the connection.

              " } }, - "State": { - "target": "com.amazonaws.networkmanager#CustomerGatewayAssociationState", + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", "traits": { - "smithy.api#documentation": "

              The association state.

              " + "smithy.api#documentation": "

              The ID of the link for the first device in the connection.

              " + } + }, + "ConnectedLinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link for the second device in the connection.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of the connection.

              " + } + }, + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The date and time that the connection was created.

              " + } + }, + "State": { + "target": "com.amazonaws.networkmanager#ConnectionState", + "traits": { + "smithy.api#documentation": "

              The state of the connection.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags for the connection.

              " } } }, "traits": { - "smithy.api#documentation": "

              Describes the association between a customer gateway, a device, and a link.

              " + "smithy.api#documentation": "

              Describes a connection.

              " } }, - "com.amazonaws.networkmanager#CustomerGatewayAssociationList": { + "com.amazonaws.networkmanager#ConnectionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#ConnectionHealth": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.networkmanager#ConnectionType", + "traits": { + "smithy.api#documentation": "

              The connection type.

              " + } + }, + "Status": { + "target": "com.amazonaws.networkmanager#ConnectionStatus", + "traits": { + "smithy.api#documentation": "

              The connection status.

              " + } + }, + "Timestamp": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The time the status was last updated.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes connection health.

              " + } + }, + "com.amazonaws.networkmanager#ConnectionId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#ConnectionIdList": { "type": "list", "member": { - "target": "com.amazonaws.networkmanager#CustomerGatewayAssociation" + "target": "com.amazonaws.networkmanager#ConnectionId" } }, - "com.amazonaws.networkmanager#CustomerGatewayAssociationState": { + "com.amazonaws.networkmanager#ConnectionList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#Connection" + } + }, + "com.amazonaws.networkmanager#ConnectionState": { "type": "string", "traits": { "smithy.api#enum": [ @@ -1050,359 +1269,588 @@ "name": "deleting" }, { - "value": "DELETED", - "name": "deleted" + "value": "UPDATING", + "name": "updating" } ] } }, - "com.amazonaws.networkmanager#DateTime": { - "type": "timestamp" + "com.amazonaws.networkmanager#ConnectionStatus": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "UP", + "name": "UP" + }, + { + "value": "DOWN", + "name": "DOWN" + } + ] + } }, - "com.amazonaws.networkmanager#DeleteConnection": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#DeleteConnectionRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#DeleteConnectionResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" - }, - { - "target": "com.amazonaws.networkmanager#ConflictException" - }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" - }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" - }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], + "com.amazonaws.networkmanager#ConnectionType": { + "type": "string", "traits": { - "smithy.api#documentation": "

              Deletes the specified connection in your global network.

              ", - "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/connections/{ConnectionId}", - "code": 200 + "smithy.api#enum": [ + { + "value": "BGP", + "name": "BGP" + }, + { + "value": "IPSEC", + "name": "IPSEC" + } + ] + } + }, + "com.amazonaws.networkmanager#ConstrainedString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 } } }, - "com.amazonaws.networkmanager#DeleteConnectionRequest": { + "com.amazonaws.networkmanager#ConstrainedStringList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#ConstrainedString" + } + }, + "com.amazonaws.networkmanager#CoreNetwork": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of the global network that your core network is a part of.

              " } }, - "ConnectionId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the connection.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of a core network.

              " } - } - } - }, - "com.amazonaws.networkmanager#DeleteConnectionResponse": { - "type": "structure", - "members": { - "Connection": { - "target": "com.amazonaws.networkmanager#Connection", + }, + "CoreNetworkArn": { + "target": "com.amazonaws.networkmanager#CoreNetworkArn", "traits": { - "smithy.api#documentation": "

              Information about the connection.

              " + "smithy.api#documentation": "

              The ARN of a core network.

              " } - } - } - }, - "com.amazonaws.networkmanager#DeleteDevice": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#DeleteDeviceRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#DeleteDeviceResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - { - "target": "com.amazonaws.networkmanager#ConflictException" + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The timestamp when a core network was created.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "State": { + "target": "com.amazonaws.networkmanager#CoreNetworkState", + "traits": { + "smithy.api#documentation": "

              The current state of a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" + "Segments": { + "target": "com.amazonaws.networkmanager#CoreNetworkSegmentList", + "traits": { + "smithy.api#documentation": "

              The segments within a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ValidationException" + "Edges": { + "target": "com.amazonaws.networkmanager#CoreNetworkEdgeList", + "traits": { + "smithy.api#documentation": "

              The edges within a core network.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags associated with a core network.

              " + } } - ], + }, "traits": { - "smithy.api#documentation": "

              Deletes an existing device. You must first disassociate the device from any links and\n customer gateways.

              ", - "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/devices/{DeviceId}", - "code": 200 + "smithy.api#documentation": "

              Describes a core network.

              " + } + }, + "com.amazonaws.networkmanager#CoreNetworkArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 } } }, - "com.amazonaws.networkmanager#DeleteDeviceRequest": { + "com.amazonaws.networkmanager#CoreNetworkChange": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "Type": { + "target": "com.amazonaws.networkmanager#ChangeType", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The type of change.

              " } }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "Action": { + "target": "com.amazonaws.networkmanager#ChangeAction", "traits": { - "smithy.api#documentation": "

              The ID of the device.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The action to take for a core network.

              " + } + }, + "Identifier": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The resource identifier.

              " + } + }, + "PreviousValues": { + "target": "com.amazonaws.networkmanager#CoreNetworkChangeValues", + "traits": { + "smithy.api#documentation": "

              The previous values for a core network.

              " + } + }, + "NewValues": { + "target": "com.amazonaws.networkmanager#CoreNetworkChangeValues", + "traits": { + "smithy.api#documentation": "

              The new value for a core network

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Details describing a core network change.

              " } }, - "com.amazonaws.networkmanager#DeleteDeviceResponse": { + "com.amazonaws.networkmanager#CoreNetworkChangeList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CoreNetworkChange" + } + }, + "com.amazonaws.networkmanager#CoreNetworkChangeValues": { "type": "structure", "members": { - "Device": { - "target": "com.amazonaws.networkmanager#Device", + "SegmentName": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              Information about the device.

              " + "smithy.api#documentation": "

              The names of the segments in a core network.

              " } - } - } - }, - "com.amazonaws.networkmanager#DeleteGlobalNetwork": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#DeleteGlobalNetworkRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#DeleteGlobalNetworkResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - { - "target": "com.amazonaws.networkmanager#ConflictException" + "EdgeLocations": { + "target": "com.amazonaws.networkmanager#ExternalRegionCodeList", + "traits": { + "smithy.api#documentation": "

              The Regions where edges are located in a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" + "Asn": { + "target": "com.amazonaws.networkmanager#Long", + "traits": { + "smithy.api#documentation": "

              The ASN of a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "Cidr": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The IP addresses used for a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" + "DestinationIdentifier": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The ID of the destination.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ValidationException" + "InsideCidrBlocks": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The inside IP addresses used for core network change values.

              " + } + }, + "SharedSegments": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The shared segments for a core network change value.

              " + } } - ], + }, "traits": { - "smithy.api#documentation": "

              Deletes an existing global network. You must first delete all global network objects\n (devices, links, and sites) and deregister all transit gateways.

              ", - "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}", - "code": 200 - } + "smithy.api#documentation": "

              Describes a core network change.

              " } }, - "com.amazonaws.networkmanager#DeleteGlobalNetworkRequest": { + "com.amazonaws.networkmanager#CoreNetworkEdge": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The Region where a core network edge is located.

              " + } + }, + "Asn": { + "target": "com.amazonaws.networkmanager#Long", + "traits": { + "smithy.api#documentation": "

              The ASN of a core network edge.

              " + } + }, + "InsideCidrBlocks": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The inside IP addresses used for core network edges.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network edge.

              " } }, - "com.amazonaws.networkmanager#DeleteGlobalNetworkResponse": { + "com.amazonaws.networkmanager#CoreNetworkEdgeList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CoreNetworkEdge" + } + }, + "com.amazonaws.networkmanager#CoreNetworkId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + }, + "smithy.api#pattern": "^core-network-([0-9a-f]{8,17})$" + } + }, + "com.amazonaws.networkmanager#CoreNetworkPolicy": { "type": "structure", "members": { - "GlobalNetwork": { - "target": "com.amazonaws.networkmanager#GlobalNetwork", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              Information about the global network.

              " + "smithy.api#documentation": "

              The ID of a core network.

              " } - } - } - }, - "com.amazonaws.networkmanager#DeleteLink": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#DeleteLinkRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#DeleteLinkResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - { - "target": "com.amazonaws.networkmanager#ConflictException" + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of the policy version.

              " + } }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" + "Alias": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyAlias", + "traits": { + "smithy.api#documentation": "

              Whether a core network policy is the current LIVE policy or the most recently submitted policy.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of a core network policy.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The timestamp when a core network policy was created.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ValidationException" + "ChangeSetState": { + "target": "com.amazonaws.networkmanager#ChangeSetState", + "traits": { + "smithy.api#documentation": "

              The state of a core network policy.

              " + } + }, + "PolicyErrors": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyErrorList", + "traits": { + "smithy.api#documentation": "

              Describes any errors in a core network policy.

              " + } + }, + "PolicyDocument": { + "target": "com.amazonaws.networkmanager#SynthesizedJsonCoreNetworkPolicyDocument", + "traits": { + "smithy.api#documentation": "

              Describes a core network policy.

              " + } } - ], + }, "traits": { - "smithy.api#documentation": "

              Deletes an existing link. You must first disassociate the link from any devices and\n customer gateways.

              ", - "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/links/{LinkId}", - "code": 200 - } + "smithy.api#documentation": "

              Describes a core network policy. You can have only one LIVE Core Policy.

              " } }, - "com.amazonaws.networkmanager#DeleteLinkRequest": { + "com.amazonaws.networkmanager#CoreNetworkPolicyAlias": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LIVE", + "name": "LIVE" + }, + { + "value": "LATEST", + "name": "LATEST" + } + ] + } + }, + "com.amazonaws.networkmanager#CoreNetworkPolicyDocument": { + "type": "string" + }, + "com.amazonaws.networkmanager#CoreNetworkPolicyError": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "ErrorCode": { + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The error code associated with a core network policy error.

              ", "smithy.api#required": {} } }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "Message": { + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { - "smithy.api#documentation": "

              The ID of the link.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The message associated with a core network policy error code.

              ", "smithy.api#required": {} } + }, + "Path": { + "target": "com.amazonaws.networkmanager#ServerSideString", + "traits": { + "smithy.api#documentation": "

              The JSON path where the error was discovered in the policy document.

              " + } } + }, + "traits": { + "smithy.api#documentation": "

              Provides details about an error in a core network policy.

              " } }, - "com.amazonaws.networkmanager#DeleteLinkResponse": { + "com.amazonaws.networkmanager#CoreNetworkPolicyErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyError" + } + }, + "com.amazonaws.networkmanager#CoreNetworkPolicyException": { "type": "structure", "members": { - "Link": { - "target": "com.amazonaws.networkmanager#Link", + "Message": { + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { - "smithy.api#documentation": "

              Information about the link.

              " + "smithy.api#required": {} + } + }, + "Errors": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyErrorList", + "traits": { + "smithy.api#documentation": "

              Describes a core network policy exception.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network policy exception.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 } }, - "com.amazonaws.networkmanager#DeleteSite": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#DeleteSiteRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#DeleteSiteResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" + "com.amazonaws.networkmanager#CoreNetworkPolicyVersion": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ConflictException" + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of the policy version.

              " + } }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" + "Alias": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyAlias", + "traits": { + "smithy.api#documentation": "

              Whether a core network policy is the current policy or the most recently submitted policy.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of a core network policy version.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The timestamp when a core network policy version was created.

              " + } }, - { - "target": "com.amazonaws.networkmanager#ValidationException" + "ChangeSetState": { + "target": "com.amazonaws.networkmanager#ChangeSetState", + "traits": { + "smithy.api#documentation": "

              The status of the policy version change set.

              " + } } - ], + }, "traits": { - "smithy.api#documentation": "

              Deletes an existing site. The site cannot be associated with any device or link.

              ", - "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/sites/{SiteId}", - "code": 200 - } + "smithy.api#documentation": "

              Describes a core network policy version.

              " } }, - "com.amazonaws.networkmanager#DeleteSiteRequest": { + "com.amazonaws.networkmanager#CoreNetworkPolicyVersionList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyVersion" + } + }, + "com.amazonaws.networkmanager#CoreNetworkSegment": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "Name": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The name of a core network segment.

              " } }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "EdgeLocations": { + "target": "com.amazonaws.networkmanager#ExternalRegionCodeList", "traits": { - "smithy.api#documentation": "

              The ID of the site.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The Regions where the edges are located.

              " + } + }, + "SharedSegments": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The shared segments of a core network.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes a core network segment, which are dedicated routes. Only attachments within this segment can communicate with each other.

              " } }, - "com.amazonaws.networkmanager#DeleteSiteResponse": { + "com.amazonaws.networkmanager#CoreNetworkSegmentEdgeIdentifier": { "type": "structure", "members": { - "Site": { - "target": "com.amazonaws.networkmanager#Site", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              Information about the site.

              " + "smithy.api#documentation": "

              The ID of a core network.

              " + } + }, + "SegmentName": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The name of the segment edge.

              " + } + }, + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The Region where the segment edge is located.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Returns details about a core network edge.

              " } }, - "com.amazonaws.networkmanager#DeregisterTransitGateway": { - "type": "operation", + "com.amazonaws.networkmanager#CoreNetworkSegmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CoreNetworkSegment" + } + }, + "com.amazonaws.networkmanager#CoreNetworkState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CREATING", + "name": "CREATING" + }, + { + "value": "UPDATING", + "name": "UPDATING" + }, + { + "value": "AVAILABLE", + "name": "AVAILABLE" + }, + { + "value": "DELETING", + "name": "DELETING" + } + ] + } + }, + "com.amazonaws.networkmanager#CoreNetworkSummary": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              " + } + }, + "CoreNetworkArn": { + "target": "com.amazonaws.networkmanager#CoreNetworkArn", + "traits": { + "smithy.api#documentation": "

              a core network ARN.

              " + } + }, + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The global network ID.

              " + } + }, + "OwnerAccountId": { + "target": "com.amazonaws.networkmanager#AWSAccountId", + "traits": { + "smithy.api#documentation": "

              The ID of the account owner.

              " + } + }, + "State": { + "target": "com.amazonaws.networkmanager#CoreNetworkState", + "traits": { + "smithy.api#documentation": "

              The state of a core network.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of a core network.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The key-value tags associated with a core network summary.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Returns summary information about a core network.

              " + } + }, + "com.amazonaws.networkmanager#CoreNetworkSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CoreNetworkSummary" + } + }, + "com.amazonaws.networkmanager#CreateConnectAttachment": { + "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#DeregisterTransitGatewayRequest" + "target": "com.amazonaws.networkmanager#CreateConnectAttachmentRequest" }, "output": { - "target": "com.amazonaws.networkmanager#DeregisterTransitGatewayResponse" + "target": "com.amazonaws.networkmanager#CreateConnectAttachmentResponse" }, "errors": [ { @@ -1425,58 +1873,86 @@ } ], "traits": { - "smithy.api#documentation": "

              Deregisters a transit gateway from your global network. This action does not delete\n your transit gateway, or modify any of its attachments. This action removes any customer gateway associations.

              ", + "smithy.api#documentation": "

              Creates a core network Connect attachment from a specified core network attachment.

              \n

              A core network Connect attachment is a GRE-based tunnel attachment that you can use to\n establish a connection between a core network and an appliance. A core network Connect\n attachment uses an existing VPC attachment as the underlying transport mechanism.

              ", "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-registrations/{TransitGatewayArn}", + "method": "POST", + "uri": "/connect-attachments", "code": 200 } } }, - "com.amazonaws.networkmanager#DeregisterTransitGatewayRequest": { + "com.amazonaws.networkmanager#CreateConnectAttachmentRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The ID of a core network where you want to create the attachment.

              ", "smithy.api#required": {} } }, - "TransitGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The Region where the edge is located.

              ", + "smithy.api#required": {} + } + }, + "TransportAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment between the two connections.

              ", + "smithy.api#required": {} + } + }, + "Options": { + "target": "com.amazonaws.networkmanager#ConnectAttachmentOptions", + "traits": { + "smithy.api#documentation": "

              Options for creating an attachment.

              ", "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The list of key-value tags associated with the request.

              " + } + }, + "ClientToken": { + "target": "com.amazonaws.networkmanager#ClientToken", + "traits": { + "smithy.api#documentation": "

              The client token associated with the request.

              ", + "smithy.api#idempotencyToken": {} + } } } }, - "com.amazonaws.networkmanager#DeregisterTransitGatewayResponse": { + "com.amazonaws.networkmanager#CreateConnectAttachmentResponse": { "type": "structure", "members": { - "TransitGatewayRegistration": { - "target": "com.amazonaws.networkmanager#TransitGatewayRegistration", + "ConnectAttachment": { + "target": "com.amazonaws.networkmanager#ConnectAttachment", "traits": { - "smithy.api#documentation": "

              The transit gateway registration information.

              " + "smithy.api#documentation": "

              The response to a Connect attachment request.

              " } } } }, - "com.amazonaws.networkmanager#DescribeGlobalNetworks": { + "com.amazonaws.networkmanager#CreateConnectPeer": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#DescribeGlobalNetworksRequest" + "target": "com.amazonaws.networkmanager#CreateConnectPeerRequest" }, "output": { - "target": "com.amazonaws.networkmanager#DescribeGlobalNetworksResponse" + "target": "com.amazonaws.networkmanager#CreateConnectPeerResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -1491,190 +1967,83 @@ } ], "traits": { - "smithy.api#documentation": "

              Describes one or more global networks. By default, all global networks are\n described. To describe the objects in your global network, you must use the appropriate\n Get* action. For example, to list the transit gateways in your global\n network, use GetTransitGatewayRegistrations.

              ", + "smithy.api#documentation": "

              Creates a core network connect peer for a specified core network connect attachment between a core network and an appliance.\n The peer address and transit gateway address must be the same IP address family (IPv4 or IPv6).

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks", + "method": "POST", + "uri": "/connect-peers", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" - } - } - }, - "com.amazonaws.networkmanager#DescribeGlobalNetworksRequest": { - "type": "structure", - "members": { - "GlobalNetworkIds": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              The IDs of one or more global networks. The maximum is 10.

              ", - "smithy.api#httpQuery": "globalNetworkIds" - } - }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", - "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" - } - } - } - }, - "com.amazonaws.networkmanager#DescribeGlobalNetworksResponse": { - "type": "structure", - "members": { - "GlobalNetworks": { - "target": "com.amazonaws.networkmanager#GlobalNetworkList", - "traits": { - "smithy.api#documentation": "

              Information about the global networks.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " - } } } }, - "com.amazonaws.networkmanager#Device": { + "com.amazonaws.networkmanager#CreateConnectPeerRequest": { "type": "structure", "members": { - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the device.

              " - } - }, - "DeviceArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the device.

              " - } - }, - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              " - } - }, - "AWSLocation": { - "target": "com.amazonaws.networkmanager#AWSLocation", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services location of the device.

              " - } - }, - "Description": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The description of the device.

              " - } - }, - "Type": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The device type.

              " - } - }, - "Vendor": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The device vendor.

              " - } - }, - "Model": { - "target": "com.amazonaws.networkmanager#String", + "ConnectAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              The device model.

              " + "smithy.api#documentation": "

              The ID of the connection attachment.

              ", + "smithy.api#required": {} } }, - "SerialNumber": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkAddress": { + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { - "smithy.api#documentation": "

              The device serial number.

              " + "smithy.api#documentation": "

              A Connect peer core network address.

              " } }, - "Location": { - "target": "com.amazonaws.networkmanager#Location", + "PeerAddress": { + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { - "smithy.api#documentation": "

              The site location.

              " + "smithy.api#documentation": "

              The Connect peer address.

              ", + "smithy.api#required": {} } }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "BgpOptions": { + "target": "com.amazonaws.networkmanager#BgpOptions", "traits": { - "smithy.api#documentation": "

              The site ID.

              " + "smithy.api#documentation": "

              The Connect peer BGP options.

              " } }, - "CreatedAt": { - "target": "com.amazonaws.networkmanager#DateTime", + "InsideCidrBlocks": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", "traits": { - "smithy.api#documentation": "

              The date and time that the site was created.

              " + "smithy.api#documentation": "

              The inside IP addresses used for BGP peering.

              ", + "smithy.api#required": {} } }, - "State": { - "target": "com.amazonaws.networkmanager#DeviceState", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The device state.

              " + "smithy.api#documentation": "

              The tags associated with the peer request.

              " } }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", + "ClientToken": { + "target": "com.amazonaws.networkmanager#ClientToken", "traits": { - "smithy.api#documentation": "

              The tags for the device.

              " + "smithy.api#documentation": "

              The client token associated with the request.

              ", + "smithy.api#idempotencyToken": {} } } - }, - "traits": { - "smithy.api#documentation": "

              Describes a device.

              " - } - }, - "com.amazonaws.networkmanager#DeviceList": { - "type": "list", - "member": { - "target": "com.amazonaws.networkmanager#Device" } }, - "com.amazonaws.networkmanager#DeviceState": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PENDING", - "name": "pending" - }, - { - "value": "AVAILABLE", - "name": "available" - }, - { - "value": "DELETING", - "name": "deleting" - }, - { - "value": "UPDATING", - "name": "updating" + "com.amazonaws.networkmanager#CreateConnectPeerResponse": { + "type": "structure", + "members": { + "ConnectPeer": { + "target": "com.amazonaws.networkmanager#ConnectPeer", + "traits": { + "smithy.api#documentation": "

              The response to the request.

              " } - ] + } } }, - "com.amazonaws.networkmanager#DisassociateCustomerGateway": { + "com.amazonaws.networkmanager#CreateConnection": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#DisassociateCustomerGatewayRequest" + "target": "com.amazonaws.networkmanager#CreateConnectionRequest" }, "output": { - "target": "com.amazonaws.networkmanager#DisassociateCustomerGatewayResponse" + "target": "com.amazonaws.networkmanager#CreateConnectionResponse" }, "errors": [ { @@ -1687,7 +2056,7 @@ "target": "com.amazonaws.networkmanager#InternalServerException" }, { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" }, { "target": "com.amazonaws.networkmanager#ThrottlingException" @@ -1697,53 +2066,83 @@ } ], "traits": { - "smithy.api#documentation": "

              Disassociates a customer gateway from a device and a link.

              ", + "smithy.api#documentation": "

              Creates a connection between two devices. The devices can be a physical or virtual appliance that connects to a third-party appliance in a VPC, or a physical appliance that connects to another physical appliance in an on-premises network.

              ", "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/customer-gateway-associations/{CustomerGatewayArn}", + "method": "POST", + "uri": "/global-networks/{GlobalNetworkId}/connections", "code": 200 } } }, - "com.amazonaws.networkmanager#DisassociateCustomerGatewayRequest": { + "com.amazonaws.networkmanager#CreateConnectionRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "CustomerGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the customer gateway.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The ID of the first device in the connection.

              ", + "smithy.api#required": {} + } + }, + "ConnectedDeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the second device in the connection.

              ", "smithy.api#required": {} } + }, + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link for the first device.

              " + } + }, + "ConnectedLinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link for the second device.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              A description of the connection.

              \n

              Length Constraints: Maximum length of 256 characters.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " + } } } }, - "com.amazonaws.networkmanager#DisassociateCustomerGatewayResponse": { + "com.amazonaws.networkmanager#CreateConnectionResponse": { "type": "structure", "members": { - "CustomerGatewayAssociation": { - "target": "com.amazonaws.networkmanager#CustomerGatewayAssociation", + "Connection": { + "target": "com.amazonaws.networkmanager#Connection", "traits": { - "smithy.api#documentation": "

              Information about the customer gateway association.

              " + "smithy.api#documentation": "

              Information about the connection.

              " } } } }, - "com.amazonaws.networkmanager#DisassociateLink": { + "com.amazonaws.networkmanager#CreateCoreNetwork": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#DisassociateLinkRequest" + "target": "com.amazonaws.networkmanager#CreateCoreNetworkRequest" }, "output": { - "target": "com.amazonaws.networkmanager#DisassociateLinkResponse" + "target": "com.amazonaws.networkmanager#CreateCoreNetworkResponse" }, "errors": [ { @@ -1752,11 +2151,14 @@ { "target": "com.amazonaws.networkmanager#ConflictException" }, + { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" }, { "target": "com.amazonaws.networkmanager#ThrottlingException" @@ -1766,61 +2168,69 @@ } ], "traits": { - "smithy.api#documentation": "

              Disassociates an existing device from a link. You must first disassociate any customer\n gateways that are associated with the link.

              ", + "smithy.api#documentation": "

              Creates a core network as part of your global network, and optionally, with a core network policy.

              ", "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/link-associations", + "method": "POST", + "uri": "/core-networks", "code": 200 } } }, - "com.amazonaws.networkmanager#DisassociateLinkRequest": { + "com.amazonaws.networkmanager#CreateCoreNetworkRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The ID of the global network that a core network will be a part of.

              ", "smithy.api#required": {} } }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              The ID of the device.

              ", - "smithy.api#httpQuery": "deviceId", - "smithy.api#required": {} + "smithy.api#documentation": "

              The description of a core network.

              " } }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The ID of the link.

              ", - "smithy.api#httpQuery": "linkId", - "smithy.api#required": {} + "smithy.api#documentation": "

              Key-value tags associated with a core network request.

              " + } + }, + "PolicyDocument": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyDocument", + "traits": { + "smithy.api#documentation": "

              The policy document for creating a core network.

              " + } + }, + "ClientToken": { + "target": "com.amazonaws.networkmanager#ClientToken", + "traits": { + "smithy.api#documentation": "

              The client token associated with a core network request.

              ", + "smithy.api#idempotencyToken": {} } } } }, - "com.amazonaws.networkmanager#DisassociateLinkResponse": { + "com.amazonaws.networkmanager#CreateCoreNetworkResponse": { "type": "structure", "members": { - "LinkAssociation": { - "target": "com.amazonaws.networkmanager#LinkAssociation", + "CoreNetwork": { + "target": "com.amazonaws.networkmanager#CoreNetwork", "traits": { - "smithy.api#documentation": "

              Information about the link association.

              " + "smithy.api#documentation": "

              Returns details about a core network.

              " } } } }, - "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeer": { + "com.amazonaws.networkmanager#CreateDevice": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerRequest" + "target": "com.amazonaws.networkmanager#CreateDeviceRequest" }, "output": { - "target": "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerResponse" + "target": "com.amazonaws.networkmanager#CreateDeviceResponse" }, "errors": [ { @@ -1835,6 +2245,9 @@ { "target": "com.amazonaws.networkmanager#ResourceNotFoundException" }, + { + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.networkmanager#ThrottlingException" }, @@ -1843,113 +2256,112 @@ } ], "traits": { - "smithy.api#documentation": "

              Disassociates a transit gateway Connect peer from a device and link.

              ", + "smithy.api#documentation": "

              Creates a new device in a global network. If you specify both a site ID and a\n location, the location of the site is used for visualization in the Network Manager console.

              ", "smithy.api#http": { - "method": "DELETE", - "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-connect-peer-associations/{TransitGatewayConnectPeerArn}", + "method": "POST", + "uri": "/global-networks/{GlobalNetworkId}/devices", "code": 200 } } }, - "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerRequest": { + "com.amazonaws.networkmanager#CreateDeviceRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "TransitGatewayConnectPeerArn": { - "target": "com.amazonaws.networkmanager#String", + "AWSLocation": { + "target": "com.amazonaws.networkmanager#AWSLocation", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway Connect peer.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The Amazon Web Services location of the device, if applicable. For an on-premises device, you can omit this parameter.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              A description of the device.

              \n

              Constraints: Maximum length of 256 characters.

              " + } + }, + "Type": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The type of the device.

              " + } + }, + "Vendor": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The vendor of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " + } + }, + "Model": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The model of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " + } + }, + "SerialNumber": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The serial number of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " + } + }, + "Location": { + "target": "com.amazonaws.networkmanager#Location", + "traits": { + "smithy.api#documentation": "

              The location of the device.

              " + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The ID of the site.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " } } } }, - "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerResponse": { + "com.amazonaws.networkmanager#CreateDeviceResponse": { "type": "structure", "members": { - "TransitGatewayConnectPeerAssociation": { - "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerAssociation", + "Device": { + "target": "com.amazonaws.networkmanager#Device", "traits": { - "smithy.api#documentation": "

              The transit gateway Connect peer association.

              " + "smithy.api#documentation": "

              Information about the device.

              " } } } }, - "com.amazonaws.networkmanager#ExceptionContextKey": { - "type": "string" - }, - "com.amazonaws.networkmanager#ExceptionContextMap": { - "type": "map", - "key": { - "target": "com.amazonaws.networkmanager#ExceptionContextKey" - }, - "value": { - "target": "com.amazonaws.networkmanager#ExceptionContextValue" - } - }, - "com.amazonaws.networkmanager#ExceptionContextValue": { - "type": "string" - }, - "com.amazonaws.networkmanager#FilterMap": { - "type": "map", - "key": { - "target": "com.amazonaws.networkmanager#FilterName" - }, - "value": { - "target": "com.amazonaws.networkmanager#FilterValues" - } - }, - "com.amazonaws.networkmanager#FilterName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 128 - }, - "smithy.api#pattern": "^[0-9a-zA-Z\\.-]*$" - } - }, - "com.amazonaws.networkmanager#FilterValue": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 255 - }, - "smithy.api#pattern": "^[0-9a-zA-Z\\*\\.\\\\/\\?-]*$" - } - }, - "com.amazonaws.networkmanager#FilterValues": { - "type": "list", - "member": { - "target": "com.amazonaws.networkmanager#FilterValue" - } - }, - "com.amazonaws.networkmanager#GetConnections": { + "com.amazonaws.networkmanager#CreateGlobalNetwork": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetConnectionsRequest" + "target": "com.amazonaws.networkmanager#CreateGlobalNetworkRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetConnectionsResponse" + "target": "com.amazonaws.networkmanager#CreateGlobalNetworkResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" }, { "target": "com.amazonaws.networkmanager#ThrottlingException" @@ -1959,84 +2371,49 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about one or more of your connections in a global network.

              ", + "smithy.api#documentation": "

              Creates a new, empty global network.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/connections", + "method": "POST", + "uri": "/global-networks", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetConnectionsRequest": { + "com.amazonaws.networkmanager#CreateGlobalNetworkRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "ConnectionIds": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              One or more connection IDs.

              ", - "smithy.api#httpQuery": "connectionIds" - } - }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the device.

              ", - "smithy.api#httpQuery": "deviceId" - } - }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

              A description of the global network.

              \n

              Constraints: Maximum length of 256 characters.

              " } }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " } } } }, - "com.amazonaws.networkmanager#GetConnectionsResponse": { + "com.amazonaws.networkmanager#CreateGlobalNetworkResponse": { "type": "structure", "members": { - "Connections": { - "target": "com.amazonaws.networkmanager#ConnectionList", - "traits": { - "smithy.api#documentation": "

              Information about the connections.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "GlobalNetwork": { + "target": "com.amazonaws.networkmanager#GlobalNetwork", "traits": { - "smithy.api#documentation": "

              The token to use for the next page of results.

              " + "smithy.api#documentation": "

              Information about the global network object.

              " } } } }, - "com.amazonaws.networkmanager#GetCustomerGatewayAssociations": { + "com.amazonaws.networkmanager#CreateLink": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsRequest" + "target": "com.amazonaws.networkmanager#CreateLinkRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsResponse" + "target": "com.amazonaws.networkmanager#CreateLinkResponse" }, "errors": [ { @@ -2051,6 +2428,9 @@ { "target": "com.amazonaws.networkmanager#ResourceNotFoundException" }, + { + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.networkmanager#ThrottlingException" }, @@ -2059,88 +2439,100 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the association information for customer gateways that are associated with\n devices and links in your global network.

              ", + "smithy.api#documentation": "

              Creates a new link for a specified site.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/customer-gateway-associations", + "method": "POST", + "uri": "/global-networks/{GlobalNetworkId}/links", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsRequest": { + "com.amazonaws.networkmanager#CreateLinkRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "CustomerGatewayArns": { - "target": "com.amazonaws.networkmanager#StringList", + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              One or more customer gateway Amazon Resource Names (ARNs). The maximum is 10.

              ", - "smithy.api#httpQuery": "customerGatewayArns" + "smithy.api#documentation": "

              A description of the link.

              \n

              Constraints: Maximum length of 256 characters.

              " } }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", + "Type": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

              The type of the link.

              \n

              Constraints: Maximum length of 128 characters. Cannot include the following characters: | \\ ^

              " } }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Bandwidth": { + "target": "com.amazonaws.networkmanager#Bandwidth", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The upload speed and download speed in Mbps.

              ", + "smithy.api#required": {} + } + }, + "Provider": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The provider of the link.

              \n

              Constraints: Maximum length of 128 characters. Cannot include the following characters: | \\ ^

              " + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The ID of the site.

              ", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " } } } }, - "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsResponse": { + "com.amazonaws.networkmanager#CreateLinkResponse": { "type": "structure", "members": { - "CustomerGatewayAssociations": { - "target": "com.amazonaws.networkmanager#CustomerGatewayAssociationList", - "traits": { - "smithy.api#documentation": "

              The customer gateway associations.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Link": { + "target": "com.amazonaws.networkmanager#Link", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Information about the link.

              " } } } }, - "com.amazonaws.networkmanager#GetDevices": { + "com.amazonaws.networkmanager#CreateSite": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetDevicesRequest" + "target": "com.amazonaws.networkmanager#CreateSiteRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetDevicesResponse" + "target": "com.amazonaws.networkmanager#CreateSiteResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, { "target": "com.amazonaws.networkmanager#ResourceNotFoundException" }, + { + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.networkmanager#ThrottlingException" }, @@ -2149,89 +2541,71 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about one or more of your devices in a global network.

              ", + "smithy.api#documentation": "

              Creates a new site in a global network.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/devices", + "method": "POST", + "uri": "/global-networks/{GlobalNetworkId}/sites", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetDevicesRequest": { + "com.amazonaws.networkmanager#CreateSiteRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "DeviceIds": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              One or more device IDs. The maximum is 10.

              ", - "smithy.api#httpQuery": "deviceIds" - } - }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { - "smithy.api#documentation": "

              The ID of the site.

              ", - "smithy.api#httpQuery": "siteId" + "smithy.api#documentation": "

              A description of your site.

              \n

              Constraints: Maximum length of 256 characters.

              " } }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", + "Location": { + "target": "com.amazonaws.networkmanager#Location", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

              The site location. This information is used for visualization in the Network Manager console. If you specify the address, the latitude and longitude are automatically calculated.

              \n
                \n
              • \n

                \n Address: The physical address of the site.

                \n
              • \n
              • \n

                \n Latitude: The latitude of the site.

                \n
              • \n
              • \n

                \n Longitude: The longitude of the site.

                \n
              • \n
              " } }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The tags to apply to the resource during creation.

              " } } } }, - "com.amazonaws.networkmanager#GetDevicesResponse": { + "com.amazonaws.networkmanager#CreateSiteResponse": { "type": "structure", "members": { - "Devices": { - "target": "com.amazonaws.networkmanager#DeviceList", - "traits": { - "smithy.api#documentation": "

              The devices.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Site": { + "target": "com.amazonaws.networkmanager#Site", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Information about the site.

              " } } } }, - "com.amazonaws.networkmanager#GetLinkAssociations": { + "com.amazonaws.networkmanager#CreateSiteToSiteVpnAttachment": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetLinkAssociationsRequest" + "target": "com.amazonaws.networkmanager#CreateSiteToSiteVpnAttachmentRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetLinkAssociationsResponse" + "target": "com.amazonaws.networkmanager#CreateSiteToSiteVpnAttachmentResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -2246,89 +2620,72 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the link associations for a device or a link. Either the device ID or the link ID\n must be specified.

              ", + "smithy.api#documentation": "

              Creates a site-to-site VPN attachment on an edge location of a core network.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/link-associations", + "method": "POST", + "uri": "/site-to-site-vpn-attachments", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetLinkAssociationsRequest": { + "com.amazonaws.networkmanager#CreateSiteToSiteVpnAttachmentRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The ID of a core network where you're creating a site-to-site VPN attachment.

              ", "smithy.api#required": {} } }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the device.

              ", - "smithy.api#httpQuery": "deviceId" - } - }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "VpnConnectionArn": { + "target": "com.amazonaws.networkmanager#VpnConnectionArn", "traits": { - "smithy.api#documentation": "

              The ID of the link.

              ", - "smithy.api#httpQuery": "linkId" + "smithy.api#documentation": "

              The ARN identifying the VPN attachment.

              ", + "smithy.api#required": {} } }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

              The tags associated with the request.

              " } }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "ClientToken": { + "target": "com.amazonaws.networkmanager#ClientToken", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The client token associated with the request.

              ", + "smithy.api#idempotencyToken": {} } } } }, - "com.amazonaws.networkmanager#GetLinkAssociationsResponse": { + "com.amazonaws.networkmanager#CreateSiteToSiteVpnAttachmentResponse": { "type": "structure", "members": { - "LinkAssociations": { - "target": "com.amazonaws.networkmanager#LinkAssociationList", + "SiteToSiteVpnAttachment": { + "target": "com.amazonaws.networkmanager#SiteToSiteVpnAttachment", "traits": { - "smithy.api#documentation": "

              The link associations.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Details about a site-to-site VPN attachment.

              " } } } }, - "com.amazonaws.networkmanager#GetLinks": { + "com.amazonaws.networkmanager#CreateVpcAttachment": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetLinksRequest" + "target": "com.amazonaws.networkmanager#CreateVpcAttachmentRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetLinksResponse" + "target": "com.amazonaws.networkmanager#CreateVpcAttachmentResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -2343,190 +2700,170 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about one or more links in a specified global network.

              \n

              If you specify the site ID, you cannot specify the type or provider in the same request. You can specify the type and provider in the same request.

              ", + "smithy.api#documentation": "

              Creates a VPC attachment on an edge location of a core network.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/links", + "method": "POST", + "uri": "/vpc-attachments", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetLinksRequest": { + "com.amazonaws.networkmanager#CreateVpcAttachmentRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

              The ID of a core network for the VPC attachment.

              ", "smithy.api#required": {} } }, - "LinkIds": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              One or more link IDs. The maximum is 10.

              ", - "smithy.api#httpQuery": "linkIds" - } - }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "VpcArn": { + "target": "com.amazonaws.networkmanager#VpcArn", "traits": { - "smithy.api#documentation": "

              The ID of the site.

              ", - "smithy.api#httpQuery": "siteId" + "smithy.api#documentation": "

              The ARN of the VPC.

              ", + "smithy.api#required": {} } }, - "Type": { - "target": "com.amazonaws.networkmanager#String", + "SubnetArns": { + "target": "com.amazonaws.networkmanager#SubnetArnList", "traits": { - "smithy.api#documentation": "

              The link type.

              ", - "smithy.api#httpQuery": "type" + "smithy.api#documentation": "

              The subnet ARN of the VPC attachment.

              ", + "smithy.api#required": {} } }, - "Provider": { - "target": "com.amazonaws.networkmanager#String", + "Options": { + "target": "com.amazonaws.networkmanager#VpcOptions", "traits": { - "smithy.api#documentation": "

              The link provider.

              ", - "smithy.api#httpQuery": "provider" + "smithy.api#documentation": "

              Options for the VPC attachment.

              " } }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

              The key-value tags associated with the request.

              " } }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "ClientToken": { + "target": "com.amazonaws.networkmanager#ClientToken", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The client token associated with the request.

              ", + "smithy.api#idempotencyToken": {} } } } }, - "com.amazonaws.networkmanager#GetLinksResponse": { + "com.amazonaws.networkmanager#CreateVpcAttachmentResponse": { "type": "structure", "members": { - "Links": { - "target": "com.amazonaws.networkmanager#LinkList", - "traits": { - "smithy.api#documentation": "

              The links.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "VpcAttachment": { + "target": "com.amazonaws.networkmanager#VpcAttachment", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Provides details about the VPC attachment.

              " } } } }, - "com.amazonaws.networkmanager#GetNetworkResourceCounts": { - "type": "operation", - "input": { - "target": "com.amazonaws.networkmanager#GetNetworkResourceCountsRequest" - }, - "output": { - "target": "com.amazonaws.networkmanager#GetNetworkResourceCountsResponse" - }, - "errors": [ - { - "target": "com.amazonaws.networkmanager#AccessDeniedException" - }, - { - "target": "com.amazonaws.networkmanager#InternalServerException" - }, - { - "target": "com.amazonaws.networkmanager#ThrottlingException" - }, - { - "target": "com.amazonaws.networkmanager#ValidationException" - } - ], + "com.amazonaws.networkmanager#CustomerGatewayArn": { + "type": "string", "traits": { - "smithy.api#documentation": "

              Gets the count of network resources, by resource type, for the specified global network.

              ", - "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/network-resource-count", - "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" + "smithy.api#length": { + "min": 0, + "max": 500 } } }, - "com.amazonaws.networkmanager#GetNetworkResourceCountsRequest": { + "com.amazonaws.networkmanager#CustomerGatewayArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CustomerGatewayArn" + } + }, + "com.amazonaws.networkmanager#CustomerGatewayAssociation": { "type": "structure", "members": { + "CustomerGatewayArn": { + "target": "com.amazonaws.networkmanager#CustomerGatewayArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the customer gateway.

              " + } + }, "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of the global network.

              " } }, - "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { - "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              ", - "smithy.api#httpQuery": "resourceType" + "smithy.api#documentation": "

              The ID of the device.

              " } }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" + "smithy.api#documentation": "

              The ID of the link.

              " } }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "State": { + "target": "com.amazonaws.networkmanager#CustomerGatewayAssociationState", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The association state.

              " } } + }, + "traits": { + "smithy.api#documentation": "

              Describes the association between a customer gateway, a device, and a link.

              " } }, - "com.amazonaws.networkmanager#GetNetworkResourceCountsResponse": { - "type": "structure", - "members": { - "NetworkResourceCounts": { - "target": "com.amazonaws.networkmanager#NetworkResourceCountList", - "traits": { - "smithy.api#documentation": "

              The count of resources.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "com.amazonaws.networkmanager#CustomerGatewayAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#CustomerGatewayAssociation" + } + }, + "com.amazonaws.networkmanager#CustomerGatewayAssociationState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "pending" + }, + { + "value": "AVAILABLE", + "name": "available" + }, + { + "value": "DELETING", + "name": "deleting" + }, + { + "value": "DELETED", + "name": "deleted" } - } + ] } }, - "com.amazonaws.networkmanager#GetNetworkResourceRelationships": { + "com.amazonaws.networkmanager#DateTime": { + "type": "timestamp" + }, + "com.amazonaws.networkmanager#DeleteAttachment": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsRequest" + "target": "com.amazonaws.networkmanager#DeleteAttachmentRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsResponse" + "target": "com.amazonaws.networkmanager#DeleteAttachmentResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -2541,110 +2878,53 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the network resource relationships for the specified global network.

              ", + "smithy.api#documentation": "

              Deletes an attachment. Supports all attachment types.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/network-resource-relationships", + "method": "DELETE", + "uri": "/attachments/{AttachmentId}", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsRequest": { + "com.amazonaws.networkmanager#DeleteAttachmentRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#documentation": "

              The ID of the attachment to delete.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "RegisteredGatewayArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the registered gateway.

              ", - "smithy.api#httpQuery": "registeredGatewayArn" - } - }, - "AwsRegion": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services Region.

              ", - "smithy.api#httpQuery": "awsRegion" - } - }, - "AccountId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services account ID.

              ", - "smithy.api#httpQuery": "accountId" - } - }, - "ResourceType": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              ", - "smithy.api#httpQuery": "resourceType" - } - }, - "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the gateway.

              ", - "smithy.api#httpQuery": "resourceArn" - } - }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", - "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" - } } } }, - "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsResponse": { + "com.amazonaws.networkmanager#DeleteAttachmentResponse": { "type": "structure", "members": { - "Relationships": { - "target": "com.amazonaws.networkmanager#RelationshipList", - "traits": { - "smithy.api#documentation": "

              The resource relationships.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Attachment": { + "target": "com.amazonaws.networkmanager#Attachment", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Information about the deleted attachment.

              " } } } }, - "com.amazonaws.networkmanager#GetNetworkResources": { + "com.amazonaws.networkmanager#DeleteConnectPeer": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetNetworkResourcesRequest" + "target": "com.amazonaws.networkmanager#DeleteConnectPeerRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetNetworkResourcesResponse" + "target": "com.amazonaws.networkmanager#DeleteConnectPeerResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -2659,110 +2939,53 @@ } ], "traits": { - "smithy.api#documentation": "

              Describes the network resources for the specified global network.

              \n

              The results include information from the corresponding Describe call for the resource, minus any sensitive information such as pre-shared keys.

              ", + "smithy.api#documentation": "

              Deletes a Connect peer.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/network-resources", + "method": "DELETE", + "uri": "/connect-peers/{ConnectPeerId}", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetNetworkResourcesRequest": { + "com.amazonaws.networkmanager#DeleteConnectPeerRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#documentation": "

              The ID of the deleted Connect peer.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "RegisteredGatewayArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the gateway.

              ", - "smithy.api#httpQuery": "registeredGatewayArn" - } - }, - "AwsRegion": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services Region.

              ", - "smithy.api#httpQuery": "awsRegion" - } - }, - "AccountId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services account ID.

              ", - "smithy.api#httpQuery": "accountId" - } - }, - "ResourceType": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection - The definition model is\n Connection.

                \n
              • \n
              • \n

                \n device - The definition model is\n Device.

                \n
              • \n
              • \n

                \n link - The definition model is\n Link.

                \n
              • \n
              • \n

                \n site - The definition model is\n Site.

                \n
              • \n
              \n \n

              The following are the supported resource types for Amazon VPC:

              \n ", - "smithy.api#httpQuery": "resourceType" - } - }, - "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the resource.

              ", - "smithy.api#httpQuery": "resourceArn" - } - }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", - "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" - } } } }, - "com.amazonaws.networkmanager#GetNetworkResourcesResponse": { + "com.amazonaws.networkmanager#DeleteConnectPeerResponse": { "type": "structure", "members": { - "NetworkResources": { - "target": "com.amazonaws.networkmanager#NetworkResourceList", - "traits": { - "smithy.api#documentation": "

              The network resources.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "ConnectPeer": { + "target": "com.amazonaws.networkmanager#ConnectPeer", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Information about the deleted Connect peer.

              " } } } }, - "com.amazonaws.networkmanager#GetNetworkRoutes": { + "com.amazonaws.networkmanager#DeleteConnection": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetNetworkRoutesRequest" + "target": "com.amazonaws.networkmanager#DeleteConnectionRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetNetworkRoutesResponse" + "target": "com.amazonaws.networkmanager#DeleteConnectionResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -2777,123 +3000,191 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the network routes of the specified global network.

              ", + "smithy.api#documentation": "

              Deletes the specified connection in your global network.

              ", "smithy.api#http": { - "method": "POST", - "uri": "/global-networks/{GlobalNetworkId}/network-routes", + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/connections/{ConnectionId}", "code": 200 } } }, - "com.amazonaws.networkmanager#GetNetworkRoutesRequest": { + "com.amazonaws.networkmanager#DeleteConnectionRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "RouteTableIdentifier": { - "target": "com.amazonaws.networkmanager#RouteTableIdentifier", + "ConnectionId": { + "target": "com.amazonaws.networkmanager#ConnectionId", "traits": { - "smithy.api#documentation": "

              The ID of the route table.

              ", + "smithy.api#documentation": "

              The ID of the connection.

              ", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "ExactCidrMatches": { - "target": "com.amazonaws.networkmanager#StringList", + } + } + }, + "com.amazonaws.networkmanager#DeleteConnectionResponse": { + "type": "structure", + "members": { + "Connection": { + "target": "com.amazonaws.networkmanager#Connection", "traits": { - "smithy.api#documentation": "

              An exact CIDR block.

              " + "smithy.api#documentation": "

              Information about the connection.

              " } + } + } + }, + "com.amazonaws.networkmanager#DeleteCoreNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DeleteCoreNetworkRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DeleteCoreNetworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - "LongestPrefixMatches": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              The most specific route that matches the traffic (longest prefix match).

              " - } + { + "target": "com.amazonaws.networkmanager#ConflictException" }, - "SubnetOfMatches": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              The routes with a subnet that match the specified CIDR filter.

              " - } + { + "target": "com.amazonaws.networkmanager#InternalServerException" }, - "SupernetOfMatches": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              The routes with a CIDR that encompasses the CIDR filter. Example: If you specify 10.0.1.0/30, then the result returns 10.0.1.0/29.

              " - } + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" }, - "PrefixListIds": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              The IDs of the prefix lists.

              " - } + { + "target": "com.amazonaws.networkmanager#ThrottlingException" }, - "States": { - "target": "com.amazonaws.networkmanager#RouteStateList", - "traits": { - "smithy.api#documentation": "

              The route states.

              " - } + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes a core network along with all core network policies. This can only be done if there are no attachments on a core network.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/core-networks/{CoreNetworkId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DeleteCoreNetworkPolicyVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DeleteCoreNetworkPolicyVersionRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DeleteCoreNetworkPolicyVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - "Types": { - "target": "com.amazonaws.networkmanager#RouteTypeList", + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes a policy version from a core network. You can't delete the current LIVE policy.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/core-networks/{CoreNetworkId}/core-network-policy-versions/{PolicyVersionId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DeleteCoreNetworkPolicyVersionRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The route types.

              " + "smithy.api#documentation": "

              The ID of a core network for the deleted policy.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "DestinationFilters": { - "target": "com.amazonaws.networkmanager#FilterMap", + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", "traits": { - "smithy.api#documentation": "

              Filter by route table destination. Possible Values: TRANSIT_GATEWAY_ATTACHMENT_ID, RESOURCE_ID, or RESOURCE_TYPE.

              " + "smithy.api#documentation": "

              The version ID of the deleted policy.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } } }, - "com.amazonaws.networkmanager#GetNetworkRoutesResponse": { + "com.amazonaws.networkmanager#DeleteCoreNetworkPolicyVersionResponse": { "type": "structure", "members": { - "RouteTableArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the route table.

              " - } - }, - "RouteTableType": { - "target": "com.amazonaws.networkmanager#RouteTableType", + "CoreNetworkPolicy": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicy", "traits": { - "smithy.api#documentation": "

              The route table type.

              " + "smithy.api#documentation": "

              Returns information about the deleted policy version.

              " } - }, - "RouteTableTimestamp": { - "target": "com.amazonaws.networkmanager#DateTime", + } + } + }, + "com.amazonaws.networkmanager#DeleteCoreNetworkRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The route table creation time.

              " + "smithy.api#documentation": "

              The network ID of the deleted core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "NetworkRoutes": { - "target": "com.amazonaws.networkmanager#NetworkRouteList", + } + } + }, + "com.amazonaws.networkmanager#DeleteCoreNetworkResponse": { + "type": "structure", + "members": { + "CoreNetwork": { + "target": "com.amazonaws.networkmanager#CoreNetwork", "traits": { - "smithy.api#documentation": "

              The network routes.

              " + "smithy.api#documentation": "

              Information about the deleted core network.

              " } } } }, - "com.amazonaws.networkmanager#GetNetworkTelemetry": { + "com.amazonaws.networkmanager#DeleteDevice": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetNetworkTelemetryRequest" + "target": "com.amazonaws.networkmanager#DeleteDeviceRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetNetworkTelemetryResponse" + "target": "com.amazonaws.networkmanager#DeleteDeviceResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -2908,110 +3199,61 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the network telemetry of the specified global network.

              ", + "smithy.api#documentation": "

              Deletes an existing device. You must first disassociate the device from any links and\n customer gateways.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/network-telemetry", + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/devices/{DeviceId}", "code": 200 - }, - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "pageSize": "MaxResults" } } }, - "com.amazonaws.networkmanager#GetNetworkTelemetryRequest": { + "com.amazonaws.networkmanager#DeleteDeviceRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "RegisteredGatewayArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the gateway.

              ", - "smithy.api#httpQuery": "registeredGatewayArn" - } - }, - "AwsRegion": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services Region.

              ", - "smithy.api#httpQuery": "awsRegion" - } - }, - "AccountId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Web Services account ID.

              ", - "smithy.api#httpQuery": "accountId" - } - }, - "ResourceType": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              ", - "smithy.api#httpQuery": "resourceType" - } - }, - "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ARN of the resource.

              ", - "smithy.api#httpQuery": "resourceArn" - } - }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", - "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" + "smithy.api#documentation": "

              The ID of the device.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } } } }, - "com.amazonaws.networkmanager#GetNetworkTelemetryResponse": { + "com.amazonaws.networkmanager#DeleteDeviceResponse": { "type": "structure", "members": { - "NetworkTelemetry": { - "target": "com.amazonaws.networkmanager#NetworkTelemetryList", - "traits": { - "smithy.api#documentation": "

              The network telemetry.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "Device": { + "target": "com.amazonaws.networkmanager#Device", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Information about the device.

              " } } } }, - "com.amazonaws.networkmanager#GetRouteAnalysis": { + "com.amazonaws.networkmanager#DeleteGlobalNetwork": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetRouteAnalysisRequest" + "target": "com.amazonaws.networkmanager#DeleteGlobalNetworkRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetRouteAnalysisResponse" + "target": "com.amazonaws.networkmanager#DeleteGlobalNetworkResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, @@ -3026,53 +3268,3298 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about the specified route analysis.

              ", + "smithy.api#documentation": "

              Deletes an existing global network. You must first delete all global network objects\n (devices, links, and sites) and deregister all transit gateways.

              ", "smithy.api#http": { - "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/route-analyses/{RouteAnalysisId}", + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}", "code": 200 } } }, - "com.amazonaws.networkmanager#GetRouteAnalysisRequest": { + "com.amazonaws.networkmanager#DeleteGlobalNetworkRequest": { "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "RouteAnalysisId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the route analysis.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } } } }, - "com.amazonaws.networkmanager#GetRouteAnalysisResponse": { + "com.amazonaws.networkmanager#DeleteGlobalNetworkResponse": { "type": "structure", "members": { - "RouteAnalysis": { - "target": "com.amazonaws.networkmanager#RouteAnalysis", + "GlobalNetwork": { + "target": "com.amazonaws.networkmanager#GlobalNetwork", "traits": { - "smithy.api#documentation": "

              The route analysis.

              " + "smithy.api#documentation": "

              Information about the global network.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DeleteLink": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DeleteLinkRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DeleteLinkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes an existing link. You must first disassociate the link from any devices and\n customer gateways.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/links/{LinkId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DeleteLinkRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DeleteLinkResponse": { + "type": "structure", + "members": { + "Link": { + "target": "com.amazonaws.networkmanager#Link", + "traits": { + "smithy.api#documentation": "

              Information about the link.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DeleteResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DeleteResourcePolicyRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DeleteResourcePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes a resource policy for the specified resource. This revokes the access of the principals specified in the resource policy.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/resource-policy/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DeleteResourcePolicyRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the policy to delete.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DeleteResourcePolicyResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.networkmanager#DeleteSite": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DeleteSiteRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DeleteSiteResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes an existing site. The site cannot be associated with any device or link.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/sites/{SiteId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DeleteSiteRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The ID of the site.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DeleteSiteResponse": { + "type": "structure", + "members": { + "Site": { + "target": "com.amazonaws.networkmanager#Site", + "traits": { + "smithy.api#documentation": "

              Information about the site.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DeregisterTransitGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DeregisterTransitGatewayRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DeregisterTransitGatewayResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deregisters a transit gateway from your global network. This action does not delete\n your transit gateway, or modify any of its attachments. This action removes any customer gateway associations.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-registrations/{TransitGatewayArn}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DeregisterTransitGatewayRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TransitGatewayArn": { + "target": "com.amazonaws.networkmanager#TransitGatewayArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DeregisterTransitGatewayResponse": { + "type": "structure", + "members": { + "TransitGatewayRegistration": { + "target": "com.amazonaws.networkmanager#TransitGatewayRegistration", + "traits": { + "smithy.api#documentation": "

              The transit gateway registration information.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DescribeGlobalNetworks": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DescribeGlobalNetworksRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DescribeGlobalNetworksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Describes one or more global networks. By default, all global networks are\n described. To describe the objects in your global network, you must use the appropriate\n Get* action. For example, to list the transit gateways in your global\n network, use GetTransitGatewayRegistrations.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#DescribeGlobalNetworksRequest": { + "type": "structure", + "members": { + "GlobalNetworkIds": { + "target": "com.amazonaws.networkmanager#GlobalNetworkIdList", + "traits": { + "smithy.api#documentation": "

              The IDs of one or more global networks. The maximum is 10.

              ", + "smithy.api#httpQuery": "globalNetworkIds" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#DescribeGlobalNetworksResponse": { + "type": "structure", + "members": { + "GlobalNetworks": { + "target": "com.amazonaws.networkmanager#GlobalNetworkList", + "traits": { + "smithy.api#documentation": "

              Information about the global networks.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#Device": { + "type": "structure", + "members": { + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the device.

              " + } + }, + "DeviceArn": { + "target": "com.amazonaws.networkmanager#DeviceArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the device.

              " + } + }, + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              " + } + }, + "AWSLocation": { + "target": "com.amazonaws.networkmanager#AWSLocation", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services location of the device.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of the device.

              " + } + }, + "Type": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The device type.

              " + } + }, + "Vendor": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The device vendor.

              " + } + }, + "Model": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The device model.

              " + } + }, + "SerialNumber": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The device serial number.

              " + } + }, + "Location": { + "target": "com.amazonaws.networkmanager#Location", + "traits": { + "smithy.api#documentation": "

              The site location.

              " + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The site ID.

              " + } + }, + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The date and time that the site was created.

              " + } + }, + "State": { + "target": "com.amazonaws.networkmanager#DeviceState", + "traits": { + "smithy.api#documentation": "

              The device state.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags for the device.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a device.

              " + } + }, + "com.amazonaws.networkmanager#DeviceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#DeviceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#DeviceIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#DeviceId" + } + }, + "com.amazonaws.networkmanager#DeviceList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#Device" + } + }, + "com.amazonaws.networkmanager#DeviceState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "pending" + }, + { + "value": "AVAILABLE", + "name": "available" + }, + { + "value": "DELETING", + "name": "deleting" + }, + { + "value": "UPDATING", + "name": "updating" + } + ] + } + }, + "com.amazonaws.networkmanager#DisassociateConnectPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DisassociateConnectPeerRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DisassociateConnectPeerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Disassociates a core network Connect peer from a device and a link.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/connect-peer-associations/{ConnectPeerId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DisassociateConnectPeerRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", + "traits": { + "smithy.api#documentation": "

              The ID of the Connect peer to disassociate from a device.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateConnectPeerResponse": { + "type": "structure", + "members": { + "ConnectPeerAssociation": { + "target": "com.amazonaws.networkmanager#ConnectPeerAssociation", + "traits": { + "smithy.api#documentation": "

              Describes the Connect peer association.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateCustomerGateway": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DisassociateCustomerGatewayRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DisassociateCustomerGatewayResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Disassociates a customer gateway from a device and a link.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/customer-gateway-associations/{CustomerGatewayArn}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DisassociateCustomerGatewayRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomerGatewayArn": { + "target": "com.amazonaws.networkmanager#CustomerGatewayArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the customer gateway.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateCustomerGatewayResponse": { + "type": "structure", + "members": { + "CustomerGatewayAssociation": { + "target": "com.amazonaws.networkmanager#CustomerGatewayAssociation", + "traits": { + "smithy.api#documentation": "

              Information about the customer gateway association.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateLink": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DisassociateLinkRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DisassociateLinkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Disassociates an existing device from a link. You must first disassociate any customer\n gateways that are associated with the link.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/link-associations", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DisassociateLinkRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the device.

              ", + "smithy.api#httpQuery": "deviceId", + "smithy.api#required": {} + } + }, + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link.

              ", + "smithy.api#httpQuery": "linkId", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateLinkResponse": { + "type": "structure", + "members": { + "LinkAssociation": { + "target": "com.amazonaws.networkmanager#LinkAssociation", + "traits": { + "smithy.api#documentation": "

              Information about the link association.

              " + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Disassociates a transit gateway Connect peer from a device and link.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-connect-peer-associations/{TransitGatewayConnectPeerArn}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TransitGatewayConnectPeerArn": { + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway Connect peer.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeerResponse": { + "type": "structure", + "members": { + "TransitGatewayConnectPeerAssociation": { + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerAssociation", + "traits": { + "smithy.api#documentation": "

              The transit gateway Connect peer association.

              " + } + } + } + }, + "com.amazonaws.networkmanager#ExceptionContextKey": { + "type": "string" + }, + "com.amazonaws.networkmanager#ExceptionContextMap": { + "type": "map", + "key": { + "target": "com.amazonaws.networkmanager#ExceptionContextKey" + }, + "value": { + "target": "com.amazonaws.networkmanager#ExceptionContextValue" + } + }, + "com.amazonaws.networkmanager#ExceptionContextValue": { + "type": "string" + }, + "com.amazonaws.networkmanager#ExecuteCoreNetworkChangeSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#ExecuteCoreNetworkChangeSetRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#ExecuteCoreNetworkChangeSetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Executes a change set on your core network. Deploys changes globally based on the policy submitted..

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/core-networks/{CoreNetworkId}/core-network-change-sets/{PolicyVersionId}/execute", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#ExecuteCoreNetworkChangeSetRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of the policy version.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#ExecuteCoreNetworkChangeSetResponse": { + "type": "structure", + "members": {} + }, + "com.amazonaws.networkmanager#ExternalRegionCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 63 + } + } + }, + "com.amazonaws.networkmanager#ExternalRegionCodeList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode" + } + }, + "com.amazonaws.networkmanager#FilterMap": { + "type": "map", + "key": { + "target": "com.amazonaws.networkmanager#FilterName" + }, + "value": { + "target": "com.amazonaws.networkmanager#FilterValues" + } + }, + "com.amazonaws.networkmanager#FilterName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + }, + "smithy.api#pattern": "^[0-9a-zA-Z\\.-]*$" + } + }, + "com.amazonaws.networkmanager#FilterValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + }, + "smithy.api#pattern": "^[0-9a-zA-Z\\*\\.\\\\/\\?-]*$" + } + }, + "com.amazonaws.networkmanager#FilterValues": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#FilterValue" + } + }, + "com.amazonaws.networkmanager#GetConnectAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetConnectAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetConnectAttachmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a core network Connect attachment.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/connect-attachments/{AttachmentId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetConnectAttachmentRequest": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetConnectAttachmentResponse": { + "type": "structure", + "members": { + "ConnectAttachment": { + "target": "com.amazonaws.networkmanager#ConnectAttachment", + "traits": { + "smithy.api#documentation": "

              Details about the Connect attachment.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetConnectPeer": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetConnectPeerRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetConnectPeerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a core network Connect peer.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/connect-peers/{ConnectPeerId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetConnectPeerAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetConnectPeerAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetConnectPeerAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a core network Connect peer associations.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/connect-peer-associations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetConnectPeerAssociationsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ConnectPeerIds": { + "target": "com.amazonaws.networkmanager#ConnectPeerIdList", + "traits": { + "smithy.api#documentation": "

              The IDs of the Connect peers.

              ", + "smithy.api#httpQuery": "connectPeerIds" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetConnectPeerAssociationsResponse": { + "type": "structure", + "members": { + "ConnectPeerAssociations": { + "target": "com.amazonaws.networkmanager#ConnectPeerAssociationList", + "traits": { + "smithy.api#documentation": "

              Displays a list of Connect peer associations.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetConnectPeerRequest": { + "type": "structure", + "members": { + "ConnectPeerId": { + "target": "com.amazonaws.networkmanager#ConnectPeerId", + "traits": { + "smithy.api#documentation": "

              The ID of the Connect peer.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetConnectPeerResponse": { + "type": "structure", + "members": { + "ConnectPeer": { + "target": "com.amazonaws.networkmanager#ConnectPeer", + "traits": { + "smithy.api#documentation": "

              Returns information about a core network Connect peer.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetConnections": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetConnectionsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetConnectionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about one or more of your connections in a global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/connections", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetConnectionsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ConnectionIds": { + "target": "com.amazonaws.networkmanager#ConnectionIdList", + "traits": { + "smithy.api#documentation": "

              One or more connection IDs.

              ", + "smithy.api#httpQuery": "connectionIds" + } + }, + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the device.

              ", + "smithy.api#httpQuery": "deviceId" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetConnectionsResponse": { + "type": "structure", + "members": { + "Connections": { + "target": "com.amazonaws.networkmanager#ConnectionList", + "traits": { + "smithy.api#documentation": "

              Information about the connections.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token to use for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetCoreNetworkRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetCoreNetworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a core network. By default it returns the LIVE policy.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/core-networks/{CoreNetworkId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkChangeSet": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetCoreNetworkChangeSetRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetCoreNetworkChangeSetResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns a change set between the LIVE core network policy and a submitted policy.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/core-networks/{CoreNetworkId}/core-network-change-sets/{PolicyVersionId}", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkChangeSetRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of the policy version.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkChangeSetResponse": { + "type": "structure", + "members": { + "CoreNetworkChanges": { + "target": "com.amazonaws.networkmanager#CoreNetworkChangeList", + "traits": { + "smithy.api#documentation": "

              Describes a core network changes.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetCoreNetworkPolicyRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetCoreNetworkPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets details about a core network policy. You can get details about your current live policy or any previous policy version.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/core-networks/{CoreNetworkId}/core-network-policy", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkPolicyRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of a core network policy version.

              ", + "smithy.api#httpQuery": "policyVersionId" + } + }, + "Alias": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyAlias", + "traits": { + "smithy.api#documentation": "

              The alias of a core network policy

              ", + "smithy.api#httpQuery": "alias" + } + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkPolicyResponse": { + "type": "structure", + "members": { + "CoreNetworkPolicy": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicy", + "traits": { + "smithy.api#documentation": "

              The details about a core network policy.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetCoreNetworkResponse": { + "type": "structure", + "members": { + "CoreNetwork": { + "target": "com.amazonaws.networkmanager#CoreNetwork", + "traits": { + "smithy.api#documentation": "

              Details about a core network.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetCustomerGatewayAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets the association information for customer gateways that are associated with\n devices and links in your global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/customer-gateway-associations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CustomerGatewayArns": { + "target": "com.amazonaws.networkmanager#CustomerGatewayArnList", + "traits": { + "smithy.api#documentation": "

              One or more customer gateway Amazon Resource Names (ARNs). The maximum is 10.

              ", + "smithy.api#httpQuery": "customerGatewayArns" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetCustomerGatewayAssociationsResponse": { + "type": "structure", + "members": { + "CustomerGatewayAssociations": { + "target": "com.amazonaws.networkmanager#CustomerGatewayAssociationList", + "traits": { + "smithy.api#documentation": "

              The customer gateway associations.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetDevices": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetDevicesRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetDevicesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about one or more of your devices in a global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/devices", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetDevicesRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DeviceIds": { + "target": "com.amazonaws.networkmanager#DeviceIdList", + "traits": { + "smithy.api#documentation": "

              One or more device IDs. The maximum is 10.

              ", + "smithy.api#httpQuery": "deviceIds" + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The ID of the site.

              ", + "smithy.api#httpQuery": "siteId" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetDevicesResponse": { + "type": "structure", + "members": { + "Devices": { + "target": "com.amazonaws.networkmanager#DeviceList", + "traits": { + "smithy.api#documentation": "

              The devices.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetLinkAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetLinkAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetLinkAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets the link associations for a device or a link. Either the device ID or the link ID\n must be specified.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/link-associations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetLinkAssociationsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The ID of the device.

              ", + "smithy.api#httpQuery": "deviceId" + } + }, + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link.

              ", + "smithy.api#httpQuery": "linkId" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetLinkAssociationsResponse": { + "type": "structure", + "members": { + "LinkAssociations": { + "target": "com.amazonaws.networkmanager#LinkAssociationList", + "traits": { + "smithy.api#documentation": "

              The link associations.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetLinks": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetLinksRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetLinksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about one or more links in a specified global network.

              \n

              If you specify the site ID, you cannot specify the type or provider in the same request. You can specify the type and provider in the same request.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/links", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetLinksRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "LinkIds": { + "target": "com.amazonaws.networkmanager#LinkIdList", + "traits": { + "smithy.api#documentation": "

              One or more link IDs. The maximum is 10.

              ", + "smithy.api#httpQuery": "linkIds" + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The ID of the site.

              ", + "smithy.api#httpQuery": "siteId" + } + }, + "Type": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The link type.

              ", + "smithy.api#httpQuery": "type" + } + }, + "Provider": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The link provider.

              ", + "smithy.api#httpQuery": "provider" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetLinksResponse": { + "type": "structure", + "members": { + "Links": { + "target": "com.amazonaws.networkmanager#LinkList", + "traits": { + "smithy.api#documentation": "

              The links.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourceCounts": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetNetworkResourceCountsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetNetworkResourceCountsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets the count of network resources, by resource type, for the specified global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/network-resource-count", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourceCountsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ResourceType": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              ", + "smithy.api#httpQuery": "resourceType" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourceCountsResponse": { + "type": "structure", + "members": { + "NetworkResourceCounts": { + "target": "com.amazonaws.networkmanager#NetworkResourceCountList", + "traits": { + "smithy.api#documentation": "

              The count of resources.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourceRelationships": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets the network resource relationships for the specified global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/network-resource-relationships", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpQuery": "coreNetworkId" + } + }, + "RegisteredGatewayArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the registered gateway.

              ", + "smithy.api#httpQuery": "registeredGatewayArn" + } + }, + "AwsRegion": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services Region.

              ", + "smithy.api#httpQuery": "awsRegion" + } + }, + "AccountId": { + "target": "com.amazonaws.networkmanager#AWSAccountId", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services account ID.

              ", + "smithy.api#httpQuery": "accountId" + } + }, + "ResourceType": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              ", + "smithy.api#httpQuery": "resourceType" + } + }, + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the gateway.

              ", + "smithy.api#httpQuery": "resourceArn" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourceRelationshipsResponse": { + "type": "structure", + "members": { + "Relationships": { + "target": "com.amazonaws.networkmanager#RelationshipList", + "traits": { + "smithy.api#documentation": "

              The resource relationships.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResources": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetNetworkResourcesRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetNetworkResourcesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Describes the network resources for the specified global network.

              \n

              The results include information from the corresponding Describe call for the resource, minus any sensitive information such as pre-shared keys.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/network-resources", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourcesRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpQuery": "coreNetworkId" + } + }, + "RegisteredGatewayArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the gateway.

              ", + "smithy.api#httpQuery": "registeredGatewayArn" + } + }, + "AwsRegion": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services Region.

              ", + "smithy.api#httpQuery": "awsRegion" + } + }, + "AccountId": { + "target": "com.amazonaws.networkmanager#AWSAccountId", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services account ID.

              ", + "smithy.api#httpQuery": "accountId" + } + }, + "ResourceType": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection - The definition model is\n Connection.

                \n
              • \n
              • \n

                \n device - The definition model is\n Device.

                \n
              • \n
              • \n

                \n link - The definition model is\n Link.

                \n
              • \n
              • \n

                \n site - The definition model is\n Site.

                \n
              • \n
              \n \n

              The following are the supported resource types for Amazon VPC:

              \n ", + "smithy.api#httpQuery": "resourceType" + } + }, + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the resource.

              ", + "smithy.api#httpQuery": "resourceArn" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkResourcesResponse": { + "type": "structure", + "members": { + "NetworkResources": { + "target": "com.amazonaws.networkmanager#NetworkResourceList", + "traits": { + "smithy.api#documentation": "

              The network resources.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkRoutes": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetNetworkRoutesRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetNetworkRoutesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets the network routes of the specified global network.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/global-networks/{GlobalNetworkId}/network-routes", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetNetworkRoutesRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "RouteTableIdentifier": { + "target": "com.amazonaws.networkmanager#RouteTableIdentifier", + "traits": { + "smithy.api#documentation": "

              The ID of the route table.

              ", + "smithy.api#required": {} + } + }, + "ExactCidrMatches": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              An exact CIDR block.

              " + } + }, + "LongestPrefixMatches": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The most specific route that matches the traffic (longest prefix match).

              " + } + }, + "SubnetOfMatches": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The routes with a subnet that match the specified CIDR filter.

              " + } + }, + "SupernetOfMatches": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The routes with a CIDR that encompasses the CIDR filter. Example: If you specify 10.0.1.0/30, then the result returns 10.0.1.0/29.

              " + } + }, + "PrefixListIds": { + "target": "com.amazonaws.networkmanager#ConstrainedStringList", + "traits": { + "smithy.api#documentation": "

              The IDs of the prefix lists.

              " + } + }, + "States": { + "target": "com.amazonaws.networkmanager#RouteStateList", + "traits": { + "smithy.api#documentation": "

              The route states.

              " + } + }, + "Types": { + "target": "com.amazonaws.networkmanager#RouteTypeList", + "traits": { + "smithy.api#documentation": "

              The route types.

              " + } + }, + "DestinationFilters": { + "target": "com.amazonaws.networkmanager#FilterMap", + "traits": { + "smithy.api#documentation": "

              Filter by route table destination. Possible Values: TRANSIT_GATEWAY_ATTACHMENT_ID, RESOURCE_ID, or RESOURCE_TYPE.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkRoutesResponse": { + "type": "structure", + "members": { + "RouteTableArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the route table.

              " + } + }, + "CoreNetworkSegmentEdge": { + "target": "com.amazonaws.networkmanager#CoreNetworkSegmentEdgeIdentifier", + "traits": { + "smithy.api#documentation": "

              Describes a core network segment edge.

              " + } + }, + "RouteTableType": { + "target": "com.amazonaws.networkmanager#RouteTableType", + "traits": { + "smithy.api#documentation": "

              The route table type.

              " + } + }, + "RouteTableTimestamp": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The route table creation time.

              " + } + }, + "NetworkRoutes": { + "target": "com.amazonaws.networkmanager#NetworkRouteList", + "traits": { + "smithy.api#documentation": "

              The network routes.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkTelemetry": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetNetworkTelemetryRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetNetworkTelemetryResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets the network telemetry of the specified global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/network-telemetry", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetNetworkTelemetryRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpQuery": "coreNetworkId" + } + }, + "RegisteredGatewayArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the gateway.

              ", + "smithy.api#httpQuery": "registeredGatewayArn" + } + }, + "AwsRegion": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services Region.

              ", + "smithy.api#httpQuery": "awsRegion" + } + }, + "AccountId": { + "target": "com.amazonaws.networkmanager#AWSAccountId", + "traits": { + "smithy.api#documentation": "

              The Amazon Web Services account ID.

              ", + "smithy.api#httpQuery": "accountId" + } + }, + "ResourceType": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              ", + "smithy.api#httpQuery": "resourceType" + } + }, + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the resource.

              ", + "smithy.api#httpQuery": "resourceArn" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetNetworkTelemetryResponse": { + "type": "structure", + "members": { + "NetworkTelemetry": { + "target": "com.amazonaws.networkmanager#NetworkTelemetryList", + "traits": { + "smithy.api#documentation": "

              The network telemetry.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetResourcePolicyRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetResourcePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a resource policy.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/resource-policy/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetResourcePolicyRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the resource.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetResourcePolicyResponse": { + "type": "structure", + "members": { + "PolicyDocument": { + "target": "com.amazonaws.networkmanager#SynthesizedJsonResourcePolicyDocument", + "traits": { + "smithy.api#documentation": "

              The resource policy document.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetRouteAnalysis": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetRouteAnalysisRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetRouteAnalysisResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about the specified route analysis.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/route-analyses/{RouteAnalysisId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetRouteAnalysisRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "RouteAnalysisId": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The ID of the route analysis.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetRouteAnalysisResponse": { + "type": "structure", + "members": { + "RouteAnalysis": { + "target": "com.amazonaws.networkmanager#RouteAnalysis", + "traits": { + "smithy.api#documentation": "

              The route analysis.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetSiteToSiteVpnAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetSiteToSiteVpnAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetSiteToSiteVpnAttachmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a site-to-site VPN attachment.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/site-to-site-vpn-attachments/{AttachmentId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetSiteToSiteVpnAttachmentRequest": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetSiteToSiteVpnAttachmentResponse": { + "type": "structure", + "members": { + "SiteToSiteVpnAttachment": { + "target": "com.amazonaws.networkmanager#SiteToSiteVpnAttachment", + "traits": { + "smithy.api#documentation": "

              Describes the site-to-site attachment.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetSites": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetSitesRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetSitesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about one or more of your sites in a global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/sites", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetSitesRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SiteIds": { + "target": "com.amazonaws.networkmanager#SiteIdList", + "traits": { + "smithy.api#documentation": "

              One or more site IDs. The maximum is 10.

              ", + "smithy.api#httpQuery": "siteIds" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetSitesResponse": { + "type": "structure", + "members": { + "Sites": { + "target": "com.amazonaws.networkmanager#SiteList", + "traits": { + "smithy.api#documentation": "

              The sites.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociations": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about one or more of your transit gateway Connect peer associations in a global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-connect-peer-associations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TransitGatewayConnectPeerArns": { + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerArnList", + "traits": { + "smithy.api#documentation": "

              One or more transit gateway Connect peer Amazon Resource Names (ARNs).

              ", + "smithy.api#httpQuery": "transitGatewayConnectPeerArns" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsResponse": { + "type": "structure", + "members": { + "TransitGatewayConnectPeerAssociations": { + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerAssociationList", + "traits": { + "smithy.api#documentation": "

              Information about the transit gateway Connect peer associations.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token to use for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetTransitGatewayRegistrations": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Gets information about the transit gateway registrations in a specified\n global network.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-registrations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsRequest": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TransitGatewayArns": { + "target": "com.amazonaws.networkmanager#TransitGatewayArnList", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum is\n 10.

              ", + "smithy.api#httpQuery": "transitGatewayArns" + } + }, + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", + "traits": { + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" + } + } + } + }, + "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsResponse": { + "type": "structure", + "members": { + "TransitGatewayRegistrations": { + "target": "com.amazonaws.networkmanager#TransitGatewayRegistrationList", + "traits": { + "smithy.api#documentation": "

              The transit gateway registrations.

              " + } + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GetVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#GetVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#GetVpcAttachmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns information about a VPC attachment.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/vpc-attachments/{AttachmentId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#GetVpcAttachmentRequest": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#GetVpcAttachmentResponse": { + "type": "structure", + "members": { + "VpcAttachment": { + "target": "com.amazonaws.networkmanager#VpcAttachment", + "traits": { + "smithy.api#documentation": "

              Returns details about a VPC attachment.

              " + } + } + } + }, + "com.amazonaws.networkmanager#GlobalNetwork": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              " + } + }, + "GlobalNetworkArn": { + "target": "com.amazonaws.networkmanager#GlobalNetworkArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the global network.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of the global network.

              " + } + }, + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The date and time that the global network was created.

              " + } + }, + "State": { + "target": "com.amazonaws.networkmanager#GlobalNetworkState", + "traits": { + "smithy.api#documentation": "

              The state of the global network.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags for the global network.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a global network. This is a single private network acting as a high-level container for your network objects, including an Amazon Web Services-manged Core Network.

              " + } + }, + "com.amazonaws.networkmanager#GlobalNetworkArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#GlobalNetworkId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#GlobalNetworkIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId" + } + }, + "com.amazonaws.networkmanager#GlobalNetworkList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#GlobalNetwork" + } + }, + "com.amazonaws.networkmanager#GlobalNetworkState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "pending" + }, + { + "value": "AVAILABLE", + "name": "available" + }, + { + "value": "DELETING", + "name": "deleting" + }, + { + "value": "UPDATING", + "name": "updating" + } + ] + } + }, + "com.amazonaws.networkmanager#IPAddress": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#Integer": { + "type": "integer", + "traits": { + "smithy.api#box": {} + } + }, + "com.amazonaws.networkmanager#InternalServerException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.networkmanager#ServerSideString", + "traits": { + "smithy.api#required": {} + } + }, + "RetryAfterSeconds": { + "target": "com.amazonaws.networkmanager#RetryAfterSeconds", + "traits": { + "smithy.api#documentation": "

              Indicates when to retry the request.

              ", + "smithy.api#httpHeader": "Retry-After" + } + } + }, + "traits": { + "smithy.api#documentation": "

              The request has failed due to an internal error.

              ", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.networkmanager#Link": { + "type": "structure", + "members": { + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link.

              " + } + }, + "LinkArn": { + "target": "com.amazonaws.networkmanager#LinkArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the link.

              " + } + }, + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              " + } + }, + "SiteId": { + "target": "com.amazonaws.networkmanager#SiteId", + "traits": { + "smithy.api#documentation": "

              The ID of the site.

              " + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of the link.

              " + } + }, + "Type": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The type of the link.

              " + } + }, + "Bandwidth": { + "target": "com.amazonaws.networkmanager#Bandwidth", + "traits": { + "smithy.api#documentation": "

              The bandwidth for the link.

              " + } + }, + "Provider": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The provider of the link.

              " + } + }, + "CreatedAt": { + "target": "com.amazonaws.networkmanager#DateTime", + "traits": { + "smithy.api#documentation": "

              The date and time that the link was created.

              " + } + }, + "State": { + "target": "com.amazonaws.networkmanager#LinkState", + "traits": { + "smithy.api#documentation": "

              The state of the link.

              " + } + }, + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The tags for the link.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a link.

              " + } + }, + "com.amazonaws.networkmanager#LinkArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#LinkAssociation": { + "type": "structure", + "members": { + "GlobalNetworkId": { + "target": "com.amazonaws.networkmanager#GlobalNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of the global network.

              " + } + }, + "DeviceId": { + "target": "com.amazonaws.networkmanager#DeviceId", + "traits": { + "smithy.api#documentation": "

              The device ID for the link association.

              " + } + }, + "LinkId": { + "target": "com.amazonaws.networkmanager#LinkId", + "traits": { + "smithy.api#documentation": "

              The ID of the link.

              " + } + }, + "LinkAssociationState": { + "target": "com.amazonaws.networkmanager#LinkAssociationState", + "traits": { + "smithy.api#documentation": "

              The state of the association.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes the association between a device and a link.

              " + } + }, + "com.amazonaws.networkmanager#LinkAssociationList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#LinkAssociation" + } + }, + "com.amazonaws.networkmanager#LinkAssociationState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "pending" + }, + { + "value": "AVAILABLE", + "name": "available" + }, + { + "value": "DELETING", + "name": "deleting" + }, + { + "value": "DELETED", + "name": "deleted" + } + ] + } + }, + "com.amazonaws.networkmanager#LinkId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#LinkIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#LinkId" + } + }, + "com.amazonaws.networkmanager#LinkList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#Link" + } + }, + "com.amazonaws.networkmanager#LinkState": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "PENDING", + "name": "pending" + }, + { + "value": "AVAILABLE", + "name": "available" + }, + { + "value": "DELETING", + "name": "deleting" + }, + { + "value": "UPDATING", + "name": "updating" } - } + ] } }, - "com.amazonaws.networkmanager#GetSites": { + "com.amazonaws.networkmanager#ListAttachments": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetSitesRequest" + "target": "com.amazonaws.networkmanager#ListAttachmentsRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetSitesResponse" + "target": "com.amazonaws.networkmanager#ListAttachmentsResponse" }, "errors": [ { @@ -3081,9 +6568,6 @@ { "target": "com.amazonaws.networkmanager#InternalServerException" }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" - }, { "target": "com.amazonaws.networkmanager#ThrottlingException" }, @@ -3092,10 +6576,10 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about one or more of your sites in a global network.

              ", + "smithy.api#documentation": "

              Returns a list of core network attachments.

              ", "smithy.api#http": { "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/sites", + "uri": "/attachments", "code": 200 }, "smithy.api#paginated": { @@ -3105,22 +6589,35 @@ } } }, - "com.amazonaws.networkmanager#GetSitesRequest": { + "com.amazonaws.networkmanager#ListAttachmentsRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpQuery": "coreNetworkId" } }, - "SiteIds": { - "target": "com.amazonaws.networkmanager#StringList", + "AttachmentType": { + "target": "com.amazonaws.networkmanager#AttachmentType", "traits": { - "smithy.api#documentation": "

              One or more site IDs. The maximum is 10.

              ", - "smithy.api#httpQuery": "siteIds" + "smithy.api#documentation": "

              The type of attachment.

              ", + "smithy.api#httpQuery": "attachmentType" + } + }, + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The Region where the edge is located.

              ", + "smithy.api#httpQuery": "edgeLocation" + } + }, + "State": { + "target": "com.amazonaws.networkmanager#AttachmentState", + "traits": { + "smithy.api#documentation": "

              The state of the attachment.

              ", + "smithy.api#httpQuery": "state" } }, "MaxResults": { @@ -3131,7 +6628,7 @@ } }, "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#NextToken", "traits": { "smithy.api#documentation": "

              The token for the next page of results.

              ", "smithy.api#httpQuery": "nextToken" @@ -3139,44 +6636,38 @@ } } }, - "com.amazonaws.networkmanager#GetSitesResponse": { + "com.amazonaws.networkmanager#ListAttachmentsResponse": { "type": "structure", "members": { - "Sites": { - "target": "com.amazonaws.networkmanager#SiteList", + "Attachments": { + "target": "com.amazonaws.networkmanager#AttachmentList", "traits": { - "smithy.api#documentation": "

              The sites.

              " + "smithy.api#documentation": "

              Describes the list of attachments.

              " } }, "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#NextToken", "traits": { "smithy.api#documentation": "

              The token for the next page of results.

              " } } } }, - "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociations": { + "com.amazonaws.networkmanager#ListConnectPeers": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsRequest" + "target": "com.amazonaws.networkmanager#ListConnectPeersRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsResponse" + "target": "com.amazonaws.networkmanager#ListConnectPeersResponse" }, "errors": [ { "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - { - "target": "com.amazonaws.networkmanager#ConflictException" - }, { "target": "com.amazonaws.networkmanager#InternalServerException" }, - { - "target": "com.amazonaws.networkmanager#ResourceNotFoundException" - }, { "target": "com.amazonaws.networkmanager#ThrottlingException" }, @@ -3185,10 +6676,10 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about one or more of your transit gateway Connect peer associations in a global network.

              ", + "smithy.api#documentation": "

              Returns a list of core network Connect peers.

              ", "smithy.api#http": { "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-connect-peer-associations", + "uri": "/connect-peers", "code": 200 }, "smithy.api#paginated": { @@ -3198,22 +6689,21 @@ } } }, - "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsRequest": { + "com.amazonaws.networkmanager#ListConnectPeersRequest": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpQuery": "coreNetworkId" } }, - "TransitGatewayConnectPeerArns": { - "target": "com.amazonaws.networkmanager#StringList", + "ConnectAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", "traits": { - "smithy.api#documentation": "

              One or more transit gateway Connect peer Amazon Resource Names (ARNs).

              ", - "smithy.api#httpQuery": "transitGatewayConnectPeerArns" + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpQuery": "connectAttachmentId" } }, "MaxResults": { @@ -3224,7 +6714,7 @@ } }, "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#NextToken", "traits": { "smithy.api#documentation": "

              The token for the next page of results.

              ", "smithy.api#httpQuery": "nextToken" @@ -3232,30 +6722,30 @@ } } }, - "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociationsResponse": { + "com.amazonaws.networkmanager#ListConnectPeersResponse": { "type": "structure", "members": { - "TransitGatewayConnectPeerAssociations": { - "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerAssociationList", + "ConnectPeers": { + "target": "com.amazonaws.networkmanager#ConnectPeerSummaryList", "traits": { - "smithy.api#documentation": "

              Information about the transit gateway Connect peer associations.

              " + "smithy.api#documentation": "

              Describes the Connect peers.

              " } }, "NextToken": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#NextToken", "traits": { - "smithy.api#documentation": "

              The token to use for the next page of results.

              " + "smithy.api#documentation": "

              The token for the next page of results.

              " } } } }, - "com.amazonaws.networkmanager#GetTransitGatewayRegistrations": { + "com.amazonaws.networkmanager#ListCoreNetworkPolicyVersions": { "type": "operation", "input": { - "target": "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsRequest" + "target": "com.amazonaws.networkmanager#ListCoreNetworkPolicyVersionsRequest" }, "output": { - "target": "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsResponse" + "target": "com.amazonaws.networkmanager#ListCoreNetworkPolicyVersionsResponse" }, "errors": [ { @@ -3275,10 +6765,10 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets information about the transit gateway registrations in a specified\n global network.

              ", + "smithy.api#documentation": "

              Returns a list of core network policy versions.

              ", "smithy.api#http": { "method": "GET", - "uri": "/global-networks/{GlobalNetworkId}/transit-gateway-registrations", + "uri": "/core-networks/{CoreNetworkId}/core-network-policy-versions", "code": 200 }, "smithy.api#paginated": { @@ -3288,321 +6778,120 @@ } } }, - "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsRequest": { - "type": "structure", - "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              ", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "TransitGatewayArns": { - "target": "com.amazonaws.networkmanager#StringList", - "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of one or more transit gateways. The maximum is\n 10.

              ", - "smithy.api#httpQuery": "transitGatewayArns" - } - }, - "MaxResults": { - "target": "com.amazonaws.networkmanager#MaxResults", - "traits": { - "smithy.api#documentation": "

              The maximum number of results to return.

              ", - "smithy.api#httpQuery": "maxResults" - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              ", - "smithy.api#httpQuery": "nextToken" - } - } - } - }, - "com.amazonaws.networkmanager#GetTransitGatewayRegistrationsResponse": { - "type": "structure", - "members": { - "TransitGatewayRegistrations": { - "target": "com.amazonaws.networkmanager#TransitGatewayRegistrationList", - "traits": { - "smithy.api#documentation": "

              The transit gateway registrations.

              " - } - }, - "NextToken": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " - } - } - } - }, - "com.amazonaws.networkmanager#GlobalNetwork": { - "type": "structure", - "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              " - } - }, - "GlobalNetworkArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the global network.

              " - } - }, - "Description": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The description of the global network.

              " - } - }, - "CreatedAt": { - "target": "com.amazonaws.networkmanager#DateTime", - "traits": { - "smithy.api#documentation": "

              The date and time that the global network was created.

              " - } - }, - "State": { - "target": "com.amazonaws.networkmanager#GlobalNetworkState", - "traits": { - "smithy.api#documentation": "

              The state of the global network.

              " - } - }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", - "traits": { - "smithy.api#documentation": "

              The tags for the global network.

              " - } - } - }, - "traits": { - "smithy.api#documentation": "

              Describes a global network.

              " - } - }, - "com.amazonaws.networkmanager#GlobalNetworkList": { - "type": "list", - "member": { - "target": "com.amazonaws.networkmanager#GlobalNetwork" - } - }, - "com.amazonaws.networkmanager#GlobalNetworkState": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PENDING", - "name": "pending" - }, - { - "value": "AVAILABLE", - "name": "available" - }, - { - "value": "DELETING", - "name": "deleting" - }, - { - "value": "UPDATING", - "name": "updating" - } - ] - } - }, - "com.amazonaws.networkmanager#Integer": { - "type": "integer", - "traits": { - "smithy.api#box": {} - } - }, - "com.amazonaws.networkmanager#InternalServerException": { - "type": "structure", - "members": { - "Message": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#required": {} - } - }, - "RetryAfterSeconds": { - "target": "com.amazonaws.networkmanager#RetryAfterSeconds", - "traits": { - "smithy.api#documentation": "

              Indicates when to retry the request.

              ", - "smithy.api#httpHeader": "Retry-After" - } - } - }, - "traits": { - "smithy.api#documentation": "

              The request has failed due to an internal error.

              ", - "smithy.api#error": "server", - "smithy.api#httpError": 500 - } - }, - "com.amazonaws.networkmanager#Link": { + "com.amazonaws.networkmanager#ListCoreNetworkPolicyVersionsRequest": { "type": "structure", - "members": { - "LinkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the link.

              " - } - }, - "LinkArn": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the link.

              " - } - }, - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              " - } - }, - "SiteId": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The ID of the site.

              " - } - }, - "Description": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The description of the link.

              " - } - }, - "Type": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The type of the link.

              " - } - }, - "Bandwidth": { - "target": "com.amazonaws.networkmanager#Bandwidth", - "traits": { - "smithy.api#documentation": "

              The bandwidth for the link.

              " - } - }, - "Provider": { - "target": "com.amazonaws.networkmanager#String", - "traits": { - "smithy.api#documentation": "

              The provider of the link.

              " - } - }, - "CreatedAt": { - "target": "com.amazonaws.networkmanager#DateTime", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", "traits": { - "smithy.api#documentation": "

              The date and time that the link was created.

              " + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "State": { - "target": "com.amazonaws.networkmanager#LinkState", + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", "traits": { - "smithy.api#documentation": "

              The state of the link.

              " + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" } }, - "Tags": { - "target": "com.amazonaws.networkmanager#TagList", + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", "traits": { - "smithy.api#documentation": "

              The tags for the link.

              " + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" } } - }, - "traits": { - "smithy.api#documentation": "

              Describes a link.

              " } }, - "com.amazonaws.networkmanager#LinkAssociation": { + "com.amazonaws.networkmanager#ListCoreNetworkPolicyVersionsResponse": { "type": "structure", "members": { - "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "CoreNetworkPolicyVersions": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyVersionList", "traits": { - "smithy.api#documentation": "

              The ID of the global network.

              " + "smithy.api#documentation": "

              Describes core network policy versions.

              " } }, - "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", "traits": { - "smithy.api#documentation": "

              The device ID for the link association.

              " + "smithy.api#documentation": "

              The token for the next page of results.

              " } + } + } + }, + "com.amazonaws.networkmanager#ListCoreNetworks": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#ListCoreNetworksRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#ListCoreNetworksResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" }, - "LinkId": { - "target": "com.amazonaws.networkmanager#String", + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Returns a list of owned and shared core networks.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/core-networks", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.networkmanager#ListCoreNetworksRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.networkmanager#MaxResults", "traits": { - "smithy.api#documentation": "

              The ID of the link.

              " + "smithy.api#documentation": "

              The maximum number of results to return.

              ", + "smithy.api#httpQuery": "maxResults" } }, - "LinkAssociationState": { - "target": "com.amazonaws.networkmanager#LinkAssociationState", + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", "traits": { - "smithy.api#documentation": "

              The state of the association.

              " + "smithy.api#documentation": "

              The token for the next page of results.

              ", + "smithy.api#httpQuery": "nextToken" } } - }, - "traits": { - "smithy.api#documentation": "

              Describes the association between a device and a link.

              " - } - }, - "com.amazonaws.networkmanager#LinkAssociationList": { - "type": "list", - "member": { - "target": "com.amazonaws.networkmanager#LinkAssociation" } }, - "com.amazonaws.networkmanager#LinkAssociationState": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PENDING", - "name": "pending" - }, - { - "value": "AVAILABLE", - "name": "available" - }, - { - "value": "DELETING", - "name": "deleting" - }, - { - "value": "DELETED", - "name": "deleted" + "com.amazonaws.networkmanager#ListCoreNetworksResponse": { + "type": "structure", + "members": { + "CoreNetworks": { + "target": "com.amazonaws.networkmanager#CoreNetworkSummaryList", + "traits": { + "smithy.api#documentation": "

              Describes the list of core networks.

              " } - ] - } - }, - "com.amazonaws.networkmanager#LinkList": { - "type": "list", - "member": { - "target": "com.amazonaws.networkmanager#Link" - } - }, - "com.amazonaws.networkmanager#LinkState": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "PENDING", - "name": "pending" - }, - { - "value": "AVAILABLE", - "name": "available" - }, - { - "value": "DELETING", - "name": "deleting" - }, - { - "value": "UPDATING", - "name": "updating" + }, + "NextToken": { + "target": "com.amazonaws.networkmanager#NextToken", + "traits": { + "smithy.api#documentation": "

              The token for the next page of results.

              " } - ] + } } }, "com.amazonaws.networkmanager#ListTagsForResource": { @@ -3643,7 +6932,7 @@ "type": "structure", "members": { "ResourceArn": { - "target": "com.amazonaws.networkmanager#ResourceARN", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource.

              ", "smithy.api#httpLabel": {}, @@ -3667,19 +6956,19 @@ "type": "structure", "members": { "Address": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The physical address.

              " } }, "Latitude": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The latitude.

              " } }, "Longitude": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The longitude.

              " } @@ -3690,6 +6979,12 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.networkmanager#Long": { + "type": "long", + "traits": { + "smithy.api#box": {} + } + }, "com.amazonaws.networkmanager#MaxResults": { "type": "integer", "traits": { @@ -3702,8 +6997,29 @@ }, "com.amazonaws.networkmanager#NetworkManager": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "NetworkManager", + "arnNamespace": "networkmanager", + "cloudFormationName": "NetworkManager", + "cloudTrailEventSource": "networkmanager.amazonaws.com", + "endpointPrefix": "networkmanager" + }, + "aws.auth#sigv4": { + "name": "networkmanager" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              Transit Gateway Network Manager (Network Manager) enables you to create a global network, in which you can monitor your\n Amazon Web Services and on-premises networks that are built around transit gateways.

              ", + "smithy.api#title": "AWS Network Manager" + }, "version": "2019-07-05", "operations": [ + { + "target": "com.amazonaws.networkmanager#AcceptAttachment" + }, + { + "target": "com.amazonaws.networkmanager#AssociateConnectPeer" + }, { "target": "com.amazonaws.networkmanager#AssociateCustomerGateway" }, @@ -3713,9 +7029,18 @@ { "target": "com.amazonaws.networkmanager#AssociateTransitGatewayConnectPeer" }, + { + "target": "com.amazonaws.networkmanager#CreateConnectAttachment" + }, { "target": "com.amazonaws.networkmanager#CreateConnection" }, + { + "target": "com.amazonaws.networkmanager#CreateConnectPeer" + }, + { + "target": "com.amazonaws.networkmanager#CreateCoreNetwork" + }, { "target": "com.amazonaws.networkmanager#CreateDevice" }, @@ -3728,9 +7053,27 @@ { "target": "com.amazonaws.networkmanager#CreateSite" }, + { + "target": "com.amazonaws.networkmanager#CreateSiteToSiteVpnAttachment" + }, + { + "target": "com.amazonaws.networkmanager#CreateVpcAttachment" + }, + { + "target": "com.amazonaws.networkmanager#DeleteAttachment" + }, { "target": "com.amazonaws.networkmanager#DeleteConnection" }, + { + "target": "com.amazonaws.networkmanager#DeleteConnectPeer" + }, + { + "target": "com.amazonaws.networkmanager#DeleteCoreNetwork" + }, + { + "target": "com.amazonaws.networkmanager#DeleteCoreNetworkPolicyVersion" + }, { "target": "com.amazonaws.networkmanager#DeleteDevice" }, @@ -3740,6 +7083,9 @@ { "target": "com.amazonaws.networkmanager#DeleteLink" }, + { + "target": "com.amazonaws.networkmanager#DeleteResourcePolicy" + }, { "target": "com.amazonaws.networkmanager#DeleteSite" }, @@ -3749,6 +7095,9 @@ { "target": "com.amazonaws.networkmanager#DescribeGlobalNetworks" }, + { + "target": "com.amazonaws.networkmanager#DisassociateConnectPeer" + }, { "target": "com.amazonaws.networkmanager#DisassociateCustomerGateway" }, @@ -3758,9 +7107,30 @@ { "target": "com.amazonaws.networkmanager#DisassociateTransitGatewayConnectPeer" }, + { + "target": "com.amazonaws.networkmanager#ExecuteCoreNetworkChangeSet" + }, + { + "target": "com.amazonaws.networkmanager#GetConnectAttachment" + }, { "target": "com.amazonaws.networkmanager#GetConnections" }, + { + "target": "com.amazonaws.networkmanager#GetConnectPeer" + }, + { + "target": "com.amazonaws.networkmanager#GetConnectPeerAssociations" + }, + { + "target": "com.amazonaws.networkmanager#GetCoreNetwork" + }, + { + "target": "com.amazonaws.networkmanager#GetCoreNetworkChangeSet" + }, + { + "target": "com.amazonaws.networkmanager#GetCoreNetworkPolicy" + }, { "target": "com.amazonaws.networkmanager#GetCustomerGatewayAssociations" }, @@ -3788,24 +7158,57 @@ { "target": "com.amazonaws.networkmanager#GetNetworkTelemetry" }, + { + "target": "com.amazonaws.networkmanager#GetResourcePolicy" + }, { "target": "com.amazonaws.networkmanager#GetRouteAnalysis" }, { "target": "com.amazonaws.networkmanager#GetSites" }, + { + "target": "com.amazonaws.networkmanager#GetSiteToSiteVpnAttachment" + }, { "target": "com.amazonaws.networkmanager#GetTransitGatewayConnectPeerAssociations" }, { "target": "com.amazonaws.networkmanager#GetTransitGatewayRegistrations" }, + { + "target": "com.amazonaws.networkmanager#GetVpcAttachment" + }, + { + "target": "com.amazonaws.networkmanager#ListAttachments" + }, + { + "target": "com.amazonaws.networkmanager#ListConnectPeers" + }, + { + "target": "com.amazonaws.networkmanager#ListCoreNetworkPolicyVersions" + }, + { + "target": "com.amazonaws.networkmanager#ListCoreNetworks" + }, { "target": "com.amazonaws.networkmanager#ListTagsForResource" }, + { + "target": "com.amazonaws.networkmanager#PutCoreNetworkPolicy" + }, + { + "target": "com.amazonaws.networkmanager#PutResourcePolicy" + }, { "target": "com.amazonaws.networkmanager#RegisterTransitGateway" }, + { + "target": "com.amazonaws.networkmanager#RejectAttachment" + }, + { + "target": "com.amazonaws.networkmanager#RestoreCoreNetworkPolicyVersion" + }, { "target": "com.amazonaws.networkmanager#StartRouteAnalysis" }, @@ -3818,6 +7221,9 @@ { "target": "com.amazonaws.networkmanager#UpdateConnection" }, + { + "target": "com.amazonaws.networkmanager#UpdateCoreNetwork" + }, { "target": "com.amazonaws.networkmanager#UpdateDevice" }, @@ -3832,65 +7238,59 @@ }, { "target": "com.amazonaws.networkmanager#UpdateSite" - } - ], - "traits": { - "aws.api#service": { - "sdkId": "NetworkManager", - "arnNamespace": "networkmanager", - "cloudFormationName": "NetworkManager", - "cloudTrailEventSource": "networkmanager.amazonaws.com", - "endpointPrefix": "networkmanager" - }, - "aws.auth#sigv4": { - "name": "networkmanager" }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              Transit Gateway Network Manager (Network Manager) enables you to create a global network, in which you can monitor your\n Amazon Web Services and on-premises networks that are built around transit gateways.

              ", - "smithy.api#title": "AWS Network Manager" - } + { + "target": "com.amazonaws.networkmanager#UpdateVpcAttachment" + } + ] }, "com.amazonaws.networkmanager#NetworkResource": { "type": "structure", "members": { "RegisteredGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the gateway.

              " } }, + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              a core network ID.

              " + } + }, "AwsRegion": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ExternalRegionCode", "traits": { "smithy.api#documentation": "

              The Amazon Web Services Region.

              " } }, "AccountId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#AWSAccountId", "traits": { "smithy.api#documentation": "

              The Amazon Web Services account ID.

              " } }, "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The resource type.

              \n

              The following are the supported resource types for Direct Connect:

              \n
                \n
              • \n

                \n dxcon\n

                \n
              • \n
              • \n

                \n dx-gateway\n

                \n
              • \n
              • \n

                \n dx-vif\n

                \n
              • \n
              \n \n

              The following are the supported resource types for Network Manager:

              \n
                \n
              • \n

                \n connection\n

                \n
              • \n
              • \n

                \n device\n

                \n
              • \n
              • \n

                \n link\n

                \n
              • \n
              • \n

                \n site\n

                \n
              • \n
              \n\n

              The following are the supported resource types for Amazon VPC:

              \n
                \n
              • \n

                \n customer-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway\n

                \n
              • \n
              • \n

                \n transit-gateway-attachment\n

                \n
              • \n
              • \n

                \n transit-gateway-connect-peer\n

                \n
              • \n
              • \n

                \n transit-gateway-route-table\n

                \n
              • \n
              • \n

                \n vpn-connection\n

                \n
              • \n
              " } }, "ResourceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ID of the resource.

              " } }, "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              " } }, "Definition": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              Information about the resource, in JSON format. Network Manager gets this information by describing the resource using its Describe API call.

              " } @@ -3922,7 +7322,7 @@ "type": "structure", "members": { "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The resource type.

              " } @@ -3950,50 +7350,44 @@ "target": "com.amazonaws.networkmanager#NetworkResource" } }, - "com.amazonaws.networkmanager#NetworkResourceMetadataKey": { - "type": "string" - }, "com.amazonaws.networkmanager#NetworkResourceMetadataMap": { "type": "map", "key": { - "target": "com.amazonaws.networkmanager#NetworkResourceMetadataKey" + "target": "com.amazonaws.networkmanager#ConstrainedString" }, "value": { - "target": "com.amazonaws.networkmanager#NetworkResourceMetadataValue" + "target": "com.amazonaws.networkmanager#ConstrainedString" } }, - "com.amazonaws.networkmanager#NetworkResourceMetadataValue": { - "type": "string" - }, "com.amazonaws.networkmanager#NetworkResourceSummary": { "type": "structure", "members": { "RegisteredGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the gateway.

              " } }, "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              " } }, "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The resource type.

              " } }, "Definition": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              Information about the resource, in JSON format. Network Manager gets this information by describing the resource using its Describe API call.

              " } }, "NameTag": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The value for the Name tag.

              " } @@ -4013,7 +7407,7 @@ "type": "structure", "members": { "DestinationCidrBlock": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              A unique identifier for the route, such as a CIDR block.

              " } @@ -4025,7 +7419,7 @@ } }, "PrefixListId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ID of the prefix list.

              " } @@ -4050,20 +7444,38 @@ "com.amazonaws.networkmanager#NetworkRouteDestination": { "type": "structure", "members": { + "CoreNetworkAttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network attachment.

              " + } + }, "TransitGatewayAttachmentId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayAttachmentId", "traits": { "smithy.api#documentation": "

              The ID of the transit gateway attachment.

              " } }, + "SegmentName": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The name of the segment.

              " + } + }, + "EdgeLocation": { + "target": "com.amazonaws.networkmanager#ExternalRegionCode", + "traits": { + "smithy.api#documentation": "

              The edge location for the network destination.

              " + } + }, "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The resource type.

              " } }, "ResourceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ID of the resource.

              " } @@ -4089,43 +7501,49 @@ "type": "structure", "members": { "RegisteredGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the gateway.

              " } }, + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              " + } + }, "AwsRegion": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ExternalRegionCode", "traits": { "smithy.api#documentation": "

              The Amazon Web Services Region.

              " } }, "AccountId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#AWSAccountId", "traits": { "smithy.api#documentation": "

              The Amazon Web Services account ID.

              " } }, "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The resource type.

              " } }, "ResourceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ID of the resource.

              " } }, "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              " } }, "Address": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The address.

              " } @@ -4147,6 +7565,15 @@ "target": "com.amazonaws.networkmanager#NetworkTelemetry" } }, + "com.amazonaws.networkmanager#NextToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + } + } + }, "com.amazonaws.networkmanager#PathComponent": { "type": "structure", "members": { @@ -4163,7 +7590,7 @@ } }, "DestinationCidrBlock": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The destination CIDR block in the route table.

              " } @@ -4179,6 +7606,183 @@ "target": "com.amazonaws.networkmanager#PathComponent" } }, + "com.amazonaws.networkmanager#ProposedSegmentChange": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.networkmanager#TagList", + "traits": { + "smithy.api#documentation": "

              The key-value tags that changed for the segment.

              " + } + }, + "AttachmentPolicyRuleNumber": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The rule number in the policy document that applies to this change.

              " + } + }, + "SegmentName": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The name of the segment to change.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a proposed segment change. In some cases, the segment change must first be evaluated and accepted.

              " + } + }, + "com.amazonaws.networkmanager#PutCoreNetworkPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#PutCoreNetworkPolicyRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#PutCoreNetworkPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicyException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Creates a new, immutable version of a core network policy. A subsequent change set is created showing the differences between the LIVE policy and the submitted policy.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/core-networks/{CoreNetworkId}/core-network-policy", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#PutCoreNetworkPolicyRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PolicyDocument": { + "target": "com.amazonaws.networkmanager#SynthesizedJsonCoreNetworkPolicyDocument", + "traits": { + "smithy.api#documentation": "

              The policy document.

              ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              a core network policy description.

              " + } + }, + "LatestVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of a core network policy.

              " + } + }, + "ClientToken": { + "target": "com.amazonaws.networkmanager#ClientToken", + "traits": { + "smithy.api#documentation": "

              The client token associated with the request.

              ", + "smithy.api#idempotencyToken": {} + } + } + } + }, + "com.amazonaws.networkmanager#PutCoreNetworkPolicyResponse": { + "type": "structure", + "members": { + "CoreNetworkPolicy": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicy", + "traits": { + "smithy.api#documentation": "

              Describes the changed core network policy.

              " + } + } + } + }, + "com.amazonaws.networkmanager#PutResourcePolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#PutResourcePolicyRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#PutResourcePolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Creates or updates a resource policy.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/resource-policy/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#PutResourcePolicyRequest": { + "type": "structure", + "members": { + "PolicyDocument": { + "target": "com.amazonaws.networkmanager#SynthesizedJsonResourcePolicyDocument", + "traits": { + "smithy.api#documentation": "

              The JSON resource policy document.

              ", + "smithy.api#required": {} + } + }, + "ResourceArn": { + "target": "com.amazonaws.networkmanager#ResourceArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the resource policy.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#PutResourcePolicyResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.networkmanager#ReasonContextKey": { "type": "string" }, @@ -4235,7 +7839,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -4243,7 +7847,7 @@ } }, "TransitGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway.

              ", "smithy.api#required": {} @@ -4262,17 +7866,78 @@ } } }, + "com.amazonaws.networkmanager#RejectAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#RejectAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#RejectAttachmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Rejects a core network attachment request.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/attachments/{AttachmentId}/reject", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#RejectAttachmentRequest": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#RejectAttachmentResponse": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.networkmanager#Attachment", + "traits": { + "smithy.api#documentation": "

              Describes the rejected attachment request.

              " + } + } + } + }, "com.amazonaws.networkmanager#Relationship": { "type": "structure", "members": { "From": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              " } }, "To": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              " } @@ -4288,34 +7953,43 @@ "target": "com.amazonaws.networkmanager#Relationship" } }, - "com.amazonaws.networkmanager#ResourceARN": { - "type": "string" + "com.amazonaws.networkmanager#ResourceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1500 + } + } }, "com.amazonaws.networkmanager#ResourceNotFoundException": { "type": "structure", "members": { "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#required": {} } }, "ResourceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The ID of the resource.

              ", "smithy.api#required": {} } }, "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The resource type.

              ", "smithy.api#required": {} } }, "Context": { - "target": "com.amazonaws.networkmanager#ExceptionContextMap" + "target": "com.amazonaws.networkmanager#ExceptionContextMap", + "traits": { + "smithy.api#documentation": "

              The specified resource could not be found.

              " + } } }, "traits": { @@ -4324,6 +7998,75 @@ "smithy.api#httpError": 404 } }, + "com.amazonaws.networkmanager#RestoreCoreNetworkPolicyVersion": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#RestoreCoreNetworkPolicyVersionRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#RestoreCoreNetworkPolicyVersionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Restores a previous policy version as a new, immutable version of a core network policy. A subsequent change set is created showing the differences between the LIVE policy and restored policy.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/core-networks/{CoreNetworkId}/core-network-policy-versions/{PolicyVersionId}/restore", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#RestoreCoreNetworkPolicyVersionRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "PolicyVersionId": { + "target": "com.amazonaws.networkmanager#Integer", + "traits": { + "smithy.api#documentation": "

              The ID of the policy version to restore.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.networkmanager#RestoreCoreNetworkPolicyVersionResponse": { + "type": "structure", + "members": { + "CoreNetworkPolicy": { + "target": "com.amazonaws.networkmanager#CoreNetworkPolicy", + "traits": { + "smithy.api#documentation": "

              Describes the restored core network policy.

              " + } + } + } + }, "com.amazonaws.networkmanager#RetryAfterSeconds": { "type": "integer", "traits": { @@ -4334,19 +8077,19 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              " } }, "OwnerAccountId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#AWSAccountId", "traits": { "smithy.api#documentation": "

              The ID of the AWS account that created the route analysis.

              " } }, "RouteAnalysisId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The ID of the route analysis.

              " } @@ -4500,19 +8243,19 @@ "type": "structure", "members": { "TransitGatewayAttachmentArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayAttachmentArn", "traits": { "smithy.api#documentation": "

              The ARN of the transit gateway attachment.

              " } }, "TransitGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayArn", "traits": { "smithy.api#documentation": "

              The ARN of the transit gateway.

              " } }, "IpAddress": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { "smithy.api#documentation": "

              The IP address.

              " } @@ -4526,13 +8269,13 @@ "type": "structure", "members": { "TransitGatewayAttachmentArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayAttachmentArn", "traits": { "smithy.api#documentation": "

              The ARN of the transit gateway attachment.

              " } }, "IpAddress": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#IPAddress", "traits": { "smithy.api#documentation": "

              The IP address.

              " } @@ -4606,10 +8349,16 @@ "type": "structure", "members": { "TransitGatewayRouteTableArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayRouteTableArn", "traits": { "smithy.api#documentation": "

              The ARN of the transit gateway route table.

              " } + }, + "CoreNetworkSegmentEdge": { + "target": "com.amazonaws.networkmanager#CoreNetworkSegmentEdgeIdentifier", + "traits": { + "smithy.api#documentation": "

              The segment edge in a core network.

              " + } } }, "traits": { @@ -4623,6 +8372,10 @@ { "value": "TRANSIT_GATEWAY_ROUTE_TABLE", "name": "TRANSIT_GATEWAY_ROUTE_TABLE" + }, + { + "value": "CORE_NETWORK_SEGMENT", + "name": "CORE_NETWORK_SEGMENT" } ] } @@ -4648,37 +8401,40 @@ "target": "com.amazonaws.networkmanager#RouteType" } }, + "com.amazonaws.networkmanager#ServerSideString": { + "type": "string" + }, "com.amazonaws.networkmanager#ServiceQuotaExceededException": { "type": "structure", "members": { "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The error message.

              ", "smithy.api#required": {} } }, "ResourceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The ID of the resource.

              " } }, "ResourceType": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The resource type.

              " } }, "LimitCode": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The limit code.

              ", "smithy.api#required": {} } }, "ServiceCode": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The service code.

              ", "smithy.api#required": {} @@ -4695,25 +8451,25 @@ "type": "structure", "members": { "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#SiteId", "traits": { "smithy.api#documentation": "

              The ID of the site.

              " } }, "SiteArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#SiteArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the site.

              " } }, "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              " } }, "Description": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The description of the site.

              " } @@ -4747,6 +8503,30 @@ "smithy.api#documentation": "

              Describes a site.

              " } }, + "com.amazonaws.networkmanager#SiteArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#SiteId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#SiteIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#SiteId" + } + }, "com.amazonaws.networkmanager#SiteList": { "type": "list", "member": { @@ -4776,6 +8556,26 @@ ] } }, + "com.amazonaws.networkmanager#SiteToSiteVpnAttachment": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.networkmanager#Attachment", + "traits": { + "smithy.api#documentation": "

              Provides details about a site-to-site VPN attachment.

              " + } + }, + "VpnConnectionArn": { + "target": "com.amazonaws.networkmanager#VpnConnectionArn", + "traits": { + "smithy.api#documentation": "

              The ARN of the site-to-site VPN attachment.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Creates a site-to-site VPN attachment.

              " + } + }, "com.amazonaws.networkmanager#StartRouteAnalysis": { "type": "operation", "input": { @@ -4817,7 +8617,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -4863,13 +8663,32 @@ } } }, - "com.amazonaws.networkmanager#String": { - "type": "string" + "com.amazonaws.networkmanager#SubnetArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + }, + "smithy.api#pattern": "^arn:[^:]{1,63}:ec2:[^:]{0,63}:[^:]{0,63}:subnet\\/subnet-[0-9a-f]{8,17}$" + } }, - "com.amazonaws.networkmanager#StringList": { + "com.amazonaws.networkmanager#SubnetArnList": { "type": "list", "member": { - "target": "com.amazonaws.networkmanager#String" + "target": "com.amazonaws.networkmanager#SubnetArn" + } + }, + "com.amazonaws.networkmanager#SynthesizedJsonCoreNetworkPolicyDocument": { + "type": "string", + "traits": { + "smithy.api#mediaType": "application/json" + } + }, + "com.amazonaws.networkmanager#SynthesizedJsonResourcePolicyDocument": { + "type": "string", + "traits": { + "smithy.api#mediaType": "application/json" } }, "com.amazonaws.networkmanager#Tag": { @@ -4951,7 +8770,7 @@ "type": "structure", "members": { "ResourceArn": { - "target": "com.amazonaws.networkmanager#ResourceARN", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource.

              ", "smithy.api#httpLabel": {}, @@ -4978,7 +8797,7 @@ "type": "structure", "members": { "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#required": {} } @@ -4997,29 +8816,77 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.networkmanager#TransitGatewayArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#TransitGatewayArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#TransitGatewayArn" + } + }, + "com.amazonaws.networkmanager#TransitGatewayAttachmentArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#TransitGatewayAttachmentId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } + } + }, + "com.amazonaws.networkmanager#TransitGatewayConnectPeerArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#TransitGatewayConnectPeerArnList": { + "type": "list", + "member": { + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerArn" + } + }, "com.amazonaws.networkmanager#TransitGatewayConnectPeerAssociation": { "type": "structure", "members": { "TransitGatewayConnectPeerArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayConnectPeerArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway Connect peer.

              " } }, "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              " } }, "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { "smithy.api#documentation": "

              The ID of the device.

              " } }, "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link.

              " } @@ -5068,13 +8935,13 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              " } }, "TransitGatewayArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#TransitGatewayArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the transit gateway.

              " } @@ -5133,7 +9000,7 @@ } }, "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The message for the state reason.

              " } @@ -5143,6 +9010,26 @@ "smithy.api#documentation": "

              Describes the status of a transit gateway registration.

              " } }, + "com.amazonaws.networkmanager#TransitGatewayRouteTableArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + } + } + }, + "com.amazonaws.networkmanager#TunnelProtocol": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "GRE", + "name": "GRE" + } + ] + } + }, "com.amazonaws.networkmanager#UntagResource": { "type": "operation", "input": { @@ -5184,7 +9071,7 @@ "type": "structure", "members": { "ResourceArn": { - "target": "com.amazonaws.networkmanager#ResourceARN", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource.

              ", "smithy.api#httpLabel": {}, @@ -5246,7 +9133,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -5254,7 +9141,7 @@ } }, "ConnectionId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConnectionId", "traits": { "smithy.api#documentation": "

              The ID of the connection.

              ", "smithy.api#httpLabel": {}, @@ -5262,19 +9149,19 @@ } }, "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link for the first device in the connection.

              " } }, "ConnectedLinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link for the second device in the connection.

              " } }, "Description": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              A description of the connection.

              \n

              Length Constraints: Maximum length of 256 characters.

              " } @@ -5292,6 +9179,73 @@ } } }, + "com.amazonaws.networkmanager#UpdateCoreNetwork": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#UpdateCoreNetworkRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#UpdateCoreNetworkResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Updates the description of a core network.

              ", + "smithy.api#http": { + "method": "PATCH", + "uri": "/core-networks/{CoreNetworkId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#UpdateCoreNetworkRequest": { + "type": "structure", + "members": { + "CoreNetworkId": { + "target": "com.amazonaws.networkmanager#CoreNetworkId", + "traits": { + "smithy.api#documentation": "

              The ID of a core network.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.networkmanager#ConstrainedString", + "traits": { + "smithy.api#documentation": "

              The description of the update.

              " + } + } + } + }, + "com.amazonaws.networkmanager#UpdateCoreNetworkResponse": { + "type": "structure", + "members": { + "CoreNetwork": { + "target": "com.amazonaws.networkmanager#CoreNetwork", + "traits": { + "smithy.api#documentation": "

              Returns information about a core network update.

              " + } + } + } + }, "com.amazonaws.networkmanager#UpdateDevice": { "type": "operation", "input": { @@ -5333,7 +9287,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -5341,7 +9295,7 @@ } }, "DeviceId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#DeviceId", "traits": { "smithy.api#documentation": "

              The ID of the device.

              ", "smithy.api#httpLabel": {}, @@ -5355,31 +9309,31 @@ } }, "Description": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              A description of the device.

              \n

              Constraints: Maximum length of 256 characters.

              " } }, "Type": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The type of the device.

              " } }, "Vendor": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The vendor of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " } }, "Model": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The model of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " } }, "SerialNumber": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The serial number of the device.

              \n

              Constraints: Maximum length of 128 characters.

              " } @@ -5388,7 +9342,7 @@ "target": "com.amazonaws.networkmanager#Location" }, "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#SiteId", "traits": { "smithy.api#documentation": "

              The ID of the site.

              " } @@ -5447,7 +9401,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of your global network.

              ", "smithy.api#httpLabel": {}, @@ -5455,7 +9409,7 @@ } }, "Description": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              A description of the global network.

              \n

              Constraints: Maximum length of 256 characters.

              " } @@ -5517,7 +9471,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -5525,7 +9479,7 @@ } }, "LinkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#LinkId", "traits": { "smithy.api#documentation": "

              The ID of the link.

              ", "smithy.api#httpLabel": {}, @@ -5533,13 +9487,13 @@ } }, "Description": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              A description of the link.

              \n

              Constraints: Maximum length of 256 characters.

              " } }, "Type": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The type of the link.

              \n

              Constraints: Maximum length of 128 characters.

              " } @@ -5551,7 +9505,7 @@ } }, "Provider": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              The provider of the link.

              \n

              Constraints: Maximum length of 128 characters.

              " } @@ -5610,7 +9564,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -5618,7 +9572,7 @@ } }, "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              ", "smithy.api#httpLabel": {}, @@ -5638,7 +9592,7 @@ "type": "structure", "members": { "ResourceArn": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ResourceArn", "traits": { "smithy.api#documentation": "

              The ARN of the resource.

              " } @@ -5692,7 +9646,7 @@ "type": "structure", "members": { "GlobalNetworkId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#GlobalNetworkId", "traits": { "smithy.api#documentation": "

              The ID of the global network.

              ", "smithy.api#httpLabel": {}, @@ -5700,7 +9654,7 @@ } }, "SiteId": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#SiteId", "traits": { "smithy.api#documentation": "

              The ID of your site.

              ", "smithy.api#httpLabel": {}, @@ -5708,7 +9662,7 @@ } }, "Description": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ConstrainedString", "traits": { "smithy.api#documentation": "

              A description of your site.

              \n

              Constraints: Maximum length of 256 characters.

              " } @@ -5732,11 +9686,90 @@ } } }, + "com.amazonaws.networkmanager#UpdateVpcAttachment": { + "type": "operation", + "input": { + "target": "com.amazonaws.networkmanager#UpdateVpcAttachmentRequest" + }, + "output": { + "target": "com.amazonaws.networkmanager#UpdateVpcAttachmentResponse" + }, + "errors": [ + { + "target": "com.amazonaws.networkmanager#AccessDeniedException" + }, + { + "target": "com.amazonaws.networkmanager#ConflictException" + }, + { + "target": "com.amazonaws.networkmanager#InternalServerException" + }, + { + "target": "com.amazonaws.networkmanager#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.networkmanager#ThrottlingException" + }, + { + "target": "com.amazonaws.networkmanager#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Updates a VPC attachment.

              ", + "smithy.api#http": { + "method": "PATCH", + "uri": "/vpc-attachments/{AttachmentId}", + "code": 200 + } + } + }, + "com.amazonaws.networkmanager#UpdateVpcAttachmentRequest": { + "type": "structure", + "members": { + "AttachmentId": { + "target": "com.amazonaws.networkmanager#AttachmentId", + "traits": { + "smithy.api#documentation": "

              The ID of the attachment.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AddSubnetArns": { + "target": "com.amazonaws.networkmanager#SubnetArnList", + "traits": { + "smithy.api#documentation": "

              Adds a subnet ARN to the VPC attachment.

              " + } + }, + "RemoveSubnetArns": { + "target": "com.amazonaws.networkmanager#SubnetArnList", + "traits": { + "smithy.api#documentation": "

              Removes a subnet ARN from the attachment.

              " + } + }, + "Options": { + "target": "com.amazonaws.networkmanager#VpcOptions", + "traits": { + "smithy.api#documentation": "

              Additional options for updating the VPC attachment.

              " + } + } + } + }, + "com.amazonaws.networkmanager#UpdateVpcAttachmentResponse": { + "type": "structure", + "members": { + "VpcAttachment": { + "target": "com.amazonaws.networkmanager#VpcAttachment", + "traits": { + "smithy.api#documentation": "

              Describes the updated VPC attachment.

              " + } + } + } + }, "com.amazonaws.networkmanager#ValidationException": { "type": "structure", "members": { "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#required": {} } @@ -5764,14 +9797,14 @@ "type": "structure", "members": { "Name": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The name of the field.

              ", "smithy.api#required": {} } }, "Message": { - "target": "com.amazonaws.networkmanager#String", + "target": "com.amazonaws.networkmanager#ServerSideString", "traits": { "smithy.api#documentation": "

              The message for the field.

              ", "smithy.api#required": {} @@ -5810,6 +9843,66 @@ } ] } + }, + "com.amazonaws.networkmanager#VpcArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + }, + "smithy.api#pattern": "^arn:[^:]{1,63}:ec2:[^:]{0,63}:[^:]{0,63}:vpc\\/vpc-[0-9a-f]{8,17}$" + } + }, + "com.amazonaws.networkmanager#VpcAttachment": { + "type": "structure", + "members": { + "Attachment": { + "target": "com.amazonaws.networkmanager#Attachment", + "traits": { + "smithy.api#documentation": "

              Provides details about the VPC attachment.

              " + } + }, + "SubnetArns": { + "target": "com.amazonaws.networkmanager#SubnetArnList", + "traits": { + "smithy.api#documentation": "

              The subnet ARNs.

              " + } + }, + "Options": { + "target": "com.amazonaws.networkmanager#VpcOptions", + "traits": { + "smithy.api#documentation": "

              Provides details about the VPC attachment.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a VPC attachment.

              " + } + }, + "com.amazonaws.networkmanager#VpcOptions": { + "type": "structure", + "members": { + "Ipv6Support": { + "target": "com.amazonaws.networkmanager#Boolean", + "traits": { + "smithy.api#documentation": "

              Indicates whether IPv6 is supported.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes the VPC options.

              " + } + }, + "com.amazonaws.networkmanager#VpnConnectionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 500 + }, + "smithy.api#pattern": "^arn:[^:]{1,63}:ec2:[^:]{0,63}:[^:]{0,63}:vpn-connection\\/vpn-[0-9a-f]{8,17}$" + } } } } diff --git a/codegen/sdk-codegen/aws-models/nimble.json b/codegen/sdk-codegen/aws-models/nimble.json index 487aa25914f2..f2a039978062 100644 --- a/codegen/sdk-codegen/aws-models/nimble.json +++ b/codegen/sdk-codegen/aws-models/nimble.json @@ -67,9 +67,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#AcceptEulasResponse": { @@ -81,9 +78,6 @@ "smithy.api#documentation": "

              A collection of EULA acceptances.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#AccessDeniedException": { @@ -195,10 +189,7 @@ } }, "com.amazonaws.nimble#ActiveDirectoryDnsIpAddress": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#ActiveDirectoryDnsIpAddressList": { "type": "list", @@ -206,7 +197,6 @@ "target": "com.amazonaws.nimble#ActiveDirectoryDnsIpAddress" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 10 @@ -314,7 +304,16 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a launch profile", - "aws.iam#requiredActions": ["ec2:CreateNetworkInterface", "ec2:RunInstances"], + "aws.iam#conditionKeys": ["aws:TagKeys", "aws:RequestTag/${TagKey}"], + "aws.iam#requiredActions": [ + "ec2:CreateNetworkInterface", + "ec2:RunInstances", + "ec2:DescribeSubnets", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkAcls", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeNatGateways" + ], "smithy.api#documentation": "

              Create a launch profile.

              ", "smithy.api#http": { "method": "POST", @@ -395,7 +394,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource" @@ -412,9 +410,6 @@ "smithy.api#documentation": "

              The launch profile.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStreamingImage": { @@ -450,6 +445,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a streaming image", + "aws.iam#conditionKeys": ["aws:TagKeys", "aws:RequestTag/${TagKey}"], "aws.iam#requiredActions": [ "ec2:ModifyInstanceAttribute", "ec2:ModifySnapshotAttribute", @@ -517,7 +513,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource" @@ -534,9 +529,6 @@ "smithy.api#documentation": "

              The streaming image.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStreamingSession": { @@ -572,6 +564,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a streaming session", + "aws.iam#conditionKeys": ["aws:TagKeys", "aws:RequestTag/${TagKey}"], "aws.iam#requiredActions": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", @@ -638,7 +631,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#LaunchProfileResource" @@ -655,9 +647,6 @@ "smithy.api#documentation": "

              The session.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStreamingSessionStream": { @@ -693,6 +682,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a streaming session stream", + "aws.iam#conditionKeys": ["nimble:requesterPrincipalId"], "smithy.api#documentation": "

              Creates a streaming session stream for a streaming session.

              \n

              After invoking this API, invoke GetStreamingSessionStream with the returned streamId\n to poll the resource until it is in state READY.

              ", "smithy.api#http": { "method": "POST", @@ -737,7 +727,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StreamingSessionResource" @@ -754,9 +743,6 @@ "smithy.api#documentation": "

              The stream.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStudio": { @@ -792,6 +778,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a studio", + "aws.iam#conditionKeys": ["aws:TagKeys", "aws:RequestTag/${TagKey}"], "aws.iam#requiredActions": ["sso:CreateManagedApplicationInstance", "iam:PassRole"], "smithy.api#documentation": "

              Create a new Studio.

              \n

              When creating a Studio, two IAM roles must be provided: the admin role and the user\n Role. These roles are assumed by your users when they log in to the Nimble Studio\n portal.

              \n

              The user role must have the AmazonNimbleStudio-StudioUser managed policy attached for\n the portal to function properly.

              \n

              The Admin Role must have the AmazonNimbleStudio-StudioAdmin managed policy attached\n for the portal to function properly.

              \n

              You may optionally specify a KMS key in the StudioEncryptionConfiguration.

              \n

              In Nimble Studio, resource names, descriptions, initialization scripts, and other\n data you provide are always encrypted at rest using an KMS key. By default, this key is\n owned by Amazon Web Services and managed on your behalf. You may provide your own KMS\n key when calling CreateStudio to encrypt this data using a key you own and\n manage.

              \n

              When providing an KMS key during studio creation, Nimble Studio creates KMS\n grants in your account to provide your studio user and admin roles access to these KMS\n keys.

              \n

              If you delete this grant, the studio will no longer be accessible to your portal\n users.

              \n

              If you delete the studio KMS key, your studio will no longer be accessible.

              ", "smithy.api#http": { @@ -834,6 +821,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to create a studio component. A studio component designates a network resource to which a launch profile will provide access", + "aws.iam#conditionKeys": ["aws:TagKeys", "aws:RequestTag/${TagKey}"], "aws.iam#requiredActions": ["ec2:DescribeSecurityGroups", "fsx:DescribeFileSystems", "ds:DescribeDirectories"], "smithy.api#documentation": "

              Creates a studio component resource.

              ", "smithy.api#http": { @@ -924,7 +912,6 @@ } }, "traits": { - "smithy.api#documentation": "", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource" @@ -941,9 +928,6 @@ "smithy.api#documentation": "

              Information about the studio component.

              " } } - }, - "traits": { - "smithy.api#documentation": "

              " } }, "com.amazonaws.nimble#CreateStudioRequest": { @@ -1002,9 +986,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#CreateStudioResponse": { @@ -1016,9 +997,6 @@ "smithy.api#documentation": "

              Information about a studio.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteLaunchProfile": { @@ -1144,10 +1122,7 @@ }, "com.amazonaws.nimble#DeleteLaunchProfileMemberResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "" - } + "members": {} }, "com.amazonaws.nimble#DeleteLaunchProfileRequest": { "type": "structure", @@ -1188,9 +1163,6 @@ "smithy.api#documentation": "

              The launch profile.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStreamingImage": { @@ -1280,9 +1252,6 @@ "smithy.api#documentation": "

              The streaming image.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStreamingSession": { @@ -1318,6 +1287,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to delete a streaming session", + "aws.iam#conditionKeys": ["nimble:requesterPrincipalId"], "aws.iam#requiredActions": ["ec2:DeleteNetworkInterface"], "smithy.api#documentation": "

              Deletes streaming session resource.

              \n

              After invoking this operation, use GetStreamingSession to poll the resource until it\n transitions to a DELETED state.

              \n

              A streaming session will count against your streaming session quota until it is marked\n DELETED.

              ", "smithy.api#http": { @@ -1366,9 +1336,6 @@ "smithy.api#documentation": "

              The session.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStudio": { @@ -1495,9 +1462,6 @@ "smithy.api#documentation": "

              Information about the studio component.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DeleteStudioMember": { @@ -1573,10 +1537,7 @@ }, "com.amazonaws.nimble#DeleteStudioMemberResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "" - } + "members": {} }, "com.amazonaws.nimble#DeleteStudioRequest": { "type": "structure", @@ -1609,29 +1570,19 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#DirectoryId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#EC2ImageId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#pattern": "^ami-[0-9A-z]+$" } }, "com.amazonaws.nimble#EC2SubnetId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#EC2SubnetIdList": { "type": "list", @@ -1639,7 +1590,6 @@ "target": "com.amazonaws.nimble#EC2SubnetId" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 6 @@ -1737,9 +1687,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#EulaAcceptance" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#EulaAcceptanceResource": { @@ -1787,24 +1734,17 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#String" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#EulaList": { "type": "list", "member": { "target": "com.amazonaws.nimble#Eula" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#EulaName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 64 @@ -1833,7 +1773,7 @@ }, "aws.iam#conditionKeys": ["aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys"], "aws.iam#disableConditionKeyInference": {}, - "smithy.api#documentation": "Represents a EULA" + "smithy.api#documentation": "Represents a EULA that is required to be accepted before the use of certain streaming images" } }, "com.amazonaws.nimble#ExceptionContext": { @@ -1912,9 +1852,6 @@ "smithy.api#documentation": "

              The EULA.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfile": { @@ -2109,9 +2046,6 @@ "smithy.api#documentation": "

              A collection of studio component summaries.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfileInitialization": { @@ -2211,9 +2145,6 @@ "smithy.api#documentation": "

              The launch profile initialization.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfileMember": { @@ -2296,9 +2227,6 @@ "smithy.api#documentation": "

              The member.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetLaunchProfileRequest": { @@ -2332,9 +2260,6 @@ "smithy.api#documentation": "

              The launch profile.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStreamingImage": { @@ -2472,9 +2397,6 @@ "smithy.api#documentation": "

              The streaming image.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStreamingSession": { @@ -2510,6 +2432,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to get a streaming session", + "aws.iam#conditionKeys": ["nimble:requesterPrincipalId"], "smithy.api#documentation": "

              Gets StreamingSession resource.

              \n

              anvoke this operation to poll for a streaming session state while creating or deleting\n a session.

              ", "smithy.api#http": { "method": "GET", @@ -2642,9 +2565,6 @@ "smithy.api#documentation": "

              The session.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStreamingSessionStream": { @@ -2680,6 +2600,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to get a streaming session", + "aws.iam#conditionKeys": ["nimble:requesterPrincipalId"], "smithy.api#documentation": "

              Gets a StreamingSessionStream for a streaming session.

              \n

              Invoke this operation to poll the resource after invoking\n CreateStreamingSessionStream.

              \n

              After the StreamingSessionStream changes to the state READY, the url property will\n contain a stream to be used with the DCV streaming client.

              ", "smithy.api#http": { "method": "GET", @@ -2756,9 +2677,6 @@ "smithy.api#documentation": "

              The stream.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStudio": { @@ -3001,9 +2919,6 @@ "smithy.api#documentation": "

              Information about the studio component.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStudioMember": { @@ -3078,9 +2993,6 @@ "smithy.api#documentation": "

              The member.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#GetStudioRequest": { @@ -3107,9 +3019,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#InternalServerErrorException": { @@ -3274,7 +3183,6 @@ "com.amazonaws.nimble#LaunchProfileId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 22 @@ -3341,7 +3249,7 @@ } }, "traits": { - "smithy.api#documentation": "

              A Launch Profile Initialization contains information required for a workstation or\n server to connect to a launch profile

              \n

              This includes scripts, endpoints, security groups, subnets, and other\n configuration.

              " + "smithy.api#documentation": "

              A Launch Profile Initialization contains information required for a workstation or\n server to connect to a launch profile.

              \n

              This includes scripts, endpoints, security groups, subnets, and other\n configuration.

              " } }, "com.amazonaws.nimble#LaunchProfileInitializationActiveDirectory": { @@ -3391,7 +3299,7 @@ } }, "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              The Launch Profile Initialization Active Directory contains information required for\n the launch profile to connect to the Active Directory.

              " } }, "com.amazonaws.nimble#LaunchProfileInitializationScript": { @@ -3417,25 +3325,19 @@ } }, "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              The Launch Profile Initialization Script is used when start streaming session\n runs.

              " } }, "com.amazonaws.nimble#LaunchProfileInitializationScriptList": { "type": "list", "member": { "target": "com.amazonaws.nimble#LaunchProfileInitializationScript" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#LaunchProfileList": { "type": "list", "member": { "target": "com.amazonaws.nimble#LaunchProfile" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#LaunchProfileMembership": { @@ -3467,7 +3369,7 @@ } }, "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              Launch profile membership enables your studio admins to delegate launch profile access\n to other studio users in the Nimble Studio portal without needing to write or\n maintain complex IAM policies. A launch profile member is a user association from your\n studio identity source who is granted permissions to a launch profile.

              \n

              A launch profile member (type USER) provides the following permissions to that launch\n profile:

              \n
                \n
              • \n

                GetLaunchProfile

                \n
              • \n
              • \n

                GetLaunchProfileInitialization

                \n
              • \n
              • \n

                GetLaunchProfileMembers

                \n
              • \n
              • \n

                GetLaunchProfileMember

                \n
              • \n
              • \n

                CreateStreamingSession

                \n
              • \n
              • \n

                GetLaunchProfileDetails

                \n
              • \n
              " } }, "com.amazonaws.nimble#LaunchProfileMembershipList": { @@ -3476,7 +3378,6 @@ "target": "com.amazonaws.nimble#LaunchProfileMembership" }, "traits": { - "smithy.api#documentation": "

              ", "smithy.api#length": { "min": 0, "max": 20 @@ -3486,7 +3387,6 @@ "com.amazonaws.nimble#LaunchProfileName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 64 @@ -3497,7 +3397,6 @@ "com.amazonaws.nimble#LaunchProfilePersona": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "USER", @@ -3509,7 +3408,6 @@ "com.amazonaws.nimble#LaunchProfilePlatform": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "LINUX", @@ -3537,9 +3435,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#LaunchProfileProtocolVersion" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#LaunchProfileResource": { @@ -3617,7 +3512,6 @@ "target": "com.amazonaws.nimble#SecurityGroupId" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1 } @@ -3626,7 +3520,6 @@ "com.amazonaws.nimble#LaunchProfileState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "CREATE_IN_PROGRESS", @@ -3666,7 +3559,6 @@ "com.amazonaws.nimble#LaunchProfileStatusCode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "LAUNCH_PROFILE_CREATED", @@ -3729,7 +3621,6 @@ "target": "com.amazonaws.nimble#String" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 100 @@ -3765,7 +3656,6 @@ "com.amazonaws.nimble#LinuxMountPoint": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 128 @@ -3863,9 +3753,6 @@ "smithy.api#documentation": "

              The token for the next set of results, or null if there are no more results.

              " } } - }, - "traits": { - "smithy.api#documentation": "

              " } }, "com.amazonaws.nimble#ListEulas": { @@ -3949,9 +3836,6 @@ "smithy.api#documentation": "

              The token for the next set of results, or null if there are no more results.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListLaunchProfileMembers": { @@ -4052,9 +3936,6 @@ "smithy.api#documentation": "

              The token for the next set of results, or null if there are no more results.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListLaunchProfiles": { @@ -4090,6 +3971,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list launch profiles", + "aws.iam#conditionKeys": ["nimble:principalId", "nimble:requesterPrincipalId"], "smithy.api#documentation": "

              List all the launch profiles a studio.

              ", "smithy.api#http": { "method": "GET", @@ -4161,9 +4043,6 @@ "smithy.api#documentation": "

              The token for the next set of results, or null if there are no more results.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStreamingImages": { @@ -4255,9 +4134,6 @@ "smithy.api#documentation": "

              A collection of streaming images.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStreamingSessions": { @@ -4293,7 +4169,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list streaming sessions", - "aws.iam#conditionKeys": ["nimble:createdBy", "nimble:ownedBy"], + "aws.iam#conditionKeys": ["nimble:createdBy", "nimble:ownedBy", "nimble:requesterPrincipalId"], "smithy.api#documentation": "

              Lists the streaming image resources in a studio.

              ", "smithy.api#http": { "method": "GET", @@ -4364,9 +4240,6 @@ "smithy.api#documentation": "

              A collection of streaming sessions.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStudioComponents": { @@ -4473,9 +4346,6 @@ "smithy.api#documentation": "

              A collection of studio components.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStudioMembers": { @@ -4511,7 +4381,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to list studio members", - "smithy.api#documentation": "

              Get all users in a given studio membership.

              ", + "smithy.api#documentation": "

              Get all users in a given studio membership.

              \n \n

              \n ListStudioMembers only returns admin members.

              \n
              ", "smithy.api#http": { "method": "GET", "uri": "/2020-08-01/studios/{studioId}/membership", @@ -4559,7 +4429,7 @@ "members": { "target": "com.amazonaws.nimble#StudioMembershipList", "traits": { - "smithy.api#documentation": "

              A list of members.

              " + "smithy.api#documentation": "

              A list of admin members.

              " } }, "nextToken": { @@ -4568,9 +4438,6 @@ "smithy.api#documentation": "

              The token for the next set of results, or null if there are no more results.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListStudios": { @@ -4648,9 +4515,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ListTagsForResource": { @@ -4751,9 +4615,6 @@ "smithy.api#documentation": "

              A collection of labels, in the form of key:value pairs, that apply to this\n resource.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#MaxResults": { @@ -4784,7 +4645,7 @@ } }, "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              A new member that is added to a launch profile.

              " } }, "com.amazonaws.nimble#NewLaunchProfileMemberList": { @@ -4793,7 +4654,6 @@ "target": "com.amazonaws.nimble#NewLaunchProfileMember" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 20 @@ -4819,7 +4679,7 @@ } }, "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              A new studio user's membership.

              " } }, "com.amazonaws.nimble#NewStudioMemberList": { @@ -4828,7 +4688,6 @@ "target": "com.amazonaws.nimble#NewStudioMember" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 20 @@ -4918,9 +4777,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#PutLaunchProfileMembersResponse": { @@ -5002,22 +4858,15 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#PutStudioMembersResponse": { "type": "structure", - "members": {}, - "traits": { - "smithy.api#documentation": "" - } + "members": {} }, "com.amazonaws.nimble#Region": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 50 @@ -5095,10 +4944,7 @@ } }, "com.amazonaws.nimble#SecurityGroupId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#ServiceQuotaExceededException": { "type": "structure", @@ -5201,6 +5047,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to start a streaming session", + "aws.iam#conditionKeys": ["nimble:requesterPrincipalId"], "aws.iam#requiredActions": ["nimble:GetLaunchProfile", "nimble:GetLaunchProfileMember"], "smithy.api#documentation": "

              Transitions sessions from the STOPPED state into the READY state. The\n START_IN_PROGRESS state is the intermediate state between the STOPPED and READY\n states.

              ", "smithy.api#http": { @@ -5323,9 +5170,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StopStreamingSession": { @@ -5361,6 +5205,7 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to stop a streaming session", + "aws.iam#conditionKeys": ["nimble:requesterPrincipalId"], "aws.iam#requiredActions": ["nimble:GetLaunchProfile"], "smithy.api#documentation": "

              Transitions sessions from the READY state into the STOPPED state. The STOP_IN_PROGRESS\n state is the intermediate state between the READY and STOPPED states.

              ", "smithy.api#http": { @@ -5429,7 +5274,7 @@ "maxSessionLengthInMinutes": { "target": "com.amazonaws.nimble#StreamConfigurationMaxSessionLengthInMinutes", "traits": { - "smithy.api#documentation": "

              The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates\n or stops the session. The default length of time is 690 minutes, and the maximum length\n of time is 30 days.

              " + "smithy.api#documentation": "

              The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

              " } }, "streamingImageIds": { @@ -5445,6 +5290,13 @@ "smithy.api#documentation": "

              Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

              \n

              If the value is missing or set to 0, your sessions can’t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

              \n

              If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

              ", "smithy.api#tags": ["stop_start_streaming_session"] } + }, + "sessionStorage": { + "target": "com.amazonaws.nimble#StreamConfigurationSessionStorage", + "traits": { + "smithy.api#documentation": "

              (Optional) The upload storage for a streaming session.

              ", + "smithy.api#tags": ["session_storage"] + } } }, "traits": { @@ -5471,7 +5323,7 @@ "maxSessionLengthInMinutes": { "target": "com.amazonaws.nimble#StreamConfigurationMaxSessionLengthInMinutes", "traits": { - "smithy.api#documentation": "

              The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates\n or stops the session. The default length of time is 690 minutes, and the maximum length\n of time is 30 days.

              " + "smithy.api#documentation": "

              The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

              " } }, "streamingImageIds": { @@ -5484,9 +5336,16 @@ "maxStoppedSessionLengthInMinutes": { "target": "com.amazonaws.nimble#StreamConfigurationMaxStoppedSessionLengthInMinutes", "traits": { - "smithy.api#documentation": "

              The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

              ", + "smithy.api#documentation": "

              Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

              \n

              If the value is missing or set to 0, your sessions can’t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

              \n

              If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

              ", "smithy.api#tags": ["stop_start_streaming_session"] } + }, + "sessionStorage": { + "target": "com.amazonaws.nimble#StreamConfigurationSessionStorage", + "traits": { + "smithy.api#documentation": "

              (Optional) The upload storage for a streaming workstation that is created using this\n launch profile.

              ", + "smithy.api#tags": ["session_storage"] + } } }, "traits": { @@ -5496,7 +5355,6 @@ "com.amazonaws.nimble#StreamConfigurationMaxSessionLengthInMinutes": { "type": "integer", "traits": { - "smithy.api#documentation": "", "smithy.api#range": { "min": 1, "max": 43200 @@ -5512,10 +5370,30 @@ } } }, + "com.amazonaws.nimble#StreamConfigurationSessionStorage": { + "type": "structure", + "members": { + "root": { + "target": "com.amazonaws.nimble#StreamingSessionStorageRoot", + "traits": { + "smithy.api#documentation": "

              The configuration for the upload storage root of the streaming session.

              " + } + }, + "mode": { + "target": "com.amazonaws.nimble#StreamingSessionStorageModeList", + "traits": { + "smithy.api#documentation": "

              Allows artists to upload files to their workstations. The only valid option is\n UPLOAD.

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              The configuration for a streaming session’s upload storage.

              " + } + }, "com.amazonaws.nimble#StreamingClipboardMode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "ENABLED", @@ -5662,7 +5540,6 @@ "com.amazonaws.nimble#StreamingImageEncryptionConfigurationKeyArn": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 4 }, @@ -5672,7 +5549,6 @@ "com.amazonaws.nimble#StreamingImageEncryptionConfigurationKeyType": { "type": "string", "traits": { - "smithy.api#documentation": "

              ", "smithy.api#enum": [ { "value": "CUSTOMER_MANAGED_KEY", @@ -5684,7 +5560,6 @@ "com.amazonaws.nimble#StreamingImageId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 22 @@ -5709,9 +5584,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#StreamingImage" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StreamingImageName": { @@ -5786,7 +5658,6 @@ "com.amazonaws.nimble#StreamingImageState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "CREATE_IN_PROGRESS", @@ -5851,6 +5722,10 @@ { "value": "INTERNAL_ERROR", "name": "INTERNAL_ERROR" + }, + { + "value": "ACCESS_DENIED", + "name": "ACCESS_DENIED" } ] } @@ -5858,7 +5733,6 @@ "com.amazonaws.nimble#StreamingInstanceType": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "g4dn.xlarge", @@ -6034,18 +5908,12 @@ } }, "com.amazonaws.nimble#StreamingSessionId": { - "type": "string", - "traits": { - "smithy.api#documentation": "" - } + "type": "string" }, "com.amazonaws.nimble#StreamingSessionList": { "type": "list", "member": { "target": "com.amazonaws.nimble#StreamingSession" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StreamingSessionResource": { @@ -6094,7 +5962,8 @@ "nimble:createdBy", "nimble:ownedBy" ], - "aws.iam#disableConditionKeyInference": {} + "aws.iam#disableConditionKeyInference": {}, + "smithy.api#documentation": "Represents a streaming session that a studio user launches applications and connects to studio components within a studio" } }, "com.amazonaws.nimble#StreamingSessionState": { @@ -6152,7 +6021,6 @@ "com.amazonaws.nimble#StreamingSessionStatusCode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "STREAMING_SESSION_READY", @@ -6217,6 +6085,70 @@ ] } }, + "com.amazonaws.nimble#StreamingSessionStorageMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "UPLOAD", + "name": "UPLOAD" + } + ] + } + }, + "com.amazonaws.nimble#StreamingSessionStorageModeList": { + "type": "list", + "member": { + "target": "com.amazonaws.nimble#StreamingSessionStorageMode" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.nimble#StreamingSessionStorageRoot": { + "type": "structure", + "members": { + "linux": { + "target": "com.amazonaws.nimble#StreamingSessionStorageRootPathLinux", + "traits": { + "smithy.api#documentation": "

              The folder path in Linux workstations where files are uploaded. The default path is\n $HOME/Downloads.

              " + } + }, + "windows": { + "target": "com.amazonaws.nimble#StreamingSessionStorageRootPathWindows", + "traits": { + "smithy.api#documentation": "

              The folder path in Windows workstations where files are uploaded. The default path is\n %HOMEPATH%\\Downloads.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The upload storage root location (folder) on streaming workstations where files are\n uploaded.

              " + } + }, + "com.amazonaws.nimble#StreamingSessionStorageRootPathLinux": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(\\$HOME|/)[/]?([A-Za-z0-9-_]+/)*([A-Za-z0-9_-]+)$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.nimble#StreamingSessionStorageRootPathWindows": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$", + "smithy.api#sensitive": {} + } + }, "com.amazonaws.nimble#StreamingSessionStream": { "type": "structure", "members": { @@ -6277,7 +6209,6 @@ "com.amazonaws.nimble#StreamingSessionStreamExpirationInSeconds": { "type": "integer", "traits": { - "smithy.api#documentation": "", "smithy.api#range": { "min": 60, "max": 3600 @@ -6287,7 +6218,6 @@ "com.amazonaws.nimble#StreamingSessionStreamState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "READY", @@ -6319,7 +6249,6 @@ "com.amazonaws.nimble#StreamingSessionStreamStatusCode": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "STREAM_CREATE_IN_PROGRESS", @@ -6642,7 +6571,6 @@ "com.amazonaws.nimble#StudioComponentDescription": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 256 @@ -6653,7 +6581,6 @@ "com.amazonaws.nimble#StudioComponentId": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 22 @@ -6696,7 +6623,6 @@ "com.amazonaws.nimble#StudioComponentInitializationScriptContent": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 1, "max": 5120 @@ -6708,15 +6634,11 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#StudioComponentInitializationScript" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StudioComponentInitializationScriptRunContext": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "SYSTEM_INITIALIZATION", @@ -6735,7 +6657,6 @@ "target": "com.amazonaws.nimble#StudioComponent" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 50 @@ -6745,7 +6666,6 @@ "com.amazonaws.nimble#StudioComponentName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 64 @@ -6793,7 +6713,7 @@ "nimble:studioId" ], "aws.iam#disableConditionKeyInference": {}, - "smithy.api#documentation": "Represents a studio component which connects a non-Nimble Studio resource in your account to your studio", + "smithy.api#documentation": "Represents a studio component that connects a non-Nimble Studio resource in your account to your studio", "smithy.api#externalDocumentation": { "CFNSourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio" } @@ -6805,7 +6725,6 @@ "target": "com.amazonaws.nimble#ScriptParameterKeyValue" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 30 @@ -6819,9 +6738,8 @@ "target": "com.amazonaws.nimble#SecurityGroupId" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { - "min": 1, + "min": 0, "max": 30 } } @@ -6917,7 +6835,6 @@ "com.amazonaws.nimble#StudioComponentSubtype": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "AWS_MANAGED_MICROSOFT_AD", @@ -6997,22 +6914,18 @@ } }, "traits": { - "smithy.api#documentation": "

              " + "smithy.api#documentation": "

              The studio component's summary.

              " } }, "com.amazonaws.nimble#StudioComponentSummaryList": { "type": "list", "member": { "target": "com.amazonaws.nimble#StudioComponentSummary" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StudioComponentType": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "ACTIVE_DIRECTORY", @@ -7040,7 +6953,6 @@ "com.amazonaws.nimble#StudioDisplayName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 64 @@ -7098,9 +7010,6 @@ "type": "list", "member": { "target": "com.amazonaws.nimble#Studio" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#StudioMembership": { @@ -7141,7 +7050,6 @@ "target": "com.amazonaws.nimble#StudioMembership" }, "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 0, "max": 20 @@ -7151,7 +7059,6 @@ "com.amazonaws.nimble#StudioName": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#length": { "min": 3, "max": 64 @@ -7162,7 +7069,6 @@ "com.amazonaws.nimble#StudioPersona": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "ADMINISTRATOR", @@ -7237,7 +7143,6 @@ "com.amazonaws.nimble#StudioState": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#enum": [ { "value": "CREATE_IN_PROGRESS", @@ -7414,7 +7319,6 @@ } }, "traits": { - "smithy.api#documentation": "

              ", "smithy.api#references": [ { "resource": "com.amazonaws.nimble#StudioResource", @@ -7460,9 +7364,6 @@ }, "value": { "target": "com.amazonaws.nimble#String" - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ThrottlingException": { @@ -7497,7 +7398,6 @@ "com.amazonaws.nimble#Timestamp": { "type": "timestamp", "traits": { - "smithy.api#documentation": "", "smithy.api#timestampFormat": "date-time" } }, @@ -7635,6 +7535,13 @@ ], "traits": { "aws.iam#actionPermissionDescription": "Grants permission to update a launch profile", + "aws.iam#requiredActions": [ + "ec2:DescribeSubnets", + "ec2:DescribeRouteTables", + "ec2:DescribeNetworkAcls", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeNatGateways" + ], "smithy.api#documentation": "

              Update a launch profile.

              ", "smithy.api#http": { "method": "PATCH", @@ -7726,9 +7633,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "

              " } }, "com.amazonaws.nimble#UpdateLaunchProfileMemberResponse": { @@ -7801,9 +7705,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateLaunchProfileResponse": { @@ -7815,9 +7716,6 @@ "smithy.api#documentation": "

              The launch profile.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStreamingImage": { @@ -7903,23 +7801,14 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStreamingImageResponse": { "type": "structure", "members": { "streamingImage": { - "target": "com.amazonaws.nimble#StreamingImage", - "traits": { - "smithy.api#documentation": "

              " - } + "target": "com.amazonaws.nimble#StreamingImage" } - }, - "traits": { - "smithy.api#documentation": "

              " } }, "com.amazonaws.nimble#UpdateStudio": { @@ -8082,9 +7971,6 @@ "smithy.api#documentation": "

              The type of the studio component.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStudioComponentResponse": { @@ -8096,9 +7982,6 @@ "smithy.api#documentation": "

              Information about the studio component.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStudioRequest": { @@ -8140,9 +8023,6 @@ "smithy.api#documentation": "

              The IAM role that Studio Users will assume when logging in to the Nimble Studio\n portal.

              " } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#UpdateStudioResponse": { @@ -8155,9 +8035,6 @@ "smithy.api#required": {} } } - }, - "traits": { - "smithy.api#documentation": "" } }, "com.amazonaws.nimble#ValidationException": { @@ -8191,7 +8068,6 @@ "com.amazonaws.nimble#WindowsMountDrive": { "type": "string", "traits": { - "smithy.api#documentation": "", "smithy.api#pattern": "^[A-Z]$" } }, @@ -8211,22 +8087,22 @@ "aws.iam#defineConditionKeys": { "nimble:ownedBy": { "type": "String", - "documentation": "Filters access based on the ownedBy request parameter or the ID of the owner of the resource", + "documentation": "Filters access by the ownedBy request parameter or the ID of the owner of the resource", "externalDocumentation": "${ContextKeysDocRoot}" }, "nimble:principalId": { "type": "String", - "documentation": "Filters access based on the principalId request parameter", + "documentation": "Filters access by the principalId request parameter", "externalDocumentation": "${ContextKeysDocRoot}" }, "nimble:createdBy": { "type": "String", - "documentation": "Filters access based on the createdBy request parameter or the ID of the creator of the resource", + "documentation": "Filters access by the createdBy request parameter or the ID of the creator of the resource", "externalDocumentation": "${ContextKeysDocRoot}" }, "nimble:studioId": { "type": "String", - "documentation": "Filters access to resources in a specific studio", + "documentation": "Filters access by a specific studio", "externalDocumentation": "${ContextKeysDocRoot}" }, "aws:RequestTag/${TagKey}": { @@ -8241,7 +8117,7 @@ }, "nimble:requesterPrincipalId": { "type": "String", - "documentation": "Filters access to Nimble Studio portal using the ID of the logged in user", + "documentation": "Filters access by the ID of the logged in user", "externalDocumentation": "${ContextKeysDocRoot}" }, "aws:ResourceTag/${TagKey}": { diff --git a/codegen/sdk-codegen/aws-models/outposts.json b/codegen/sdk-codegen/aws-models/outposts.json index b179c592e390..56a63bb8e164 100644 --- a/codegen/sdk-codegen/aws-models/outposts.json +++ b/codegen/sdk-codegen/aws-models/outposts.json @@ -585,6 +585,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#required": {} } }, @@ -742,7 +743,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

              \n The ID of the Outpost.\n

              ", + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -793,6 +794,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1024,7 +1026,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

              \n The ID of the Outpost.\n

              ", + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1068,7 +1070,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

              \n The ID of the Outpost.\n

              ", + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1183,6 +1185,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1223,6 +1226,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1918,7 +1922,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostIdOnly", "traits": { - "smithy.api#documentation": "

              The ID of the Outpost in the order.

              " + "smithy.api#documentation": "

              \n The ID of the Outpost in the order.\n

              " } }, "OrderId": { @@ -2096,7 +2100,7 @@ "OutpostId": { "target": "com.amazonaws.outposts#OutpostId", "traits": { - "smithy.api#documentation": "

              The ID of the Outpost.

              " + "smithy.api#documentation": "

              \n The ID of the Outpost.\n

              " } }, "OwnerId": { @@ -2282,6 +2286,9 @@ { "target": "com.amazonaws.outposts#UntagResource" }, + { + "target": "com.amazonaws.outposts#UpdateOutpost" + }, { "target": "com.amazonaws.outposts#UpdateSite" }, @@ -2593,7 +2600,7 @@ "com.amazonaws.outposts#SiteId": { "type": "string", "traits": { - "smithy.api#documentation": "

              The ID of the site.

              ", + "smithy.api#documentation": "

              \n The ID of the site.\n

              ", "smithy.api#length": { "min": 1, "max": 255 @@ -2860,6 +2867,73 @@ "type": "structure", "members": {} }, + "com.amazonaws.outposts#UpdateOutpost": { + "type": "operation", + "input": { + "target": "com.amazonaws.outposts#UpdateOutpostInput" + }, + "output": { + "target": "com.amazonaws.outposts#UpdateOutpostOutput" + }, + "errors": [ + { + "target": "com.amazonaws.outposts#AccessDeniedException" + }, + { + "target": "com.amazonaws.outposts#ConflictException" + }, + { + "target": "com.amazonaws.outposts#InternalServerException" + }, + { + "target": "com.amazonaws.outposts#NotFoundException" + }, + { + "target": "com.amazonaws.outposts#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              \n Updates an Outpost.\n

              ", + "smithy.api#http": { + "method": "PATCH", + "uri": "/outposts/{OutpostId}", + "code": 200 + } + } + }, + "com.amazonaws.outposts#UpdateOutpostInput": { + "type": "structure", + "members": { + "OutpostId": { + "target": "com.amazonaws.outposts#OutpostId", + "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the Outpost.\n

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Name": { + "target": "com.amazonaws.outposts#OutpostName" + }, + "Description": { + "target": "com.amazonaws.outposts#OutpostDescription" + }, + "SupportedHardwareType": { + "target": "com.amazonaws.outposts#SupportedHardwareType", + "traits": { + "smithy.api#documentation": "

              \n The type of hardware for this Outpost.\n

              " + } + } + } + }, + "com.amazonaws.outposts#UpdateOutpostOutput": { + "type": "structure", + "members": { + "Outpost": { + "target": "com.amazonaws.outposts#Outpost" + } + } + }, "com.amazonaws.outposts#UpdateSite": { "type": "operation", "input": { @@ -2934,6 +3008,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -2977,6 +3052,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3043,6 +3119,7 @@ "SiteId": { "target": "com.amazonaws.outposts#SiteId", "traits": { + "smithy.api#documentation": "

              \n The ID or the Amazon Resource Name (ARN) of the site.\n

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } diff --git a/codegen/sdk-codegen/aws-models/qldb.json b/codegen/sdk-codegen/aws-models/qldb.json index 05c5a01c4997..490e0fbefce2 100644 --- a/codegen/sdk-codegen/aws-models/qldb.json +++ b/codegen/sdk-codegen/aws-models/qldb.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.qldb#AmazonQLDB": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "QLDB", + "arnNamespace": "qldb", + "cloudFormationName": "QLDB", + "cloudTrailEventSource": "qldb.amazonaws.com", + "endpointPrefix": "qldb" + }, + "aws.auth#sigv4": { + "name": "qldb" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              The control plane for Amazon QLDB

              ", + "smithy.api#title": "Amazon QLDB", + "smithy.api#xmlNamespace": { + "uri": "http://ledger.amazonaws.com/doc/2019-01-02/" + } + }, "version": "2019-01-02", "operations": [ { @@ -93,25 +111,7 @@ { "target": "com.amazonaws.qldb#UpdateLedgerPermissionsMode" } - ], - "traits": { - "aws.api#service": { - "sdkId": "QLDB", - "arnNamespace": "qldb", - "cloudFormationName": "QLDB", - "cloudTrailEventSource": "qldb.amazonaws.com", - "endpointPrefix": "qldb" - }, - "aws.auth#sigv4": { - "name": "qldb" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              The control plane for Amazon QLDB

              ", - "smithy.api#title": "Amazon QLDB", - "smithy.api#xmlNamespace": { - "uri": "http://ledger.amazonaws.com/doc/2019-01-02/" - } - } + ] }, "com.amazonaws.qldb#Arn": { "type": "string", @@ -211,7 +211,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a new ledger in your account in the current Region.

              ", + "smithy.api#documentation": "

              Creates a new ledger in your Amazon Web Services account in the current Region.

              ", "smithy.api#http": { "method": "POST", "uri": "/ledgers", @@ -225,7 +225,7 @@ "Name": { "target": "com.amazonaws.qldb#LedgerName", "traits": { - "smithy.api#documentation": "

              The name of the ledger that you want to create. The name must be unique among all of\n the ledgers in your account in the current Region.

              \n

              Naming constraints for ledger names are defined in Quotas in Amazon QLDB\n in the Amazon QLDB Developer Guide.

              ", + "smithy.api#documentation": "

              The name of the ledger that you want to create. The name must be unique among all of the\n ledgers in your Amazon Web Services account in the current Region.

              \n

              Naming constraints for ledger names are defined in Quotas in Amazon QLDB\n in the Amazon QLDB Developer Guide.

              ", "smithy.api#required": {} } }, @@ -251,7 +251,7 @@ "KmsKey": { "target": "com.amazonaws.qldb#KmsKey", "traits": { - "smithy.api#documentation": "

              The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

              \n

              Use one of the following options to specify this parameter:

              \n
                \n
              • \n

                \n AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon Web Services\n on your behalf.

                \n
              • \n
              • \n

                \n Undefined: By default, use an Amazon Web Services owned KMS\n key.

                \n
              • \n
              • \n

                \n A valid symmetric customer managed KMS key: Use\n the specified KMS key in your account that you create, own, and manage.

                \n

                Amazon QLDB does not support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer\n Guide.

                \n
              • \n
              \n

              To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different account, you must use the key\n ARN or alias ARN.

              \n

              For example:

              \n
                \n
              • \n

                Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Key ARN:\n arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Alias name: alias/ExampleAlias\n

                \n
              • \n
              • \n

                Alias ARN:\n arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

                \n
              • \n
              \n

              For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

              " + "smithy.api#documentation": "

              The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

              \n

              Use one of the following options to specify this parameter:

              \n
                \n
              • \n

                \n AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon Web Services\n on your behalf.

                \n
              • \n
              • \n

                \n Undefined: By default, use an Amazon Web Services owned KMS\n key.

                \n
              • \n
              • \n

                \n A valid symmetric customer managed KMS key: Use\n the specified KMS key in your account that you create, own, and manage.

                \n

                Amazon QLDB does not support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer\n Guide.

                \n
              • \n
              \n

              To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different Amazon Web Services account, you must use the key\n ARN or alias ARN.

              \n

              For example:

              \n
                \n
              • \n

                Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Key ARN:\n arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Alias name: alias/ExampleAlias\n

                \n
              • \n
              • \n

                Alias ARN:\n arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

                \n
              • \n
              \n

              For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

              " } } } @@ -613,7 +613,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Exports journal contents within a date and time range from a ledger into a specified\n Amazon Simple Storage Service (Amazon S3) bucket. The data is written as files in Amazon Ion format.

              \n

              If the ledger with the given Name doesn't exist, then throws\n ResourceNotFoundException.

              \n

              If the ledger with the given Name is in CREATING status, then\n throws ResourcePreconditionNotMetException.

              \n

              You can initiate up to two concurrent journal export requests for each ledger. Beyond\n this limit, journal export requests throw LimitExceededException.

              ", + "smithy.api#documentation": "

              Exports journal contents within a date and time range from a ledger into a specified\n Amazon Simple Storage Service (Amazon S3) bucket. A journal export job can write the data objects in either the text\n or binary representation of Amazon Ion format, or in JSON Lines text\n format.

              \n

              In JSON Lines format, each journal block in the exported data object is a valid JSON\n object that is delimited by a newline. You can use this format to easily integrate JSON\n exports with analytics tools such as Glue and Amazon Athena\n because these services can parse newline-delimited JSON automatically. For more information\n about the format, see JSON Lines.

              \n

              If the ledger with the given Name doesn't exist, then throws\n ResourceNotFoundException.

              \n

              If the ledger with the given Name is in CREATING status, then\n throws ResourcePreconditionNotMetException.

              \n

              You can initiate up to two concurrent journal export requests for each ledger. Beyond\n this limit, journal export requests throw LimitExceededException.

              ", "smithy.api#http": { "method": "POST", "uri": "/ledgers/{Name}/journal-s3-exports", @@ -656,9 +656,15 @@ "RoleArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

              \n
                \n
              • \n

                Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.

                \n
              • \n
              • \n

                (Optional) Use your customer master key (CMK) in Key Management Service (KMS) for server-side\n encryption of your exported data.

                \n
              • \n
              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

              \n
                \n
              • \n

                Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.

                \n
              • \n
              • \n

                (Optional) Use your customer managed key in Key Management Service (KMS) for server-side\n encryption of your exported data.

                \n
              • \n
              \n

              To pass a role to QLDB when requesting a journal export, you must have permissions to\n perform the iam:PassRole action on the IAM role resource. This is required for\n all journal export requests.

              ", "smithy.api#required": {} } + }, + "OutputFormat": { + "target": "com.amazonaws.qldb#OutputFormat", + "traits": { + "smithy.api#documentation": "

              The output format of your exported journal data. If this parameter is not specified, the\n exported data defaults to ION_TEXT format.

              " + } } } }, @@ -1053,14 +1059,14 @@ "InclusiveStartTime": { "target": "com.amazonaws.qldb#Timestamp", "traits": { - "smithy.api#documentation": "

              The inclusive start date and time for the range of journal contents that are specified\n in the original export request.

              ", + "smithy.api#documentation": "

              The inclusive start date and time for the range of journal contents that was specified\n in the original export request.

              ", "smithy.api#required": {} } }, "ExclusiveEndTime": { "target": "com.amazonaws.qldb#Timestamp", "traits": { - "smithy.api#documentation": "

              The exclusive end date and time for the range of journal contents that are specified in\n the original export request.

              ", + "smithy.api#documentation": "

              The exclusive end date and time for the range of journal contents that was specified in\n the original export request.

              ", "smithy.api#required": {} } }, @@ -1073,9 +1079,15 @@ "RoleArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

              \n
                \n
              • \n

                Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.

                \n
              • \n
              • \n

                (Optional) Use your customer master key (CMK) in Key Management Service (KMS) for server-side\n encryption of your exported data.

                \n
              • \n
              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal export job to do the following:

              \n
                \n
              • \n

                Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.

                \n
              • \n
              • \n

                (Optional) Use your customer managed key in Key Management Service (KMS) for server-side\n encryption of your exported data.

                \n
              • \n
              ", "smithy.api#required": {} } + }, + "OutputFormat": { + "target": "com.amazonaws.qldb#OutputFormat", + "traits": { + "smithy.api#documentation": "

              The output format of the exported journal data.

              " + } } }, "traits": { @@ -1316,7 +1328,7 @@ "target": "com.amazonaws.qldb#ListJournalS3ExportsResponse" }, "traits": { - "smithy.api#documentation": "

              Returns an array of journal export job descriptions for all ledgers that are associated\n with the current account and Region.

              \n

              This action returns a maximum of MaxResults items, and is paginated so that\n you can retrieve all the items by calling ListJournalS3Exports multiple\n times.

              \n

              This action does not return any expired export jobs. For more information, see Export job expiration in the Amazon QLDB Developer\n Guide.

              ", + "smithy.api#documentation": "

              Returns an array of journal export job descriptions for all ledgers that are associated\n with the current Amazon Web Services account and Region.

              \n

              This action returns a maximum of MaxResults items, and is paginated so that\n you can retrieve all the items by calling ListJournalS3Exports multiple\n times.

              \n

              This action does not return any expired export jobs. For more information, see Export job expiration in the Amazon QLDB Developer\n Guide.

              ", "smithy.api#http": { "method": "GET", "uri": "/journal-s3-exports", @@ -1420,7 +1432,7 @@ "JournalS3Exports": { "target": "com.amazonaws.qldb#JournalS3ExportList", "traits": { - "smithy.api#documentation": "

              The array of journal export job descriptions for all ledgers that are associated with\n the current account and Region.

              " + "smithy.api#documentation": "

              The array of journal export job descriptions for all ledgers that are associated with\n the current Amazon Web Services account and Region.

              " } }, "NextToken": { @@ -1440,7 +1452,7 @@ "target": "com.amazonaws.qldb#ListLedgersResponse" }, "traits": { - "smithy.api#documentation": "

              Returns an array of ledger summaries that are associated with the current account\n and Region.

              \n

              This action returns a maximum of 100 items and is paginated so that you can\n retrieve all the items by calling ListLedgers multiple times.

              ", + "smithy.api#documentation": "

              Returns an array of ledger summaries that are associated with the current Amazon Web Services account\n and Region.

              \n

              This action returns a maximum of 100 items and is paginated so that you can\n retrieve all the items by calling ListLedgers multiple times.

              ", "smithy.api#http": { "method": "GET", "uri": "/ledgers", @@ -1478,7 +1490,7 @@ "Ledgers": { "target": "com.amazonaws.qldb#LedgerList", "traits": { - "smithy.api#documentation": "

              The array of ledger summaries that are associated with the current account and\n Region.

              " + "smithy.api#documentation": "

              The array of ledger summaries that are associated with the current Amazon Web Services account and\n Region.

              " } }, "NextToken": { @@ -1558,6 +1570,25 @@ "smithy.api#pattern": "^[A-Za-z-0-9+/=]+$" } }, + "com.amazonaws.qldb#OutputFormat": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ION_BINARY", + "name": "ION_BINARY" + }, + { + "value": "ION_TEXT", + "name": "ION_TEXT" + }, + { + "value": "JSON", + "name": "JSON" + } + ] + } + }, "com.amazonaws.qldb#ParameterName": { "type": "string" }, @@ -1705,7 +1736,7 @@ "KmsKeyArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) in Key Management Service\n (KMS). Amazon S3 does not support asymmetric CMKs.

              \n

              You must provide a KmsKeyArn if you specify SSE_KMS as the\n ObjectEncryptionType.

              \n

              \n KmsKeyArn is not required if you specify SSE_S3 as the\n ObjectEncryptionType.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of a symmetric key in Key Management Service (KMS). Amazon S3 does not\n support asymmetric KMS keys.

              \n

              You must provide a KmsKeyArn if you specify SSE_KMS as the\n ObjectEncryptionType.

              \n

              \n KmsKeyArn is not required if you specify SSE_S3 as the\n ObjectEncryptionType.

              " } } }, @@ -1812,7 +1843,7 @@ "RoleArn": { "target": "com.amazonaws.qldb#Arn", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal stream to write data records to a Kinesis Data Streams resource.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a\n journal stream to write data records to a Kinesis Data Streams resource.

              \n

              To pass a role to QLDB when requesting a journal stream, you must have permissions to\n perform the iam:PassRole action on the IAM role resource. This is required for\n all journal stream requests.

              ", "smithy.api#required": {} } }, @@ -2170,7 +2201,7 @@ "KmsKey": { "target": "com.amazonaws.qldb#KmsKey", "traits": { - "smithy.api#documentation": "

              The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

              \n

              Use one of the following options to specify this parameter:

              \n
                \n
              • \n

                \n AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon Web Services\n on your behalf.

                \n
              • \n
              • \n

                \n Undefined: Make no changes to the KMS key of the\n ledger.

                \n
              • \n
              • \n

                \n A valid symmetric customer managed KMS key: Use\n the specified KMS key in your account that you create, own, and manage.

                \n

                Amazon QLDB does not support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer\n Guide.

                \n
              • \n
              \n

              To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different account, you must use the key\n ARN or alias ARN.

              \n

              For example:

              \n
                \n
              • \n

                Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Key ARN:\n arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Alias name: alias/ExampleAlias\n

                \n
              • \n
              • \n

                Alias ARN:\n arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

                \n
              • \n
              \n

              For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

              " + "smithy.api#documentation": "

              The key in Key Management Service (KMS) to use for encryption of data at rest in the ledger. For\n more information, see Encryption at rest in\n the Amazon QLDB Developer Guide.

              \n

              Use one of the following options to specify this parameter:

              \n
                \n
              • \n

                \n AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon Web Services\n on your behalf.

                \n
              • \n
              • \n

                \n Undefined: Make no changes to the KMS key of the\n ledger.

                \n
              • \n
              • \n

                \n A valid symmetric customer managed KMS key: Use\n the specified KMS key in your account that you create, own, and manage.

                \n

                Amazon QLDB does not support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer\n Guide.

                \n
              • \n
              \n

              To specify a customer managed KMS key, you can use its key ID, Amazon Resource Name\n (ARN), alias name, or alias ARN. When using an alias name, prefix it with\n \"alias/\". To specify a key in a different Amazon Web Services account, you must use the key\n ARN or alias ARN.

              \n

              For example:

              \n
                \n
              • \n

                Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Key ARN:\n arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\n

                \n
              • \n
              • \n

                Alias name: alias/ExampleAlias\n

                \n
              • \n
              • \n

                Alias ARN:\n arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias\n

                \n
              • \n
              \n

              For more information, see Key identifiers (KeyId) in\n the Key Management Service Developer Guide.

              " } } } diff --git a/codegen/sdk-codegen/aws-models/ram.json b/codegen/sdk-codegen/aws-models/ram.json index 503c987e9b0a..139027a69c5a 100644 --- a/codegen/sdk-codegen/aws-models/ram.json +++ b/codegen/sdk-codegen/aws-models/ram.json @@ -70,7 +70,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Accepts an invitation to a resource share from another Amazon Web Services account.

              ", + "smithy.api#documentation": "

              Accepts an invitation to a resource share from another Amazon Web Services account. After you accept the\n invitation, the resources included in the resource share are available to interact with in the\n relevant Amazon Web Services Management Consoles and tools.

              ", "smithy.api#http": { "method": "POST", "uri": "/acceptresourceshareinvitation", @@ -84,14 +84,14 @@ "resourceShareInvitationArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the invitation.

              ", + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the invitation that you want to accept.

              ", "smithy.api#required": {} } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } } } @@ -102,19 +102,34 @@ "resourceShareInvitation": { "target": "com.amazonaws.ram#ResourceShareInvitation", "traits": { - "smithy.api#documentation": "

              Information about the invitation.

              " + "smithy.api#documentation": "

              An object that contains information about the specified invitation.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } }, "com.amazonaws.ram#AmazonResourceSharing": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "RAM", + "arnNamespace": "ram", + "cloudFormationName": "RAM", + "cloudTrailEventSource": "ram.amazonaws.com", + "endpointPrefix": "ram" + }, + "aws.auth#sigv4": { + "name": "ram" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              This is the Resource Access Manager API Reference. This documentation provides\n descriptions and syntax for each of the actions and data types in RAM. RAM is a\n service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts. If you\n have multiple Amazon Web Services accounts, you can use RAM to share those resources with other\n accounts. If you use Organizations to manage your accounts, then you share your resources\n with your organization or organizational units (OUs). For supported resource types, you\n can also share resources with individual Identity and Access Management (IAM) roles an users.

              \n \n

              To learn more about RAM, see the following resources:

              \n ", + "smithy.api#title": "AWS Resource Access Manager" + }, "version": "2018-01-04", "operations": [ { @@ -189,22 +204,7 @@ { "target": "com.amazonaws.ram#UpdateResourceShare" } - ], - "traits": { - "aws.api#service": { - "sdkId": "RAM", - "arnNamespace": "ram", - "cloudFormationName": "RAM", - "cloudTrailEventSource": "ram.amazonaws.com", - "endpointPrefix": "ram" - }, - "aws.auth#sigv4": { - "name": "ram" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              This is the Resource Access Manager API Reference. This documentation provides\n descriptions and syntax for each of the actions and data types in RAM. RAM is a\n service that helps you securely share your Amazon Web Services resources across Amazon Web Services accounts and\n within your organization or organizational units (OUs) in Organizations. For supported\n resource types, you can also share resources with IAM roles and IAM users. If you have\n multiple Amazon Web Services accounts, you can use RAM to share those resources with other\n accounts.

              \n\n

              To learn more about RAM, see the following resources:

              \n\n ", - "smithy.api#title": "AWS Resource Access Manager" - } + ] }, "com.amazonaws.ram#AssociateResourceShare": { "type": "operation", @@ -242,12 +242,15 @@ { "target": "com.amazonaws.ram#ServiceUnavailableException" }, + { + "target": "com.amazonaws.ram#ThrottlingException" + }, { "target": "com.amazonaws.ram#UnknownResourceException" } ], "traits": { - "smithy.api#documentation": "

              Associates the specified resource share with the specified principals and resources.

              ", + "smithy.api#documentation": "

              Adds the specified list of principals and list of resources to a resource share. Principals that\n already have access to this resource share immediately receive access to the added resources.\n Newly added principals immediately receive access to the resources shared in this resource share.

              ", "smithy.api#http": { "method": "POST", "uri": "/associateresourceshare", @@ -287,7 +290,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Associates a permission with a resource share.

              ", + "smithy.api#documentation": "

              Adds or replaces the RAM permission for a resource type included in a resource share. You can\n have exactly one permission associated with each resource type in the resource share. You can add\n a new RAM permission only if there are currently no resources of that resource type\n currently in the resource share.

              ", "smithy.api#http": { "method": "POST", "uri": "/associateresourcesharepermission", @@ -301,33 +304,33 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share to which you want to add or replace\n permissions.

              ", "smithy.api#required": {} } }, "permissionArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the RAM permission to associate with the\n resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the RAM permission to associate with the resource share.\n To find the ARN for a permission, use either the ListPermissions operation or go to the Permissions library page in the RAM console and \n then choose the name of the permission. The ARN is displayed on the detail page.

              ", "smithy.api#required": {} } }, "replace": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether the permission should replace the permissions that are currently\n associated with the resource share. Use true to replace the current permissions. Use\n false to add the permission to the current permission.

              " + "smithy.api#documentation": "

              Specifies whether the specified permission should replace or add to the existing\n permission associated with the resource share. Use true to replace the current\n permissions. Use false to add the permission to the current permission. The\n default value is false.

              \n \n

              A resource share can have only one permission per resource type. If a resource share already has a\n permission for the specified resource type and you don't set replace to\n true then the operation returns an error. This helps prevent\n accidental overwriting of a permission.

              \n
              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } }, "permissionVersion": { "target": "com.amazonaws.ram#Integer", "traits": { - "smithy.api#documentation": "

              The version of the RAM permissions to associate with the resource share.

              " + "smithy.api#documentation": "

              Specifies the version of the RAM permission to associate with the resource share. If you don't\n specify this parameter, the operation uses the version designated as the default.

              " } } } @@ -338,13 +341,13 @@ "returnValue": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether the request succeeded.

              " + "smithy.api#documentation": "

              A return value of true indicates that the request succeeded. \n A value of false indicates that the request failed.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -355,26 +358,26 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share that you want to add principals or resources\n to.

              ", "smithy.api#required": {} } }, "resourceArns": { "target": "com.amazonaws.ram#ResourceArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the resources.

              " + "smithy.api#documentation": "

              Specifies a list of Amazon Resource Names (ARNs) of the resources that you want to share. This can be\n null if you want to add only principals.

              " } }, "principals": { "target": "com.amazonaws.ram#PrincipalArnOrIdList", "traits": { - "smithy.api#documentation": "

              The principals to associate with the resource share. The possible values are:

              \n
                \n
              • \n

                An Amazon Web Services account ID

                \n
              • \n
              • \n

                An Amazon Resource Name (ARN) of an organization in Organizations

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations

                \n
              • \n
              • \n

                An ARN of an IAM role

                \n
              • \n
              • \n

                An ARN of an IAM user

                \n
              • \n
              \n \n

              Not all resource types can be shared with IAM roles and IAM users. For more\n information, see Sharing with IAM roles and IAM users in the Resource Access Manager User\n Guide.

              \n
              " + "smithy.api#documentation": "

              Specifies a list of principals to whom you want to the resource share. This can be\n null if you want to add only resources.

              \n

              What the principals can do with the resources in the share is determined by the RAM\n permissions that you associate with the resource share. See AssociateResourceSharePermission.

              \n

              You can include the following values:

              \n
                \n
              • \n

                An Amazon Web Services account ID, for example: 123456789012\n

                \n
              • \n
              • \n

                An Amazon Resoure Name (ARN) of an organization in Organizations, for example:\n organizations::123456789012:organization/o-exampleorgid\n

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations, for example:\n organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123\n

                \n
              • \n
              • \n

                An ARN of an IAM role, for example:\n iam::123456789012:role/rolename\n

                \n
              • \n
              • \n

                An ARN of an IAM user, for example:\n iam::123456789012user/username\n

                \n
              • \n
              \n \n

              Not all resource types can be shared with IAM roles and users. \n For more information, see Sharing with IAM roles and users in the Resource Access Manager User\n Guide.

              \n
              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } } } @@ -385,13 +388,13 @@ "resourceShareAssociations": { "target": "com.amazonaws.ram#ResourceShareAssociationList", "traits": { - "smithy.api#documentation": "

              Information about the associations.

              " + "smithy.api#documentation": "

              An array of objects that contain information about the associations.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -446,7 +449,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a resource share. You must provide a list of the Amazon Resource Names (ARNs) for the\n resources you want to share. You must also specify who you want to share the resources\n with, and the permissions that you grant them.

              \n \n

              Sharing a resource makes it available for use by principals outside of the\n Amazon Web Services account that created the resource. Sharing doesn't change any permissions or\n quotas that apply to the resource in the account that created it.

              \n
              ", + "smithy.api#documentation": "

              Creates a resource share. You can provide a list of the Amazon Resource Names (ARNs) for the resources that you\n want to share, a list of principals you want to share the resources with, and the\n permissions to grant those principals.

              \n \n

              Sharing a resource makes it available for use by principals outside of the\n Amazon Web Services account that created the resource. Sharing doesn't change any permissions or\n quotas that apply to the resource in the account that created it.

              \n
              ", "smithy.api#http": { "method": "POST", "uri": "/createresourceshare", @@ -460,44 +463,44 @@ "name": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The name of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the name of the resource share.

              ", "smithy.api#required": {} } }, "resourceArns": { "target": "com.amazonaws.ram#ResourceArnList", "traits": { - "smithy.api#documentation": "

              The ARNs of the resources to associate with the resource share.

              " + "smithy.api#documentation": "

              Specifies a list of one or more ARNs of the resources to associate with the\n resource share.

              " } }, "principals": { "target": "com.amazonaws.ram#PrincipalArnOrIdList", "traits": { - "smithy.api#documentation": "

              The principals to associate with the resource share. The possible values are:

              \n
                \n
              • \n

                An Amazon Web Services account ID

                \n
              • \n
              • \n

                An Amazon Resource Name (ARN) of an organization in Organizations

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations

                \n
              • \n
              • \n

                An ARN of an IAM role

                \n
              • \n
              • \n

                An ARN of an IAM user

                \n
              • \n
              \n \n

              Not all resource types can be shared with IAM roles and IAM users. For more\n information, see Sharing with IAM roles and IAM users in the Resource Access Manager User\n Guide.

              \n
              " + "smithy.api#documentation": "

              Specifies a list of one or more principals to associate with the resource share.

              \n

              You can include the following values:

              \n
                \n
              • \n

                An Amazon Web Services account ID, for example: 123456789012\n

                \n
              • \n
              • \n

                An Amazon Resoure Name (ARN) of an organization in Organizations, for example:\n organizations::123456789012:organization/o-exampleorgid\n

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations, for example:\n organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123\n

                \n
              • \n
              • \n

                An ARN of an IAM role, for example:\n iam::123456789012:role/rolename\n

                \n
              • \n
              • \n

                An ARN of an IAM user, for example:\n iam::123456789012user/username\n

                \n
              • \n
              \n \n

              Not all resource types can be shared with IAM roles and users. \n For more information, see Sharing with IAM roles and users in the Resource Access Manager User\n Guide.

              \n
              " } }, "tags": { "target": "com.amazonaws.ram#TagList", "traits": { - "smithy.api#documentation": "

              One or more tags.

              " + "smithy.api#documentation": "

              Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to\n the resources associated with the resource share.

              " } }, "allowExternalPrincipals": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether principals outside your organization in Organizations can be associated\n with a resource share.

              " + "smithy.api#documentation": "

              Specifies whether principals outside your organization in Organizations can be associated\n with a resource share. A value of true lets you share with individual Amazon Web Services accounts\n that are not in your organization. A value of false\n only has meaning if your account is a member of an Amazon Web Services Organization. The default value\n is true.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } }, "permissionArns": { "target": "com.amazonaws.ram#PermissionArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the permissions to associate with the resource share. If you\n do not specify an ARN for the permission, RAM automatically attaches the default\n version of the permission for each resource type. Only one permission can be associated\n with each resource type in a resource share.

              " + "smithy.api#documentation": "

              Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do\n not specify an ARN for the permission, RAM automatically attaches the default version\n of the permission for each resource type. You can associate only one permission with\n each resource type included in the resource share.

              " } } } @@ -508,13 +511,13 @@ "resourceShare": { "target": "com.amazonaws.ram#ResourceShare", "traits": { - "smithy.api#documentation": "

              Information about the resource share.

              " + "smithy.api#documentation": "

              An object with information about the new resource share.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -560,7 +563,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes the specified resource share.

              ", + "smithy.api#documentation": "

              Deletes the specified resource share. This doesn't delete any of the resources that were\n associated with the resource share; it only stops the sharing of those resources outside of the\n Amazon Web Services account that created them.

              ", "smithy.api#http": { "method": "DELETE", "uri": "/deleteresourceshare", @@ -574,7 +577,7 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share to delete.

              ", "smithy.api#httpQuery": "resourceShareArn", "smithy.api#required": {} } @@ -582,7 +585,7 @@ "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              ", + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              ", "smithy.api#httpQuery": "clientToken" } } @@ -594,14 +597,14 @@ "returnValue": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether the request succeeded.

              ", + "smithy.api#documentation": "

              A return value of true indicates that the request succeeded. \n A value of false indicates that the request failed.

              ", "smithy.api#xmlName": "return" } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -690,7 +693,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Disassociates an RAM permission from a resource share.

              ", + "smithy.api#documentation": "

              Disassociates an RAM permission from a resource share. Permission changes take effect\n immediately. You can remove a RAM permission from a resource share only if there are currently\n no resources of the relevant resource type currently attached to the resource share.

              ", "smithy.api#http": { "method": "POST", "uri": "/disassociateresourcesharepermission", @@ -704,21 +707,21 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource share from which you want to disassociate a permission.

              ", "smithy.api#required": {} } }, "permissionArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the permission to disassociate from the resource share.

              ", + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the permission to disassociate from the resource share. Changes to permissions\n take effect immediately.

              ", "smithy.api#required": {} } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } } } @@ -729,13 +732,13 @@ "returnValue": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether the request succeeded.

              " + "smithy.api#documentation": "

              A return value of true indicates that the request succeeded. \n A value of false indicates that the request failed.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -746,26 +749,26 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies Amazon Resoure Name (ARN) of the resource share that you want to remove resources from.

              ", "smithy.api#required": {} } }, "resourceArns": { "target": "com.amazonaws.ram#ResourceArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the resources.

              " + "smithy.api#documentation": "

              Specifies a list of Amazon Resource Names (ARNs) for one or more resources that you want to remove from\n the resource share. After the operation runs, these resources are no longer shared with principals\n outside of the Amazon Web Services account that created the resources.

              " } }, "principals": { "target": "com.amazonaws.ram#PrincipalArnOrIdList", "traits": { - "smithy.api#documentation": "

              The principals.

              " + "smithy.api#documentation": "

              Specifies a list of one or more principals that no longer are to have access to the\n resources in this resource share.

              \n

              You can include the following values:

              \n
                \n
              • \n

                An Amazon Web Services account ID, for example: 123456789012\n

                \n
              • \n
              • \n

                An Amazon Resoure Name (ARN) of an organization in Organizations, for example:\n organizations::123456789012:organization/o-exampleorgid\n

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations, for example:\n organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123\n

                \n
              • \n
              • \n

                An ARN of an IAM role, for example:\n iam::123456789012:role/rolename\n

                \n
              • \n
              • \n

                An ARN of an IAM user, for example:\n iam::123456789012user/username\n

                \n
              • \n
              \n \n

              Not all resource types can be shared with IAM roles and users. \n For more information, see Sharing with IAM roles and users in the Resource Access Manager User\n Guide.

              \n
              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } } } @@ -776,13 +779,13 @@ "resourceShareAssociations": { "target": "com.amazonaws.ram#ResourceShareAssociationList", "traits": { - "smithy.api#documentation": "

              Information about the associations.

              " + "smithy.api#documentation": "

              An array of objects that contain information about the updated associations for this\n resource share.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -807,7 +810,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Enables resource sharing within your organization in Organizations.

              \n

              The caller must be the master account for the organization.

              ", + "smithy.api#documentation": "

              Enables resource sharing within your organization in Organizations. Calling this operation\n enables RAM to retrieve information about the organization and its structure. This\n lets you share resources with all of the accounts in an organization by specifying the\n organization's ID, or all of the accounts in an organizational unit (OU) by specifying\n the OU's ID. Until you enable sharing within the organization, you can specify only\n individual Amazon Web Services accounts, or for supported resource types, IAM users and\n roles.

              \n

              You must call this operation from an IAM user or role in the organization's\n management account.

              ", "smithy.api#http": { "method": "POST", "uri": "/enablesharingwithawsorganization", @@ -825,7 +828,7 @@ "returnValue": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether the request succeeded.

              ", + "smithy.api#documentation": "

              A return value of true indicates that the request succeeded. \n A value of false indicates that the request failed.

              ", "smithy.api#xmlName": "return" } } @@ -874,14 +877,14 @@ "permissionArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the permission.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the permission whose contents you want to retrieve.\n To find the ARN for a permission, use either the ListPermissions operation or go to the Permissions library page in the RAM console and \n then choose the name of the permission. The ARN is displayed on the detail page.

              ", "smithy.api#required": {} } }, "permissionVersion": { "target": "com.amazonaws.ram#Integer", "traits": { - "smithy.api#documentation": "

              The identifier for the version of the permission.

              " + "smithy.api#documentation": "

              Specifies identifier for the version of the RAM permission to retrieve. If you don't\n specify this parameter, the operation retrieves the default version.

              " } } } @@ -892,7 +895,7 @@ "permission": { "target": "com.amazonaws.ram#ResourceSharePermissionDetail", "traits": { - "smithy.api#documentation": "

              Information about the permission.

              " + "smithy.api#documentation": "

              An object that contains information about the permission.

              " } } } @@ -926,7 +929,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the policies for the specified resources that you own and have shared.

              ", + "smithy.api#documentation": "

              Retrieves the resource policies for the specified resources that you own and have\n shared.

              ", "smithy.api#http": { "method": "POST", "uri": "/getresourcepolicies", @@ -945,26 +948,26 @@ "resourceArns": { "target": "com.amazonaws.ram#ResourceArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the resources.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resource Names (ARNs) of the resources whose policies you want to retrieve.

              ", "smithy.api#required": {} } }, "principal": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The principal.

              " + "smithy.api#documentation": "

              Specifies the principal.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } } } @@ -975,13 +978,13 @@ "policies": { "target": "com.amazonaws.ram#PolicyList", "traits": { - "smithy.api#documentation": "

              A key policy document, in JSON format.

              " + "smithy.api#documentation": "

              An array of resource policy documents in JSON format.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1018,7 +1021,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the resources or principals for the resource shares that you own.

              ", + "smithy.api#documentation": "

              Retrieves the resource and principal associations for resource shares that you own.

              ", "smithy.api#http": { "method": "POST", "uri": "/getresourceshareassociations", @@ -1037,44 +1040,44 @@ "associationType": { "target": "com.amazonaws.ram#ResourceShareAssociationType", "traits": { - "smithy.api#documentation": "

              The association type. Specify PRINCIPAL to list the principals that are\n associated with the specified resource share. Specify RESOURCE to list the resources\n that are associated with the specified resource share.

              ", + "smithy.api#documentation": "

              Specifies whether you want to retrieve the associations that involve a specified\n resource or principal.

              \n
                \n
              • \n

                \n PRINCIPAL – list the principals that are associated with\n the specified resource share.

                \n
              • \n
              • \n

                \n RESOURCE – list the resources that are associated with the\n specified resource share.

                \n
              • \n
              ", "smithy.api#required": {} } }, "resourceShareArns": { "target": "com.amazonaws.ram#ResourceShareArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARN) of the resource shares.

              " + "smithy.api#documentation": "

              Specifies a list of Amazon Resource Names (ARNs) of the resource share whose associations you want to\n retrieve.

              " } }, "resourceArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource. You cannot specify this parameter if\n the association type is PRINCIPAL.

              " + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource whose resource shares you want to retrieve.

              \n

              You cannot specify this parameter if the association type is\n PRINCIPAL.

              " } }, "principal": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The principal. You cannot specify this parameter if the association type is\n RESOURCE.

              " + "smithy.api#documentation": "

              Specifies the ID of the principal whose resource shares you want to retrieve. This can be an\n Amazon Web Services account ID, an organization ID, an organizational unit ID, or the Amazon Resoure Name (ARN) of an\n individual IAM user or role.

              \n

              You cannot specify this parameter if the association type is\n RESOURCE.

              " } }, "associationStatus": { "target": "com.amazonaws.ram#ResourceShareAssociationStatus", "traits": { - "smithy.api#documentation": "

              The association status.

              " + "smithy.api#documentation": "

              Specifies that you want to retrieve only associations with this status.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } } } @@ -1085,13 +1088,13 @@ "resourceShareAssociations": { "target": "com.amazonaws.ram#ResourceShareAssociationList", "traits": { - "smithy.api#documentation": "

              Information about the associations.

              " + "smithy.api#documentation": "

              An array of objects that contain the details about the associations.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1131,7 +1134,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the invitations that you have received for resource shares.

              ", + "smithy.api#documentation": "

              Retrieves details about invitations that you have received for resource shares.

              ", "smithy.api#http": { "method": "POST", "uri": "/getresourceshareinvitations", @@ -1150,25 +1153,25 @@ "resourceShareInvitationArns": { "target": "com.amazonaws.ram#ResourceShareInvitationArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARN) of the invitations.

              " + "smithy.api#documentation": "

              Specifies the Amazon Resource Names (ARNs) of the resource share invitations you want information about.

              " } }, "resourceShareArns": { "target": "com.amazonaws.ram#ResourceShareArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARN) of the resource shares.

              " + "smithy.api#documentation": "

              Specifies that you want details about invitations only for the resource shares described by this\n list of Amazon Resource Names (ARNs)\n

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } } } @@ -1179,13 +1182,13 @@ "resourceShareInvitations": { "target": "com.amazonaws.ram#ResourceShareInvitationList", "traits": { - "smithy.api#documentation": "

              Information about the invitations.

              " + "smithy.api#documentation": "

              An array of objects that contain the details about the invitations.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1219,7 +1222,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Gets the resource shares that you own or the resource shares that are shared with you.

              ", + "smithy.api#documentation": "

              Retrieves details about the resource shares that you own or that are shared with you.

              ", "smithy.api#http": { "method": "POST", "uri": "/getresourceshares", @@ -1238,50 +1241,50 @@ "resourceShareArns": { "target": "com.amazonaws.ram#ResourceShareArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the resource shares.

              " + "smithy.api#documentation": "

              Specifies the Amazon Resource Names (ARNs) of individual resource shares that you want information about.

              " } }, "resourceShareStatus": { "target": "com.amazonaws.ram#ResourceShareStatus", "traits": { - "smithy.api#documentation": "

              The status of the resource share.

              " + "smithy.api#documentation": "

              Specifies that you want to retrieve details of only those resource shares that have this\n status.

              " } }, "resourceOwner": { "target": "com.amazonaws.ram#ResourceOwner", "traits": { - "smithy.api#documentation": "

              The type of owner.

              ", + "smithy.api#documentation": "

              Specifies that you want to retrieve details of only those resource shares that match the\n following:

              \n
                \n
              • \n

                \n \n SELF\n – resources that you\n are sharing

                \n
              • \n
              • \n

                \n \n OTHER-ACCOUNTS\n –\n resources that other accounts share with you

                \n
              • \n
              ", "smithy.api#required": {} } }, "name": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The name of the resource share.

              " + "smithy.api#documentation": "

              Specifies the name of an individual resource share that you want to retrieve details\n about.

              " } }, "tagFilters": { "target": "com.amazonaws.ram#TagFilters", "traits": { - "smithy.api#documentation": "

              One or more tag filters.

              " + "smithy.api#documentation": "

              Specifies that you want to retrieve details of only those resource shares that match the\n specified tag keys and values.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } }, "permissionArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the RAM permission that is associated with the\n resource share.

              " + "smithy.api#documentation": "

              Specifies that you want to retrieve details of only those resource shares that use the RAM\n permission with this Amazon Resoure Name (ARN).

              " } } } @@ -1292,13 +1295,13 @@ "resourceShares": { "target": "com.amazonaws.ram#ResourceShareList", "traits": { - "smithy.api#documentation": "

              Information about the resource shares.

              " + "smithy.api#documentation": "

              An array of objects that contain the information about the resource shares.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1318,7 +1321,7 @@ "code": "IdempotentParameterMismatch", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              A client token input parameter was reused with an operation, but at least one of the\n other input parameters is different from the previous call to the operation.

              ", + "smithy.api#documentation": "

              The client token input parameter was matched one used with a previous call to the\n operation, but at least one of the other input parameters is different from the previous\n call.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1344,7 +1347,7 @@ "code": "InvalidClientToken", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              A client token is not valid.

              ", + "smithy.api#documentation": "

              The client token is not valid.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1364,7 +1367,7 @@ "code": "InvalidMaxResults", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The specified value for MaxResults is not valid.

              ", + "smithy.api#documentation": "

              The specified value for MaxResults is not valid.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1384,7 +1387,7 @@ "code": "InvalidNextToken", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The specified value for NextToken is not valid.

              ", + "smithy.api#documentation": "

              The specified value for NextToken is not valid.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -1487,7 +1490,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists the resources in a resource share that is shared with you but that the invitation is still\n pending for.

              ", + "smithy.api#documentation": "

              Lists the resources in a resource share that is shared with you but for which the invitation is\n still PENDING. That means that you haven't accepted or rejected the\n invitation and the invitation hasn't expired.

              ", "smithy.api#http": { "method": "POST", "uri": "/listpendinginvitationresources", @@ -1506,20 +1509,26 @@ "resourceShareInvitationArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the invitation.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the invitation. You can use GetResourceShareInvitations to find the ARN of the invitation.

              ", "smithy.api#required": {} } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " + } + }, + "resourceRegionScope": { + "target": "com.amazonaws.ram#ResourceRegionScopeFilter", + "traits": { + "smithy.api#documentation": "

              Specifies that you want the results to include only \n resources that have the specified scope.

              \n
                \n
              • \n

                \n ALL – the results include both global and \n regional resources or resource types.

                \n
              • \n
              • \n

                \n GLOBAL – the results include only global \n resources or resource types.

                \n
              • \n
              • \n

                \n REGIONAL – the results include only regional \n resources or resource types.

                \n
              • \n
              \n

              The default value is ALL.

              " } } } @@ -1530,13 +1539,13 @@ "resources": { "target": "com.amazonaws.ram#ResourceList", "traits": { - "smithy.api#documentation": "

              Information about the resources included the resource share.

              " + "smithy.api#documentation": "

              An array of objects that contain the information about the resources included the\n specified resource share.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1567,7 +1576,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists the RAM permissions.

              ", + "smithy.api#documentation": "

              Retrieves a list of available RAM permissions that you can use for the supported\n resource types.

              ", "smithy.api#http": { "method": "POST", "uri": "/listpermissions", @@ -1586,19 +1595,19 @@ "resourceType": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              Specifies the resource type for which to list permissions. For example, to list only\n permissions that apply to EC2 subnets, specify ec2:Subnet.

              " + "smithy.api#documentation": "

              Specifies that you want to list permissions for only the specified resource type. For\n example, to list only permissions that apply to EC2 subnets, specify\n ec2:Subnet. You can use the ListResourceTypes\n operation to get the specific string required.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } } } @@ -1609,13 +1618,13 @@ "permissions": { "target": "com.amazonaws.ram#ResourceSharePermissionList", "traits": { - "smithy.api#documentation": "

              Information about the permissions.

              " + "smithy.api#documentation": "

              An array of objects with information about the permissions.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1649,7 +1658,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists the principals that you have shared resources with or that have shared resources\n with you.

              ", + "smithy.api#documentation": "

              Lists the principals that you are sharing resources with or that are sharing resources\n with you.

              ", "smithy.api#http": { "method": "POST", "uri": "/listprincipals", @@ -1668,44 +1677,44 @@ "resourceOwner": { "target": "com.amazonaws.ram#ResourceOwner", "traits": { - "smithy.api#documentation": "

              The type of owner.

              ", + "smithy.api#documentation": "

              Specifies that you want to list information for only resource shares that match the\n following:

              \n
                \n
              • \n

                \n \n SELF\n – resources that you\n are sharing

                \n
              • \n
              • \n

                \n \n OTHER-ACCOUNTS\n –\n resources that other accounts share with you

                \n
              • \n
              ", "smithy.api#required": {} } }, "resourceArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource.

              " + "smithy.api#documentation": "

              Specifies that you want to list principal information for the resource share with the specified\n Amazon Resoure Name (ARN).

              " } }, "principals": { "target": "com.amazonaws.ram#PrincipalArnOrIdList", "traits": { - "smithy.api#documentation": "

              The principals.

              " + "smithy.api#documentation": "

              Specifies that you want to list information for only the listed principals.

              \n

              You can include the following values:

              \n
                \n
              • \n

                An Amazon Web Services account ID, for example: 123456789012\n

                \n
              • \n
              • \n

                An Amazon Resoure Name (ARN) of an organization in Organizations, for example:\n organizations::123456789012:organization/o-exampleorgid\n

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations, for example:\n organizations::123456789012:ou/o-exampleorgid/ou-examplerootid-exampleouid123\n

                \n
              • \n
              • \n

                An ARN of an IAM role, for example:\n iam::123456789012:role/rolename\n

                \n
              • \n
              • \n

                An ARN of an IAM user, for example:\n iam::123456789012user/username\n

                \n
              • \n
              \n \n

              Not all resource types can be shared with IAM roles and users. \n For more information, see Sharing with IAM roles and users in the Resource Access Manager User\n Guide.

              \n
              " } }, "resourceType": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The resource type.

              \n

              Valid values: acm-pca:CertificateAuthority | appmesh:Mesh | codebuild:Project | codebuild:ReportGroup | ec2:CapacityReservation | ec2:DedicatedHost | ec2:LocalGatewayRouteTable | ec2:PrefixList | ec2:Subnet | ec2:TrafficMirrorTarget | ec2:TransitGateway | imagebuilder:Component | imagebuilder:Image | imagebuilder:ImageRecipe | imagebuilder:ContainerRecipe | glue:Catalog | glue:Database | glue:Table | license-manager:LicenseConfiguration I network-firewall:FirewallPolicy | network-firewall:StatefulRuleGroup | network-firewall:StatelessRuleGroup | outposts:Outpost | resource-groups:Group | rds:Cluster | route53resolver:FirewallRuleGroup |route53resolver:ResolverQueryLogConfig | route53resolver:ResolverRule | s3-outposts:Outpost | ssm-contacts:Contact | ssm-incidents:ResponsePlan\n

              " + "smithy.api#documentation": "

              Specifies that you want to list information for only principals associated with resource shares\n that include the specified resource type.

              \n

              For a list of valid values, query the ListResourceTypes operation.

              " } }, "resourceShareArns": { "target": "com.amazonaws.ram#ResourceShareArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARN) of the resource shares.

              " + "smithy.api#documentation": "

              Specifies that you want to list information for only principals associated with the\n resource shares specified by a list the Amazon Resource Names (ARNs).

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } } } @@ -1716,13 +1725,13 @@ "principals": { "target": "com.amazonaws.ram#PrincipalList", "traits": { - "smithy.api#documentation": "

              The principals.

              " + "smithy.api#documentation": "

              An array of objects that contain the details about the principals.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1778,20 +1787,20 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share for which you want to retrieve the associated\n permissions.

              ", "smithy.api#required": {} } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " } } } @@ -1802,13 +1811,13 @@ "permissions": { "target": "com.amazonaws.ram#ResourceSharePermissionList", "traits": { - "smithy.api#documentation": "

              The permissions associated with the resource share.

              " + "smithy.api#documentation": "

              An array of objects that describe the permissions associated with the resource share.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1836,7 +1845,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists the shareable resource types supported by RAM.

              ", + "smithy.api#documentation": "

              Lists the resource types that can be shared by RAM.

              ", "smithy.api#http": { "method": "POST", "uri": "/listresourcetypes", @@ -1855,13 +1864,19 @@ "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " + } + }, + "resourceRegionScope": { + "target": "com.amazonaws.ram#ResourceRegionScopeFilter", + "traits": { + "smithy.api#documentation": "

              Specifies that you want the results to include only \n resources that have the specified scope.

              \n
                \n
              • \n

                \n ALL – the results include both global and \n regional resources or resource types.

                \n
              • \n
              • \n

                \n GLOBAL – the results include only global \n resources or resource types.

                \n
              • \n
              • \n

                \n REGIONAL – the results include only regional \n resources or resource types.

                \n
              • \n
              \n

              The default value is ALL.

              " } } } @@ -1872,13 +1887,13 @@ "resourceTypes": { "target": "com.amazonaws.ram#ServiceNameAndResourceTypeList", "traits": { - "smithy.api#documentation": "

              The shareable resource types supported by RAM.

              " + "smithy.api#documentation": "

              An array of objects that contain information about the resource types that can be\n shared using RAM.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -1934,44 +1949,50 @@ "resourceOwner": { "target": "com.amazonaws.ram#ResourceOwner", "traits": { - "smithy.api#documentation": "

              The type of owner.

              ", + "smithy.api#documentation": "

              Specifies that you want to list only the resource shares that match the following:

              \n
                \n
              • \n

                \n \n SELF\n – resources that you\n are sharing

                \n
              • \n
              • \n

                \n \n OTHER-ACCOUNTS\n –\n resources that other accounts share with you

                \n
              • \n
              ", "smithy.api#required": {} } }, "principal": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The principal.

              " + "smithy.api#documentation": "

              Specifies that you want to list only the resource shares that are associated with the specified\n principal.

              " } }, "resourceType": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The resource type.

              \n

              Valid values: acm-pca:CertificateAuthority | appmesh:Mesh | codebuild:Project | codebuild:ReportGroup | ec2:CapacityReservation | ec2:DedicatedHost | ec2:LocalGatewayRouteTable | ec2:PrefixList | ec2:Subnet | ec2:TrafficMirrorTarget | ec2:TransitGateway | imagebuilder:Component | imagebuilder:Image | imagebuilder:ImageRecipe | imagebuilder:ContainerRecipe | glue:Catalog | glue:Database | glue:Table | license-manager:LicenseConfiguration I network-firewall:FirewallPolicy | network-firewall:StatefulRuleGroup | network-firewall:StatelessRuleGroup | outposts:Outpost | resource-groups:Group | rds:Cluster | route53resolver:FirewallRuleGroup |route53resolver:ResolverQueryLogConfig | route53resolver:ResolverRule | s3-outposts:Outpost | ssm-contacts:Contact | ssm-incidents:ResponsePlan\n

              " + "smithy.api#documentation": "

              Specifies that you want to list only the resource shares that include resources of the specified\n resource type.

              \n

              For valid values, query the ListResourceTypes operation.

              " } }, "resourceArns": { "target": "com.amazonaws.ram#ResourceArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARNs) of the resources.

              " + "smithy.api#documentation": "

              Specifies that you want to list only the resource shares that include resources with the\n specified Amazon Resource Names (ARNs).

              " } }, "resourceShareArns": { "target": "com.amazonaws.ram#ResourceShareArnList", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Names (ARN) of the resource shares.

              " + "smithy.api#documentation": "

              Specifies that you want to list only resources in the resource shares identified by the\n specified Amazon Resource Names (ARNs).

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token for the next page of results.

              " + "smithy.api#documentation": "

              Specifies that you want to receive the next page of results. Valid \n only if you received a NextToken response in the previous request. If you\n did, it indicates that more output is available. Set this parameter to the value \n provided by the previous call's NextToken response to request the \n next page of results.

              " } }, "maxResults": { "target": "com.amazonaws.ram#MaxResults", "traits": { - "smithy.api#documentation": "

              The maximum number of results to return with a single call.\n To retrieve the remaining results, make another call with the returned nextToken value.

              " + "smithy.api#documentation": "

              Specifies the total number of results that you want included on each page \n of the response. If you do not include this parameter, it defaults to a value that is \n specific to the operation. If additional items exist beyond the number you specify, the\n NextToken response element is returned with a value (not null).\n Include the specified value as the NextToken request parameter in the next \n call to the operation to get the next part of the results. Note that the service might \n return fewer results than the maximum even when there are more results available. You \n should check NextToken after every operation to ensure that you receive all\n of the results.

              " + } + }, + "resourceRegionScope": { + "target": "com.amazonaws.ram#ResourceRegionScopeFilter", + "traits": { + "smithy.api#documentation": "

              Specifies that you want the results to include only \n resources that have the specified scope.

              \n
                \n
              • \n

                \n ALL – the results include both global and \n regional resources or resource types.

                \n
              • \n
              • \n

                \n GLOBAL – the results include only global \n resources or resource types.

                \n
              • \n
              • \n

                \n REGIONAL – the results include only regional \n resources or resource types.

                \n
              • \n
              \n

              The default value is ALL.

              " } } } @@ -1982,13 +2003,13 @@ "resources": { "target": "com.amazonaws.ram#ResourceList", "traits": { - "smithy.api#documentation": "

              Information about the resources.

              " + "smithy.api#documentation": "

              An array of objects that contain information about the resources.

              " } }, "nextToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The token to use to retrieve the next page of results. This value is null when there are no more results to return.

              " + "smithy.api#documentation": "

              If present, this value indicates that more output is available than \n is included in the current response. Use this value in the NextToken \n request parameter in a subsequent call to the operation to get the next part of the \n output. You should repeat this until the NextToken response element comes \n back as null. This indicates that this is the last page of results.

              " } } } @@ -2096,19 +2117,19 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of a resource share the principal is associated with.

              " } }, "creationTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the principal was associated with the resource share.

              " + "smithy.api#documentation": "

              The date and time when the principal was associated with the resource share.

              " } }, "lastUpdatedTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the association was last updated.

              " + "smithy.api#documentation": "

              The date and time when the association was last updated.

              " } }, "external": { @@ -2175,7 +2196,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Resource shares that were created by attaching a policy to a resource are visible only\n to the resource share owner, and the resource share cannot be modified in RAM.

              \n\n

              Use this API action to promote the resource share. When you promote the resource\n share, it becomes:

              \n
                \n
              • \n

                Visible to all principals that it is shared with.

                \n
              • \n
              • \n

                Modifiable in RAM.

                \n
              • \n
              ", + "smithy.api#documentation": "

              When you attach a resource-based permission policy to a resource, it automatically\n creates a resource share. However, resource shares created this way are visible only to the resource share\n owner, and the resource share can't be modified in RAM.

              \n

              You can use this operation to promote the resource share to a full RAM resource share. When you promote\n a resource share, you can then manage the resource share in RAM and it becomes visible to all of the\n principals you shared it with.

              ", "smithy.api#http": { "method": "POST", "uri": "/promoteresourcesharecreatedfrompolicy", @@ -2189,7 +2210,7 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share to promote.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share to promote.

              ", "smithy.api#httpQuery": "resourceShareArn", "smithy.api#required": {} } @@ -2202,7 +2223,7 @@ "returnValue": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether the request succeeded.

              ", + "smithy.api#documentation": "

              A return value of true indicates that the request succeeded. \n A value of false indicates that the request failed.

              ", "smithy.api#xmlName": "return" } } @@ -2263,14 +2284,14 @@ "resourceShareInvitationArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the invitation.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the invitation that you want to reject.

              ", "smithy.api#required": {} } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } } } @@ -2281,13 +2302,13 @@ "resourceShareInvitation": { "target": "com.amazonaws.ram#ResourceShareInvitation", "traits": { - "smithy.api#documentation": "

              Information about the invitation.

              " + "smithy.api#documentation": "

              An object that contains the details about the rejected invitation.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } @@ -2298,31 +2319,31 @@ "arn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource.

              " } }, "type": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The resource type.

              " + "smithy.api#documentation": "

              The resource type. This takes the form of:\n service-code:resource-code\n

              " } }, "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource share this resource is associated with.

              " } }, "resourceGroupArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource group. This value is returned only if\n the resource is a resource group.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource group. This value is available only if the resource is\n part of a resource group.

              " } }, "status": { "target": "com.amazonaws.ram#ResourceStatus", "traits": { - "smithy.api#documentation": "

              The status of the resource.

              " + "smithy.api#documentation": "

              The current status of the resource.

              " } }, "statusMessage": { @@ -2334,18 +2355,24 @@ "creationTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the resource was associated with the resource share.

              " + "smithy.api#documentation": "

              The date and time when the resource was associated with the resource share.

              " } }, "lastUpdatedTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the association was last updated.

              " + "smithy.api#documentation": "

              The date an time when the association was last updated.

              " + } + }, + "resourceRegionScope": { + "target": "com.amazonaws.ram#ResourceRegionScope", + "traits": { + "smithy.api#documentation": "

              Specifies the scope of visibility of this resource:

              \n
                \n
              • \n

                \n REGIONAL – The resource can be\n accessed only by using requests that target the Amazon Web Services Region in which the\n resource exists.

                \n
              • \n
              • \n

                \n GLOBAL – The resource can be accessed\n from any Amazon Web Services Region.

                \n
              • \n
              " } } }, "traits": { - "smithy.api#documentation": "

              Describes a resource associated with a resource share.

              " + "smithy.api#documentation": "

              Describes a resource associated with a resource share in RAM.

              " } }, "com.amazonaws.ram#ResourceArnList": { @@ -2372,7 +2399,7 @@ "code": "InvalidResourceArn.NotFound", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              An Amazon Resource Name (ARN) was not found.

              ", + "smithy.api#documentation": "

              The specified Amazon Resource Name (ARN) was not found.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2401,13 +2428,47 @@ ] } }, + "com.amazonaws.ram#ResourceRegionScope": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "REGIONAL", + "name": "REGIONAL" + }, + { + "value": "GLOBAL", + "name": "GLOBAL" + } + ] + } + }, + "com.amazonaws.ram#ResourceRegionScopeFilter": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ALL", + "name": "ALL" + }, + { + "value": "REGIONAL", + "name": "REGIONAL" + }, + { + "value": "GLOBAL", + "name": "GLOBAL" + } + ] + } + }, "com.amazonaws.ram#ResourceShare": { "type": "structure", "members": { "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource share

              " } }, "name": { @@ -2431,7 +2492,7 @@ "status": { "target": "com.amazonaws.ram#ResourceShareStatus", "traits": { - "smithy.api#documentation": "

              The status of the resource share.

              " + "smithy.api#documentation": "

              The current status of the resource share.

              " } }, "statusMessage": { @@ -2443,30 +2504,30 @@ "tags": { "target": "com.amazonaws.ram#TagList", "traits": { - "smithy.api#documentation": "

              The tags for the resource share.

              " + "smithy.api#documentation": "

              The tag key and value pairs attached to the resource share.

              " } }, "creationTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the resource share was created.

              " + "smithy.api#documentation": "

              The date and time when the resource share was created.

              " } }, "lastUpdatedTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the resource share was last updated.

              " + "smithy.api#documentation": "

              The date and time when the resource share was last updated.

              " } }, "featureSet": { "target": "com.amazonaws.ram#ResourceShareFeatureSet", "traits": { - "smithy.api#documentation": "

              Indicates how the resource share was created. Possible values include:

              \n
                \n
              • \n

                \n CREATED_FROM_POLICY - Indicates that the resource share was created from an\n Amazon Web Services Identity and Access Management (Amazon Web Services IAM) policy attached to a resource.\n These resource shares are visible only to the Amazon Web Services account that created it. They cannot\n be modified in RAM.

                \n
              • \n
              • \n

                \n PROMOTING_TO_STANDARD - The resource share is in the process of being\n promoted. For more information, see PromoteResourceShareCreatedFromPolicy.

                \n
              • \n
              • \n

                \n STANDARD - Indicates that the resource share was created in RAM using the\n console or APIs. These resource shares are visible to all principals. They can\n be modified in RAM.

                \n
              • \n
              " + "smithy.api#documentation": "

              Indicates how the resource share was created. Possible values include:

              \n
                \n
              • \n

                \n CREATED_FROM_POLICY - Indicates that the resource share was created from an\n Identity and Access Management (IAM) resource-based permission policy attached to the resource.\n This type of resource share is visible only to the Amazon Web Services account that created it. You\n can't modify it in RAM unless you promote it. For more information, see PromoteResourceShareCreatedFromPolicy.

                \n
              • \n
              • \n

                \n PROMOTING_TO_STANDARD - The resource share is in the process of being\n promoted. For more information, see PromoteResourceShareCreatedFromPolicy.

                \n
              • \n
              • \n

                \n STANDARD - Indicates that the resource share was created in RAM using the\n console or APIs. These resource shares are visible to all principals you share the resource share\n with. You can modify these resource shares in RAM using the console or APIs.

                \n
              • \n
              " } } }, "traits": { - "smithy.api#documentation": "

              Describes a resource share.

              " + "smithy.api#documentation": "

              Describes a resource share in RAM.

              " } }, "com.amazonaws.ram#ResourceShareArnList": { @@ -2484,7 +2545,7 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource share.

              " } }, "resourceShareName": { @@ -2496,19 +2557,19 @@ "associatedEntity": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The associated entity. For resource associations, this is the Amazon Resource Name\n (ARN) of the resource. For principal associations, this is one of the following:

              \n
                \n
              • \n

                An Amazon Web Services account ID

                \n
              • \n
              • \n

                An ARN of an organization in Organizations

                \n
              • \n
              • \n

                An ARN of an organizational unit (OU) in Organizations

                \n
              • \n
              • \n

                An ARN of an IAM role

                \n
              • \n
              • \n

                An ARN of an IAM user

                \n
              • \n
              " + "smithy.api#documentation": "

              The associated entity. This can be either of the following:

              \n
                \n
              • \n

                For a resource association, this is the Amazon Resoure Name (ARN) of the resource.

                \n
              • \n
              • \n

                For principal associations, this is one of the following:

                \n
                  \n
                • \n

                  The ID of an Amazon Web Services account

                  \n
                • \n
                • \n

                  The Amazon Resoure Name (ARN) of an organization in Organizations

                  \n
                • \n
                • \n

                  The ARN of an organizational unit (OU) in Organizations

                  \n
                • \n
                • \n

                  The ARN of an IAM role

                  \n
                • \n
                • \n

                  The ARN of an IAM user

                  \n
                • \n
                \n
              • \n
              " } }, "associationType": { "target": "com.amazonaws.ram#ResourceShareAssociationType", "traits": { - "smithy.api#documentation": "

              The association type.

              " + "smithy.api#documentation": "

              The type of entity included in this association.

              " } }, "status": { "target": "com.amazonaws.ram#ResourceShareAssociationStatus", "traits": { - "smithy.api#documentation": "

              The status of the association.

              " + "smithy.api#documentation": "

              The current status of the association.

              " } }, "statusMessage": { @@ -2520,13 +2581,13 @@ "creationTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the association was created.

              " + "smithy.api#documentation": "

              The date and time when the association was created.

              " } }, "lastUpdatedTime": { "target": "com.amazonaws.ram#DateTime", "traits": { - "smithy.api#documentation": "

              The time when the association was last updated.

              " + "smithy.api#documentation": "

              The date and time when the association was last updated.

              " } }, "external": { @@ -2537,7 +2598,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Describes an association with a resource share.

              " + "smithy.api#documentation": "

              Describes an association with a resource share and either a principal or a resource.

              " } }, "com.amazonaws.ram#ResourceShareAssociationList": { @@ -2616,7 +2677,7 @@ "resourceShareInvitationArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the invitation.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the invitation.

              " } }, "resourceShareName": { @@ -2628,7 +2689,7 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the resource share

              " } }, "senderAccountId": { @@ -2652,7 +2713,7 @@ "status": { "target": "com.amazonaws.ram#ResourceShareInvitationStatus", "traits": { - "smithy.api#documentation": "

              The status of the invitation.

              " + "smithy.api#documentation": "

              The current status of the invitation.

              " } }, "resourceShareAssociations": { @@ -2661,18 +2722,18 @@ "smithy.api#deprecated": { "message": "This member has been deprecated. Use ListPendingInvitationResources." }, - "smithy.api#documentation": "

              To view the resources associated with a pending resource share invitation, use \n ListPendingInvitationResources.

              " + "smithy.api#documentation": "

              To view the resources associated with a pending resource share invitation, use ListPendingInvitationResources.

              " } }, "receiverArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM user or IAM role that received the\n invitation.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the IAM user or role that received the invitation.

              " } } }, "traits": { - "smithy.api#documentation": "

              Describes an invitation to join a resource share.

              " + "smithy.api#documentation": "

              Describes an invitation for an Amazon Web Services account to join a resource share.

              " } }, "com.amazonaws.ram#ResourceShareInvitationAlreadyAcceptedException": { @@ -2690,7 +2751,7 @@ "code": "InvalidResourceShareInvitationArn.AlreadyAccepted", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The invitation was already accepted.

              ", + "smithy.api#documentation": "

              The specified invitation was already accepted.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2710,7 +2771,7 @@ "code": "InvalidResourceShareInvitationArn.AlreadyRejected", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The invitation was already rejected.

              ", + "smithy.api#documentation": "

              The specified invitation was already rejected.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2739,7 +2800,7 @@ "code": "InvalidResourceShareInvitationArn.NotFound", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for an invitation was not found.

              ", + "smithy.api#documentation": "

              The specified Amazon Resource Name (ARN) for an invitation was not found.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2759,7 +2820,7 @@ "code": "InvalidResourceShareInvitationArn.Expired", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The invitation is expired.

              ", + "smithy.api#documentation": "

              The specified invitation is expired.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2811,7 +2872,7 @@ "code": "ResourceShareLimitExceeded", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The requested resource share exceeds the limit for your account.

              ", + "smithy.api#documentation": "

              This request would exceed the limit for resource shares for your account.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2831,37 +2892,37 @@ "arn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the permission.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of this RAM permission.

              " } }, "version": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The identifier for the version of the permission.

              " + "smithy.api#documentation": "

              The version of the permission represented in this structure.

              " } }, "defaultVersion": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Specifies whether the version of the permission is set to the default version for this\n permission.

              " + "smithy.api#documentation": "

              Specifies whether the version of the permission represented in this structure is the\n default version for this permission.

              " } }, "name": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The name of the permission.

              " + "smithy.api#documentation": "

              The name of this permission.

              " } }, "resourceType": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The resource type to which the permission applies.

              " + "smithy.api#documentation": "

              The resource type to which this permission applies.

              " } }, "permission": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The permission's effect and actions in JSON format. The effect indicates\n whether the actions are allowed or denied. The actions list the API actions\n to which the principal is granted or denied access.

              " + "smithy.api#documentation": "

              The permission's effect and actions in JSON format. The effect indicates\n whether the specified actions are allowed or denied. The actions list the\n operations to which the principal is granted or denied access.

              " } }, "creationTime": { @@ -2879,7 +2940,7 @@ "isResourceTypeDefault": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Specifies whether the version of the permission is set to the default version for this\n resource type.

              " + "smithy.api#documentation": "

              Specifies whether the version of the permission represented in this structure is the\n default version for all resources of this resource type.

              " } } }, @@ -2902,31 +2963,31 @@ "arn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the permission.

              " + "smithy.api#documentation": "

              The Amazon Resoure Name (ARN) of the permission you want information about.

              " } }, "version": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The identifier for the version of the permission.

              " + "smithy.api#documentation": "

              The version of the permission represented in this structure.

              " } }, "defaultVersion": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Specifies whether the version of the permission is set to the default version for this\n permission.

              " + "smithy.api#documentation": "

              Specifies whether the version of the permission represented in this structure is the\n default version for this permission.

              " } }, "name": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The name of the permission.

              " + "smithy.api#documentation": "

              The name of this permission.

              " } }, "resourceType": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The type of resource to which the permission applies.

              " + "smithy.api#documentation": "

              The type of resource to which this permission applies.

              " } }, "status": { @@ -2950,12 +3011,12 @@ "isResourceTypeDefault": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Specifies whether the version of the permission is set to the default version for this\n resource type.

              " + "smithy.api#documentation": "

              Specifies whether the version of the permission represented in this structure is the\n default version for all resources of this resource type.

              " } } }, "traits": { - "smithy.api#documentation": "

              Information about a permission that is associated with a resource share.

              " + "smithy.api#documentation": "

              Information about an RAM permission that is associated with a resource share and any of its\n resources of a specified type.

              " } }, "com.amazonaws.ram#ResourceShareStatus": { @@ -3038,18 +3099,24 @@ "resourceType": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The shareable resource types.

              " + "smithy.api#documentation": "

              The type of the resource.

              " } }, "serviceName": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The name of the Amazon Web Services services to which the resources belong.

              " + "smithy.api#documentation": "

              The name of the Amazon Web Services service to which resources of this type belong.

              " + } + }, + "resourceRegionScope": { + "target": "com.amazonaws.ram#ResourceRegionScope", + "traits": { + "smithy.api#documentation": "

              Specifies the scope of visibility of resources of this type:

              \n
                \n
              • \n

                \n REGIONAL – The resource can be\n accessed only by using requests that target the Amazon Web Services Region in which the\n resource exists.

                \n
              • \n
              • \n

                \n GLOBAL – The resource can be accessed\n from any Amazon Web Services Region.

                \n
              • \n
              " } } }, "traits": { - "smithy.api#documentation": "

              Information about the shareable resource types and the Amazon Web Services services to which they\n belong.

              " + "smithy.api#documentation": "

              Information about a shareable resource type and the Amazon Web Services service to which resources\n of that type belong.

              " } }, "com.amazonaws.ram#ServiceNameAndResourceTypeList": { @@ -3090,18 +3157,18 @@ "key": { "target": "com.amazonaws.ram#TagKey", "traits": { - "smithy.api#documentation": "

              The key of the tag.

              " + "smithy.api#documentation": "

              The key, or name, attached to the tag. Every tag must have a key. Key names are case\n sensitive.

              " } }, "value": { "target": "com.amazonaws.ram#TagValue", "traits": { - "smithy.api#documentation": "

              The value of the tag.

              " + "smithy.api#documentation": "

              The string value attached to the tag. The value can be an empty string. Key values are\n case sensitive.

              " } } }, "traits": { - "smithy.api#documentation": "

              Information about a tag.

              " + "smithy.api#documentation": "

              A structure containing a tag. A tag is metadata that you can attach to your resources\n to help organize and categorize them. You can also use them to help you secure your\n resources. For more information, see Controlling access to Amazon Web Services resources\n using tags.

              \n

              For more information about tags, see Tagging Amazon Web Services resources in the\n Amazon Web Services General Reference Guide.

              " } }, "com.amazonaws.ram#TagFilter": { @@ -3110,18 +3177,18 @@ "tagKey": { "target": "com.amazonaws.ram#TagKey", "traits": { - "smithy.api#documentation": "

              The tag key.

              " + "smithy.api#documentation": "

              The tag key. This must have a valid string value and can't be empty.

              " } }, "tagValues": { "target": "com.amazonaws.ram#TagValueList", "traits": { - "smithy.api#documentation": "

              The tag values.

              " + "smithy.api#documentation": "

              A list of zero or more tag values. If no values are provided, then the filter matches\n any tag with the specified key, regardless of its value.

              " } } }, "traits": { - "smithy.api#documentation": "

              Used to filter information based on tags.

              " + "smithy.api#documentation": "

              A tag key and optional list of possible values that you can use to filter results for\n tagged resources.

              " } }, "com.amazonaws.ram#TagFilters": { @@ -3154,7 +3221,7 @@ "code": "TagLimitExceeded", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The requested tags exceed the limit for your account.

              ", + "smithy.api#documentation": "

              This request would exceed the limit for tags for your account.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3180,7 +3247,7 @@ "code": "TagPolicyViolation", "httpResponseCode": 400 }, - "smithy.api#documentation": "

              The specified tag is a reserved word and cannot be used.

              ", + "smithy.api#documentation": "

              The specified tag key is a reserved word and can't be used.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -3220,7 +3287,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Adds the specified tags to the specified resource share that you own.

              ", + "smithy.api#documentation": "

              Adds the specified tag keys and values to the specified resource share. The tags are attached\n only to the resource share, not to the resources that are in the resource share.

              ", "smithy.api#http": { "method": "POST", "uri": "/tagresource", @@ -3234,14 +3301,14 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share that you want to add tags to.

              ", "smithy.api#required": {} } }, "tags": { "target": "com.amazonaws.ram#TagList", "traits": { - "smithy.api#documentation": "

              One or more tags.

              ", + "smithy.api#documentation": "

              A list of one or more tag key and value pairs. The tag key must be present and not be\n an empty string. The tag value must be present but can be an empty string.

              ", "smithy.api#required": {} } } @@ -3260,6 +3327,26 @@ "target": "com.amazonaws.ram#TagValue" } }, + "com.amazonaws.ram#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "com.amazonaws.ram#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ThrottlingException", + "httpResponseCode": 429 + }, + "smithy.api#documentation": "

              You exceeded the rate at which you are allowed to perform this operation. Please try\n again later.

              ", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, "com.amazonaws.ram#UnknownResourceException": { "type": "structure", "members": { @@ -3300,7 +3387,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Removes the specified tags from the specified resource share that you own.

              ", + "smithy.api#documentation": "

              Removes the specified tag key and value pairs from the specified resource share.

              ", "smithy.api#http": { "method": "POST", "uri": "/untagresource", @@ -3314,14 +3401,14 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share that you want to remove tags from. The tags are\n removed from the resource share, not the resources in the resource share.

              ", "smithy.api#required": {} } }, "tagKeys": { "target": "com.amazonaws.ram#TagKeyList", "traits": { - "smithy.api#documentation": "

              The tag keys of the tags to remove.

              ", + "smithy.api#documentation": "

              Specifies a list of one or more tag keys that you want to remove.

              ", "smithy.api#required": {} } } @@ -3369,7 +3456,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Updates the specified resource share that you own.

              ", + "smithy.api#documentation": "

              Modifies some of the properties of the specified resource share.

              ", "smithy.api#http": { "method": "POST", "uri": "/updateresourceshare", @@ -3383,26 +3470,26 @@ "resourceShareArn": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the resource share.

              ", + "smithy.api#documentation": "

              Specifies the Amazon Resoure Name (ARN) of the resource share that you want to modify.

              ", "smithy.api#required": {} } }, "name": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              The name of the resource share.

              " + "smithy.api#documentation": "

              If specified, the new name that you want to attach to the resource share.

              " } }, "allowExternalPrincipals": { "target": "com.amazonaws.ram#Boolean", "traits": { - "smithy.api#documentation": "

              Indicates whether principals outside your organization in Organizations can be associated\n with a resource share.

              " + "smithy.api#documentation": "

              Specifies whether principals outside your organization in Organizations can be associated\n with a resource share.

              " } }, "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              Specifies a unique, case-sensitive identifier that you provide to\n ensure the idempotency of the request. This lets you safely retry the request without\n accidentally performing the same operation a second time. Passing the same value to a\n later call to an operation requires that you also pass the same value for all other \n parameters. We recommend that you use a UUID type of \n value..

              \n

              If you don't provide this value, then Amazon Web Services generates a random one for\n you.

              " } } } @@ -3419,7 +3506,7 @@ "clientToken": { "target": "com.amazonaws.ram#String", "traits": { - "smithy.api#documentation": "

              A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

              " + "smithy.api#documentation": "

              The idempotency identifier associated with this request. If you\n want to repeat the same operation in an idempotent manner then you must include this\n value in the clientToken request parameter of that later call. All other \n parameters must also have the same values that you used in the first call.

              " } } } diff --git a/codegen/sdk-codegen/aws-models/redshift.json b/codegen/sdk-codegen/aws-models/redshift.json index ee82c9c822d1..44e6bc14a28e 100644 --- a/codegen/sdk-codegen/aws-models/redshift.json +++ b/codegen/sdk-codegen/aws-models/redshift.json @@ -616,7 +616,7 @@ } ], "traits": { - "smithy.api#documentation": "

              From a data producer account, authorizes the sharing of a datashare with one or more\n consumer accounts. To authorize a datashare for a data consumer, the producer account\n must have the correct access privileges.

              " + "smithy.api#documentation": "

              From a data producer account, authorizes the sharing of a datashare with one or more\n consumer accounts or managing entities. To authorize a datashare for a data consumer, the producer account\n must have the correct access privileges.

              " } }, "com.amazonaws.redshift#AuthorizeDataShareMessage": { @@ -632,7 +632,7 @@ "ConsumerIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

              The identifier of the data consumer that is authorized to access the datashare. This identifier is an Amazon Web Services account ID.

              ", + "smithy.api#documentation": "

              The identifier of the data consumer that is authorized to access the datashare. This identifier is an Amazon Web Services account ID or a keyword, such as ADX.

              ", "smithy.api#required": {} } } @@ -3717,6 +3717,12 @@ "traits": { "smithy.api#documentation": "

              A value that specifies when the datashare has an association between a producer and data consumers.

              " } + }, + "ManagedBy": { + "target": "com.amazonaws.redshift#String", + "traits": { + "smithy.api#documentation": "

              The identifier of a datashare to show its managing entity.

              " + } } } }, @@ -3920,7 +3926,7 @@ "ConsumerIdentifier": { "target": "com.amazonaws.redshift#String", "traits": { - "smithy.api#documentation": "

              The identifier of the data consumer that is to have authorization removed from the datashare. \n This identifier is an Amazon Web Services account ID.

              ", + "smithy.api#documentation": "

              The identifier of the data consumer that is to have authorization removed from the datashare. \n This identifier is an Amazon Web Services account ID or a keyword, such as ADX.

              ", "smithy.api#required": {} } } diff --git a/codegen/sdk-codegen/aws-models/rekognition.json b/codegen/sdk-codegen/aws-models/rekognition.json index fd2f757b86d8..23c6d1050fc1 100644 --- a/codegen/sdk-codegen/aws-models/rekognition.json +++ b/codegen/sdk-codegen/aws-models/rekognition.json @@ -469,7 +469,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Compares a face in the source input image with\n each of the 100 largest faces detected in the target input image.\n

              \n \n

              If the source image contains multiple faces, the service detects the largest face\n and compares it with each face detected in the target image.

              \n \n \n \n

              CompareFaces uses machine learning algorithms, which are probabilistic. \n A false negative is an incorrect prediction that\n a face in the target image has a low similarity confidence score when compared to the face\n in the source image. To reduce the probability of false negatives, \n we recommend that you compare the target image against multiple source images.\n If you plan to use CompareFaces to make a decision that impacts an individual's rights,\n privacy, or access to services, we recommend that you pass the result to a human for review and further\n validation before taking action.

              \n
              \n\n\n

              You pass the input and target images either as base64-encoded image bytes or as\n references to images in an Amazon S3 bucket. If you use the\n AWS\n CLI to call Amazon Rekognition operations, passing image bytes isn't\n supported. The image must be formatted as a PNG or JPEG file.

              \n

              In response, the operation returns an array of face matches ordered by similarity score\n in descending order. For each face match, the response provides a bounding box of the face,\n facial landmarks, pose details (pitch, role, and yaw), quality (brightness and sharpness), and\n confidence value (indicating the level of confidence that the bounding box contains a face).\n The response also provides a similarity score, which indicates how closely the faces match.

              \n\n \n

              By default, only faces with a similarity score of greater than or equal to 80% are\n returned in the response. You can change this value by specifying the\n SimilarityThreshold parameter.

              \n
              \n\n

              \n CompareFaces also returns an array of faces that don't match the source image. \n For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality.\n The response also returns information about the face in the source image, including the bounding box\n of the face and confidence value.

              \n \n

              The QualityFilter input parameter allows you to filter out detected faces\n that don’t meet a required quality bar. The quality bar is based on a\n variety of common use cases. Use QualityFilter to set the quality bar\n by specifying LOW, MEDIUM, or HIGH.\n If you do not want to filter detected faces, specify NONE. The default value is NONE.

              \n\n

              If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the\n source and target images. Use these values to display the images with the correct image orientation.

              \n

              If no faces are detected in the source or target images, CompareFaces returns an \n InvalidParameterException error.

              \n\n\n \n

              This is a stateless API operation. That is, data returned by this operation doesn't persist.

              \n
              \n\n \n

              For an example, see Comparing Faces in Images in the Amazon Rekognition Developer Guide.

              \n

              This operation requires permissions to perform the rekognition:CompareFaces\n action.

              " + "smithy.api#documentation": "

              Compares a face in the source input image with\n each of the 100 largest faces detected in the target input image.\n

              \n \n

              If the source image contains multiple faces, the service detects the largest face\n and compares it with each face detected in the target image.

              \n \n \n \n

              CompareFaces uses machine learning algorithms, which are probabilistic. \n A false negative is an incorrect prediction that\n a face in the target image has a low similarity confidence score when compared to the face\n in the source image. To reduce the probability of false negatives, \n we recommend that you compare the target image against multiple source images.\n If you plan to use CompareFaces to make a decision that impacts an individual's rights,\n privacy, or access to services, we recommend that you pass the result to a human for review and further\n validation before taking action.

              \n
              \n\n\n

              You pass the input and target images either as base64-encoded image bytes or as\n references to images in an Amazon S3 bucket. If you use the\n AWS\n CLI to call Amazon Rekognition operations, passing image bytes isn't\n supported. The image must be formatted as a PNG or JPEG file.

              \n

              In response, the operation returns an array of face matches ordered by similarity score\n in descending order. For each face match, the response provides a bounding box of the face,\n facial landmarks, pose details (pitch, roll, and yaw), quality (brightness and sharpness), and\n confidence value (indicating the level of confidence that the bounding box contains a face).\n The response also provides a similarity score, which indicates how closely the faces match.

              \n\n \n

              By default, only faces with a similarity score of greater than or equal to 80% are\n returned in the response. You can change this value by specifying the\n SimilarityThreshold parameter.

              \n
              \n\n

              \n CompareFaces also returns an array of faces that don't match the source image. \n For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality.\n The response also returns information about the face in the source image, including the bounding box\n of the face and confidence value.

              \n \n

              The QualityFilter input parameter allows you to filter out detected faces\n that don’t meet a required quality bar. The quality bar is based on a\n variety of common use cases. Use QualityFilter to set the quality bar\n by specifying LOW, MEDIUM, or HIGH.\n If you do not want to filter detected faces, specify NONE. The default value is NONE.

              \n\n

              If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the\n source and target images. Use these values to display the images with the correct image orientation.

              \n

              If no faces are detected in the source or target images, CompareFaces returns an \n InvalidParameterException error.

              \n\n\n \n

              This is a stateless API operation. That is, data returned by this operation doesn't persist.

              \n
              \n\n \n

              For an example, see Comparing Faces in Images in the Amazon Rekognition Developer Guide.

              \n

              This operation requires permissions to perform the rekognition:CompareFaces\n action.

              " } }, "com.amazonaws.rekognition#CompareFacesMatch": { @@ -2751,7 +2751,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Detects text in the input image and converts it into machine-readable text.

              \n

              Pass the input image as base64-encoded image bytes or as a reference to an image in an\n Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, you must pass it as a\n reference to an image in an Amazon S3 bucket. For the AWS CLI, passing image bytes is not\n supported. The image must be either a .png or .jpeg formatted file.

              \n

              The DetectText operation returns text in an array of TextDetection elements, TextDetections. Each\n TextDetection element provides information about a single word or line of text\n that was detected in the image.

              \n

              A word is one or more ISO basic latin script characters that are not separated by spaces.\n DetectText can detect up to 100 words in an image.

              \n

              A line is a string of equally spaced words. A line isn't necessarily a complete\n sentence. For example, a driver's license number is detected as a line. A line ends when there\n is no aligned text after it. Also, a line ends when there is a large gap between words,\n relative to the length of the words. This means, depending on the gap between words, Amazon Rekognition\n may detect multiple lines in text aligned in the same direction. Periods don't represent the\n end of a line. If a sentence spans multiple lines, the DetectText operation\n returns multiple lines.

              \n

              To determine whether a TextDetection element is a line of text or a word,\n use the TextDetection object Type field.

              \n

              To be detected, text must be within +/- 90 degrees orientation of the horizontal axis.

              \n \n

              For more information, see DetectText in the Amazon Rekognition Developer Guide.

              " + "smithy.api#documentation": "

              Detects text in the input image and converts it into machine-readable text.

              \n

              Pass the input image as base64-encoded image bytes or as a reference to an image in an\n Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, you must pass it as a\n reference to an image in an Amazon S3 bucket. For the AWS CLI, passing image bytes is not\n supported. The image must be either a .png or .jpeg formatted file.

              \n

              The DetectText operation returns text in an array of TextDetection elements, TextDetections. Each\n TextDetection element provides information about a single word or line of text\n that was detected in the image.

              \n

              A word is one or more script characters that are not separated by spaces.\n DetectText can detect up to 100 words in an image.

              \n

              A line is a string of equally spaced words. A line isn't necessarily a complete\n sentence. For example, a driver's license number is detected as a line. A line ends when there\n is no aligned text after it. Also, a line ends when there is a large gap between words,\n relative to the length of the words. This means, depending on the gap between words, Amazon Rekognition\n may detect multiple lines in text aligned in the same direction. Periods don't represent the\n end of a line. If a sentence spans multiple lines, the DetectText operation\n returns multiple lines.

              \n

              To determine whether a TextDetection element is a line of text or a word,\n use the TextDetection object Type field.

              \n

              To be detected, text must be within +/- 90 degrees orientation of the horizontal axis.

              \n \n

              For more information, see DetectText in the Amazon Rekognition Developer Guide.

              " } }, "com.amazonaws.rekognition#DetectTextFilters": { @@ -4989,7 +4989,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The known gender identity for the celebrity that matches the provided ID.

              " + "smithy.api#documentation": "

              The known gender identity for the celebrity that matches the provided ID. The known\n gender identity can be Male, Female, Nonbinary, or Unlisted.

              " } }, "com.amazonaws.rekognition#KnownGenderType": { @@ -5004,6 +5004,14 @@ { "value": "Female", "name": "Female" + }, + { + "value": "Nonbinary", + "name": "Nonbinary" + }, + { + "value": "Unlisted", + "name": "Unlisted" } ] } diff --git a/codegen/sdk-codegen/aws-models/route-53-domains.json b/codegen/sdk-codegen/aws-models/route-53-domains.json index 4237de75efc4..cf17caf6e22b 100644 --- a/codegen/sdk-codegen/aws-models/route-53-domains.json +++ b/codegen/sdk-codegen/aws-models/route-53-domains.json @@ -46,10 +46,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

              Accepts the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

              \n\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " + "smithy.api#documentation": "

              Accepts the transfer of a domain from another Amazon Web Services account to the\n\t\t\t\tcurrentAmazon Web Services account. You initiate a transfer between Amazon Web Services accounts using TransferDomainToAnotherAwsAccount.

              \n\t\t

              If you use the CLI command at accept-domain-transfer-from-another-aws-account, use JSON format as input\n\t\t\tinstead of text because otherwise CLI will throw an error from domain\n\t\t\ttransfer input that includes single quotes.

              \n\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " } }, "com.amazonaws.route53domains#AcceptDomainTransferFromAnotherAwsAccountRequest": { @@ -58,7 +61,7 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

              The name of the domain that was specified when another AWS account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

              ", + "smithy.api#documentation": "

              The name of the domain that was specified when another Amazon Web Services account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

              ", "smithy.api#required": {} } }, @@ -91,6 +94,10 @@ "com.amazonaws.route53domains#AccountId": { "type": "string", "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, "smithy.api#pattern": "^(\\d{12})$" } }, @@ -167,10 +174,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

              Cancels the transfer of a domain from the current AWS account to another AWS account. You initiate a transfer between AWS accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

              \n\t\t\n\t\t \n\t\t\t

              You must cancel the transfer before the other AWS account accepts the transfer using \n\t\t\t\tAcceptDomainTransferFromAnotherAwsAccount.

              \n\t\t
              \n\t\t\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " + "smithy.api#documentation": "

              Cancels the transfer of a domain from the current Amazon Web Services account to another Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

              \n\t\t\n\t\t \n\t\t\t

              You must cancel the transfer before the other Amazon Web Services account accepts the transfer using \n\t\t\t\tAcceptDomainTransferFromAnotherAwsAccount.

              \n\t\t
              \n\t\t\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " } }, "com.amazonaws.route53domains#CancelDomainTransferToAnotherAwsAccountRequest": { @@ -179,7 +189,7 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

              The name of the domain for which you want to cancel the transfer to another AWS account.

              ", + "smithy.api#documentation": "

              The name of the domain for which you want to cancel the transfer to another Amazon Web Services account.

              ", "smithy.api#required": {} } } @@ -341,7 +351,7 @@ "ContactType": { "target": "com.amazonaws.route53domains#ContactType", "traits": { - "smithy.api#documentation": "

              Indicates whether the contact is a person, company, association, or public organization. Note the following:

              \n\t\t
                \n
              • \n

                If you specify a value other than PERSON, you must also specify a value for \n\t\t\t\tOrganizationName.

                \n
              • \n
              • \n

                For some TLDs, the privacy protection available depends on the value that you specify for \n\t\t\t\tContact Type. For the privacy protection settings for your TLD, see \n\t\t\t\tDomains that You Can \n\t\t\t\t\tRegister with Amazon Route 53 in the Amazon Route 53 Developer Guide\n

                \n
              • \n
              • \n

                For .es domains, if you specify PERSON, you must specify INDIVIDUAL \n\t\t\t\tfor the value of ES_LEGAL_FORM.

                \n
              • \n
              " + "smithy.api#documentation": "

              Indicates whether the contact is a person, company, association, or public organization. Note the following:

              \n\t\t
                \n
              • \n

                If you specify a value other than PERSON, you must also specify a value for \n\t\t\t\tOrganizationName.

                \n
              • \n
              • \n

                For some TLDs, the privacy protection available depends on the value that you specify for \n\t\t\t\tContact Type. For the privacy protection settings for your TLD, see \n\t\t\t\tDomains that You Can \n\t\t\t\t\tRegister with Amazon Route 53 in the Amazon Route 53 Developer Guide\n

                \n
              • \n
              • \n

                For .es domains, the value of ContactType must be PERSON for all three contacts.

                \n
              • \n
              " } }, "OrganizationName": { @@ -465,6 +475,10 @@ "type": "string", "traits": { "smithy.api#enum": [ + { + "value": "AC", + "name": "AC" + }, { "value": "AD", "name": "AD" @@ -525,6 +539,10 @@ "value": "AW", "name": "AW" }, + { + "value": "AX", + "name": "AX" + }, { "value": "AZ", "name": "AZ" @@ -581,6 +599,10 @@ "value": "BO", "name": "BO" }, + { + "value": "BQ", + "name": "BQ" + }, { "value": "BR", "name": "BR" @@ -593,6 +615,10 @@ "value": "BT", "name": "BT" }, + { + "value": "BV", + "name": "BV" + }, { "value": "BW", "name": "BW" @@ -665,6 +691,10 @@ "value": "CV", "name": "CV" }, + { + "value": "CW", + "name": "CW" + }, { "value": "CX", "name": "CX" @@ -713,6 +743,10 @@ "value": "EG", "name": "EG" }, + { + "value": "EH", + "name": "EH" + }, { "value": "ER", "name": "ER" @@ -765,6 +799,14 @@ "value": "GE", "name": "GE" }, + { + "value": "GF", + "name": "GF" + }, + { + "value": "GG", + "name": "GG" + }, { "value": "GH", "name": "GH" @@ -785,6 +827,10 @@ "value": "GN", "name": "GN" }, + { + "value": "GP", + "name": "GP" + }, { "value": "GQ", "name": "GQ" @@ -793,6 +839,10 @@ "value": "GR", "name": "GR" }, + { + "value": "GS", + "name": "GS" + }, { "value": "GT", "name": "GT" @@ -813,6 +863,10 @@ "value": "HK", "name": "HK" }, + { + "value": "HM", + "name": "HM" + }, { "value": "HN", "name": "HN" @@ -849,6 +903,10 @@ "value": "IN", "name": "IN" }, + { + "value": "IO", + "name": "IO" + }, { "value": "IQ", "name": "IQ" @@ -865,6 +923,10 @@ "value": "IT", "name": "IT" }, + { + "value": "JE", + "name": "JE" + }, { "value": "JM", "name": "JM" @@ -1017,6 +1079,10 @@ "value": "MP", "name": "MP" }, + { + "value": "MQ", + "name": "MQ" + }, { "value": "MR", "name": "MR" @@ -1065,6 +1131,10 @@ "value": "NE", "name": "NE" }, + { + "value": "NF", + "name": "NF" + }, { "value": "NG", "name": "NG" @@ -1141,6 +1211,10 @@ "value": "PR", "name": "PR" }, + { + "value": "PS", + "name": "PS" + }, { "value": "PT", "name": "PT" @@ -1157,6 +1231,10 @@ "value": "QA", "name": "QA" }, + { + "value": "RE", + "name": "RE" + }, { "value": "RO", "name": "RO" @@ -1205,6 +1283,10 @@ "value": "SI", "name": "SI" }, + { + "value": "SJ", + "name": "SJ" + }, { "value": "SK", "name": "SK" @@ -1229,6 +1311,10 @@ "value": "SR", "name": "SR" }, + { + "value": "SS", + "name": "SS" + }, { "value": "ST", "name": "ST" @@ -1237,6 +1323,10 @@ "value": "SV", "name": "SV" }, + { + "value": "SX", + "name": "SX" + }, { "value": "SY", "name": "SY" @@ -1253,6 +1343,10 @@ "value": "TD", "name": "TD" }, + { + "value": "TF", + "name": "TF" + }, { "value": "TG", "name": "TG" @@ -1285,6 +1379,10 @@ "value": "TO", "name": "TO" }, + { + "value": "TP", + "name": "TP" + }, { "value": "TR", "name": "TR" @@ -1384,12 +1482,70 @@ ] } }, + "com.amazonaws.route53domains#Currency": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 3 + } + } + }, "com.amazonaws.route53domains#CurrentExpiryYear": { "type": "integer" }, "com.amazonaws.route53domains#DNSSec": { "type": "string" }, + "com.amazonaws.route53domains#DeleteDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53domains#DeleteDomainRequest" + }, + "output": { + "target": "com.amazonaws.route53domains#DeleteDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53domains#DuplicateRequest" + }, + { + "target": "com.amazonaws.route53domains#InvalidInput" + }, + { + "target": "com.amazonaws.route53domains#TLDRulesViolation" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" + } + ], + "traits": { + "smithy.api#documentation": "

              This operation deletes the specified domain. This action is permanent. For more information,\n\t\t\tsee Deleting a domain name registration.

              \n\t\t

              To transfer the domain registration to another registrar, use the transfer process that’s\n\t\t\tprovided by the registrar to which you want to transfer the registration. Otherwise,\n\t\t\tthe following apply:

              \n\t\t
                \n
              1. \n

                You can’t get a refund for the cost of a deleted domain registration.

                \n
              2. \n
              3. \n

                The registry for the top-level domain might hold the domain name for a brief time before releasing it for other users to register (varies by registry).

                \n
              4. \n
              5. \n

                When the registration has been deleted, we'll send you a confirmation to the registrant\n\t\t\t\tcontact. The email will come from\n\t\t\t\tnoreply@domainnameverification.net or\n\t\t\t\tnoreply@registrar.amazon.com.

                \n
              6. \n
              " + } + }, + "com.amazonaws.route53domains#DeleteDomainRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.route53domains#DomainName", + "traits": { + "smithy.api#documentation": "

              Name of the domain to be deleted.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.route53domains#DeleteDomainResponse": { + "type": "structure", + "members": { + "OperationId": { + "target": "com.amazonaws.route53domains#OperationId", + "traits": { + "smithy.api#documentation": "

              Identifier for tracking the progress of the request. \n\t\t\tTo query the operation status, use GetOperationDetail.

              " + } + } + } + }, "com.amazonaws.route53domains#DeleteTagsForDomain": { "type": "operation", "input": { @@ -1608,6 +1764,65 @@ } } }, + "com.amazonaws.route53domains#DomainPrice": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53domains#DomainPriceName", + "traits": { + "smithy.api#documentation": "

              The name of the TLD for which the prices apply.

              " + } + }, + "RegistrationPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

              The price for domain registration with Route 53.

              " + } + }, + "TransferPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

              The price for transferring the domain registration to Route 53.

              " + } + }, + "RenewalPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

              The price for renewing domain registration with Route 53.

              " + } + }, + "ChangeOwnershipPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

              The price for changing domain ownership.

              " + } + }, + "RestorationPrice": { + "target": "com.amazonaws.route53domains#PriceWithCurrency", + "traits": { + "smithy.api#documentation": "

              The price for restoring the domain with Route 53.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Information about the domain price associated with a TLD.

              " + } + }, + "com.amazonaws.route53domains#DomainPriceList": { + "type": "list", + "member": { + "target": "com.amazonaws.route53domains#DomainPrice" + } + }, + "com.amazonaws.route53domains#DomainPriceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.route53domains#DomainStatus": { "type": "string" }, @@ -1748,7 +1963,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. \n\t\t\tThe cost of renewing your domain registration is billed to your AWS account.

              \n\t\t

              The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \n\t\t\tDomains That You Can Register with Amazon Route 53 \n\t\t\tin the Amazon Route 53 Developer Guide. Route 53 requires that you renew before the end of the renewal period \n\t\t\tso we can complete processing before the deadline.

              " + "smithy.api#documentation": "

              This operation configures Amazon Route 53 to automatically renew the specified domain before the domain registration expires. \n\t\t\tThe cost of renewing your domain registration is billed to your Amazon Web Services account.

              \n\t\t

              The period during which you can renew a domain name varies by TLD. For a list of TLDs and their renewal policies, see \n\t\t\tDomains That You Can Register with Amazon Route 53 \n\t\t\tin the Amazon Route 53 Developer Guide. Route 53 requires that you renew before the end of the renewal period \n\t\t\tso we can complete processing before the deadline.

              " } }, "com.amazonaws.route53domains#EnableDomainAutoRenewRequest": { @@ -1835,7 +2050,7 @@ "Name": { "target": "com.amazonaws.route53domains#ExtraParamName", "traits": { - "smithy.api#documentation": "

              The name of an additional parameter that is required by a top-level domain. Here are the top-level domains that require \n\t\t\tadditional parameters and the names of the parameters that they require:

              \n\n\t\t
              \n
              .com.au and .net.au
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n AU_ID_NUMBER\n

                \n
              • \n
              • \n

                \n AU_ID_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ABN (Australian business number)

                  \n
                • \n
                • \n

                  \n ACN (Australian company number)

                  \n
                • \n
                • \n

                  \n TM (Trademark number)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .ca
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BRAND_NUMBER\n

                \n
              • \n
              • \n

                \n CA_BUSINESS_ENTITY_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n BANK (Bank)

                  \n
                • \n
                • \n

                  \n COMMERCIAL_COMPANY (Commercial company)

                  \n
                • \n
                • \n

                  \n COMPANY (Company)

                  \n
                • \n
                • \n

                  \n COOPERATION (Cooperation)

                  \n
                • \n
                • \n

                  \n COOPERATIVE (Cooperative)

                  \n
                • \n
                • \n

                  \n COOPRIX (Cooprix)

                  \n
                • \n
                • \n

                  \n CORP (Corporation)

                  \n
                • \n
                • \n

                  \n CREDIT_UNION (Credit union)

                  \n
                • \n
                • \n

                  \n FOMIA (Federation of mutual insurance associations)

                  \n
                • \n
                • \n

                  \n INC (Incorporated)

                  \n
                • \n
                • \n

                  \n LTD (Limited)

                  \n
                • \n
                • \n

                  \n LTEE (Limitée)

                  \n
                • \n
                • \n

                  \n LLC (Limited liability corporation)

                  \n
                • \n
                • \n

                  \n LLP (Limited liability partnership)

                  \n
                • \n
                • \n

                  \n LTE (Lte.)

                  \n
                • \n
                • \n

                  \n MBA (Mutual benefit association)

                  \n
                • \n
                • \n

                  \n MIC (Mutual insurance company)

                  \n
                • \n
                • \n

                  \n NFP (Not-for-profit corporation)

                  \n
                • \n
                • \n

                  \n SA (S.A.)

                  \n
                • \n
                • \n

                  \n SAVINGS_COMPANY (Savings company)

                  \n
                • \n
                • \n

                  \n SAVINGS_UNION (Savings union)

                  \n
                • \n
                • \n

                  \n SARL (Société à responsabilité limitée)

                  \n
                • \n
                • \n

                  \n TRUST (Trust)

                  \n
                • \n
                • \n

                  \n ULC (Unlimited liability corporation)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n CA_LEGAL_TYPE\n

                \n\t\t\t\t\t\t\t

                When ContactType is PERSON, valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ABO (Aboriginal Peoples indigenous to Canada)

                  \n
                • \n
                • \n

                  \n CCT (Canadian citizen)

                  \n
                • \n
                • \n

                  \n LGR (Legal Representative of a Canadian Citizen or Permanent Resident)

                  \n
                • \n
                • \n

                  \n RES (Permanent resident of Canada)

                  \n
                • \n
                \n\n\t\t\t\t\t\t\t

                When ContactType is a value other than PERSON, valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ASS (Canadian unincorporated association)

                  \n
                • \n
                • \n

                  \n CCO (Canadian corporation)

                  \n
                • \n
                • \n

                  \n EDU (Canadian educational institution)

                  \n
                • \n
                • \n

                  \n GOV (Government or government entity in Canada)

                  \n
                • \n
                • \n

                  \n HOP (Canadian Hospital)

                  \n
                • \n
                • \n

                  \n INB (Indian Band recognized by the Indian Act of Canada)

                  \n
                • \n
                • \n

                  \n LAM (Canadian Library, Archive, or Museum)

                  \n
                • \n
                • \n

                  \n MAJ (Her/His Majesty the Queen/King)

                  \n
                • \n
                • \n

                  \n OMK (Official mark registered in Canada)

                  \n
                • \n
                • \n

                  \n PLT (Canadian Political Party)

                  \n
                • \n
                • \n

                  \n PRT (Partnership Registered in Canada)

                  \n
                • \n
                • \n

                  \n TDM (Trademark registered in Canada)

                  \n
                • \n
                • \n

                  \n TRD (Canadian Trade Union)

                  \n
                • \n
                • \n

                  \n TRS (Trust established in Canada)

                  \n
                • \n
                \n\n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .es
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n ES_IDENTIFICATION\n

                \n\t\t\t\t\t\t\t

                Specify the applicable value:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n For contacts inside Spain: Enter your passport ID.

                  \n
                • \n
                • \n

                  \n For contacts outside of Spain: Enter the VAT identification number \n\t\t\t\t\t\t\t\t\tfor the company.

                  \n\t\t\t\t\t\t\t\t\t \n

                  For .es domains, the value of ContactType must be PERSON.

                  \n
                  \n\t\t\t\t\t\t\t\t
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n ES_IDENTIFICATION_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n DNI_AND_NIF (For Spanish contacts)

                  \n
                • \n
                • \n

                  \n NIE (For foreigners with legal residence)

                  \n
                • \n
                • \n

                  \n OTHER (For contacts outside of Spain)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n ES_LEGAL_FORM\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n CENTRAL_GOVERNMENT_BODY\n

                  \n
                • \n
                • \n

                  \n CIVIL_SOCIETY\n

                  \n
                • \n
                • \n

                  \n COMMUNITY_OF_OWNERS\n

                  \n
                • \n
                • \n

                  \n COMMUNITY_PROPERTY\n

                  \n
                • \n
                • \n

                  \n CONSULATE\n

                  \n
                • \n
                • \n

                  \n COOPERATIVE\n

                  \n
                • \n
                • \n

                  \n DESIGNATION_OF_ORIGIN_SUPERVISORY_COUNCIL\n

                  \n
                • \n
                • \n

                  \n ECONOMIC_INTEREST_GROUP\n

                  \n
                • \n
                • \n

                  \n EMBASSY\n

                  \n
                • \n
                • \n

                  \n ENTITY_MANAGING_NATURAL_AREAS\n

                  \n
                • \n
                • \n

                  \n FARM_PARTNERSHIP\n

                  \n
                • \n
                • \n

                  \n FOUNDATION\n

                  \n
                • \n
                • \n

                  \n GENERAL_AND_LIMITED_PARTNERSHIP\n

                  \n
                • \n
                • \n

                  \n GENERAL_PARTNERSHIP\n

                  \n
                • \n
                • \n

                  \n INDIVIDUAL\n

                  \n
                • \n
                • \n

                  \n LIMITED_COMPANY\n

                  \n
                • \n
                • \n

                  \n LOCAL_AUTHORITY\n

                  \n
                • \n
                • \n

                  \n LOCAL_PUBLIC_ENTITY\n

                  \n
                • \n
                • \n

                  \n MUTUAL_INSURANCE_COMPANY\n

                  \n
                • \n
                • \n

                  \n NATIONAL_PUBLIC_ENTITY\n

                  \n
                • \n
                • \n

                  \n ORDER_OR_RELIGIOUS_INSTITUTION\n

                  \n
                • \n
                • \n

                  \n OTHERS (Only for contacts outside of Spain)\n

                  \n
                • \n
                • \n

                  \n POLITICAL_PARTY\n

                  \n
                • \n
                • \n

                  \n PROFESSIONAL_ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n PUBLIC_LAW_ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n PUBLIC_LIMITED_COMPANY\n

                  \n
                • \n
                • \n

                  \n REGIONAL_GOVERNMENT_BODY\n

                  \n
                • \n
                • \n

                  \n REGIONAL_PUBLIC_ENTITY\n

                  \n
                • \n
                • \n

                  \n SAVINGS_BANK\n

                  \n
                • \n
                • \n

                  \n SPANISH_OFFICE\n

                  \n
                • \n
                • \n

                  \n SPORTS_ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n SPORTS_FEDERATION\n

                  \n
                • \n
                • \n

                  \n SPORTS_LIMITED_COMPANY\n

                  \n
                • \n
                • \n

                  \n TEMPORARY_ALLIANCE_OF_ENTERPRISES\n

                  \n
                • \n
                • \n

                  \n TRADE_UNION\n

                  \n
                • \n
                • \n

                  \n WORKER_OWNED_COMPANY\n

                  \n
                • \n
                • \n

                  \n WORKER_OWNED_LIMITED_COMPANY\n

                  \n
                • \n
                \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .fi
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_DATE_IN_YYYY_MM_DD\n

                \n
              • \n
              • \n

                \n FI_BUSINESS_NUMBER\n

                \n
              • \n
              • \n

                \n FI_ID_NUMBER\n

                \n
              • \n
              • \n

                \n FI_NATIONALITY\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n FINNISH\n

                  \n
                • \n
                • \n

                  \n NOT_FINNISH\n

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n FI_ORGANIZATION_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n COMPANY\n

                  \n
                • \n
                • \n

                  \n CORPORATION\n

                  \n
                • \n
                • \n

                  \n GOVERNMENT\n

                  \n
                • \n
                • \n

                  \n INSTITUTION\n

                  \n
                • \n
                • \n

                  \n POLITICAL_PARTY\n

                  \n
                • \n
                • \n

                  \n PUBLIC_COMMUNITY\n

                  \n
                • \n
                • \n

                  \n TOWNSHIP\n

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .fr
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_CITY\n

                \n
              • \n
              • \n

                \n BIRTH_COUNTRY\n

                \n
              • \n
              • \n

                \n BIRTH_DATE_IN_YYYY_MM_DD\n

                \n
              • \n
              • \n

                \n BIRTH_DEPARTMENT: Specify the INSEE code that corresponds with the department where the contact was born. \n\t\t\t\t\t\t\tIf the contact was born somewhere other than France or its overseas departments, specify 99. For more information, \n\t\t\t\t\t\t\tincluding a list of departments and the corresponding INSEE numbers, see the Wikipedia entry \n\t\t\t\t\t\t\tDepartments of France.

                \n
              • \n
              • \n

                \n BRAND_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .it
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n IT_NATIONALITY\n

                \n
              • \n
              • \n

                \n IT_PIN\n

                \n
              • \n
              • \n

                \n IT_REGISTRANT_ENTITY_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n FOREIGNERS\n

                  \n
                • \n
                • \n

                  \n FREELANCE_WORKERS (Freelance workers and professionals)

                  \n
                • \n
                • \n

                  \n ITALIAN_COMPANIES (Italian companies and one-person companies)

                  \n
                • \n
                • \n

                  \n NON_PROFIT_ORGANIZATIONS\n

                  \n
                • \n
                • \n

                  \n OTHER_SUBJECTS\n

                  \n
                • \n
                • \n

                  \n PUBLIC_ORGANIZATIONS\n

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .ru
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_DATE_IN_YYYY_MM_DD\n

                \n
              • \n
              • \n

                \n RU_PASSPORT_DATA\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .se
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_COUNTRY\n

                \n
              • \n
              • \n

                \n SE_ID_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .sg
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n SG_ID_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .co.uk, .me.uk, and .org.uk
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n UK_CONTACT_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n CRC (UK Corporation by Royal Charter)

                  \n
                • \n
                • \n

                  \n FCORP (Non-UK Corporation)

                  \n
                • \n
                • \n

                  \n FIND (Non-UK Individual, representing self)

                  \n
                • \n
                • \n

                  \n FOTHER (Non-UK Entity that does not fit into any other category)

                  \n
                • \n
                • \n

                  \n GOV (UK Government Body)

                  \n
                • \n
                • \n

                  \n IND (UK Individual (representing self))

                  \n
                • \n
                • \n

                  \n IP (UK Industrial/Provident Registered Company)

                  \n
                • \n
                • \n

                  \n LLP (UK Limited Liability Partnership)

                  \n
                • \n
                • \n

                  \n LTD (UK Limited Company)

                  \n
                • \n
                • \n

                  \n OTHER (UK Entity that does not fit into any other category)

                  \n
                • \n
                • \n

                  \n PLC (UK Public Limited Company)

                  \n
                • \n
                • \n

                  \n PTNR (UK Partnership)

                  \n
                • \n
                • \n

                  \n RCHAR (UK Registered Charity)

                  \n
                • \n
                • \n

                  \n SCH (UK School)

                  \n
                • \n
                • \n

                  \n STAT (UK Statutory Body)

                  \n
                • \n
                • \n

                  \n STRA (UK Sole Trader)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n UK_COMPANY_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              \n\n\t\t

              In addition, many TLDs require a VAT_NUMBER.

              ", + "smithy.api#documentation": "

              The name of an additional parameter that is required by a top-level domain. Here are the top-level domains that require \n\t\t\tadditional parameters and the names of the parameters that they require:

              \n\n\t\t
              \n
              .com.au and .net.au
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n AU_ID_NUMBER\n

                \n
              • \n
              • \n

                \n AU_ID_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ABN (Australian business number)

                  \n
                • \n
                • \n

                  \n ACN (Australian company number)

                  \n
                • \n
                • \n

                  \n TM (Trademark number)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .ca
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BRAND_NUMBER\n

                \n
              • \n
              • \n

                \n CA_BUSINESS_ENTITY_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n BANK (Bank)

                  \n
                • \n
                • \n

                  \n COMMERCIAL_COMPANY (Commercial company)

                  \n
                • \n
                • \n

                  \n COMPANY (Company)

                  \n
                • \n
                • \n

                  \n COOPERATION (Cooperation)

                  \n
                • \n
                • \n

                  \n COOPERATIVE (Cooperative)

                  \n
                • \n
                • \n

                  \n COOPRIX (Cooprix)

                  \n
                • \n
                • \n

                  \n CORP (Corporation)

                  \n
                • \n
                • \n

                  \n CREDIT_UNION (Credit union)

                  \n
                • \n
                • \n

                  \n FOMIA (Federation of mutual insurance associations)

                  \n
                • \n
                • \n

                  \n INC (Incorporated)

                  \n
                • \n
                • \n

                  \n LTD (Limited)

                  \n
                • \n
                • \n

                  \n LTEE (Limitée)

                  \n
                • \n
                • \n

                  \n LLC (Limited liability corporation)

                  \n
                • \n
                • \n

                  \n LLP (Limited liability partnership)

                  \n
                • \n
                • \n

                  \n LTE (Lte.)

                  \n
                • \n
                • \n

                  \n MBA (Mutual benefit association)

                  \n
                • \n
                • \n

                  \n MIC (Mutual insurance company)

                  \n
                • \n
                • \n

                  \n NFP (Not-for-profit corporation)

                  \n
                • \n
                • \n

                  \n SA (S.A.)

                  \n
                • \n
                • \n

                  \n SAVINGS_COMPANY (Savings company)

                  \n
                • \n
                • \n

                  \n SAVINGS_UNION (Savings union)

                  \n
                • \n
                • \n

                  \n SARL (Société à responsabilité limitée)

                  \n
                • \n
                • \n

                  \n TRUST (Trust)

                  \n
                • \n
                • \n

                  \n ULC (Unlimited liability corporation)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n CA_LEGAL_TYPE\n

                \n\t\t\t\t\t\t\t

                When ContactType is PERSON, valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ABO (Aboriginal Peoples indigenous to Canada)

                  \n
                • \n
                • \n

                  \n CCT (Canadian citizen)

                  \n
                • \n
                • \n

                  \n LGR (Legal Representative of a Canadian Citizen or Permanent Resident)

                  \n
                • \n
                • \n

                  \n RES (Permanent resident of Canada)

                  \n
                • \n
                \n\n\t\t\t\t\t\t\t

                When ContactType is a value other than PERSON, valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ASS (Canadian unincorporated association)

                  \n
                • \n
                • \n

                  \n CCO (Canadian corporation)

                  \n
                • \n
                • \n

                  \n EDU (Canadian educational institution)

                  \n
                • \n
                • \n

                  \n GOV (Government or government entity in Canada)

                  \n
                • \n
                • \n

                  \n HOP (Canadian Hospital)

                  \n
                • \n
                • \n

                  \n INB (Indian Band recognized by the Indian Act of Canada)

                  \n
                • \n
                • \n

                  \n LAM (Canadian Library, Archive, or Museum)

                  \n
                • \n
                • \n

                  \n MAJ (Her/His Majesty the Queen/King)

                  \n
                • \n
                • \n

                  \n OMK (Official mark registered in Canada)

                  \n
                • \n
                • \n

                  \n PLT (Canadian Political Party)

                  \n
                • \n
                • \n

                  \n PRT (Partnership Registered in Canada)

                  \n
                • \n
                • \n

                  \n TDM (Trademark registered in Canada)

                  \n
                • \n
                • \n

                  \n TRD (Canadian Trade Union)

                  \n
                • \n
                • \n

                  \n TRS (Trust established in Canada)

                  \n
                • \n
                \n\n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .es
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n ES_IDENTIFICATION\n

                \n\t\t\t\t\t\t\t

                The value of ES_IDENTIFICATION depends on the following values:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  The value of ES_LEGAL_FORM\n

                  \n
                • \n
                • \n

                  The value of ES_IDENTIFICATION_TYPE\n

                  \n
                • \n
                \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

                \n If ES_LEGAL_FORM is any value other than INDIVIDUAL:\n

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  Specify 1 letter + 8 numbers (CIF [Certificado de Identificación Fiscal])

                  \n
                • \n
                • \n

                  Example: B12345678

                  \n
                • \n
                \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

                \n If ES_LEGAL_FORM is INDIVIDUAL, the value that you specify for \n\t\t\t\t\t\t\t\tES_IDENTIFICATION depends on the value of ES_IDENTIFICATION_TYPE:\n

                \n\t\t\t\t\t\t\t
                  \n
                • \n\t\t\t\t\t\t\t\t\t

                  If ES_IDENTIFICATION_TYPE is DNI_AND_NIF (for Spanish contacts):

                  \n\t\t\t\t\t\t\t\t\t
                    \n
                  • \n

                    Specify 8 numbers + 1 letter (DNI [Documento Nacional de Identidad], NIF [Número de Identificación Fiscal])

                    \n
                  • \n
                  • \n

                    Example: 12345678M

                    \n
                  • \n
                  \n\t\t\t\t\t\t\t\t
                • \n
                • \n\t\t\t\t\t\t\t\t\t

                  If ES_IDENTIFICATION_TYPE is NIE (for foreigners with legal residence):

                  \n\t\t\t\t\t\t\t\t\t
                    \n
                  • \n

                    Specify 1 letter + 7 numbers + 1 letter ( NIE [Número de Identidad de Extranjero])

                    \n
                  • \n
                  • \n

                    Example: Y1234567X

                    \n
                  • \n
                  \n\t\t\t\t\t\t\t\t
                • \n
                • \n\t\t\t\t\t\t\t\t\t

                  If ES_IDENTIFICATION_TYPE is OTHER (for contacts outside of Spain):

                  \n\t\t\t\t\t\t\t\t\t
                    \n
                  • \n

                    Specify a passport number, drivers license number, or national identity card number

                    \n
                  • \n
                  \n\t\t\t\t\t\t\t\t
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n ES_IDENTIFICATION_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n DNI_AND_NIF (For Spanish contacts)

                  \n
                • \n
                • \n

                  \n NIE (For foreigners with legal residence)

                  \n
                • \n
                • \n

                  \n OTHER (For contacts outside of Spain)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n ES_LEGAL_FORM\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n CENTRAL_GOVERNMENT_BODY\n

                  \n
                • \n
                • \n

                  \n CIVIL_SOCIETY\n

                  \n
                • \n
                • \n

                  \n COMMUNITY_OF_OWNERS\n

                  \n
                • \n
                • \n

                  \n COMMUNITY_PROPERTY\n

                  \n
                • \n
                • \n

                  \n CONSULATE\n

                  \n
                • \n
                • \n

                  \n COOPERATIVE\n

                  \n
                • \n
                • \n

                  \n DESIGNATION_OF_ORIGIN_SUPERVISORY_COUNCIL\n

                  \n
                • \n
                • \n

                  \n ECONOMIC_INTEREST_GROUP\n

                  \n
                • \n
                • \n

                  \n EMBASSY\n

                  \n
                • \n
                • \n

                  \n ENTITY_MANAGING_NATURAL_AREAS\n

                  \n
                • \n
                • \n

                  \n FARM_PARTNERSHIP\n

                  \n
                • \n
                • \n

                  \n FOUNDATION\n

                  \n
                • \n
                • \n

                  \n GENERAL_AND_LIMITED_PARTNERSHIP\n

                  \n
                • \n
                • \n

                  \n GENERAL_PARTNERSHIP\n

                  \n
                • \n
                • \n

                  \n INDIVIDUAL\n

                  \n
                • \n
                • \n

                  \n LIMITED_COMPANY\n

                  \n
                • \n
                • \n

                  \n LOCAL_AUTHORITY\n

                  \n
                • \n
                • \n

                  \n LOCAL_PUBLIC_ENTITY\n

                  \n
                • \n
                • \n

                  \n MUTUAL_INSURANCE_COMPANY\n

                  \n
                • \n
                • \n

                  \n NATIONAL_PUBLIC_ENTITY\n

                  \n
                • \n
                • \n

                  \n ORDER_OR_RELIGIOUS_INSTITUTION\n

                  \n
                • \n
                • \n

                  \n OTHERS (Only for contacts outside of Spain)\n

                  \n
                • \n
                • \n

                  \n POLITICAL_PARTY\n

                  \n
                • \n
                • \n

                  \n PROFESSIONAL_ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n PUBLIC_LAW_ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n PUBLIC_LIMITED_COMPANY\n

                  \n
                • \n
                • \n

                  \n REGIONAL_GOVERNMENT_BODY\n

                  \n
                • \n
                • \n

                  \n REGIONAL_PUBLIC_ENTITY\n

                  \n
                • \n
                • \n

                  \n SAVINGS_BANK\n

                  \n
                • \n
                • \n

                  \n SPANISH_OFFICE\n

                  \n
                • \n
                • \n

                  \n SPORTS_ASSOCIATION\n

                  \n
                • \n
                • \n

                  \n SPORTS_FEDERATION\n

                  \n
                • \n
                • \n

                  \n SPORTS_LIMITED_COMPANY\n

                  \n
                • \n
                • \n

                  \n TEMPORARY_ALLIANCE_OF_ENTERPRISES\n

                  \n
                • \n
                • \n

                  \n TRADE_UNION\n

                  \n
                • \n
                • \n

                  \n WORKER_OWNED_COMPANY\n

                  \n
                • \n
                • \n

                  \n WORKER_OWNED_LIMITED_COMPANY\n

                  \n
                • \n
                \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .eu
              \n
              \n\t\t
                \n
              • \n

                \n EU_COUNTRY_OF_CITIZENSHIP\n

                \n
              • \n
              \n\t\t
              \n
              .fi
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_DATE_IN_YYYY_MM_DD\n

                \n
              • \n
              • \n

                \n FI_BUSINESS_NUMBER\n

                \n
              • \n
              • \n

                \n FI_ID_NUMBER\n

                \n
              • \n
              • \n

                \n FI_NATIONALITY\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n FINNISH\n

                  \n
                • \n
                • \n

                  \n NOT_FINNISH\n

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n FI_ORGANIZATION_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n COMPANY\n

                  \n
                • \n
                • \n

                  \n CORPORATION\n

                  \n
                • \n
                • \n

                  \n GOVERNMENT\n

                  \n
                • \n
                • \n

                  \n INSTITUTION\n

                  \n
                • \n
                • \n

                  \n POLITICAL_PARTY\n

                  \n
                • \n
                • \n

                  \n PUBLIC_COMMUNITY\n

                  \n
                • \n
                • \n

                  \n TOWNSHIP\n

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .fr
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_CITY\n

                \n
              • \n
              • \n

                \n BIRTH_COUNTRY\n

                \n
              • \n
              • \n

                \n BIRTH_DATE_IN_YYYY_MM_DD\n

                \n
              • \n
              • \n

                \n BIRTH_DEPARTMENT: Specify the INSEE code that corresponds with the department where the contact was born. \n\t\t\t\t\t\t\tIf the contact was born somewhere other than France or its overseas departments, specify 99. For more information, \n\t\t\t\t\t\t\tincluding a list of departments and the corresponding INSEE numbers, see the Wikipedia entry \n\t\t\t\t\t\t\tDepartments of France.

                \n
              • \n
              • \n

                \n BRAND_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .it
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n IT_NATIONALITY\n

                \n
              • \n
              • \n

                \n IT_PIN\n

                \n
              • \n
              • \n

                \n IT_REGISTRANT_ENTITY_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n FOREIGNERS\n

                  \n
                • \n
                • \n

                  \n FREELANCE_WORKERS (Freelance workers and professionals)

                  \n
                • \n
                • \n

                  \n ITALIAN_COMPANIES (Italian companies and one-person companies)

                  \n
                • \n
                • \n

                  \n NON_PROFIT_ORGANIZATIONS\n

                  \n
                • \n
                • \n

                  \n OTHER_SUBJECTS\n

                  \n
                • \n
                • \n

                  \n PUBLIC_ORGANIZATIONS\n

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              \n\t\t\t\t
              \n
              .ru
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_DATE_IN_YYYY_MM_DD\n

                \n
              • \n
              • \n

                \n RU_PASSPORT_DATA\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .se
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n BIRTH_COUNTRY\n

                \n
              • \n
              • \n

                \n SE_ID_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .sg
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n SG_ID_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              .co.uk, .me.uk, and .org.uk
              \n
              \n\t\t\t\t\t
                \n
              • \n

                \n UK_CONTACT_TYPE\n

                \n\t\t\t\t\t\t\t

                Valid values include the following:

                \n\t\t\t\t\t\t\t
                  \n
                • \n

                  \n CRC (UK Corporation by Royal Charter)

                  \n
                • \n
                • \n

                  \n FCORP (Non-UK Corporation)

                  \n
                • \n
                • \n

                  \n FIND (Non-UK Individual, representing self)

                  \n
                • \n
                • \n

                  \n FOTHER (Non-UK Entity that does not fit into any other category)

                  \n
                • \n
                • \n

                  \n GOV (UK Government Body)

                  \n
                • \n
                • \n

                  \n IND (UK Individual (representing self))

                  \n
                • \n
                • \n

                  \n IP (UK Industrial/Provident Registered Company)

                  \n
                • \n
                • \n

                  \n LLP (UK Limited Liability Partnership)

                  \n
                • \n
                • \n

                  \n LTD (UK Limited Company)

                  \n
                • \n
                • \n

                  \n OTHER (UK Entity that does not fit into any other category)

                  \n
                • \n
                • \n

                  \n PLC (UK Public Limited Company)

                  \n
                • \n
                • \n

                  \n PTNR (UK Partnership)

                  \n
                • \n
                • \n

                  \n RCHAR (UK Registered Charity)

                  \n
                • \n
                • \n

                  \n SCH (UK School)

                  \n
                • \n
                • \n

                  \n STAT (UK Statutory Body)

                  \n
                • \n
                • \n

                  \n STRA (UK Sole Trader)

                  \n
                • \n
                \n\t\t\t\t\t\t
              • \n
              • \n

                \n UK_COMPANY_NUMBER\n

                \n
              • \n
              \n\t\t\t\t
              \n
              \n\n\t\t

              In addition, many TLDs require a VAT_NUMBER.

              ", "smithy.api#required": {} } }, @@ -1976,6 +2191,10 @@ { "value": "UK_COMPANY_NUMBER", "name": "UK_COMPANY_NUMBER" + }, + { + "value": "EU_COUNTRY_OF_CITIZENSHIP", + "name": "EU_COUNTRY_OF_CITIZENSHIP" } ] } @@ -1986,11 +2205,54 @@ "smithy.api#length": { "min": 0, "max": 2048 - } + }, + "smithy.api#sensitive": {} } }, "com.amazonaws.route53domains#FIAuthKey": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 255 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.route53domains#FilterCondition": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53domains#ListDomainsAttributeName", + "traits": { + "smithy.api#documentation": "

              Name of the field which should be used for filtering the list of domains.

              ", + "smithy.api#required": {} + } + }, + "Operator": { + "target": "com.amazonaws.route53domains#Operator", + "traits": { + "smithy.api#documentation": "

              The operator values for filtering domain names. The values can be:

              \n\t\t
                \n
              • \n

                \n LE: Less than, or equal to

                \n
              • \n
              • \n

                \n GE: Greater than, or equal to

                \n
              • \n
              • \n

                \n BEGINS_WITH: Begins with

                \n
              • \n
              ", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.route53domains#Values", + "traits": { + "smithy.api#documentation": "

              An array of strings presenting values to compare. Only 1 item in the list is currently supported.

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              Information for the filtering of a list of domains returned by \n\t\t\tListDomains.

              " + } + }, + "com.amazonaws.route53domains#FilterConditions": { + "type": "list", + "member": { + "target": "com.amazonaws.route53domains#FilterCondition" + } }, "com.amazonaws.route53domains#GetContactReachabilityStatus": { "type": "operation", @@ -2060,7 +2322,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This operation returns detailed information about a specified domain that is associated with the current AWS account. \n\t\t\tContact information for the domain is also returned as part of the output.

              " + "smithy.api#documentation": "

              This operation returns detailed information about a specified domain that is associated with the current Amazon Web Services account. \n\t\t\tContact information for the domain is also returned as part of the output.

              " } }, "com.amazonaws.route53domains#GetDomainDetailRequest": { @@ -2091,7 +2353,7 @@ "Nameservers": { "target": "com.amazonaws.route53domains#NameserverList", "traits": { - "smithy.api#documentation": "

              The name of the domain.

              ", + "smithy.api#documentation": "

              The\n\t\t\tname of the domain.

              ", "smithy.api#required": {} } }, @@ -2125,7 +2387,7 @@ "AdminPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Specifies whether contact information is concealed from WHOIS queries. If the value is true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If the value is false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              " + "smithy.api#documentation": "

              Specifies whether contact information is concealed from WHOIS\n\t\t\tqueries. If the value is true, WHOIS (\"who is\") queries return contact\n\t\t\tinformation either for Amazon Registrar (for .com, .net, and .org domains) or for our\n\t\t\tregistrar associate, Gandi (for all other TLDs). If the value is false,\n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              " } }, "RegistrantPrivacy": { @@ -2203,7 +2465,7 @@ "DnsSec": { "target": "com.amazonaws.route53domains#DNSSec", "traits": { - "smithy.api#documentation": "

              Reserved for future use.

              " + "smithy.api#documentation": "

              Deprecated.

              " } }, "StatusList": { @@ -2372,7 +2634,7 @@ "min": 0, "max": 255 }, - "smithy.api#pattern": "[a-zA-Z0-9_\\-.]*" + "smithy.api#pattern": "^[a-zA-Z0-9_\\-.]*$" } }, "com.amazonaws.route53domains#Integer": { @@ -2420,7 +2682,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This operation returns all the domain names registered with Amazon Route 53 for the current AWS account.

              ", + "smithy.api#documentation": "

              This operation returns all the domain names registered with Amazon Route 53 for the current Amazon Web Services account\n\t\t\t if no filtering conditions are used.

              ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextPageMarker", @@ -2429,13 +2691,40 @@ } } }, + "com.amazonaws.route53domains#ListDomainsAttributeName": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DomainName", + "name": "DomainName" + }, + { + "value": "Expiry", + "name": "Expiry" + } + ] + } + }, "com.amazonaws.route53domains#ListDomainsRequest": { "type": "structure", "members": { + "FilterConditions": { + "target": "com.amazonaws.route53domains#FilterConditions", + "traits": { + "smithy.api#documentation": "

              A complex type that contains information about the filters applied during the ListDomains request. The filter conditions can\n\t\t\tinclude domain name and domain expiration.

              " + } + }, + "SortCondition": { + "target": "com.amazonaws.route53domains#SortCondition", + "traits": { + "smithy.api#documentation": "

              A complex type that contains information about the requested ordering of domains in the returned list.

              " + } + }, "Marker": { "target": "com.amazonaws.route53domains#PageMarker", "traits": { - "smithy.api#documentation": "

              For an initial request for a list of domains, omit this element. If the number of domains\n\t\t\tthat are associated with the current AWS account is greater than the value that you specified for\n\t\t\tMaxItems, you can use Marker to return additional domains. Get the value of\n\t\t\tNextPageMarker from the previous response, and submit another request that includes the\n\t\t\tvalue of NextPageMarker in the Marker element.

              \n\t\t

              Constraints: The marker must match the value specified in the previous request.

              " + "smithy.api#documentation": "

              For an initial request for a list of domains, omit this element. If the number of domains\n\t\t\tthat are associated with the current Amazon Web Services account is greater than the value that you specified for\n\t\t\tMaxItems, you can use Marker to return additional domains. Get the value of\n\t\t\tNextPageMarker from the previous response, and submit another request that includes the\n\t\t\tvalue of NextPageMarker in the Marker element.

              \n\t\t

              Constraints: The marker must match the value specified in the previous request.

              " } }, "MaxItems": { @@ -2455,7 +2744,7 @@ "Domains": { "target": "com.amazonaws.route53domains#DomainSummaryList", "traits": { - "smithy.api#documentation": "

              A summary of domains.

              ", + "smithy.api#documentation": "

              A list of domains.

              ", "smithy.api#required": {} } }, @@ -2484,7 +2773,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns information about all of the operations that return an operation ID and that have ever been \n\t\t\tperformed on domains that were registered by the current account.

              ", + "smithy.api#documentation": "

              Returns information about all of the operations that return an operation ID and that have ever been \n\t\t\tperformed on domains that were registered by the current account.

              \n\t\t

              This command runs only in the us-east-1 Region.

              ", "smithy.api#paginated": { "inputToken": "Marker", "outputToken": "NextPageMarker", @@ -2540,6 +2829,73 @@ "smithy.api#documentation": "

              The ListOperations response includes the following elements.

              " } }, + "com.amazonaws.route53domains#ListPrices": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53domains#ListPricesRequest" + }, + "output": { + "target": "com.amazonaws.route53domains#ListPricesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53domains#InvalidInput" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" + } + ], + "traits": { + "smithy.api#documentation": "

              Lists the following prices for either all the TLDs supported by Route 53, or the specified TLD:

              \n\t\t
                \n
              • \n

                Registration

                \n
              • \n
              • \n

                Transfer

                \n
              • \n
              • \n

                Owner change

                \n
              • \n
              • \n

                Domain renewal

                \n
              • \n
              • \n

                Domain restoration

                \n
              • \n
              ", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextPageMarker", + "items": "Prices", + "pageSize": "MaxItems" + } + } + }, + "com.amazonaws.route53domains#ListPricesRequest": { + "type": "structure", + "members": { + "Tld": { + "target": "com.amazonaws.route53domains#TldName", + "traits": { + "smithy.api#documentation": "

              The TLD for which you want to receive the pricing information. For example.\n\t\t\t\t.net.

              \n\t\t

              If a Tld value is not provided, a list of prices for all TLDs supported by Route 53\n\t\tis returned.

              " + } + }, + "Marker": { + "target": "com.amazonaws.route53domains#PageMarker", + "traits": { + "smithy.api#documentation": "

              For an initial request for a list of prices, omit this element. \n\t\t\tIf the number of prices that are not yet complete is greater than the value that you specified for MaxItems, \n\t\t\tyou can use Marker to return additional prices. Get the value of NextPageMarker from the previous response, \n\t\t\tand submit another request that includes the value of NextPageMarker in the Marker element.

              \n\t\t

              Used only for all TLDs. If you specify a TLD, don't specify a Marker.

              " + } + }, + "MaxItems": { + "target": "com.amazonaws.route53domains#PageMaxItems", + "traits": { + "smithy.api#documentation": "

              Number of Prices to be returned.

              \n\t\t

              Used only for all TLDs. If you specify a TLD, don't specify a MaxItems.

              " + } + } + } + }, + "com.amazonaws.route53domains#ListPricesResponse": { + "type": "structure", + "members": { + "Prices": { + "target": "com.amazonaws.route53domains#DomainPriceList", + "traits": { + "smithy.api#documentation": "

              A complex type that includes all the pricing information. If you specify a TLD, this array\n\t\t\tcontains only the pricing for that TLD.

              ", + "smithy.api#required": {} + } + }, + "NextPageMarker": { + "target": "com.amazonaws.route53domains#PageMarker", + "traits": { + "smithy.api#documentation": "

              If there are more prices than you specified for MaxItems in the request, submit another request and include the value of \n\t\t\tNextPageMarker in the value of Marker.

              \n\t\t

              Used only for all TLDs. If you specify a TLD, don't specify a\n\t\t\tNextPageMarker.

              " + } + } + } + }, "com.amazonaws.route53domains#ListTagsForDomain": { "type": "operation", "input": { @@ -2793,6 +3149,25 @@ ] } }, + "com.amazonaws.route53domains#Operator": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LE", + "name": "LE" + }, + { + "value": "GE", + "name": "GE" + }, + { + "value": "BEGINS_WITH", + "name": "BEGINS_WITH" + } + ] + } + }, "com.amazonaws.route53domains#PageMarker": { "type": "string", "traits": { @@ -2814,6 +3189,28 @@ "com.amazonaws.route53domains#Price": { "type": "double" }, + "com.amazonaws.route53domains#PriceWithCurrency": { + "type": "structure", + "members": { + "Price": { + "target": "com.amazonaws.route53domains#Price", + "traits": { + "smithy.api#documentation": "

              The price of a domain, in a specific currency.

              ", + "smithy.api#required": {} + } + }, + "Currency": { + "target": "com.amazonaws.route53domains#Currency", + "traits": { + "smithy.api#documentation": "

              The currency specifier.

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              Currency-specific price information.

              " + } + }, "com.amazonaws.route53domains#ReachabilityStatus": { "type": "string", "traits": { @@ -2862,7 +3259,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This operation registers a domain. Domains are registered either by Amazon Registrar (for .com, .net, and .org domains) or by \n\t\t\tour registrar associate, Gandi (for all other domains). For some top-level domains (TLDs), this operation requires extra parameters.

              \n\t\t

              When you register a domain, Amazon Route 53 does the following:

              \n\t\t\t
                \n
              • \n

                Creates a Route 53 hosted zone that has the same name as the domain. Route 53 assigns four name servers \n\t\t\t\t\tto your hosted zone and automatically updates your domain registration with the names of these name servers.

                \n
              • \n
              • \n

                Enables autorenew, so your domain registration will renew automatically each year. We'll notify you \n\t\t\t\t\tin advance of the renewal date so you can choose whether to renew the registration.

                \n
              • \n
              • \n

                Optionally enables privacy protection, so WHOIS queries return contact information either for Amazon Registrar \n\t\t\t\t\t(for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you don't enable privacy \n\t\t\t\t\tprotection, WHOIS queries return the information that you entered for the registrant, admin, and tech contacts.

                \n
              • \n
              • \n

                If registration is successful, returns an operation ID that you can use to track the progress and \n\t\t\t\t\tcompletion of the action. If the request is not completed successfully, the domain registrant is notified by email.

                \n
              • \n
              • \n

                Charges your AWS account an amount based on the top-level domain. For more information, see \n\t\t\t\t\tAmazon Route 53 Pricing.

                \n
              • \n
              " + "smithy.api#documentation": "

              This operation registers a domain. Domains are registered either by Amazon Registrar (for .com, .net, and .org domains) or by \n\t\t\tour registrar associate, Gandi (for all other domains). For some top-level domains (TLDs), this operation requires extra parameters.

              \n\t\t

              When you register a domain, Amazon Route 53 does the following:

              \n\t\t\t
                \n
              • \n

                Creates a Route 53 hosted zone that has the same name as the domain. Route 53 assigns four name servers \n\t\t\t\t\tto your hosted zone and automatically updates your domain registration with the names of these name servers.

                \n
              • \n
              • \n

                Enables autorenew, so your domain registration will renew automatically each year. We'll notify you \n\t\t\t\t\tin advance of the renewal date so you can choose whether to renew the registration.

                \n
              • \n
              • \n

                Optionally enables privacy protection, so WHOIS queries return contact information either for Amazon Registrar \n\t\t\t\t\t(for .com, .net, and .org domains) or for our registrar associate, Gandi (for all other TLDs). If you don't enable privacy \n\t\t\t\t\tprotection, WHOIS queries return the information that you entered for the administrative, registrant, and technical contacts.

                \n\t\t\t\t\t \n\t\t\t\t\t\t

                You must specify the same privacy setting for the administrative, registrant, and technical contacts.

                \n\t\t\t\t\t
                \n\t\t\t\t
              • \n
              • \n

                If registration is successful, returns an operation ID that you can use to track the progress and \n\t\t\t\t\tcompletion of the action. If the request is not completed successfully, the domain registrant is notified by email.

                \n
              • \n
              • \n

                Charges your Amazon Web Services account an amount based on the top-level domain. For more information, see \n\t\t\t\t\tAmazon Route 53 Pricing.

                \n
              • \n
              " } }, "com.amazonaws.route53domains#RegisterDomainRequest": { @@ -2918,19 +3315,19 @@ "PrivacyProtectAdminContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              \n\t\t

              Default: true\n

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              Default: true\n

              " } }, "PrivacyProtectRegistrantContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (the domain owner).

              \n\t\t

              Default: true\n

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (the domain owner).

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              Default: true\n

              " } }, "PrivacyProtectTechContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

              \n\t\t

              Default: true\n

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              Default: true\n

              " } } }, @@ -2979,10 +3376,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

              Rejects the transfer of a domain from another AWS account to the current AWS account. You initiate a transfer between AWS accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

              \n\t\t\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " + "smithy.api#documentation": "

              Rejects the transfer of a domain from another Amazon Web Services account to the current Amazon Web Services account. You initiate a transfer betweenAmazon Web Services accounts using \n\t\t\tTransferDomainToAnotherAwsAccount.\n\t\t

              \n\t\t\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " } }, "com.amazonaws.route53domains#RejectDomainTransferFromAnotherAwsAccountRequest": { @@ -2991,7 +3391,7 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

              The name of the domain that was specified when another AWS account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

              ", + "smithy.api#documentation": "

              The name of the domain that was specified when another Amazon Web Services account submitted a \n\t\t\tTransferDomainToAnotherAwsAccount\n\t\t\trequest.\n\t\t

              ", "smithy.api#required": {} } } @@ -3040,7 +3440,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your AWS account.

              \n\t\t

              We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the \n\t\t\texpiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see \n\t\t\tRenewing Registration for a Domain \n\t\t\tin the Amazon Route 53 Developer Guide.

              " + "smithy.api#documentation": "

              This operation renews a domain for the specified number of years. The cost of renewing your domain is billed to your Amazon Web Services account.

              \n\t\t

              We recommend that you renew your domain several weeks before the expiration date. Some TLD registries delete domains before the \n\t\t\texpiration date if you haven't renewed far enough in advance. For more information about renewing domain registration, see \n\t\t\tRenewing Registration for a Domain \n\t\t\tin the Amazon Route 53 Developer Guide.

              " } }, "com.amazonaws.route53domains#RenewDomainRequest": { @@ -3195,6 +3595,24 @@ }, "com.amazonaws.route53domains#Route53Domains_v20140515": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route 53 Domains", + "arnNamespace": "route53domains", + "cloudFormationName": "Route53Domains", + "cloudTrailEventSource": "route53domains.amazonaws.com", + "endpointPrefix": "route53domains" + }, + "aws.auth#sigv4": { + "name": "route53domains" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

              Amazon Route 53 API actions let you register domain names and perform related operations.

              ", + "smithy.api#title": "Amazon Route 53 Domains", + "smithy.api#xmlNamespace": { + "uri": "https://route53domains.amazonaws.com/doc/2014-05-15/" + } + }, "version": "2014-05-15", "operations": [ { @@ -3209,6 +3627,9 @@ { "target": "com.amazonaws.route53domains#CheckDomainTransferability" }, + { + "target": "com.amazonaws.route53domains#DeleteDomain" + }, { "target": "com.amazonaws.route53domains#DeleteTagsForDomain" }, @@ -3242,6 +3663,9 @@ { "target": "com.amazonaws.route53domains#ListOperations" }, + { + "target": "com.amazonaws.route53domains#ListPrices" + }, { "target": "com.amazonaws.route53domains#ListTagsForDomain" }, @@ -3281,24 +3705,43 @@ { "target": "com.amazonaws.route53domains#ViewBilling" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route 53 Domains", - "arnNamespace": "route53domains", - "cloudFormationName": "Route53Domains", - "cloudTrailEventSource": "route53domains.amazonaws.com", - "endpointPrefix": "route53domains" - }, - "aws.auth#sigv4": { - "name": "route53domains" + ] + }, + "com.amazonaws.route53domains#SortCondition": { + "type": "structure", + "members": { + "Name": { + "target": "com.amazonaws.route53domains#ListDomainsAttributeName", + "traits": { + "smithy.api#documentation": "

              Field to be used for sorting the list of domains. It can be either the name or the expiration for a domain. Note that if \n\t\t\tfilterCondition is used in the same \n\t\t\tListDomains\n\t\t\t call, the field used for sorting has to be the same as the field used for filtering.

              ", + "smithy.api#required": {} + } }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

              Amazon Route 53 API actions let you register domain names and perform related operations.

              ", - "smithy.api#title": "Amazon Route 53 Domains", - "smithy.api#xmlNamespace": { - "uri": "https://route53domains.amazonaws.com/doc/2014-05-15/" + "SortOrder": { + "target": "com.amazonaws.route53domains#SortOrder", + "traits": { + "smithy.api#documentation": "

              The sort order for a list of domains. Either ascending (ASC) or descending (DES).

              ", + "smithy.api#required": {} + } } + }, + "traits": { + "smithy.api#documentation": "

              Information for sorting a list of domains.

              " + } + }, + "com.amazonaws.route53domains#SortOrder": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ASC", + "name": "ASC" + }, + { + "value": "DESC", + "name": "DESC" + } + ] } }, "com.amazonaws.route53domains#State": { @@ -3350,7 +3793,13 @@ } }, "com.amazonaws.route53domains#TagKey": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } }, "com.amazonaws.route53domains#TagKeyList": { "type": "list", @@ -3365,11 +3814,26 @@ } }, "com.amazonaws.route53domains#TagValue": { - "type": "string" + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } }, "com.amazonaws.route53domains#Timestamp": { "type": "timestamp" }, + "com.amazonaws.route53domains#TldName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, "com.amazonaws.route53domains#TransferDomain": { "type": "operation", "input": { @@ -3399,7 +3863,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the domain is registered either with \n\t\t\tAmazon Registrar (for .com, .net, and .org domains) or with our registrar associate, Gandi (for all other TLDs).

              \n\t\t

              For more information about transferring domains, see the following topics:

              \n\t\t \n\t\t

              If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you \n\t\t\ttransfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars \n\t\t\tprovide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar \n\t\t\twill not renew your domain registration and could end your DNS service at any time.

              \n\t\t\n\t\t\t \n\t\t\t\t

              If the registrar for your domain is also the DNS service provider for the domain and you don't \n\t\t\t\t\ttransfer DNS service to another provider, your website, email, and the web applications associated with the domain \n\t\t\t\t\tmight become unavailable.

              \n\t\t\t
              \n\t\t\n\t\t

              If the transfer is successful, this method returns an operation ID that you can use to track the progress and \n\t\t\tcompletion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

              " + "smithy.api#documentation": "

              Transfers a domain from another registrar to Amazon Route 53. When the transfer is complete, the domain is registered either with \n\t\t\tAmazon Registrar (for .com, .net, and .org domains) or with our registrar associate, Gandi (for all other TLDs).

              \n\t\t

              For more information about transferring domains, see the following topics:

              \n\t\t \n\t\t

              If the registrar for your domain is also the DNS service provider for the domain, we highly recommend that you \n\t\t\ttransfer your DNS service to Route 53 or to another DNS service provider before you transfer your registration. Some registrars \n\t\t\tprovide free DNS service when you purchase a domain registration. When you transfer the registration, the previous registrar \n\t\t\twill not renew your domain registration and could end your DNS service at any time.

              \n\t\t\n\t\t\t \n\t\t\t\t

              If the registrar for your domain is also the DNS service provider for the domain and you don't \n\t\t\t\t\ttransfer DNS service to another provider, your website, email, and the web applications associated with the domain \n\t\t\t\t\tmight become unavailable.

              \n\t\t\t
              \n\t\t\n\t\t

              If the transfer is successful, this method returns an operation ID that you can use to track the progress and \n\t\t\tcompletion of the action. If the transfer doesn't complete successfully, the domain registrant will be notified by email.

              " } }, "com.amazonaws.route53domains#TransferDomainRequest": { @@ -3467,19 +3931,19 @@ "PrivacyProtectAdminContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              \n\t\t

              Default: true\n

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              Default: true\n

              " } }, "PrivacyProtectRegistrantContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

              \n\t\t

              Default: true\n

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              Default: true\n

              " } }, "PrivacyProtectTechContact": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

              \n\t\t

              Default: true\n

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              Default: true\n

              " } } }, @@ -3519,10 +3983,13 @@ }, { "target": "com.amazonaws.route53domains#OperationLimitExceeded" + }, + { + "target": "com.amazonaws.route53domains#UnsupportedTLD" } ], "traits": { - "smithy.api#documentation": "

              Transfers a domain from the current AWS account to another AWS account. Note the following:

              \n\t\t \n\t\t\n\t\t \n\t\t\t

              When you transfer a domain from one AWS account to another, Route 53 doesn't transfer the hosted zone that is associated \n\t\t\t\twith the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, \n\t\t\t\tso transferring the hosted zone is optional. For information about transferring the hosted zone to another AWS account, see \n\t\t\t\tMigrating a Hosted Zone to a \n\t\t\t\tDifferent AWS Account in the Amazon Route 53 Developer Guide.

              \n\t\t
              \n\t\t\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " + "smithy.api#documentation": "

              Transfers a domain from the current Amazon Web Services account to another Amazon Web Services account. Note the following:

              \n\t\t \n\t\t\n\t\t \n\t\t\t

              When you transfer a domain from one Amazon Web Services account to another, Route 53 doesn't transfer the hosted zone that is associated \n\t\t\t\twith the domain. DNS resolution isn't affected if the domain and the hosted zone are owned by separate accounts, \n\t\t\t\tso transferring the hosted zone is optional. For information about transferring the hosted zone to another Amazon Web Services account, see \n\t\t\t\tMigrating a Hosted Zone to a \n\t\t\t\t\tDifferent Amazon Web Services Account in the Amazon Route 53 Developer Guide.

              \n\t\t
              \n\t\t\n\t\t

              Use either \n\t\t\tListOperations or \n\t\t\tGetOperationDetail \n\t\t\tto determine whether the operation succeeded. \n\t\t\tGetOperationDetail \n\t\t\tprovides additional information, for example, Domain Transfer from Aws Account 111122223333 has been cancelled. \n\t\t

              " } }, "com.amazonaws.route53domains#TransferDomainToAnotherAwsAccountRequest": { @@ -3531,14 +3998,14 @@ "DomainName": { "target": "com.amazonaws.route53domains#DomainName", "traits": { - "smithy.api#documentation": "

              The name of the domain that you want to transfer from the current AWS account to another account.

              ", + "smithy.api#documentation": "

              The name of the domain that you want to transfer from the current Amazon Web Services account to another account.

              ", "smithy.api#required": {} } }, "AccountId": { "target": "com.amazonaws.route53domains#AccountId", "traits": { - "smithy.api#documentation": "

              The account ID of the AWS account that you want to transfer the domain to, for example, 111122223333.

              ", + "smithy.api#documentation": "

              The account ID of the Amazon Web Services account that you want to transfer the domain to, for example, 111122223333.

              ", "smithy.api#required": {} } } @@ -3559,7 +4026,7 @@ "Password": { "target": "com.amazonaws.route53domains#String", "traits": { - "smithy.api#documentation": "

              To finish transferring a domain to another AWS account, the account that the domain is being transferred to must submit an \n\t\t\tAcceptDomainTransferFromAnotherAwsAccount\n\t\t\trequest. The request must include the value of the Password element that was returned in the \n\t\t\tTransferDomainToAnotherAwsAccount response.

              " + "smithy.api#documentation": "

              To finish transferring a domain to another Amazon Web Services account, the account that the domain is being transferred to must submit an \n\t\t\tAcceptDomainTransferFromAnotherAwsAccount\n\t\t\trequest. The request must include the value of the Password element that was returned in the \n\t\t\tTransferDomainToAnotherAwsAccount response.

              " } } }, @@ -3658,7 +4125,7 @@ } ], "traits": { - "smithy.api#documentation": "

              This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, \n\t\t\tcontact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org \n\t\t\tdomains) or with contact information for our registrar associate, Gandi.

              \n\t\t

              This operation affects only the contact information for the specified contact type (registrant, administrator, or tech). \n\t\t\tIf the request succeeds, Amazon Route 53 returns an operation ID that you can use with \n\t\t\tGetOperationDetail\n\t\t\tto track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email.

              \n\t\t \n

              By disabling the privacy service via API, you consent to the publication of the contact information provided for this domain \n\t\t\tvia the public WHOIS database. You certify that you are the registrant of this domain name and have the authority to make this decision. \n\t\t\tYou may withdraw your consent at any time by enabling privacy protection using either UpdateDomainContactPrivacy or the \n\t\t\tRoute 53 console. Enabling privacy protection removes the contact information provided for this domain from the WHOIS database. \n\t\t\tFor more information on our privacy practices, see \n\t\t\thttps://aws.amazon.com/privacy/.

              \n
              " + "smithy.api#documentation": "

              This operation updates the specified domain contact's privacy setting. When privacy protection is enabled, \n\t\t\tcontact information such as email address is replaced either with contact information for Amazon Registrar (for .com, .net, and .org \n\t\t\tdomains) or with contact information for our registrar associate, Gandi.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              \n\t\t

              This operation affects only the contact information for the specified contact type (administrative, registrant, or technical). \n\t\t\tIf the request succeeds, Amazon Route 53 returns an operation ID that you can use with \n\t\t\tGetOperationDetail\n\t\t\tto track the progress and completion of the action. If the request doesn't complete successfully, the domain registrant will be notified by email.

              \n\t\t \n

              By disabling the privacy service via API, you consent to the publication of the contact information provided for this domain \n\t\t\tvia the public WHOIS database. You certify that you are the registrant of this domain name and have the authority to make this decision. \n\t\t\tYou may withdraw your consent at any time by enabling privacy protection using either UpdateDomainContactPrivacy or the \n\t\t\tRoute 53 console. Enabling privacy protection removes the contact information provided for this domain from the WHOIS database. \n\t\t\tFor more information on our privacy practices, see \n\t\t\thttps://aws.amazon.com/privacy/.

              \n
              " } }, "com.amazonaws.route53domains#UpdateDomainContactPrivacyRequest": { @@ -3674,19 +4141,19 @@ "AdminPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the admin contact.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              " } }, "RegistrantPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the registrant contact (domain owner).

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              " } }, "TechPrivacy": { "target": "com.amazonaws.route53domains#Boolean", "traits": { - "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

              " + "smithy.api#documentation": "

              Whether you want to conceal contact information from WHOIS queries. If you specify true, \n\t\t\tWHOIS (\"who is\") queries return contact information either for Amazon Registrar (for .com, .net, and .org domains) \n\t\t\tor for our registrar associate, Gandi (for all other TLDs). If you specify false, \n\t\t\tWHOIS queries return the information that you entered for the technical contact.

              \n\t\t \n\t\t\t

              You must specify the same privacy setting for the administrative, registrant, and technical contacts.

              \n\t\t
              " } } }, @@ -3878,6 +4345,27 @@ "type": "structure", "members": {} }, + "com.amazonaws.route53domains#Value": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + } + } + }, + "com.amazonaws.route53domains#Values": { + "type": "list", + "member": { + "target": "com.amazonaws.route53domains#Value" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.route53domains#ViewBilling": { "type": "operation", "input": { @@ -3892,7 +4380,13 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns all the domain-related billing records for the current AWS account for a specified period

              " + "smithy.api#documentation": "

              Returns all the domain-related billing records for the current Amazon Web Services account for a specified period

              ", + "smithy.api#paginated": { + "inputToken": "Marker", + "outputToken": "NextPageMarker", + "items": "BillingRecords", + "pageSize": "MaxItems" + } } }, "com.amazonaws.route53domains#ViewBillingRequest": { @@ -3913,7 +4407,7 @@ "Marker": { "target": "com.amazonaws.route53domains#PageMarker", "traits": { - "smithy.api#documentation": "

              For an initial request for a list of billing records, omit this element. If the number of billing records \n\t\t\tthat are associated with the current AWS account during the specified period is greater than the value that \n\t\t\tyou specified for MaxItems, you can use Marker to return additional billing records. \n\t\t\tGet the value of NextPageMarker from the previous response, and submit another request that includes \n\t\t\tthe value of NextPageMarker in the Marker element.\n\t\t

              \n\t\t

              Constraints: The marker must match the value of NextPageMarker that was returned in the previous response.

              " + "smithy.api#documentation": "

              For an initial request for a list of billing records, omit this element. If the number of billing records \n\t\t\tthat are associated with the current Amazon Web Services account during the specified period is greater than the value that \n\t\t\tyou specified for MaxItems, you can use Marker to return additional billing records. \n\t\t\tGet the value of NextPageMarker from the previous response, and submit another request that includes \n\t\t\tthe value of NextPageMarker in the Marker element.\n\t\t

              \n\t\t

              Constraints: The marker must match the value of NextPageMarker that was returned in the previous response.

              " } }, "MaxItems": { diff --git a/codegen/sdk-codegen/aws-models/route-53.json b/codegen/sdk-codegen/aws-models/route-53.json index 9f60c8b28103..cbe1c7cfa8ce 100644 --- a/codegen/sdk-codegen/aws-models/route-53.json +++ b/codegen/sdk-codegen/aws-models/route-53.json @@ -34,6 +34,24 @@ }, "com.amazonaws.route53#AWSDnsV20130401": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route 53", + "arnNamespace": "route53", + "cloudFormationName": "Route53", + "cloudTrailEventSource": "route53.amazonaws.com", + "endpointPrefix": "route53" + }, + "aws.auth#sigv4": { + "name": "route53" + }, + "aws.protocols#restXml": {}, + "smithy.api#documentation": "

              Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.

              ", + "smithy.api#title": "Amazon Route 53", + "smithy.api#xmlNamespace": { + "uri": "https://route53.amazonaws.com/doc/2013-04-01/" + } + }, "version": "2013-04-01", "operations": [ { @@ -228,25 +246,7 @@ { "target": "com.amazonaws.route53#UpdateTrafficPolicyInstance" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route 53", - "arnNamespace": "route53", - "cloudFormationName": "Route53", - "cloudTrailEventSource": "route53.amazonaws.com", - "endpointPrefix": "route53" - }, - "aws.auth#sigv4": { - "name": "route53" - }, - "aws.protocols#restXml": {}, - "smithy.api#documentation": "

              Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.

              ", - "smithy.api#title": "Amazon Route 53", - "smithy.api#xmlNamespace": { - "uri": "https://route53.amazonaws.com/doc/2013-04-01/" - } - } + ] }, "com.amazonaws.route53#AccountLimit": { "type": "structure", @@ -941,6 +941,10 @@ "value": "ap-southeast-2", "name": "ap_southeast_2" }, + { + "value": "ap-southeast-3", + "name": "ap_southeast_3" + }, { "value": "ap-northeast-1", "name": "ap_northeast_1" @@ -989,6 +993,10 @@ "value": "us-iso-east-1", "name": "us_iso_east_1" }, + { + "value": "us-iso-west-1", + "name": "us_iso_west_1" + }, { "value": "us-isob-east-1", "name": "us_isob_east_1" @@ -1199,7 +1207,7 @@ "VPC": { "target": "com.amazonaws.route53#VPC", "traits": { - "smithy.api#documentation": "

              (Private hosted zones only) A complex type that contains information about the Amazon VPC that you're associating with this hosted zone.

              \n\t\t

              You can specify only one Amazon VPC when you create a private hosted zone. To associate additional Amazon VPCs with the hosted zone, \n\t\t\tuse AssociateVPCWithHostedZone\n\t\t\tafter you create a hosted zone.

              " + "smithy.api#documentation": "

              (Private hosted zones only) A complex type that contains information about the Amazon VPC that you're associating with this hosted zone.

              \n\t\t

              You can specify only one Amazon VPC when you create a private hosted zone. If you are associating a VPC with a hosted zone with this request,\n\t\t\tthe paramaters \n\t\t\tVPCId and VPCRegion are also required.

              \n\t\t

              To associate additional Amazon VPCs with the hosted zone, \n\t\t\tuse AssociateVPCWithHostedZone\n\t\t\tafter you create a hosted zone.

              " } }, "CallerReference": { @@ -1338,7 +1346,7 @@ "KeyManagementServiceArn": { "target": "com.amazonaws.route53#SigningKeyString", "traits": { - "smithy.api#documentation": "

              The Amazon resource name (ARN) for a customer managed customer master key (CMK) in Key Management Service (KMS).\n\t\t\tThe KeyManagementServiceArn must be unique for each key-signing key (KSK) in a single hosted zone. \n\t\t\tTo see an example of KeyManagementServiceArn that grants the correct permissions for DNSSEC, \n\t\t\tscroll down to Example.

              \n\t\t

              You must configure the customer managed CMK as follows:

              \n\t\t
              \n
              Status
              \n
              \n

              Enabled

              \n
              \n
              Key spec
              \n
              \n

              ECC_NIST_P256

              \n
              \n
              Key usage
              \n
              \n

              Sign and verify

              \n
              \n
              Key policy
              \n
              \n

              The key policy must give permission for the following actions:

              \n\t\t\t\t\t
                \n
              • \n

                DescribeKey

                \n
              • \n
              • \n

                GetPublicKey

                \n
              • \n
              • \n

                Sign

                \n
              • \n
              \n\t\t\t\t\t

              The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

              \n\t\t\t\t\t
                \n
              • \n

                \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

                \n
              • \n
              \n\t\t\t\t
              \n
              \n\t\t

              For more information about working with a customer managed CMK in KMS, see \n\t\t\tKey Management Service concepts.

              ", + "smithy.api#documentation": "

              The Amazon resource name (ARN) for a customer managed key in Key Management Service (KMS).\n\t\t\tThe KeyManagementServiceArn must be unique for each key-signing key (KSK) in a single hosted zone. \n\t\t\tTo see an example of KeyManagementServiceArn that grants the correct permissions for DNSSEC, \n\t\t\tscroll down to Example.

              \n\t\t

              You must configure the customer managed customer managed key as follows:

              \n\t\t
              \n
              Status
              \n
              \n

              Enabled

              \n
              \n
              Key spec
              \n
              \n

              ECC_NIST_P256

              \n
              \n
              Key usage
              \n
              \n

              Sign and verify

              \n
              \n
              Key policy
              \n
              \n

              The key policy must give permission for the following actions:

              \n\t\t\t\t\t
                \n
              • \n

                DescribeKey

                \n
              • \n
              • \n

                GetPublicKey

                \n
              • \n
              • \n

                Sign

                \n
              • \n
              \n\t\t\t\t\t

              The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

              \n\t\t\t\t\t
                \n
              • \n

                \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

                \n
              • \n
              \n\t\t\t\t
              \n
              \n\t\t

              For more information about working with a customer managed key in KMS, see \n\t\t\tKey Management Service concepts.

              ", "smithy.api#required": {} } }, @@ -1916,7 +1924,7 @@ "ServeSignature": { "target": "com.amazonaws.route53#ServeSignature", "traits": { - "smithy.api#documentation": "

              A string that represents the current hosted zone signing status.

              \n\t\t

              Status can have one of the following values:

              \n\t\t
              \n
              SIGNING
              \n
              \n

              DNSSEC signing is enabled for the hosted zone.

              \n
              \n
              NOT_SIGNING
              \n
              \n

              DNSSEC signing is not enabled for the hosted zone.

              \n
              \n
              DELETING
              \n
              \n

              DNSSEC signing is in the process of being removed for the hosted zone.

              \n
              \n
              ACTION_NEEDED
              \n
              \n

              There is a problem with signing in the hosted zone that requires you to take action to resolve.\n\t\t\t\t\tFor example, the customer managed customer master key (CMK) might have been deleted, or the\n\t\t\t\t\tpermissions for the customer managed CMK might have been changed.

              \n
              \n
              INTERNAL_FAILURE
              \n
              \n

              There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including with key-signing keys (KSKs), you must correct the problem by enabling or \n\t\t\t\t\tdisabling DNSSEC signing for the hosted zone.

              \n
              \n
              " + "smithy.api#documentation": "

              A string that represents the current hosted zone signing status.

              \n\t\t

              Status can have one of the following values:

              \n\t\t
              \n
              SIGNING
              \n
              \n

              DNSSEC signing is enabled for the hosted zone.

              \n
              \n
              NOT_SIGNING
              \n
              \n

              DNSSEC signing is not enabled for the hosted zone.

              \n
              \n
              DELETING
              \n
              \n

              DNSSEC signing is in the process of being removed for the hosted zone.

              \n
              \n
              ACTION_NEEDED
              \n
              \n

              There is a problem with signing in the hosted zone that requires you to take action to resolve.\n\t\t\t\t\tFor example, the customer managed key might have been deleted, or the\n\t\t\t\t\tpermissions for the customer managed key might have been changed.

              \n
              \n
              INTERNAL_FAILURE
              \n
              \n

              There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including with key-signing keys (KSKs), you must correct the problem by enabling or \n\t\t\t\t\tdisabling DNSSEC signing for the hosted zone.

              \n
              \n
              " } }, "StatusMessage": { @@ -2272,7 +2280,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be\n\t\tdeactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

              ", + "smithy.api#documentation": "

              Deletes a key-signing key (KSK). Before you can delete a KSK, you must deactivate it. The KSK must be\n\t\tdeactivated before you can delete it regardless of whether the hosted zone is enabled for DNSSEC signing.

              \n\t\t

              You can use DeactivateKeySigningKey \n\t\t\tto deactivate the key before you delete it.

              \n\t\t

              Use GetDNSSEC to verify that the KSK is in an INACTIVE\n\t\t\tstatus.

              ", "smithy.api#http": { "method": "DELETE", "uri": "/2013-04-01/keysigningkey/{HostedZoneId}/{Name}", @@ -4973,7 +4981,7 @@ "KmsArn": { "target": "com.amazonaws.route53#SigningKeyString", "traits": { - "smithy.api#documentation": "

              The Amazon resource name (ARN) used to identify the customer managed customer master key (CMK) in Key Management Service (KMS).\n\t\t\tThe KmsArn must be unique for each key-signing key (KSK) in a single hosted zone.

              \n\t\t

              You must configure the CMK as follows:

              \n\t\t
              \n
              Status
              \n
              \n

              Enabled

              \n
              \n
              Key spec
              \n
              \n

              ECC_NIST_P256

              \n
              \n
              Key usage
              \n
              \n

              Sign and verify

              \n
              \n
              Key policy
              \n
              \n

              The key policy must give permission for the following actions:

              \n\t\t\t\t
                \n
              • \n

                DescribeKey

                \n
              • \n
              • \n

                GetPublicKey

                \n
              • \n
              • \n

                Sign

                \n
              • \n
              \n\t\t\t\t\t

              The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

              \n\t\t\t\t\t
                \n
              • \n

                \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

                \n
              • \n
              \n\t\t\t\t
              \n
              \n\t\t

              For more information about working with the customer managed CMK in KMS, see \n\t\t\tKey Management Service concepts.

              " + "smithy.api#documentation": "

              The Amazon resource name (ARN) used to identify the customer managed key in Key Management Service (KMS).\n\t\t\tThe KmsArn must be unique for each key-signing key (KSK) in a single hosted zone.

              \n\t\t

              You must configure the customer managed key as follows:

              \n\t\t
              \n
              Status
              \n
              \n

              Enabled

              \n
              \n
              Key spec
              \n
              \n

              ECC_NIST_P256

              \n
              \n
              Key usage
              \n
              \n

              Sign and verify

              \n
              \n
              Key policy
              \n
              \n

              The key policy must give permission for the following actions:

              \n\t\t\t\t
                \n
              • \n

                DescribeKey

                \n
              • \n
              • \n

                GetPublicKey

                \n
              • \n
              • \n

                Sign

                \n
              • \n
              \n\t\t\t\t\t

              The key policy must also include the Amazon Route 53 service in the principal for your account. \n\t\t\t\t\t\tSpecify the following:

              \n\t\t\t\t\t
                \n
              • \n

                \n \"Service\": \"dnssec-route53.amazonaws.com\"\n

                \n
              • \n
              \n\t\t\t\t
              \n
              \n\t\t

              For more information about working with the customer managed key in KMS, see \n\t\t\tKey Management Service concepts.

              " } }, "Flag": { @@ -5039,7 +5047,7 @@ "Status": { "target": "com.amazonaws.route53#SigningKeyStatus", "traits": { - "smithy.api#documentation": "

              A string that represents the current key-signing key (KSK) status.

              \n\t\t

              Status can have one of the following values:

              \n\t\t
              \n
              ACTIVE
              \n
              \n

              The KSK is being used for signing.

              \n
              \n
              INACTIVE
              \n
              \n

              The KSK is not being used for signing.

              \n
              \n
              DELETING
              \n
              \n

              The KSK is in the process of being deleted.

              \n
              \n
              ACTION_NEEDED
              \n
              \n

              There is a problem with the KSK that requires you to take action to resolve.\n\t\t\t\tFor example, the customer managed customer master key (CMK) might have been deleted, or the\n\t\t\t\tpermissions for the customer managed CMK might have been changed.

              \n
              \n
              INTERNAL_FAILURE
              \n
              \n

              There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including actions that involve this KSK, you must correct the problem. For example,\n\t\t\t\t\tyou may need to activate or deactivate the KSK.

              \n
              \n
              " + "smithy.api#documentation": "

              A string that represents the current key-signing key (KSK) status.

              \n\t\t

              Status can have one of the following values:

              \n\t\t
              \n
              ACTIVE
              \n
              \n

              The KSK is being used for signing.

              \n
              \n
              INACTIVE
              \n
              \n

              The KSK is not being used for signing.

              \n
              \n
              DELETING
              \n
              \n

              The KSK is in the process of being deleted.

              \n
              \n
              ACTION_NEEDED
              \n
              \n

              There is a problem with the KSK that requires you to take action to resolve.\n\t\t\t\t\tFor example, the customer managed key might have been deleted, or the\n\t\t\t\t\tpermissions for the customer managed key might have been changed.

              \n
              \n
              INTERNAL_FAILURE
              \n
              \n

              There was an error during a request. Before you can continue to work with DNSSEC\n\t\t\t\t\tsigning, including actions that involve this KSK, you must correct the problem. For example,\n\t\t\t\t\tyou may need to activate or deactivate the KSK.

              \n
              \n
              " } }, "StatusMessage": { @@ -5073,7 +5081,7 @@ } }, "traits": { - "smithy.api#documentation": "

              You've already created a key-signing key (KSK) with this name or with the same customer managed customer master key (CMK) ARN.

              ", + "smithy.api#documentation": "

              You've already created a key-signing key (KSK) with this name or with the same customer managed key ARN.

              ", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -7390,6 +7398,10 @@ "value": "ap-southeast-2", "name": "ap_southeast_2" }, + { + "value": "ap-southeast-3", + "name": "ap_southeast_3" + }, { "value": "ap-northeast-1", "name": "ap_northeast_1" @@ -8503,7 +8515,7 @@ "InsufficientDataHealthStatus": { "target": "com.amazonaws.route53#InsufficientDataHealthStatus", "traits": { - "smithy.api#documentation": "

              When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign \n\t\t\tto the health check:

              \n\t\t
                \n
              • \n

                \n Healthy: Route 53 considers the health check to be healthy.

                \n
              • \n
              • \n

                \n Unhealthy: Route 53 considers the health check to be unhealthy.

                \n
              • \n
              • \n

                \n LastKnownStatus: Route 53 uses the status of the health check from the last time CloudWatch had sufficient data \n\t\t\t\tto determine the alarm state. For new health checks that have no last known status, the default status for the health check is healthy.

                \n
              • \n
              " + "smithy.api#documentation": "

              When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign \n\t\t\tto the health check:

              \n\t\t
                \n
              • \n

                \n Healthy: Route 53 considers the health check to be healthy.

                \n
              • \n
              • \n

                \n Unhealthy: Route 53 considers the health check to be unhealthy.

                \n
              • \n
              • \n

                \n LastKnownStatus: By default, Route 53 uses the status of the health check from the last time CloudWatch had sufficient data \n\t\t\t\tto determine the alarm state. For new health checks that have no last known status, the status for the health check is healthy.

                \n
              • \n
              " } }, "ResetElements": { @@ -8546,6 +8558,9 @@ }, { "target": "com.amazonaws.route53#NoSuchHostedZone" + }, + { + "target": "com.amazonaws.route53#PriorRequestNotComplete" } ], "traits": { @@ -8776,7 +8791,7 @@ } }, "traits": { - "smithy.api#documentation": "

              (Private hosted zones only) A complex type that contains information about an Amazon VPC.

              " + "smithy.api#documentation": "

              (Private hosted zones only) A complex type that contains information about an Amazon VPC.

              \n\t\t

              If you associate a private hosted zone with an Amazon VPC when you make a CreateHostedZone request, the following parameters are also\n\t\t\trequired.

              " } }, "com.amazonaws.route53#VPCAssociationAuthorizationNotFound": { @@ -8877,6 +8892,10 @@ "value": "us-iso-east-1", "name": "us_iso_east_1" }, + { + "value": "us-iso-west-1", + "name": "us_iso_west_1" + }, { "value": "us-isob-east-1", "name": "us_isob_east_1" @@ -8889,6 +8908,10 @@ "value": "ap-southeast-2", "name": "ap_southeast_2" }, + { + "value": "ap-southeast-3", + "name": "ap_southeast_3" + }, { "value": "ap-south-1", "name": "ap_south_1" diff --git a/codegen/sdk-codegen/aws-models/route53-recovery-control-config.json b/codegen/sdk-codegen/aws-models/route53-recovery-control-config.json index 72499d537493..c59a3d70f23a 100644 --- a/codegen/sdk-codegen/aws-models/route53-recovery-control-config.json +++ b/codegen/sdk-codegen/aws-models/route53-recovery-control-config.json @@ -41,7 +41,7 @@ } }, "traits": { - "smithy.api#documentation": "

              403 response - AccessDeniedException. You do not have sufficient access to perform this action.

              ", + "smithy.api#documentation": "

              403 response - You do not have sufficient access to perform this action.

              ", "smithy.api#error": "client", "smithy.api#httpError": 403 } @@ -50,14 +50,14 @@ "type": "structure", "members": { "AssertedControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed. For example, you might include three routing controls, one for each of three Amazon Web Services Regions.

              ", "smithy.api#required": {} } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#required": {} @@ -73,12 +73,12 @@ "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

              The criteria that you set for specific assertion controls (routing controls) that designate how many controls must be enabled as the result of a transaction. For example, if you have three assertion controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion controls must be enabled, so that at least two Amazon Web Services Regions are enabled.

              ", + "smithy.api#documentation": "

              The criteria that you set for specific assertion routing controls (AssertedControls) that designate how many routing control states must be ON as the result of a transaction. For example, if you have three assertion routing controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion routing control states must be ON, so that at least two Amazon Web Services Regions have traffic flowing to them.

              ", "smithy.api#required": {} } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the assertion rule.

              ", "smithy.api#required": {} @@ -100,7 +100,7 @@ } }, "traits": { - "smithy.api#documentation": "

              An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

              " + "smithy.api#documentation": "

              An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met. Otherwise, the change to the routing control is not accepted. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

              " } }, "com.amazonaws.route53recoverycontrolconfig#AssertionRuleUpdate": { @@ -114,7 +114,7 @@ } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the assertion rule.

              ", "smithy.api#required": {} @@ -136,7 +136,7 @@ "type": "structure", "members": { "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the cluster.

              " } @@ -144,7 +144,7 @@ "ClusterEndpoints": { "target": "com.amazonaws.route53recoverycontrolconfig#__listOfClusterEndpoint", "traits": { - "smithy.api#documentation": "

              Endpoints for a cluster. Specify one of these endpoints when you want to set or retrieve a routing control state in the cluster.

              To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Cluster (Data Plane) Actions.

              " + "smithy.api#documentation": "

              Endpoints for a cluster. Specify one of these endpoints when you want to set or retrieve a routing control state in the cluster.

              To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions.

              " } }, "Name": { @@ -161,20 +161,20 @@ } }, "traits": { - "smithy.api#documentation": "

              A cluster is a set of five consensus-forming Regional endpoints that represent the infrastructure that hosts your routing controls. Typically, you host together on one cluster all of the routing controls for your applications.

              " + "smithy.api#documentation": "

              A set of five redundant Regional endpoints against which you can execute API calls to update or get the state of routing controls. You can host multiple control panels and routing controls on one cluster.

              " } }, "com.amazonaws.route53recoverycontrolconfig#ClusterEndpoint": { "type": "structure", "members": { "Endpoint": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128PatternAZaZ09", "traits": { - "smithy.api#documentation": "

              A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you want to set or retrieve a routing control state in the cluster.

              To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Cluster (Data Plane) Actions.

              " + "smithy.api#documentation": "

              A cluster endpoint. Specify an endpoint and Amazon Web Services Region when you want to set or retrieve a routing control state in the cluster.

              To get or update the routing control state, see the Amazon Route 53 Application Recovery Controller Routing Control Actions.

              " } }, "Region": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32PatternS", "traits": { "smithy.api#documentation": "

              The Amazon Web Services Region for a cluster endpoint.

              " } @@ -196,7 +196,7 @@ } }, "traits": { - "smithy.api#documentation": "

              409 response - ConflictException.

              ", + "smithy.api#documentation": "

              409 response - ConflictException. You might be using a predefined variable.

              ", "smithy.api#error": "client", "smithy.api#httpError": 409 } @@ -205,13 +205,13 @@ "type": "structure", "members": { "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the cluster that includes the control panel.

              " } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              " } @@ -277,7 +277,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the Amazon Route 53 Application Recovery Controller cluster data plane.

              ", + "smithy.api#documentation": "

              Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you can use with API calls to the cluster data plane.

              ", "smithy.api#http": { "method": "POST", "uri": "/cluster", @@ -289,9 +289,9 @@ "type": "structure", "members": { "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

              Unique client idempotency token.

              ", + "smithy.api#documentation": "

              A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

              ", "smithy.api#idempotencyToken": {} } }, @@ -301,6 +301,12 @@ "smithy.api#documentation": "

              The name of the cluster.

              ", "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

              The tags associated with the cluster.

              " + } } }, "traits": { @@ -350,7 +356,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or AWS Region.

              ", + "smithy.api#documentation": "

              Creates a new control panel. A control panel represents a group of routing controls that can be changed together in a single transaction. You can use a control panel to centrally view the operational status of applications across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an Availability Zone or Amazon Web Services Region.

              ", "smithy.api#http": { "method": "POST", "uri": "/controlpanel", @@ -362,14 +368,14 @@ "type": "structure", "members": { "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

              Unique client idempotency token.

              ", + "smithy.api#documentation": "

              A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

              ", "smithy.api#idempotencyToken": {} } }, "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the cluster for the control panel.

              ", "smithy.api#required": {} @@ -381,6 +387,12 @@ "smithy.api#documentation": "

              The name of the control panel.

              ", "smithy.api#required": {} } + }, + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

              The tags associated with the control panel.

              " + } } }, "traits": { @@ -442,21 +454,21 @@ "type": "structure", "members": { "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

              Unique client idempotency token.

              ", + "smithy.api#documentation": "

              A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

              ", "smithy.api#idempotencyToken": {} } }, "ClusterArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the cluster that includes the routing control.

              ", "smithy.api#required": {} } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel that includes the routing control.

              " } @@ -501,7 +513,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a safety rule in a control panel. Safety rules let you add safeguards around enabling and disabling routing controls, to help prevent unexpected outcomes.

              There are two types of safety rules: assertion rules and gating rules.

              Assertion rule: An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

              Gating rule: A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

              ", + "smithy.api#documentation": "

              Creates a safety rule in a control panel. Safety rules let you add safeguards around changing routing control states, and for enabling and disabling routing controls, to help prevent unexpected outcomes.

              There are two types of safety rules: assertion rules and gating rules.

              Assertion rule: An assertion rule enforces that, when you change a routing control state, that a certain criteria is met. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

              Gating rule: A gating rule lets you configure a gating routing control as an overall \"on/off\" switch for a group of routing controls. Or, you can configure more complex gating scenarios, for example by configuring multiple gating routing controls.

              For more information, see Safety rules in the Amazon Route 53 Application Recovery Controller Developer Guide.

              ", "smithy.api#http": { "method": "POST", "uri": "/safetyrule", @@ -513,17 +525,29 @@ "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#NewAssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#NewAssertionRule", + "traits": { + "smithy.api#documentation": "

              The assertion rule requested.

              " + } }, "ClientToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax64", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

              Unique client idempotency token.

              ", + "smithy.api#documentation": "

              A unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request with an action, specify a client token in the request.

              ", "smithy.api#idempotencyToken": {} } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#NewGatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#NewGatingRule", + "traits": { + "smithy.api#documentation": "

              The gating rule requested.

              " + } + }, + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

              The tags associated with the safety rule.

              " + } } }, "traits": { @@ -534,10 +558,16 @@ "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", + "traits": { + "smithy.api#documentation": "

              The assertion rule created.

              " + } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", + "traits": { + "smithy.api#documentation": "

              The gating rule created.

              " + } } } }, @@ -638,7 +668,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel that you're deleting.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -737,7 +767,7 @@ "SafetyRuleArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The request body that you include when you update a safety rule.

              ", + "smithy.api#documentation": "

              The ARN of the safety rule.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -853,7 +883,7 @@ "ClusterArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the cluster that you're getting details for.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the cluster.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -976,7 +1006,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel that you're getting details for.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1099,7 +1129,7 @@ "RoutingControlArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the routing control that you're getting details for.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the routing control.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1134,7 +1164,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Describes the safety rules (that is, the assertion rules and gating rules) for the routing controls in a control panel.

              ", + "smithy.api#documentation": "

              Returns information about a safety rule.

              ", "smithy.api#http": { "method": "GET", "uri": "/safetyrule/{SafetyRuleArn}", @@ -1148,7 +1178,7 @@ "SafetyRuleArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The request body that you include when you update a safety rule.

              ", + "smithy.api#documentation": "

              The ARN of the safety rule.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1159,10 +1189,16 @@ "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", + "traits": { + "smithy.api#documentation": "

              The assertion rule in the response.

              " + } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", + "traits": { + "smithy.api#documentation": "

              The gating rule in the response.

              " + } } } }, @@ -1170,35 +1206,35 @@ "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#required": {} } }, "GatingControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { - "smithy.api#documentation": "

              The gating controls for the gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.

              ", + "smithy.api#documentation": "

              An array of gating routing control Amazon Resource Names (ARNs). For a simple \"on/off\" switch, specify the ARN for one routing control. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed.

              ", "smithy.api#required": {} } }, "Name": { "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

              The name for the gating rule.

              ", + "smithy.api#documentation": "

              The name for the gating rule. You can use any non-white space character in the name.

              ", "smithy.api#required": {} } }, "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

              The criteria that you set for specific gating controls (routing controls) that designates how many controls must be enabled to allow you to change (set or unset) the target controls.

              ", + "smithy.api#documentation": "

              The criteria that you set for gating routing controls that designates how many of the routing control states must be ON to allow you to update target routing control states.

              ", "smithy.api#required": {} } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the gating rule.

              ", "smithy.api#required": {} @@ -1212,9 +1248,9 @@ } }, "TargetControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { - "smithy.api#documentation": "

              Routing controls that can only be set or unset if the specified RuleConfig evaluates to true for the specified GatingControls. For example, say you have three gating controls, one for each of three Amazon Web Services Regions. Now you specify ATLEAST 2 as your RuleConfig. With these settings, you can only change (set or unset) the routing controls that you have specified as TargetControls if that rule evaluates to true.

              In other words, your ability to change the routing controls that you have specified as TargetControls is gated by the rule that you set for the routing controls in GatingControls.

              ", + "smithy.api#documentation": "

              An array of target routing control Amazon Resource Names (ARNs) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control. As a simple example, if you have a single gating control, it acts as an overall \"on/off\" switch for a set of target routing controls. You can use this to manually override automated fail over, for example.

              ", "smithy.api#required": {} } }, @@ -1227,7 +1263,7 @@ } }, "traits": { - "smithy.api#documentation": "

              A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

              " + "smithy.api#documentation": "

              A gating rule verifies that a gating routing control or set of gating rounting controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.

              For example, if you specify one gating routing control and you set the Type in the rule configuration to OR, that indicates that you must set the gating routing control to On for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\". When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule.

              " } }, "com.amazonaws.route53recoverycontrolconfig#GatingRuleUpdate": { @@ -1236,12 +1272,12 @@ "Name": { "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS", "traits": { - "smithy.api#documentation": "

              The name for the gating rule.

              ", + "smithy.api#documentation": "

              The name for the gating rule. You can use any non-white space character in the name.

              ", "smithy.api#required": {} } }, "SafetyRuleArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the gating rule.

              ", "smithy.api#required": {} @@ -1329,7 +1365,7 @@ "RoutingControlArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the routing control that you're getting details for.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the routing control.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1340,15 +1376,15 @@ "type": "structure", "members": { "HealthCheckIds": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMax36PatternS", "traits": { "smithy.api#documentation": "

              Identifiers for the health checks.

              " } }, "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { - "smithy.api#documentation": "

              The token that identifies which batch of results you want to see.

              " + "smithy.api#documentation": "

              Next token for listing health checks.

              " } } } @@ -1421,7 +1457,7 @@ } }, "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

              The token that identifies which batch of results you want to see.

              " } @@ -1454,7 +1490,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns an array of control panels for a cluster.

              ", + "smithy.api#documentation": "

              Returns an array of control panels in an account or in a cluster.

              ", "smithy.api#http": { "method": "GET", "uri": "/controlpanels", @@ -1503,7 +1539,7 @@ } }, "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

              The token that identifies which batch of results you want to see.

              " } @@ -1555,7 +1591,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel that you're getting routing control details for.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1580,7 +1616,7 @@ "type": "structure", "members": { "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

              The token that identifies which batch of results you want to see.

              " } @@ -1638,7 +1674,7 @@ "ControlPanelArn": { "target": "com.amazonaws.route53recoverycontrolconfig#__string", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel that you're getting details for.

              ", + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -1663,7 +1699,7 @@ "type": "structure", "members": { "NextToken": { - "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax8096", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS", "traits": { "smithy.api#documentation": "

              The token that identifies which batch of results you want to see.

              " } @@ -1676,6 +1712,58 @@ } } }, + "com.amazonaws.route53recoverycontrolconfig#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53recoverycontrolconfig#InternalServerException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Lists the tags for a resource.

              ", + "smithy.api#http": { + "method": "GET", + "uri": "/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the resource that's tagged.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

              The tags associated with the resource.

              " + } + } + } + }, "com.amazonaws.route53recoverycontrolconfig#MaxResults": { "type": "integer", "traits": { @@ -1689,14 +1777,14 @@ "type": "structure", "members": { "AssertedControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed. For example, you might include three routing controls, one for each of three Amazon Web Services Regions.

              ", "smithy.api#required": {} } }, "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the control panel.

              ", "smithy.api#required": {} @@ -1712,7 +1800,7 @@ "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

              The criteria that you set for specific assertion controls (routing controls) that designate how many controls must be enabled as the result of a transaction. For example, if you have three assertion controls, you might specify atleast 2 for your rule configuration. This means that at least two assertion controls must be enabled, so that at least two Amazon Web Services Regions are enabled.

              ", + "smithy.api#documentation": "

              The criteria that you set for specific assertion controls (routing controls) that designate how many control states must be ON as the result of a transaction. For example, if you have three assertion controls, you might specify ATLEAST 2for your rule configuration. This means that at least two assertion controls must be ON, so that at least two Amazon Web Services Regions have traffic flowing to them.

              ", "smithy.api#required": {} } }, @@ -1732,14 +1820,14 @@ "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#required": {} } }, "GatingControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.

              ", "smithy.api#required": {} @@ -1755,12 +1843,12 @@ "RuleConfig": { "target": "com.amazonaws.route53recoverycontrolconfig#RuleConfig", "traits": { - "smithy.api#documentation": "

              The criteria that you set for specific gating controls (routing controls) that designates how many controls must be enabled to allow you to change (set or unset) the target controls.

              ", + "smithy.api#documentation": "

              The criteria that you set for specific gating controls (routing controls) that designates how many control states must be ON to allow you to change (set or unset) the target control states.

              ", "smithy.api#required": {} } }, "TargetControls": { - "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              Routing controls that can only be set or unset if the specified RuleConfig evaluates to true for the specified GatingControls. For example, say you have three gating controls, one for each of three Amazon Web Services Regions. Now you specify AtLeast 2 as your RuleConfig. With these settings, you can only change (set or unset) the routing controls that you have specified as TargetControls if that rule evaluates to true.

              In other words, your ability to change the routing controls that you have specified as TargetControls is gated by the rule that you set for the routing controls in GatingControls.

              ", "smithy.api#required": {} @@ -1790,13 +1878,28 @@ } }, "traits": { - "smithy.api#documentation": "

              404 response - The query string contains a syntax error or resource not found.

              ", + "smithy.api#documentation": "

              404 response - MalformedQueryString. The query string contains a syntax error or resource not found..

              ", "smithy.api#error": "client", "smithy.api#httpError": 404 } }, "com.amazonaws.route53recoverycontrolconfig#Route53RecoveryControlConfig": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Route53 Recovery Control Config", + "arnNamespace": "route53-recovery-control-config", + "cloudFormationName": "Route53RecoveryControlConfig", + "cloudTrailEventSource": "route53recoverycontrolconfig.amazonaws.com", + "endpointPrefix": "route53-recovery-control-config" + }, + "aws.auth#sigv4": { + "name": "route53-recovery-control-config" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller

              ", + "smithy.api#title": "AWS Route53 Recovery Control Config" + }, "version": "2020-11-02", "operations": [ { @@ -1850,6 +1953,15 @@ { "target": "com.amazonaws.route53recoverycontrolconfig#ListSafetyRules" }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ListTagsForResource" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#TagResource" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#UntagResource" + }, { "target": "com.amazonaws.route53recoverycontrolconfig#UpdateControlPanel" }, @@ -1859,28 +1971,13 @@ { "target": "com.amazonaws.route53recoverycontrolconfig#UpdateSafetyRule" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Route53 Recovery Control Config", - "arnNamespace": "route53-recovery-control-config", - "cloudFormationName": "Route53RecoveryControlConfig", - "cloudTrailEventSource": "route53recoverycontrolconfig.amazonaws.com", - "endpointPrefix": "route53-recovery-control-config" - }, - "aws.auth#sigv4": { - "name": "route53-recovery-control-config" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller

              ", - "smithy.api#title": "AWS Route53 Recovery Control Config" - } + ] }, "com.amazonaws.route53recoverycontrolconfig#RoutingControl": { "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel that includes the routing control.

              " } @@ -1892,7 +1989,7 @@ } }, "RoutingControlArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the routing control.

              " } @@ -1914,13 +2011,13 @@ "ASSERTION": { "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", "traits": { - "smithy.api#documentation": "

              An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control is not accepted.

              " + "smithy.api#documentation": "

              An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met. Otherwise, the change to the routing control state is not accepted. For example, the criteria might be that at least one routing control state is On after the transation so that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open scenario.

              " } }, "GATING": { "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", "traits": { - "smithy.api#documentation": "

              A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.

              " + "smithy.api#documentation": "

              A gating rule verifies that a gating routing control or set of gating rounting controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.

              For example, if you specify one gating routing control and you set the Type in the rule configuration to OR, that indicates that you must set the gating routing control to On for the rule to evaluate as true; that is, for the gating control \"switch\" to be \"On\". When you do that, then you can update the routing control states for the target routing controls that you specify in the gating rule.

              " } } }, @@ -1954,7 +2051,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion controls (routing controls) that specify how many controls must be enabled after a transaction completes.

              " + "smithy.api#documentation": "

              The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion controls (routing controls) that specify how many control states must be ON after a transaction completes.

              " } }, "com.amazonaws.route53recoverycontrolconfig#RuleType": { @@ -1989,7 +2086,7 @@ } }, "traits": { - "smithy.api#documentation": "

              402 response

              ", + "smithy.api#documentation": "

              402 response - You attempted to create more resources than the service allows based on service quotas.

              ", "smithy.api#error": "client", "smithy.api#httpError": 402 } @@ -2014,6 +2111,61 @@ ] } }, + "com.amazonaws.route53recoverycontrolconfig#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53recoverycontrolconfig#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53recoverycontrolconfig#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53recoverycontrolconfig#InternalServerException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Adds a tag to a resource.

              ", + "smithy.api#http": { + "method": "POST", + "uri": "/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#TagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the resource that's tagged.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS", + "traits": { + "smithy.api#documentation": "

              The tags associated with the resource.

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              Request of adding tag to the resource

              " + } + }, + "com.amazonaws.route53recoverycontrolconfig#TagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.route53recoverycontrolconfig#ThrottlingException": { "type": "structure", "members": { @@ -2026,11 +2178,64 @@ } }, "traits": { - "smithy.api#documentation": "

              429 response - ThrottlingException.

              ", + "smithy.api#documentation": "

              429 response - LimitExceededException or TooManyRequestsException.

              ", "smithy.api#error": "client", "smithy.api#httpError": 429 } }, + "com.amazonaws.route53recoverycontrolconfig#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.route53recoverycontrolconfig#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.route53recoverycontrolconfig#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.route53recoverycontrolconfig#InternalServerException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.route53recoverycontrolconfig#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

              Removes a tag from a resource.

              ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/tags/{ResourceArn}", + "code": 200 + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#UntagResourceRequest": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the resource that's tagged.

              ", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "TagKeys": { + "target": "com.amazonaws.route53recoverycontrolconfig#__listOf__string", + "traits": { + "smithy.api#documentation": "

              Keys for the tags to be removed.

              ", + "smithy.api#httpQuery": "TagKeys", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.route53recoverycontrolconfig#UntagResourceResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.route53recoverycontrolconfig#UpdateControlPanel": { "type": "operation", "input": { @@ -2072,7 +2277,7 @@ "type": "structure", "members": { "ControlPanelArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the control panel.

              ", "smithy.api#required": {} @@ -2142,7 +2347,7 @@ "type": "structure", "members": { "RoutingControlArn": { - "target": "com.amazonaws.route53recoverycontrolconfig#__string", + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09", "traits": { "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the routing control.

              ", "smithy.api#required": {} @@ -2191,7 +2396,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Update a safety rule (an assertion rule or gating rule) for the routing controls in a control panel. You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new safety rule.

              ", + "smithy.api#documentation": "

              Update a safety rule (an assertion rule or gating rule). You can only update the name and the waiting period for a safety rule. To make other updates, delete the safety rule and create a new one.

              ", "smithy.api#http": { "method": "PUT", "uri": "/safetyrule", @@ -2203,21 +2408,36 @@ "type": "structure", "members": { "AssertionRuleUpdate": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRuleUpdate" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRuleUpdate", + "traits": { + "smithy.api#documentation": "

              The assertion rule to update.

              " + } }, "GatingRuleUpdate": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRuleUpdate" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRuleUpdate", + "traits": { + "smithy.api#documentation": "

              The gating rule to update.

              " + } } + }, + "traits": { + "smithy.api#documentation": "

              A rule that you add to Application Recovery Controller to ensure that recovery actions don't accidentally impair your application's availability.

              " } }, "com.amazonaws.route53recoverycontrolconfig#UpdateSafetyRuleResponse": { "type": "structure", "members": { "AssertionRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule" + "target": "com.amazonaws.route53recoverycontrolconfig#AssertionRule", + "traits": { + "smithy.api#documentation": "

              The assertion rule updated.

              " + } }, "GatingRule": { - "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule" + "target": "com.amazonaws.route53recoverycontrolconfig#GatingRule", + "traits": { + "smithy.api#documentation": "

              The gating rule updated.

              " + } } } }, @@ -2233,7 +2453,7 @@ } }, "traits": { - "smithy.api#documentation": "

              400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you used parameters together incorrectly.

              ", + "smithy.api#documentation": "

              400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you might have used parameters together incorrectly.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 } @@ -2280,43 +2500,78 @@ "target": "com.amazonaws.route53recoverycontrolconfig#__string" } }, + "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMax36PatternS": { + "type": "list", + "member": { + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMax36PatternS" + } + }, + "com.amazonaws.route53recoverycontrolconfig#__listOf__stringMin1Max256PatternAZaZ09": { + "type": "list", + "member": { + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09" + } + }, + "com.amazonaws.route53recoverycontrolconfig#__mapOf__stringMin0Max256PatternS": { + "type": "map", + "key": { + "target": "com.amazonaws.route53recoverycontrolconfig#__string" + }, + "value": { + "target": "com.amazonaws.route53recoverycontrolconfig#__stringMin0Max256PatternS" + } + }, "com.amazonaws.route53recoverycontrolconfig#__string": { "type": "string" }, - "com.amazonaws.route53recoverycontrolconfig#__stringMax64": { + "com.amazonaws.route53recoverycontrolconfig#__stringMax36PatternS": { "type": "string", "traits": { "smithy.api#length": { "min": 0, - "max": 64 - } + "max": 36 + }, + "smithy.api#pattern": "^\\S+$" } }, - "com.amazonaws.route53recoverycontrolconfig#__stringMax8096": { + "com.amazonaws.route53recoverycontrolconfig#__stringMin0Max256PatternS": { "type": "string", "traits": { "smithy.api#length": { "min": 0, - "max": 8096 - } + "max": 256 + }, + "smithy.api#pattern": "^\\S+$" } }, - "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128": { + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max128PatternAZaZ09": { "type": "string", "traits": { "smithy.api#length": { "min": 1, "max": 128 - } + }, + "smithy.api#pattern": "^[A-Za-z0-9:.\\/_-]*$" + } + }, + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max256PatternAZaZ09": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^[A-Za-z0-9:\\/_-]*$" } }, - "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32": { + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max32PatternS": { "type": "string", "traits": { "smithy.api#length": { "min": 1, "max": 32 - } + }, + "smithy.api#pattern": "^\\S+$" } }, "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max64PatternS": { @@ -2328,6 +2583,16 @@ }, "smithy.api#pattern": "^\\S+$" } + }, + "com.amazonaws.route53recoverycontrolconfig#__stringMin1Max8096PatternS": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 8096 + }, + "smithy.api#pattern": "^[\\S]*$" + } } } } diff --git a/codegen/sdk-codegen/aws-models/sagemaker.json b/codegen/sdk-codegen/aws-models/sagemaker.json index 7398a18ff916..5331c46b356b 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.json @@ -1899,6 +1899,12 @@ "smithy.api#documentation": "

              The name of the target variable in supervised learning, usually represented by\n 'y'.

              ", "smithy.api#required": {} } + }, + "ContentType": { + "target": "com.amazonaws.sagemaker#ContentType", + "traits": { + "smithy.api#documentation": "

              The content type of the data from the input source. You can use\n text/csv;header=present or x-application/vnd.amazon+parquet.\n The default value is text/csv;header=present.

              " + } } }, "traits": { @@ -7982,7 +7988,7 @@ "traits": { "smithy.api#length": { "min": 0, - "max": 30 + "max": 200 } } }, @@ -20416,6 +20422,9 @@ } } }, + "com.amazonaws.sagemaker#IntegerValue": { + "type": "integer" + }, "com.amazonaws.sagemaker#InvocationsMaxRetries": { "type": "integer", "traits": { @@ -30735,6 +30744,9 @@ "smithy.api#documentation": "

              If this pipeline execution step was cached, details on the cache hit.

              " } }, + "AttemptCount": { + "target": "com.amazonaws.sagemaker#IntegerValue" + }, "FailureReason": { "target": "com.amazonaws.sagemaker#FailureReason", "traits": { @@ -37297,6 +37309,10 @@ "value": "sitara_am57x", "name": "SITARA_AM57X" }, + { + "value": "amba_cv2", + "name": "AMBA_CV2" + }, { "value": "amba_cv22", "name": "AMBA_CV22" diff --git a/codegen/sdk-codegen/aws-models/savingsplans.json b/codegen/sdk-codegen/aws-models/savingsplans.json index fa7caca3c18e..76c13feac8bb 100644 --- a/codegen/sdk-codegen/aws-models/savingsplans.json +++ b/codegen/sdk-codegen/aws-models/savingsplans.json @@ -31,6 +31,21 @@ "shapes": { "com.amazonaws.savingsplans#AWSSavingsPlan": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "savingsplans", + "arnNamespace": "savingsplans", + "cloudFormationName": "Savingsplans", + "cloudTrailEventSource": "savingsplans.amazonaws.com", + "endpointPrefix": "savingsplans" + }, + "aws.auth#sigv4": { + "name": "savingsplans" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              Savings Plans are a pricing model that offer significant savings on AWS usage (for\n example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD\n per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For\n more information, see the AWS Savings Plans User Guide.

              ", + "smithy.api#title": "AWS Savings Plans" + }, "version": "2019-06-28", "operations": [ { @@ -60,22 +75,7 @@ { "target": "com.amazonaws.savingsplans#UntagResource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "savingsplans", - "arnNamespace": "savingsplans", - "cloudFormationName": "Savingsplans", - "cloudTrailEventSource": "savingsplans.amazonaws.com", - "endpointPrefix": "savingsplans" - }, - "aws.auth#sigv4": { - "name": "savingsplans" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              Savings Plans are a pricing model that offer significant savings on AWS usage (for\n example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD\n per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For\n more information, see the AWS Savings Plans User Guide.

              ", - "smithy.api#title": "AWS Savings Plans" - } + ] }, "com.amazonaws.savingsplans#Amount": { "type": "string" @@ -127,7 +127,7 @@ "commitment": { "target": "com.amazonaws.savingsplans#Amount", "traits": { - "smithy.api#documentation": "

              The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more\n than three digits after the decimal point.

              ", + "smithy.api#documentation": "

              The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more\n than five digits after the decimal point.

              ", "smithy.api#required": {} } }, diff --git a/codegen/sdk-codegen/aws-models/secrets-manager.json b/codegen/sdk-codegen/aws-models/secrets-manager.json index dd143ac9ed40..c1af40b26fef 100644 --- a/codegen/sdk-codegen/aws-models/secrets-manager.json +++ b/codegen/sdk-codegen/aws-models/secrets-manager.json @@ -75,7 +75,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Disables automatic scheduled rotation and cancels the rotation of a secret if currently in\n progress.

              \n

              To re-enable scheduled rotation, call RotateSecret with\n AutomaticallyRotateAfterDays set to a value greater than 0. This immediately\n rotates your secret and then enables the automatic schedule.

              \n \n

              If you cancel a rotation while in progress, it can leave the VersionStage\n labels in an unexpected state. Depending on the step of the rotation in progress, you might\n need to remove the staging label AWSPENDING from the partially created version, specified\n by the VersionId response value. You should also evaluate the partially rotated\n new version to see if it should be deleted, which you can do by removing all staging labels\n from the new version VersionStage field.

              \n
              \n

              To successfully start a rotation, the staging label AWSPENDING must be in one of the\n following states:

              \n
                \n
              • \n

                Not attached to any version at all

                \n
              • \n
              • \n

                Attached to the same version as the staging label AWSCURRENT\n

                \n
              • \n
              \n

              If the staging label AWSPENDING attached to a different version than the version with\n AWSCURRENT then the attempt to rotate fails.

              \n\n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:CancelRotateSecret

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To configure rotation for a secret or to manually trigger a rotation, use RotateSecret.

                \n
              • \n
              • \n

                To get the rotation configuration details for a secret, use DescribeSecret.

                \n
              • \n
              • \n

                To list all of the currently available secrets, use ListSecrets.

                \n
              • \n
              • \n

                To list all of the versions currently associated with a secret, use ListSecretVersionIds.

                \n
              • \n
              " + "smithy.api#documentation": "

              Turns off automatic rotation, and if a rotation is currently in\n progress, cancels the rotation.

              \n

              To turn on automatic rotation again, call RotateSecret.

              \n \n

              If you cancel a rotation in progress, it can leave the VersionStage\n labels in an unexpected state. Depending on the step of the rotation in progress, you might\n need to remove the staging label AWSPENDING from the partially created version, specified\n by the VersionId response value. We recommend you also evaluate the partially rotated\n new version to see if it should be deleted. You can delete a version by removing all staging labels\n from it.

              \n
              " } }, "com.amazonaws.secretsmanager#CancelRotateSecretRequest": { @@ -84,7 +84,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret to cancel a rotation request. You can specify either the Amazon\n Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } } @@ -96,19 +96,19 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The ARN of the secret for which rotation was canceled.

              " + "smithy.api#documentation": "

              The ARN of the secret.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret for which rotation was canceled.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              The unique identifier of the version of the secret created during the rotation. This\n version might not be complete, and should be evaluated for possible deletion. At the very\n least, you should remove the VersionStage value AWSPENDING to enable this\n version to be deleted. Failing to clean up a cancelled rotation can block you from\n successfully starting future rotations.

              " + "smithy.api#documentation": "

              The unique identifier of the version of the secret created during the rotation. This\n version might not be complete, and should be evaluated for possible deletion. We recommend \n that you remove the VersionStage value AWSPENDING from this version so that \n Secrets Manager can delete it. Failing to clean up a cancelled rotation can block you from\n starting future rotations.

              " } } } @@ -160,7 +160,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a new secret. A secret in Secrets Manager consists of both the protected secret data and the\n important information needed to manage the secret.

              \n

              Secrets Manager stores the encrypted secret data in one of a collection of \"versions\"\n associated with the secret. Each version contains a copy of the encrypted secret data. Each\n version is associated with one or more \"staging labels\" that identify where the version is in\n the rotation cycle. The SecretVersionsToStages field of the secret contains the\n mapping of staging labels to the active versions of the secret. Versions without a staging\n label are considered deprecated and not included in the list.

              \n

              You provide the secret data to be encrypted by putting text in either the\n SecretString parameter or binary data in the SecretBinary\n parameter, but not both. If you include SecretString or SecretBinary\n then Secrets Manager also creates an initial secret version and automatically attaches the staging\n label AWSCURRENT to the new version.

              \n \n
                \n
              • \n

                If you call an operation to encrypt or decrypt the SecretString \n or SecretBinary for a secret in the same account as the calling user and that \n secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default \n Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key \n doesn't already exist in your account then Secrets Manager creates it for you automatically. All\n users and roles in the same Amazon Web Services account automatically have access to use the default CMK. \n Note that if an Secrets Manager API call results in Amazon Web Services creating the account's \n Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the \n result.

                \n
              • \n
              • \n

                If the secret resides in a different Amazon Web Services account from the credentials calling an API that \n requires encryption or decryption of the secret value then you must create and use a custom \n Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials \n from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the \n secret or when you update it by including it in the KMSKeyId. If you call an \n API that must encrypt or decrypt SecretString or SecretBinary \n using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account\n access to that other account's user or role for both the kms:GenerateDataKey and \n kms:Decrypt operations.

                \n
              • \n
              \n
              \n

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:CreateSecret

                \n
              • \n
              • \n

                kms:GenerateDataKey - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt\n the secret. You do not need this permission to use the account default Amazon Web Services managed CMK\n for Secrets Manager.

                \n
              • \n
              • \n

                kms:Decrypt - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt the\n secret. You do not need this permission to use the account default Amazon Web Services managed CMK for\n Secrets Manager.

                \n
              • \n
              • \n

                secretsmanager:TagResource - needed only if you include the Tags\n parameter.

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To delete a secret, use DeleteSecret.

                \n
              • \n
              • \n

                To modify an existing secret, use UpdateSecret.

                \n
              • \n
              • \n

                To create a new version of a secret, use PutSecretValue.

                \n
              • \n
              • \n

                To retrieve the encrypted secure string and secure binary values, use GetSecretValue.

                \n
              • \n
              • \n

                To retrieve all other details for a secret, use DescribeSecret. This\n does not include the encrypted secure string and secure binary values.

                \n
              • \n
              • \n

                To retrieve the list of secret versions associated with the current secret, use DescribeSecret and examine the SecretVersionsToStages response\n value.

                \n
              • \n
              " + "smithy.api#documentation": "

              Creates a new secret. A secret is a set of credentials, such as a \n user name and password, that you store in an encrypted form in Secrets Manager. The secret also \n includes the connection information to access a database or other service, which Secrets Manager \n doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the\n important information needed to manage the secret.

              \n

              For information about creating a secret in the console, see Create a secret.

              \n

              To create a secret, you can provide the secret value to be encrypted in either the\n SecretString parameter or the SecretBinary parameter, but not both. \n If you include SecretString or SecretBinary\n then Secrets Manager creates an initial secret version and automatically attaches the staging\n label AWSCURRENT to it.

              \n

              If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key \n aws/secretsmanager. If this key \n doesn't already exist in your account, then Secrets Manager creates it for you automatically. All\n users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. \n Creating aws/secretsmanager can result in a one-time significant delay in returning the \n result.

              \n

              If the secret is in a different Amazon Web Services account from the credentials calling the API, then \n you can't use aws/secretsmanager to encrypt the secret, and you must create \n and use a customer managed KMS key.

              " } }, "com.amazonaws.secretsmanager#CreateSecretRequest": { @@ -169,57 +169,57 @@ "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

              Specifies the friendly name of the new secret.

              \n

              The secret name must be ASCII letters, digits, or the following characters :\n /_+=.@-

              \n \n

              Do not end your secret name with a hyphen followed by six characters. If you do so, you\n risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager\n automatically adds a hyphen and six random characters at the end of the ARN.

              \n
              ", + "smithy.api#documentation": "

              The name of the new secret.

              \n

              The secret name can contain ASCII letters, numbers, and the following characters:\n /_+=.@-

              \n \n

              Do not end your secret name with a hyphen followed by six characters. If you do so, you\n risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager\n automatically adds a hyphen and six random characters after the secret name at the end of the ARN.

              ", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

              (Optional) If you include SecretString or SecretBinary, then an\n initial version is created as part of the secret, and this parameter specifies a unique\n identifier for the new version.

              \n \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it\n as the value for this parameter in the request. If you don't use the SDK and instead\n generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for the new version and include the value in the\n request.

              \n
              \n

              This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during a rotation. We\n recommend that you generate a UUID-type value to\n ensure uniqueness of your versions within the specified secret.

              \n
                \n
              • \n

                If the ClientRequestToken value isn't already associated with a version\n of the secret then a new version of the secret is created.

                \n
              • \n
              • \n

                If a version with this value already exists and the version SecretString\n and SecretBinary values are the same as those in the request, then the\n request is ignored.

                \n
              • \n
              • \n

                If a version with this value already exists and that version's\n SecretString and SecretBinary values are different from those\n in the request, then the request fails because you cannot modify an existing version.\n Instead, use PutSecretValue to create a new version.

                \n
              • \n
              \n

              This value becomes the VersionId of the new version.

              ", + "smithy.api#documentation": "

              If you include SecretString or SecretBinary, then \n Secrets Manager creates an initial version for the secret, and this parameter specifies the unique\n identifier for the new version.

              \n \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it\n as the value for this parameter in the request. If you don't use the SDK and instead\n generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for the new version and include the value in the\n request.

              \n
              \n

              This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during a rotation. We\n recommend that you generate a UUID-type value to\n ensure uniqueness of your versions within the specified secret.

              \n
                \n
              • \n

                If the ClientRequestToken value isn't already associated with a version\n of the secret then a new version of the secret is created.

                \n
              • \n
              • \n

                If a version with this value already exists and the version SecretString\n and SecretBinary values are the same as those in the request, then the\n request is ignored.

                \n
              • \n
              • \n

                If a version with this value already exists and that version's\n SecretString and SecretBinary values are different from those\n in the request, then the request fails because you cannot modify an existing version.\n Instead, use PutSecretValue to create a new version.

                \n
              • \n
              \n

              This value becomes the VersionId of the new version.

              ", "smithy.api#idempotencyToken": {} } }, "Description": { "target": "com.amazonaws.secretsmanager#DescriptionType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies a user-provided description of the secret.

              " + "smithy.api#documentation": "

              The description of the secret.

              " } }, "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies the ARN, Key ID, or alias of the Amazon Web Services KMS customer master key (CMK) to\n be used to encrypt the SecretString or SecretBinary values in the\n versions stored in this secret.

              \n

              You can specify any of the supported ways to identify a Amazon Web Services KMS key ID. If you need to\n reference a CMK in a different account, you can use only the key ARN or the alias ARN.

              \n

              If you don't specify this value, then Secrets Manager defaults to using the Amazon Web Services account's\n default CMK (the one named aws/secretsmanager). If a Amazon Web Services KMS CMK with that name doesn't yet\n exist, then Secrets Manager creates it for you automatically the first time it needs to encrypt a\n version's SecretString or SecretBinary fields.

              \n \n

              You can use the account default CMK to encrypt and decrypt only if you call this\n operation using credentials from the same account that owns the secret. If the secret\n resides in a different account, then you must create a custom CMK and specify the ARN in\n this field.

              \n
              " + "smithy.api#documentation": "

              The ARN, key ID, or alias of the KMS key that Secrets Manager uses to\n encrypt the secret value in the secret.

              \n

              To use a KMS key in a different account, use the key ARN or the alias ARN.

              \n

              If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. \n If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it \n encrypts the secret value.

              \n

              If the secret is in a different Amazon Web Services account from the credentials calling the API, then \n you can't use aws/secretsmanager to encrypt the secret, and you must create \n and use a customer managed KMS key.

              " } }, "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies binary data that you want to encrypt and store in the new version of\n the secret. To use this parameter in the command-line tools, we recommend that you store your\n binary data in a file and then use the appropriate technique for your tool to pass the\n contents of the file as a parameter.

              \n

              Either SecretString or SecretBinary must have a value, but not\n both. They cannot both be empty.

              \n

              This parameter is not available using the Secrets Manager console. It can be accessed only by\n using the Amazon Web Services CLI or one of the Amazon Web Services SDKs.

              " + "smithy.api#documentation": "

              The binary data to encrypt and store in the new version of\n the secret. We recommend that you store your binary data in a file and then pass the\n contents of the file as a parameter.

              \n

              Either SecretString or SecretBinary must have a value, but not\n both.

              \n

              This parameter is not available in the Secrets Manager console.

              " } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret.

              \n

              Either SecretString or SecretBinary must have a value, but not\n both. They cannot both be empty.

              \n

              If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected\n secret text in only the SecretString parameter. The Secrets Manager console stores the\n information as a JSON structure of key/value pairs that the Lambda rotation function knows how\n to parse.

              \n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              " + "smithy.api#documentation": "

              The text data to encrypt and store in this new version of\n the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

              \n

              Either SecretString or SecretBinary must have a value, but not\n both.

              \n

              If you create a secret by using the Secrets Manager console then Secrets Manager puts the protected\n secret text in only the SecretString parameter. The Secrets Manager console stores the\n information as a JSON structure of key/value pairs that a Lambda rotation function can parse.

              " } }, "Tags": { "target": "com.amazonaws.secretsmanager#TagListType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies a list of user-defined tags that are attached to the secret. Each tag\n is a \"Key\" and \"Value\" pair of strings. This operation only appends tags to the existing list\n of tags. To remove tags, you must use UntagResource.

              \n \n
                \n
              • \n

                Secrets Manager tag key names are case sensitive. A tag with the key \"ABC\" is a different tag\n from one with key \"abc\".

                \n
              • \n
              • \n

                If you check tags in IAM policy Condition elements as part of your\n security strategy, then adding or removing a tag can change permissions. If the\n successful completion of this operation would result in you losing your permissions for\n this secret, then this operation is blocked and returns an Access Denied\n error.

                \n
              • \n
              \n
              \n

              This parameter requires a JSON text string argument. For information on how to format a\n JSON parameter for the various command line tool environments, see Using JSON for\n Parameters in the CLI User Guide. For example:

              \n

              \n [{\"Key\":\"CostCenter\",\"Value\":\"12345\"},{\"Key\":\"environment\",\"Value\":\"production\"}]\n

              \n

              If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per secret—50

                \n
              • \n
              • \n

                Maximum key length—127 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Maximum value length—255 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it\n for Amazon Web Services use. You can't edit or delete tag names or values with this \n prefix. Tags with this prefix do not count against your tags per secret limit.

                \n
              • \n
              • \n

                If you use your tagging schema across multiple services and resources,\n remember other services might have restrictions on allowed characters. Generally\n allowed characters: letters, spaces, and numbers representable in UTF-8, plus the\n following special characters: + - = . _ : / @.

                \n
              • \n
              " + "smithy.api#documentation": "

              A list of tags to attach to the secret. Each tag\n is a key and value pair of strings in a JSON text string, for example:

              \n

              \n [{\"Key\":\"CostCenter\",\"Value\":\"12345\"},{\"Key\":\"environment\",\"Value\":\"production\"}]\n

              \n

              Secrets Manager tag key names are case sensitive. A tag with the key \"ABC\" is a different tag\n from one with key \"abc\".

              \n

              If you check tags in permissions policies as part of your\n security strategy, then adding or removing a tag can change permissions. If the\n completion of this operation would result in you losing your permissions for\n this secret, then Secrets Manager blocks the operation and returns an Access Denied\n error. For more information, see Control \n access to secrets using tags and Limit access to identities with tags that match secrets' tags.

              \n

              For information about how to format a\n JSON parameter for the various command line tool environments, see Using JSON for\n Parameters. If your command-line tool or SDK requires quotation marks around the parameter, you should\n use single quotes to avoid confusion with the double quotes required in the JSON text.

              \n

              The following restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per secret: 50

                \n
              • \n
              • \n

                Maximum key length: 127 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Maximum value length: 255 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it\n for Amazon Web Services use. You can't edit or delete tag names or values with this \n prefix. Tags with this prefix do not count against your tags per secret limit.

                \n
              • \n
              • \n

                If you use your tagging schema across multiple services and resources,\n other services might have restrictions on allowed characters. Generally\n allowed characters: letters, spaces, and numbers representable in UTF-8, plus the\n following special characters: + - = . _ : / @.

                \n
              • \n
              " } }, "AddReplicaRegions": { "target": "com.amazonaws.secretsmanager#AddReplicaRegionListType", "traits": { - "smithy.api#documentation": "

              (Optional) Add a list of regions to replicate secrets. Secrets Manager replicates the KMSKeyID objects to the list of regions specified in\n the parameter.

              " + "smithy.api#documentation": "

              A list of Regions and KMS keys to replicate secrets.

              " } }, "ForceOverwriteReplicaSecret": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { - "smithy.api#documentation": "

              (Optional) If set, the replication overwrites a secret with the same name in the\n destination region.

              " + "smithy.api#documentation": "

              Specifies whether to overwrite a secret with the same name in the\n destination Region.

              " } } } @@ -230,25 +230,25 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the secret that you just created.

              \n \n

              Secrets Manager automatically adds several random characters to the name at the end of the ARN when\n you initially create a secret. This affects only the ARN and not the actual friendly name. \n This ensures that if you create a new secret with the same name as an old secret that you \n previously deleted, then users with access to the old secret don't \n automatically get access to the new secret because the ARNs are different.

              \n
              " + "smithy.api#documentation": "

              The ARN of the new secret. The ARN includes the name of the secret followed by six random \n characters. This ensures that if you create a new secret with the same name as a deleted secret, \n then users with access to the old secret don't get access to the new secret because the ARNs \n are different.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret that you just created.

              " + "smithy.api#documentation": "

              The name of the new secret.

              " } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              The unique identifier associated with the version of the secret you just created.

              " + "smithy.api#documentation": "

              The unique identifier associated with the version of the new secret.

              " } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

              Describes a list of replication status objects as InProgress, Failed or InSync.

              " + "smithy.api#documentation": "

              A list of the replicas of this secret and their status:

              \n
                \n
              • \n

                \n Failed, which indicates that the replica was not created.

                \n
              • \n
              • \n

                \n InProgress, which indicates that Secrets Manager is in the process of creating the replica.

                \n
              • \n
              • \n

                \n InSync, which indicates that the replica was created.

                \n
              • \n
              " } } } @@ -291,7 +291,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes the resource-based permission policy attached to the secret.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:DeleteResourcePolicy

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To attach a resource policy to a secret, use PutResourcePolicy.

                \n
              • \n
              • \n

                To retrieve the current resource-based policy attached to a secret, use GetResourcePolicy.

                \n
              • \n
              • \n

                To list all of the currently available secrets, use ListSecrets.

                \n
              • \n
              " + "smithy.api#documentation": "

              Deletes the resource-based permission policy attached to the secret. To attach a policy to \n a secret, use PutResourcePolicy.

              " } }, "com.amazonaws.secretsmanager#DeleteResourcePolicyRequest": { @@ -300,7 +300,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret that you want to delete the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to delete the attached resource-based policy for.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } } @@ -318,7 +318,7 @@ "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret that the resource-based policy was deleted for.

              " + "smithy.api#documentation": "

              The name of the secret that the resource-based policy was deleted for.

              " } } } @@ -346,7 +346,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes an entire secret and all of the versions. You can optionally include a recovery\n window during which you can restore the secret. If you don't specify a recovery window value,\n the operation defaults to 30 days. Secrets Manager attaches a DeletionDate stamp to\n the secret that specifies the end of the recovery window. At the end of the recovery window,\n Secrets Manager deletes the secret permanently.

              \n

              At any time before recovery window ends, you can use RestoreSecret to\n remove the DeletionDate and cancel the deletion of the secret.

              \n

              You cannot access the encrypted secret information in any secret scheduled for deletion.\n If you need to access that information, you must cancel the deletion with RestoreSecret and then retrieve the information.

              \n \n
                \n
              • \n

                There is no explicit operation to delete a version of a secret. Instead, remove all\n staging labels from the VersionStage field of a version. That marks the\n version as deprecated and allows Secrets Manager to delete it as needed. Versions without any\n staging labels do not show up in ListSecretVersionIds unless you\n specify IncludeDeprecated.

                \n
              • \n
              • \n

                The permanent secret deletion at the end of the waiting period is performed as a\n background task with low priority. There is no guarantee of a specific time after the\n recovery window for the actual delete operation to occur.

                \n
              • \n
              \n
              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:DeleteSecret

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To create a secret, use CreateSecret.

                \n
              • \n
              • \n

                To cancel deletion of a version of a secret before the recovery window has expired,\n use RestoreSecret.

                \n
              • \n
              " + "smithy.api#documentation": "

              Deletes a secret and all of its versions. You can specify a recovery\n window during which you can restore the secret. The minimum recovery window is 7 days. \n The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to\n the secret that specifies the end of the recovery window. At the end of the recovery window,\n Secrets Manager deletes the secret permanently.

              \n

              For information about deleting a secret in the console, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html.

              \n

              Secrets Manager performs the permanent secret deletion at the end of the waiting period as a\n background task with low priority. There is no guarantee of a specific time after the\n recovery window for the permanent delete to occur.

              \n

              At any time before recovery window ends, you can use RestoreSecret to\n remove the DeletionDate and cancel the deletion of the secret.

              \n

              In a secret scheduled for deletion, you cannot access the encrypted secret value.\n To access that information, first cancel the deletion with RestoreSecret and then retrieve the information.

              " } }, "com.amazonaws.secretsmanager#DeleteSecretRequest": { @@ -355,7 +355,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret to delete. You can specify either the Amazon Resource Name (ARN) or\n the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to delete.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, @@ -363,14 +363,14 @@ "target": "com.amazonaws.secretsmanager#RecoveryWindowInDaysType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              (Optional) Specifies the number of days that Secrets Manager waits before Secrets Manager can delete the\n secret. You can't use both this parameter and the ForceDeleteWithoutRecovery\n parameter in the same API call.

              \n

              This value can range from 7 to 30 days with a default value of 30.

              " + "smithy.api#documentation": "

              The number of days from 7 to 30 that Secrets Manager waits before permanently deleting the\n secret. You can't use both this parameter and ForceDeleteWithoutRecovery\n in the same call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

              " } }, "ForceDeleteWithoutRecovery": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              (Optional) Specifies that the secret is to be deleted without any recovery window. You\n can't use both this parameter and the RecoveryWindowInDays parameter in the same\n API call.

              \n

              An asynchronous background process performs the actual deletion, so there can be a short\n delay before the operation completes. If you write code to delete and then immediately\n recreate a secret with the same name, ensure that your code includes appropriate back off and\n retry logic.

              \n \n

              Use this parameter with caution. This parameter causes the operation to skip the normal\n waiting period before the permanent deletion that Amazon Web Services would normally impose with the\n RecoveryWindowInDays parameter. If you delete a secret with the\n ForceDeleteWithouRecovery parameter, then you have no opportunity to recover\n the secret. You lose the secret permanently.

              \n
              \n \n

              If you use this parameter and include a previously deleted or nonexistent secret, the\n operation does not return the error ResourceNotFoundException in order to\n correctly handle retries.

              \n
              " + "smithy.api#documentation": "

              Specifies whether to delete the secret without any recovery window. You\n can't use both this parameter and RecoveryWindowInDays in the same\n call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

              \n

              Secrets Manager performs the actual deletion with an asynchronous background process, so there might \n be a short delay before the secret is permanently deleted. If you delete a secret and then \n immediately create a secret with the same name, use appropriate back off and retry logic.

              \n \n

              Use this parameter with caution. This parameter causes the operation to skip the normal\n recovery window before the permanent deletion that Secrets Manager would normally impose with the\n RecoveryWindowInDays parameter. If you delete a secret with the\n ForceDeleteWithouRecovery parameter, then you have no opportunity to recover\n the secret. You lose the secret permanently.

              \n
              " } } } @@ -381,19 +381,19 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The ARN of the secret that is now scheduled for deletion.

              " + "smithy.api#documentation": "

              The ARN of the secret.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret currently scheduled for deletion.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } }, "DeletionDate": { "target": "com.amazonaws.secretsmanager#DeletionDateType", "traits": { - "smithy.api#documentation": "

              The date and time after which this secret can be deleted by Secrets Manager and can no longer be\n restored. This value is the date and time of the delete request plus the number of days\n specified in RecoveryWindowInDays.

              " + "smithy.api#documentation": "

              The date and time after which this secret Secrets Manager can permanently delete this secret, \n and it can no longer be restored. This value is the date and time of the delete request \n plus the number of days in RecoveryWindowInDays.

              " } } } @@ -424,7 +424,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Retrieves the details of a secret. It does not include the encrypted fields. Secrets\n Manager only returns fields populated with a value in the response.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:DescribeSecret

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To create a secret, use CreateSecret.

                \n
              • \n
              • \n

                To modify a secret, use UpdateSecret.

                \n
              • \n
              • \n

                To retrieve the encrypted secret information in a version of the secret, use GetSecretValue.

                \n
              • \n
              • \n

                To list all of the secrets in the Amazon Web Services account, use ListSecrets.

                \n
              • \n
              " + "smithy.api#documentation": "

              Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager\n only returns fields that have a value in the response.

              " } }, "com.amazonaws.secretsmanager#DescribeSecretRequest": { @@ -433,7 +433,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              The identifier of the secret whose details you want to retrieve. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } } @@ -451,44 +451,44 @@ "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The user-provided friendly name of the secret.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } }, "Description": { "target": "com.amazonaws.secretsmanager#DescriptionType", "traits": { - "smithy.api#documentation": "

              The user-provided description of the secret.

              " + "smithy.api#documentation": "

              The description of the secret.

              " } }, "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

              The ARN or alias of the Amazon Web Services KMS customer master key (CMK) that's used to encrypt the\n SecretString or SecretBinary fields in each version of the secret.\n If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with the\n default Amazon Web Services KMS CMK (the one named awssecretsmanager) for this account.

              " + "smithy.api#documentation": "

              The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with \n the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

              " } }, "RotationEnabled": { "target": "com.amazonaws.secretsmanager#RotationEnabledType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies whether automatic rotation is enabled for this secret.

              \n

              To enable rotation, use RotateSecret with\n AutomaticallyRotateAfterDays set to a value greater than 0. To disable\n rotation, use CancelRotateSecret.

              " + "smithy.api#documentation": "

              Specifies whether automatic rotation is turned on for this secret.

              \n

              To turn on rotation, use RotateSecret. To turn off\n rotation, use CancelRotateSecret.

              " } }, "RotationLambdaARN": { "target": "com.amazonaws.secretsmanager#RotationLambdaARNType", "traits": { - "smithy.api#documentation": "

              The ARN of a Lambda function that's invoked by Secrets Manager to rotate the\n secret either automatically per the schedule or manually by a call to\n RotateSecret.

              " + "smithy.api#documentation": "

              The ARN of the Lambda function that Secrets Manager invokes to rotate the\n secret.

              " } }, "RotationRules": { "target": "com.amazonaws.secretsmanager#RotationRulesType", "traits": { - "smithy.api#documentation": "

              A structure with the rotation configuration for this secret. This field is only populated \n if rotation is configured.

              " + "smithy.api#documentation": "

              The rotation schedule and Lambda function for this secret. If the secret previously had rotation turned on, but \n it is now turned off, this field shows the previous rotation schedule and rotation function. If the secret never had \n rotation turned on, this field is omitted.

              " } }, "LastRotatedDate": { "target": "com.amazonaws.secretsmanager#LastRotatedDateType", "traits": { - "smithy.api#documentation": "

              The last date and time that the rotation process for this secret was invoked.

              \n

              The most recent date and time that the Secrets Manager rotation process successfully\n completed. If the secret doesn't rotate, Secrets Manager returns a null value.

              " + "smithy.api#documentation": "

              The last date and time that Secrets Manager rotated the secret. \n If the secret isn't configured for rotation, Secrets Manager returns null.

              " } }, "LastChangedDate": { @@ -500,49 +500,49 @@ "LastAccessedDate": { "target": "com.amazonaws.secretsmanager#LastAccessedDateType", "traits": { - "smithy.api#documentation": "

              The last date that this secret was accessed. This value is truncated to midnight of the\n date and therefore shows only the date, not the time.

              " + "smithy.api#documentation": "

              The last date that the secret value was retrieved. This value does not include the time. This field is omitted if the secret has never been retrieved.

              " } }, "DeletedDate": { "target": "com.amazonaws.secretsmanager#DeletedDateType", "traits": { - "smithy.api#documentation": "

              This value exists if the secret is scheduled for deletion. Some time after the specified\n date and time, Secrets Manager deletes the secret and all of its versions.

              \n

              If a secret is scheduled for deletion, then its details, including the encrypted secret\n information, is not accessible. To cancel a scheduled deletion and restore access, use RestoreSecret.

              " + "smithy.api#documentation": "

              The date the secret is scheduled for deletion. If it is not scheduled for deletion, this \n field is omitted. When you delete a secret, Secrets Manager requires a \n recovery window of at least 7 days before deleting the secret. Some time after the deleted date, \n Secrets Manager deletes the secret, including all of its versions.

              \n

              If a secret is scheduled for deletion, then its details, including the encrypted secret\n value, is not accessible. To cancel a scheduled deletion and restore access to the secret, use RestoreSecret.

              " } }, "Tags": { "target": "com.amazonaws.secretsmanager#TagListType", "traits": { - "smithy.api#documentation": "

              The list of user-defined tags that are associated with the secret. To add tags to a\n secret, use TagResource. To remove tags, use UntagResource.

              " + "smithy.api#documentation": "

              The list of tags attached to the secret. To add tags to a\n secret, use TagResource. To remove tags, use UntagResource.

              " } }, "VersionIdsToStages": { "target": "com.amazonaws.secretsmanager#SecretVersionsToStagesMapType", "traits": { - "smithy.api#documentation": "

              A list of all of the currently assigned VersionStage staging labels and the\n VersionId that each is attached to. Staging labels are used to keep track of\n the different versions during the rotation process.

              \n \n

              A version that does not have any staging labels attached is considered deprecated and\n subject to deletion. Such versions are not included in this list.

              \n
              " + "smithy.api#documentation": "

              A list of the versions of the secret that have staging labels attached.\n Versions that don't have staging labels are considered deprecated and Secrets Manager \n can delete them.

              \n

              Secrets Manager uses staging labels to indicate the status of a secret version during rotation. The three \n staging labels for rotation are:

              \n
                \n
              • \n

                \n AWSCURRENT, which indicates the current version of the secret.

                \n
              • \n
              • \n

                \n AWSPENDING, which indicates the version of the secret that contains new \n secret information that will become the next current version when rotation finishes.

                \n

                During \n rotation, Secrets Manager creates an AWSPENDING version ID before creating the new secret version. \n To check if a secret version exists, call GetSecretValue.

                \n
              • \n
              • \n

                \n AWSPREVIOUS, which indicates the previous current version of the secret. \n You can use this as the last known good version.

                \n
              • \n
              \n

              For more information about rotation and staging labels, see How rotation works.

              " } }, "OwningService": { "target": "com.amazonaws.secretsmanager#OwningServiceType", "traits": { - "smithy.api#documentation": "

              Returns the name of the service that created this secret.

              " + "smithy.api#documentation": "

              The name of the service that created this secret.

              " } }, "CreatedDate": { "target": "com.amazonaws.secretsmanager#TimestampType", "traits": { - "smithy.api#documentation": "

              The date you created the secret.

              " + "smithy.api#documentation": "

              The date the secret was created.

              " } }, "PrimaryRegion": { "target": "com.amazonaws.secretsmanager#RegionType", "traits": { - "smithy.api#documentation": "

              Specifies the primary region for secret replication.

              " + "smithy.api#documentation": "

              The Region the secret is in. If a secret is replicated to other Regions, the replicas are listed in ReplicationStatus.

              " } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

              Describes a list of replication status objects as InProgress, Failed or InSync.P\n

              " + "smithy.api#documentation": "

              A list of the replicas of this secret and their status:

              \n
                \n
              • \n

                \n Failed, which indicates that the replica was not created.

                \n
              • \n
              • \n

                \n InProgress, which indicates that Secrets Manager is in the process of creating the replica.

                \n
              • \n
              • \n

                \n InSync, which indicates that the replica was created.

                \n
              • \n
              " } } } @@ -564,7 +564,7 @@ } }, "traits": { - "smithy.api#documentation": "

              Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the\n customer master key (CMK) is available, enabled, and not in an invalid state. For more\n information, see How Key State Affects Use of a\n Customer Master Key.

              ", + "smithy.api#documentation": "

              Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the\n KMS key is available, enabled, and not in an invalid state. For more\n information, see Key state: Effect on your KMS key.

              ", "smithy.api#error": "client" } }, @@ -598,18 +598,18 @@ "Key": { "target": "com.amazonaws.secretsmanager#FilterNameStringType", "traits": { - "smithy.api#documentation": "

              Filters your list of secrets by a specific key.

              " + "smithy.api#documentation": "

              The following are keys you can use:

              \n
                \n
              • \n

                \n description: Prefix match, not case-sensitive.

                \n
              • \n
              • \n

                \n name: Prefix match, case-sensitive.

                \n
              • \n
              • \n

                \n tag-key: Prefix match, case-sensitive.

                \n
              • \n
              • \n

                \n tag-value: Prefix match, case-sensitive.

                \n
              • \n
              • \n

                \n primary-region: Prefix match, case-sensitive.

                \n
              • \n
              • \n

                \n all: Breaks the filter value string into words and then searches all attributes for matches. Not case-sensitive.

                \n
              • \n
              " } }, "Values": { "target": "com.amazonaws.secretsmanager#FilterValuesStringList", "traits": { - "smithy.api#documentation": "

              Filters your list of secrets by a specific value.

              \n

              You can prefix your search value with an exclamation mark (!) in order to perform negation filters.

              " + "smithy.api#documentation": "

              The keyword to filter for.

              \n

              You can prefix your search value with an exclamation mark (!) in order to perform negation filters.

              " } } }, "traits": { - "smithy.api#documentation": "

              Allows you to add filters when you use the search function in Secrets Manager.

              " + "smithy.api#documentation": "

              Allows you to add filters when you use the search function in Secrets Manager. For more information, see Find secrets in Secrets Manager.

              " } }, "com.amazonaws.secretsmanager#FilterNameStringType": { @@ -697,7 +697,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Generates a random password of the specified complexity. This operation is intended for\n use in the Lambda rotation function. Per best practice, we recommend that you specify the\n maximum length and include every character type that the system you are generating a password\n for can support.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:GetRandomPassword

                \n
              • \n
              " + "smithy.api#documentation": "

              Generates a random password. We recommend that you specify the\n maximum length and include every character type that the system you are generating a password\n for can support.

              " } }, "com.amazonaws.secretsmanager#GetRandomPasswordRequest": { @@ -707,55 +707,55 @@ "target": "com.amazonaws.secretsmanager#PasswordLengthType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              The desired length of the generated password. The default value if you do not include this\n parameter is 32 characters.

              " + "smithy.api#documentation": "

              The length of the password. If you don't include this parameter, the \n default length is 32 characters.

              " } }, "ExcludeCharacters": { "target": "com.amazonaws.secretsmanager#ExcludeCharactersType", "traits": { - "smithy.api#documentation": "

              A string that includes characters that should not be included in the generated password.\n The default is that all characters from the included sets can be used.

              " + "smithy.api#documentation": "

              A string of the characters that you don't want in the password.

              " } }, "ExcludeNumbers": { "target": "com.amazonaws.secretsmanager#ExcludeNumbersType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies that the generated password should not include digits. The default if you do not\n include this switch parameter is that digits can be included.

              " + "smithy.api#documentation": "

              Specifies whether to exclude numbers from the password. If you don't \n include this switch, the password can contain numbers.

              " } }, "ExcludePunctuation": { "target": "com.amazonaws.secretsmanager#ExcludePunctuationType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies that the generated password should not include punctuation characters. The\n default if you do not include this switch parameter is that punctuation characters can be\n included.

              \n

              The following are the punctuation characters that can be included in\n the generated password if you don't explicitly exclude them with\n ExcludeCharacters or ExcludePunctuation:

              \n

              \n ! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | }\n ~\n

              " + "smithy.api#documentation": "

              Specifies whether to exclude the following punctuation characters from the password: \n ! \" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~. \n If you don't include this switch, the password can contain punctuation.

              " } }, "ExcludeUppercase": { "target": "com.amazonaws.secretsmanager#ExcludeUppercaseType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies that the generated password should not include uppercase letters. The default if\n you do not include this switch parameter is that uppercase letters can be included.

              " + "smithy.api#documentation": "

              Specifies whether to exclude uppercase letters from the password. If you \n don't include this switch, the password can contain uppercase letters.

              " } }, "ExcludeLowercase": { "target": "com.amazonaws.secretsmanager#ExcludeLowercaseType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies that the generated password should not include lowercase letters. The default if\n you do not include this switch parameter is that lowercase letters can be included.

              " + "smithy.api#documentation": "

              Specifies whether to exclude lowercase letters from the password. If\n you don't include this switch, the password can contain lowercase letters.

              " } }, "IncludeSpace": { "target": "com.amazonaws.secretsmanager#IncludeSpaceType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies that the generated password can include the space character. The default if you\n do not include this switch parameter is that the space character is not included.

              " + "smithy.api#documentation": "

              Specifies whether to include the space character. If you \n include this switch, the password can contain space characters.

              " } }, "RequireEachIncludedType": { "target": "com.amazonaws.secretsmanager#RequireEachIncludedTypeType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              A boolean value that specifies whether the generated password must include at least one of\n every allowed character type. The default value is True and the operation\n requires at least one of every character type.

              " + "smithy.api#documentation": "

              Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation. \n If you don't include this switch, the password contains at least one of every character type.

              " } } } @@ -766,7 +766,7 @@ "RandomPassword": { "target": "com.amazonaws.secretsmanager#RandomPasswordType", "traits": { - "smithy.api#documentation": "

              A string with the generated password.

              " + "smithy.api#documentation": "

              A string with the password.

              " } } } @@ -794,7 +794,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Retrieves the JSON text of the resource-based policy document attached to the specified\n secret. The JSON request string input and response output displays formatted code\n with white space and line breaks for better readability. Submit your input as a single line \n JSON string.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:GetResourcePolicy

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To attach a resource policy to a secret, use PutResourcePolicy.

                \n
              • \n
              • \n

                To delete the resource-based policy attached to a secret, use DeleteResourcePolicy.

                \n
              • \n
              • \n

                To list all of the currently available secrets, use ListSecrets.

                \n
              • \n
              " + "smithy.api#documentation": "

              Retrieves the JSON text of the resource-based policy document attached to the\n secret. For more information about permissions policies attached to a secret, see \n Permissions \n policies attached to a secret.

              " } }, "com.amazonaws.secretsmanager#GetResourcePolicyRequest": { @@ -803,7 +803,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret that you want to retrieve the attached resource-based policy for. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to retrieve the attached resource-based policy for.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } } @@ -821,13 +821,13 @@ "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret that the resource-based policy was retrieved for.

              " + "smithy.api#documentation": "

              The name of the secret that the resource-based policy was retrieved for.

              " } }, "ResourcePolicy": { "target": "com.amazonaws.secretsmanager#NonEmptyResourcePolicyType", "traits": { - "smithy.api#documentation": "

              A JSON-formatted string that describes the permissions that are associated with the\n attached secret. These permissions are combined with any permissions that are associated with\n the user or role that attempts to access this secret. The combined permissions specify who can\n access the secret and what actions they can perform. For more information, see Authentication and Access Control for\n Amazon Web Services Secrets Manager in the Amazon Web Services Secrets Manager User Guide.

              " + "smithy.api#documentation": "

              A JSON-formatted string that contains the permissions policy \n attached to the secret. For more information about permissions policies, see Authentication and access control for\n Secrets Manager.

              " } } } @@ -858,7 +858,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Retrieves the contents of the encrypted fields SecretString or\n SecretBinary from the specified version of a secret, whichever contains\n content.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:GetSecretValue

                \n
              • \n
              • \n

                kms:Decrypt - required only if you use a customer-managed Amazon Web Services KMS key to encrypt the\n secret. You do not need this permission to use the account's default Amazon Web Services managed CMK for\n Secrets Manager.

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To create a new version of the secret with different encrypted information, use PutSecretValue.

                \n
              • \n
              • \n

                To retrieve the non-encrypted details for the secret, use DescribeSecret.

                \n
              • \n
              " + "smithy.api#documentation": "

              Retrieves the contents of the encrypted fields SecretString or\n SecretBinary from the specified version of a secret, whichever contains\n content.

              \n

              For information about retrieving the secret value in the console, see Retrieve secrets.

              \n

              To run this command, you must have secretsmanager:GetSecretValue permissions. \n If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key \n aws/secretsmanager, then you also need kms:Decrypt permissions for that key.

              " } }, "com.amazonaws.secretsmanager#GetSecretValueRequest": { @@ -867,20 +867,20 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret containing the version that you want to retrieve. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to retrieve.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              Specifies the unique identifier of the version of the secret that you want to retrieve. If\n you specify both this parameter and VersionStage, the two parameters must refer\n to the same secret version. If you don't specify either a VersionStage or\n VersionId then the default is to perform the operation on the version with the\n VersionStage value of AWSCURRENT.

              \n

              This value is typically a UUID-type value with\n 32 hexadecimal digits.

              " + "smithy.api#documentation": "

              The unique identifier of the version of the secret to retrieve. If\n you include both this parameter and VersionStage, the two parameters must refer\n to the same secret version. If you don't specify either a VersionStage or\n VersionId, then Secrets Manager returns the AWSCURRENT version.

              \n

              This value is typically a UUID-type value with\n 32 hexadecimal digits.

              " } }, "VersionStage": { "target": "com.amazonaws.secretsmanager#SecretVersionStageType", "traits": { - "smithy.api#documentation": "

              Specifies the secret version that you want to retrieve by the staging label attached to\n the version.

              \n

              Staging labels are used to keep track of different versions during the rotation process.\n If you specify both this parameter and VersionId, the two parameters must refer\n to the same secret version . If you don't specify either a VersionStage or\n VersionId, then the default is to perform the operation on the version with the\n VersionStage value of AWSCURRENT.

              " + "smithy.api#documentation": "

              The staging label of the version of the secret to retrieve.

              \n

              Secrets Manager uses staging labels to keep track of different versions during the rotation process.\n If you include both this parameter and VersionId, the two parameters must refer\n to the same secret version. If you don't specify either a VersionStage or\n VersionId, Secrets Manager returns the AWSCURRENT version.

              " } } } @@ -909,13 +909,13 @@ "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

              The decrypted part of the protected secret information that was originally provided as\n binary data in the form of a byte array. The response parameter represents the binary data as\n a base64-encoded\n string.

              \n

              This parameter is not used if the secret is created by the Secrets Manager console.

              \n

              If you store custom information in this field of the secret, then you must code your\n Lambda rotation function to parse and interpret whatever you store in the\n SecretString or SecretBinary fields.

              " + "smithy.api#documentation": "

              The decrypted secret value, if the secret value was originally provided as\n binary data in the form of a byte array. The response parameter represents the binary data as\n a base64-encoded\n string.

              \n

              If the secret was created by using the Secrets Manager console, or if the secret value was \n originally provided as a string, then this field is omitted. The secret value appears in \n SecretString instead.

              " } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

              The decrypted part of the protected secret information that was originally provided as a\n string.

              \n

              If you create this secret by using the Secrets Manager console then only the\n SecretString parameter contains data. Secrets Manager stores the information as a\n JSON structure of key/value pairs that the Lambda rotation function knows how to parse.

              \n

              If you store custom information in the secret by using the CreateSecret,\n UpdateSecret, or PutSecretValue API operations instead\n of the Secrets Manager console, or by using the Other secret type in\n the console, then you must code your Lambda rotation function to parse and interpret those\n values.

              " + "smithy.api#documentation": "

              The decrypted secret value, if the secret value was originally provided as a string or \n through the Secrets Manager console.

              \n

              If this secret was created by using the console, then Secrets Manager stores the information as a\n JSON structure of key/value pairs.

              " } }, "VersionStages": { @@ -927,7 +927,7 @@ "CreatedDate": { "target": "com.amazonaws.secretsmanager#CreatedDateType", "traits": { - "smithy.api#documentation": "

              The date and time that this version of the secret was created.

              " + "smithy.api#documentation": "

              The date and time that this version of the secret was created. If you don't specify \n which version in VersionId or VersionStage, then Secrets Manager uses the \n AWSCURRENT version.

              " } } } @@ -955,7 +955,7 @@ } }, "traits": { - "smithy.api#documentation": "

              You provided an invalid NextToken value.

              ", + "smithy.api#documentation": "

              The NextToken value is invalid.

              ", "smithy.api#error": "client" } }, @@ -967,7 +967,7 @@ } }, "traits": { - "smithy.api#documentation": "

              You provided an invalid value for a parameter.

              ", + "smithy.api#documentation": "

              The parameter name is invalid value.

              ", "smithy.api#error": "client" } }, @@ -979,7 +979,7 @@ } }, "traits": { - "smithy.api#documentation": "

              You provided a parameter value that is not valid for the current state of the\n resource.

              \n

              Possible causes:

              \n
                \n
              • \n

                You tried to perform the operation on a secret that's currently marked deleted.

                \n
              • \n
              • \n

                You tried to enable rotation on a secret that doesn't already have a Lambda function\n ARN configured and you didn't include such an ARN as a parameter in this call.

                \n
              • \n
              ", + "smithy.api#documentation": "

              A parameter value is not valid for the current state of the\n resource.

              \n

              Possible causes:

              \n
                \n
              • \n

                The secret is scheduled for deletion.

                \n
              • \n
              • \n

                You tried to enable rotation on a secret that doesn't already have a Lambda function\n ARN configured and you didn't include such an ARN as a parameter in this call.

                \n
              • \n
              ", "smithy.api#error": "client" } }, @@ -1015,7 +1015,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The request failed because it would exceed one of the Secrets Manager internal limits.

              ", + "smithy.api#documentation": "

              The request failed because it would exceed one of the Secrets Manager quotas.

              ", "smithy.api#error": "client" } }, @@ -1042,7 +1042,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists all of the versions attached to the specified secret. The output does not include\n the SecretString or SecretBinary fields. By default, the list\n includes only versions that have at least one staging label in VersionStage\n attached.

              \n \n

              Always check the NextToken response parameter \n when calling any of the List* operations. These operations can occasionally return \n an empty or shorter than expected list of results even when there more results become available. \n When this happens, the NextToken response parameter contains a value to pass to the \n next call to the same API to request the next part of the list.

              \n
              \n

              \n Minimum\n permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:ListSecretVersionIds

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To list the secrets in an account, use ListSecrets.

                \n
              • \n
              ", + "smithy.api#documentation": "

              Lists the versions for a secret.

              \n

              To list the secrets in the account, use ListSecrets.

              \n

              To get the secret value from SecretString or SecretBinary, \n call GetSecretValue.

              \n \n

              \n Minimum\n permissions\n

              \n

              To run this command, you must have secretsmanager:ListSecretVersionIds permissions.

              ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1056,7 +1056,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              The identifier for the secret containing the versions you want to list. You can specify\n either the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret whose versions you want to list.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, @@ -1064,20 +1064,20 @@ "target": "com.amazonaws.secretsmanager#MaxResultsType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              (Optional) Limits the number of results you want to include in \n the response. If you don't include this parameter, it defaults to a value that's \n specific to the operation. If additional items exist beyond the maximum you specify, the \n NextToken response element is present and has a value (isn't null). Include\n that value as the NextToken request parameter in the next call to the operation to \n get the next part of the results. Note that Secrets Manager might return fewer results than the maximum \n even when there are more results available. You should check NextToken after every \n operation to ensure that you receive all of the results.

              " + "smithy.api#documentation": "

              The number of results to include in the response.

              \n

              If there are more results available, in the response, Secrets Manager includes NextToken. \n To get the next results, call ListSecretVersionIds again with the value from NextToken.

              " } }, "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

              (Optional) Use this parameter in a request if you receive a \n NextToken response in a previous request indicating there's more\n output available. In a subsequent call, set it to the value of the previous call \n NextToken response to indicate where the output should continue from.

              " + "smithy.api#documentation": "

              A token that indicates where the output should continue from, if a previous call \n did not show all results. To get the next results, call ListSecretVersionIds again with \n this value.

              " } }, "IncludeDeprecated": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              (Optional) Specifies that you want the results to include versions that do not have any\n staging labels attached to them. Such versions are considered deprecated and are subject to\n deletion by Secrets Manager as needed.

              " + "smithy.api#documentation": "

              Specifies whether to include versions of secrets that don't have any\n staging labels attached to them. Versions without staging labels are considered deprecated and are subject to\n deletion by Secrets Manager.

              " } } } @@ -1088,25 +1088,25 @@ "Versions": { "target": "com.amazonaws.secretsmanager#SecretVersionsListType", "traits": { - "smithy.api#documentation": "

              The list of the currently available versions of the specified secret.

              " + "smithy.api#documentation": "

              A list of the versions of the secret.

              " } }, "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

              If present in the response, this value indicates that \n there's more output available than included in the current response. This can \n occur even when the response includes no values at all, such as when you ask for a filtered view \n of a very long list. Use this value in the NextToken request parameter in a \n subsequent call to the operation to continue processing and get the next part of the output. You \n should repeat this until the NextToken response element comes back empty (as \n null).

              " + "smithy.api#documentation": "

              Secrets Manager includes this value if there's more output available than what is included \n in the current response. This can occur even when the response includes no values at all, \n such as when you ask for a filtered view of a long list. To get the next results, \n call ListSecretVersionIds again with this value.

              " } }, "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the secret.

              \n \n

              Secrets Manager automatically adds several random characters to the name at the end of the ARN when\n you initially create a secret. This affects only the ARN and not the actual friendly name. \n This ensures that if you create a new secret with the same name as an old secret that you \n previously deleted, then users with access to the old secret don't \n automatically get access to the new secret because the ARNs are different.

              \n
              " + "smithy.api#documentation": "

              The ARN of the secret.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } } } @@ -1131,7 +1131,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Lists all of the secrets that are stored by Secrets Manager in the Amazon Web Services account. To list the\n versions currently stored for a specific secret, use ListSecretVersionIds.\n The encrypted fields SecretString and SecretBinary are not included\n in the output. To get that information, call the GetSecretValue\n operation.

              \n \n

              Always check the NextToken response parameter \n when calling any of the List* operations. These operations can occasionally return \n an empty or shorter than expected list of results even when there more results become available. \n When this happens, the NextToken response parameter contains a value to pass to the \n next call to the same API to request the next part of the list.

              \n
              \n

              \n Minimum\n permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:ListSecrets

                \n
              • \n
              \n

              \n Related operations\n

              \n ", + "smithy.api#documentation": "

              Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account.

              \n

              To list the versions of a secret, use ListSecretVersionIds.

              \n

              To get the secret value from SecretString or SecretBinary, \n call GetSecretValue.

              \n

              For information about finding secrets in the console, see Enhanced search capabilities \n for secrets in Secrets Manager.

              \n

              \n Minimum\n permissions\n

              \n

              To run this command, you must have secretsmanager:ListSecrets permissions.

              ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", @@ -1146,19 +1146,19 @@ "target": "com.amazonaws.secretsmanager#MaxResultsType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              (Optional) Limits the number of results you want to include in \n the response. If you don't include this parameter, it defaults to a value that's \n specific to the operation. If additional items exist beyond the maximum you specify, the \n NextToken response element is present and has a value (isn't null). Include\n that value as the NextToken request parameter in the next call to the operation to \n get the next part of the results. Note that Secrets Manager might return fewer results than the maximum \n even when there are more results available. You should check NextToken after every \n operation to ensure that you receive all of the results.

              " + "smithy.api#documentation": "

              The number of results to include in the response.

              \n

              If there are more results available, in the response, Secrets Manager includes NextToken. \n To get the next results, call ListSecrets again with the value from \n NextToken.

              " } }, "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

              (Optional) Use this parameter in a request if you receive a \n NextToken response in a previous request indicating there's more\n output available. In a subsequent call, set it to the value of the previous call \n NextToken response to indicate where the output should continue from.

              " + "smithy.api#documentation": "

              A token that indicates where the output should continue from, if a \n previous call did not show all results. To get the next results, call ListSecrets again \n with this value.

              " } }, "Filters": { "target": "com.amazonaws.secretsmanager#FiltersListType", "traits": { - "smithy.api#documentation": "

              Lists the secret request filters.

              " + "smithy.api#documentation": "

              The filters to apply to the list of secrets.

              " } }, "SortOrder": { @@ -1181,7 +1181,7 @@ "NextToken": { "target": "com.amazonaws.secretsmanager#NextTokenType", "traits": { - "smithy.api#documentation": "

              If present in the response, this value indicates that \n there's more output available than included in the current response. This can \n occur even when the response includes no values at all, such as when you ask for a filtered view \n of a very long list. Use this value in the NextToken request parameter in a \n subsequent call to the operation to continue processing and get the next part of the output. You \n should repeat this until the NextToken response element comes back empty (as \n null).

              " + "smithy.api#documentation": "

              Secrets Manager includes this value if \n there's more output available than what is included in the current response. This can \n occur even when the response includes no values at all, such as when you ask for a filtered view \n of a long list. To get the next results, call ListSecrets again \n with this value.

              " } } } @@ -1194,7 +1194,7 @@ } }, "traits": { - "smithy.api#documentation": "

              You provided a resource-based policy with syntax errors.

              ", + "smithy.api#documentation": "

              The resource policy has syntax errors.

              ", "smithy.api#error": "client" } }, @@ -1272,7 +1272,7 @@ } }, "traits": { - "smithy.api#documentation": "

              The BlockPublicPolicy parameter is set to true and the resource policy did not prevent broad access to the secret.

              ", + "smithy.api#documentation": "

              The BlockPublicPolicy parameter is set to true, and the resource policy did not prevent broad access to the secret.

              ", "smithy.api#error": "client" } }, @@ -1305,7 +1305,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Attaches the contents of the specified resource-based permission policy to a secret. A\n resource-based policy is optional. Alternatively, you can use IAM identity-based policies\n that specify the secret's Amazon Resource Name (ARN) in the policy statement's\n Resources element. You can also use a combination of both identity-based and\n resource-based policies. The affected users and roles receive the permissions that are\n permitted by all of the relevant policies. For more information, see Using Resource-Based\n Policies for Amazon Web Services Secrets Manager. For the complete description of the Amazon Web Services policy syntax and\n grammar, see IAM JSON\n Policy Reference in the IAM User Guide.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:PutResourcePolicy

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To retrieve the resource policy attached to a secret, use GetResourcePolicy.

                \n
              • \n
              • \n

                To delete the resource-based policy attached to a secret, use DeleteResourcePolicy.

                \n
              • \n
              • \n

                To list all of the currently available secrets, use ListSecrets.

                \n
              • \n
              " + "smithy.api#documentation": "

              Attaches a resource-based permission policy to a secret. A resource-based policy is \n optional. For more information, see Authentication and access control for Secrets Manager\n

              \n

              For information about attaching a policy in the console, see Attach a \n permissions policy to a secret.

              " } }, "com.amazonaws.secretsmanager#PutResourcePolicyRequest": { @@ -1314,14 +1314,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret that you want to attach the resource-based policy. You can specify\n either the ARN or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to attach the resource-based policy.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, "ResourcePolicy": { "target": "com.amazonaws.secretsmanager#NonEmptyResourcePolicyType", "traits": { - "smithy.api#documentation": "

              A JSON-formatted string constructed according to the grammar and syntax for an Amazon Web Services\n resource-based policy. The policy in the string identifies who can access or manage this\n secret and its versions. For information on how to format a JSON parameter for the various\n command line tool environments, see Using\n JSON for Parameters in the CLI User Guide.

              ", + "smithy.api#documentation": "

              A JSON-formatted string for an Amazon Web Services\n resource-based policy. For example policies, see Permissions \n policy examples.

              ", "smithy.api#required": {} } }, @@ -1329,7 +1329,7 @@ "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              (Optional) If you set the parameter, BlockPublicPolicy to true, then you\n block resource-based policies that allow broad access to the secret.

              " + "smithy.api#documentation": "

              Specifies whether to block resource-based policies that allow broad access to the secret. By default, Secrets Manager blocks policies that allow broad access, for example those that use a wildcard for the principal.

              " } } } @@ -1340,13 +1340,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The ARN of the secret retrieved by the resource-based policy.

              " + "smithy.api#documentation": "

              The ARN of the secret.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#NameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret retrieved by the resource-based policy.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } } } @@ -1383,7 +1383,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Stores a new encrypted secret value in the specified secret. To do this, the operation\n creates a new version and attaches it to the secret. The version can contain a new\n SecretString value or a new SecretBinary value. You can also\n specify the staging labels that are initially attached to the new version.

              \n

              We recommend you avoid calling PutSecretValue at a sustained rate of more than \n once every 10 minutes. When you update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you call PutSecretValue more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

              \n
                \n
              • \n

                If this operation creates the first version for the secret then Secrets Manager\n automatically attaches the staging label AWSCURRENT to the new version.

                \n
              • \n
              • \n

                If you do not specify a value for VersionStages then Secrets Manager automatically\n moves the staging label AWSCURRENT to this new version.

                \n
              • \n
              • \n

                If this operation moves the staging label AWSCURRENT from another version to this\n version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to\n the version that AWSCURRENT was removed from.

                \n
              • \n
              • \n

                This operation is idempotent. If a version with a VersionId with the same\n value as the ClientRequestToken parameter already exists and you specify the\n same secret data, the operation succeeds but does nothing. However, if the secret data is\n different, then the operation fails because you cannot modify an existing version; you can\n only create new ones.

                \n
              • \n
              \n \n
                \n
              • \n

                If you call an operation to encrypt or decrypt the SecretString \n or SecretBinary for a secret in the same account as the calling user and that \n secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default \n Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key \n doesn't already exist in your account then Secrets Manager creates it for you automatically. All\n users and roles in the same Amazon Web Services account automatically have access to use the default CMK. \n Note that if an Secrets Manager API call results in Amazon Web Services creating the account's \n Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the \n result.

                \n
              • \n
              • \n

                If the secret resides in a different Amazon Web Services account from the credentials calling an API that \n requires encryption or decryption of the secret value then you must create and use a custom \n Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials \n from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the \n secret or when you update it by including it in the KMSKeyId. If you call an \n API that must encrypt or decrypt SecretString or SecretBinary \n using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account\n access to that other account's user or role for both the kms:GenerateDataKey and \n kms:Decrypt operations.

                \n
              • \n
              \n
              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:PutSecretValue

                \n
              • \n
              • \n

                kms:GenerateDataKey - needed only if you use a customer-managed Amazon Web Services KMS key to encrypt\n the secret. You do not need this permission to use the account's default Amazon Web Services managed CMK\n for Secrets Manager.

                \n
              • \n
              \n

              \n Related operations\n

              \n " + "smithy.api#documentation": "

              Creates a new version with a new encrypted secret value and attaches it to the secret. The \n version can contain a new SecretString value or a new SecretBinary value.

              \n

              We recommend you avoid calling PutSecretValue at a sustained rate of more than \n once every 10 minutes. When you update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you call PutSecretValue more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

              \n

              You can specify the staging labels to attach to the new version in VersionStages. \n If you don't include VersionStages, then Secrets Manager automatically\n moves the staging label AWSCURRENT to this version. If this operation creates \n the first version for the secret, then Secrets Manager\n automatically attaches the staging label AWSCURRENT to it .

              \n

              If this operation moves the staging label AWSCURRENT from another version to this\n version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to\n the version that AWSCURRENT was removed from.

              \n

              This operation is idempotent. If a version with a VersionId with the same\n value as the ClientRequestToken parameter already exists, and you specify the\n same secret data, the operation succeeds but does nothing. However, if the secret data is\n different, then the operation fails because you can't modify an existing version; you can\n only create new ones.

              " } }, "com.amazonaws.secretsmanager#PutSecretValueRequest": { @@ -1392,33 +1392,33 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret to which you want to add a new version. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already\n exist.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to add a new version to.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              \n

              If the secret doesn't already exist, use CreateSecret instead.

              ", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies a unique identifier for the new version of the secret.

              \n \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request. If you don't use the SDK and instead generate a raw HTTP request to the\n Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself\n for new versions and include that value in the request.

              \n
              \n

              This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during the Lambda rotation\n function's processing. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

              \n
                \n
              • \n

                If the ClientRequestToken value isn't already associated with a version\n of the secret then a new version of the secret is created.

                \n
              • \n
              • \n

                If a version with this value already exists and that version's\n SecretString or SecretBinary values are the same as those in\n the request then the request is ignored (the operation is idempotent).

                \n
              • \n
              • \n

                If a version with this value already exists and the version of the\n SecretString and SecretBinary values are different from those\n in the request then the request fails because you cannot modify an existing secret\n version. You can only create new versions to store new secret values.

                \n
              • \n
              \n

              This value becomes the VersionId of the new version.

              ", + "smithy.api#documentation": "

              A unique identifier for the new version of the secret.

              \n \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can\n leave this parameter empty because they generate a random UUID for you. If you don't \n use the SDK and instead generate a raw HTTP request to the\n Secrets Manager service endpoint, then you must generate a ClientRequestToken yourself\n for new versions and include that value in the request.

              \n
              \n

              This value helps ensure idempotency. Secrets Manager uses this value to prevent the accidental\n creation of duplicate versions if there are failures and retries during the Lambda rotation\n function processing. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

              \n
                \n
              • \n

                If the ClientRequestToken value isn't already associated with a version\n of the secret then a new version of the secret is created.

                \n
              • \n
              • \n

                If a version with this value already exists and that version's\n SecretString or SecretBinary values are the same as those in\n the request then the request is ignored. The operation is idempotent.

                \n
              • \n
              • \n

                If a version with this value already exists and the version of the\n SecretString and SecretBinary values are different from those\n in the request, then the request fails because you can't modify a secret \n version. You can only create new versions to store new secret values.

                \n
              • \n
              \n

              This value becomes the VersionId of the new version.

              ", "smithy.api#idempotencyToken": {} } }, "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies binary data that you want to encrypt and store in the new version of\n the secret. To use this parameter in the command-line tools, we recommend that you store your\n binary data in a file and then use the appropriate technique for your tool to pass the\n contents of the file as a parameter. Either SecretBinary or\n SecretString must have a value, but not both. They cannot both be empty.

              \n \n

              This parameter is not accessible if the secret using the Secrets Manager console.

              \n

              " + "smithy.api#documentation": "

              The binary data to encrypt and store in the new version of\n the secret. To use this parameter in the command-line tools, we recommend that you store your\n binary data in a file and then pass the\n contents of the file as a parameter.

              \n

              You must include SecretBinary or SecretString, but not both.

              \n

              You can't access this value from the Secrets Manager console.

              " } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies text data that you want to encrypt and store in this new version of\n the secret. Either SecretString or SecretBinary must have a value,\n but not both. They cannot both be empty.

              \n \n

              If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

              \n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              " + "smithy.api#documentation": "

              The text to encrypt and store in the new version of the secret.

              \n

              You must include SecretBinary or SecretString, but not both.

              \n

              We recommend you create the secret string as JSON key/value pairs, as shown in the example.

              " } }, "VersionStages": { "target": "com.amazonaws.secretsmanager#SecretVersionStagesType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies a list of staging labels that are attached to this version of the\n secret. These staging labels are used to track the versions through the rotation process by\n the Lambda rotation function.

              \n

              A staging label must be unique to a single version of the secret. If you specify a staging\n label that's already associated with a different version of the same secret then that staging\n label is automatically removed from the other version and attached to this version.

              \n

              If you do not specify a value for VersionStages then Secrets Manager automatically\n moves the staging label AWSCURRENT to this new version.

              " + "smithy.api#documentation": "

              A list of staging labels to attach to this version of the\n secret. Secrets Manager uses staging labels to track versions of a secret through the rotation process.

              \n

              If you specify a staging\n label that's already associated with a different version of the same secret, then Secrets Manager \n removes the label from the other version and attaches it to this version. \n If you specify \n AWSCURRENT, and it is already attached to another version, then Secrets Manager also \n moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

              \n

              If you don't include VersionStages, then Secrets Manager automatically\n moves the staging label AWSCURRENT to this version.

              " } } } @@ -1429,25 +1429,25 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) for the secret for which you just created a version.

              " + "smithy.api#documentation": "

              The ARN of the secret.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret for which you just created or updated a version.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              The unique identifier of the version of the secret you just created or updated.

              " + "smithy.api#documentation": "

              The unique identifier of the version of the secret.

              " } }, "VersionStages": { "target": "com.amazonaws.secretsmanager#SecretVersionStagesType", "traits": { - "smithy.api#documentation": "

              The list of staging labels that are currently attached to this version of the secret.\n Staging labels are used to track a version as it progresses through the secret rotation\n process.

              " + "smithy.api#documentation": "

              The list of staging labels that are currently attached to this version of the secret.\n Secrets Manager uses staging labels to track a version as it progresses through the secret rotation\n process.

              " } } } @@ -1498,7 +1498,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Remove regions from replication.

              " + "smithy.api#documentation": "

              For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

              " } }, "com.amazonaws.secretsmanager#RemoveRegionsFromReplicationRequest": { @@ -1507,14 +1507,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Remove a secret by SecretId from replica Regions.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret.

              ", "smithy.api#required": {} } }, "RemoveReplicaRegions": { "target": "com.amazonaws.secretsmanager#RemoveReplicaRegionListType", "traits": { - "smithy.api#documentation": "

              Remove replication from specific Regions.

              ", + "smithy.api#documentation": "

              The Regions of the replicas to remove.

              ", "smithy.api#required": {} } } @@ -1526,13 +1526,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The secret ARN removed from replication regions.

              " + "smithy.api#documentation": "

              The ARN of the primary secret.

              " } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

              Describes the remaining replication status after you remove regions from the replication list.

              " + "smithy.api#documentation": "

              The status of replicas for this secret after you remove Regions.

              " } } } @@ -1554,18 +1554,18 @@ "Region": { "target": "com.amazonaws.secretsmanager#RegionType", "traits": { - "smithy.api#documentation": "

              Describes a single instance of Region objects.

              " + "smithy.api#documentation": "

              A Region code. For a list of Region codes, see Name and code of Regions.

              " } }, "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

              Can be an ARN, Key ID, or Alias.

              " + "smithy.api#documentation": "

              The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses aws/secretsmanager.

              " } } }, "traits": { - "smithy.api#documentation": "

              (Optional) Custom type consisting of a Region (required) and the KmsKeyId which can be an ARN, Key ID, or Alias.

              " + "smithy.api#documentation": "

              A custom type that specifies a Region and the KmsKeyId for a replica secret.

              " } }, "com.amazonaws.secretsmanager#ReplicateSecretToRegions": { @@ -1591,7 +1591,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Converts an existing secret to a multi-Region secret and begins replication the secret to a\n list of new regions.

              " + "smithy.api#documentation": "

              Replicates the secret to a new Regions. See Multi-Region secrets.

              " } }, "com.amazonaws.secretsmanager#ReplicateSecretToRegionsRequest": { @@ -1600,21 +1600,21 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Use the Secret Id to replicate a secret to regions.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to replicate.

              ", "smithy.api#required": {} } }, "AddReplicaRegions": { "target": "com.amazonaws.secretsmanager#AddReplicaRegionListType", "traits": { - "smithy.api#documentation": "

              Add Regions to replicate the secret.

              ", + "smithy.api#documentation": "

              A list of Regions in which to replicate the secret.

              ", "smithy.api#required": {} } }, "ForceOverwriteReplicaSecret": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { - "smithy.api#documentation": "

              (Optional) If set, Secrets Manager replication overwrites a secret with the same name in the\n destination region.

              " + "smithy.api#documentation": "

              Specifies whether to overwrite a secret with the same name in the destination Region.

              " } } } @@ -1625,13 +1625,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              Replicate a secret based on the ReplicaRegionType> consisting of a\n Region(required) and a KMSKeyId (optional) which can be the ARN, KeyID, or Alias.

              " + "smithy.api#documentation": "

              The ARN of the primary secret.

              " } }, "ReplicationStatus": { "target": "com.amazonaws.secretsmanager#ReplicationStatusListType", "traits": { - "smithy.api#documentation": "

              Describes the secret replication status as PENDING, SUCCESS or FAIL.

              " + "smithy.api#documentation": "

              The status of replication.

              " } } } @@ -1666,7 +1666,7 @@ "StatusMessage": { "target": "com.amazonaws.secretsmanager#StatusMessageType", "traits": { - "smithy.api#documentation": "

              Status message such as \"Secret with this name already exists in this\n region\".

              " + "smithy.api#documentation": "

              Status message such as \"Secret with this name already exists in this\n region\".

              " } }, "LastAccessedDate": { @@ -1703,7 +1703,7 @@ } }, "traits": { - "smithy.api#documentation": "

              We can't find the resource that you asked for.

              ", + "smithy.api#documentation": "

              Secrets Manager can't find the resource that you asked for.

              ", "smithy.api#error": "client" } }, @@ -1730,7 +1730,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Cancels the scheduled deletion of a secret by removing the DeletedDate time\n stamp. This makes the secret accessible to query once again.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:RestoreSecret

                \n
              • \n
              \n

              \n Related operations\n

              \n " + "smithy.api#documentation": "

              Cancels the scheduled deletion of a secret by removing the DeletedDate time\n stamp. You can access a secret again after it has been restored.

              " } }, "com.amazonaws.secretsmanager#RestoreSecretRequest": { @@ -1739,7 +1739,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret that you want to restore from a previously scheduled deletion. You\n can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to restore.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } } @@ -1757,7 +1757,7 @@ "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret that was restored.

              " + "smithy.api#documentation": "

              The name of the secret that was restored.

              " } } } @@ -1785,7 +1785,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Configures and starts the asynchronous process of rotating this secret. If you include the\n configuration parameters, the operation sets those values for the secret and then immediately\n starts a rotation. If you do not include the configuration parameters, the operation starts a\n rotation with the values already stored in the secret. After the rotation completes, the\n protected service and its clients all use the new version of the secret.

              \n

              This required configuration information includes the ARN of an Amazon Web Services Lambda function and\n optionally, the time between scheduled rotations. The Lambda rotation function creates a new\n version of the secret and creates or updates the credentials on the protected service to\n match. After testing the new credentials, the function marks the new secret with the staging\n label AWSCURRENT so that your clients all immediately begin to use the new version. For more\n information about rotating secrets and how to configure a Lambda function to rotate the\n secrets for your protected service, see Rotating Secrets in Amazon Web Services Secrets Manager in the\n Amazon Web Services Secrets Manager User Guide.

              \n

              Secrets Manager schedules the next rotation when the previous \n one completes. Secrets Manager schedules the date by adding the rotation interval (number of days) to the \n actual date of the last rotation. The service chooses the hour within that 24-hour date window \n randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour \n and influenced by a variety of factors that help distribute load.

              \n

              The\n rotation function must end with the versions of the secret in one of two states:

              \n
                \n
              • \n

                The AWSPENDING and AWSCURRENT staging labels are attached to the same version of\n the secret, or

                \n
              • \n
              • \n

                The AWSPENDING staging label is not attached to any version of the secret.

                \n
              • \n
              \n

              If the AWSPENDING staging label is present but not attached to the same version as\n AWSCURRENT then any later invocation of RotateSecret assumes that a previous\n rotation request is still in progress and returns an error.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:RotateSecret

                \n
              • \n
              • \n

                lambda:InvokeFunction (on the function specified in the secret's metadata)

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To list the secrets in your account, use ListSecrets.

                \n
              • \n
              • \n

                To get the details for a version of a secret, use DescribeSecret.

                \n
              • \n
              • \n

                To create a new version of a secret, use CreateSecret.

                \n
              • \n
              • \n

                To attach staging labels to or remove staging labels from a version of a secret, use\n UpdateSecretVersionStage.

                \n
              • \n
              " + "smithy.api#documentation": "

              Configures and starts the asynchronous process of rotating the secret.

              \n

              If you include the\n configuration parameters, the operation sets the values for the secret and then immediately\n starts a rotation. If you don't include the configuration parameters, the operation starts a\n rotation with the values already stored in the secret. For more information about rotation, \n see Rotate secrets.

              \n

              To configure rotation, you include the ARN of an Amazon Web Services Lambda function and the schedule \n for the rotation. The Lambda rotation function creates a new\n version of the secret and creates or updates the credentials on the database or service to\n match. After testing the new credentials, the function marks the new secret version with the staging\n label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more\n information, see How rotation works.

              \n

              When rotation is successful, the AWSPENDING staging label might be attached to the same \n version as the AWSCURRENT version, or it might not be attached to any version.

              \n

              If the AWSPENDING staging label is present but not attached to the same version as\n AWSCURRENT, then any later invocation of RotateSecret assumes that a previous\n rotation request is still in progress and returns an error.

              \n

              To run this command, you must have secretsmanager:RotateSecret permissions and \n lambda:InvokeFunction permissions on the function specified in the secret's metadata.

              " } }, "com.amazonaws.secretsmanager#RotateSecretRequest": { @@ -1794,21 +1794,21 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret that you want to rotate. You can specify either the Amazon Resource\n Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret to rotate.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies a unique identifier for the new version of the secret that helps\n ensure idempotency.

              \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP\n request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for new versions and include that value in the\n request.

              \n

              You only need to specify your own value if you implement your own retry logic and want to\n ensure that a given secret is not created twice. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

              \n

              Secrets Manager uses this value to prevent the accidental creation of duplicate versions if\n there are failures and retries during the function's processing. This value becomes the\n VersionId of the new version.

              ", + "smithy.api#documentation": "

              A unique identifier for the new version of the secret that helps\n ensure idempotency. Secrets Manager uses this value to prevent the accidental creation of duplicate versions if\n there are failures and retries during rotation. This value becomes the\n VersionId of the new version.

              \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request for this parameter. If you don't use the SDK and instead generate a raw HTTP\n request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for new versions and include that value in the\n request.

              \n

              You only need to specify this value if you implement your own retry logic and you want to\n ensure that Secrets Manager doesn't attempt to create a secret version twice. We recommend that you generate a UUID-type value to\n ensure uniqueness within the specified secret.

              ", "smithy.api#idempotencyToken": {} } }, "RotationLambdaARN": { "target": "com.amazonaws.secretsmanager#RotationLambdaARNType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies the ARN of the Lambda function that can rotate the secret.

              " + "smithy.api#documentation": "

              The ARN of the Lambda rotation function that can rotate the secret.

              " } }, "RotationRules": { @@ -1831,13 +1831,13 @@ "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret.

              " + "smithy.api#documentation": "

              The name of the secret.

              " } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              The ID of the new version of the secret created by the rotation started by this\n request.

              " + "smithy.api#documentation": "

              The ID of the new version of the secret.

              " } } } @@ -1861,7 +1861,7 @@ "target": "com.amazonaws.secretsmanager#AutomaticallyRotateAfterDaysType", "traits": { "smithy.api#box": {}, - "smithy.api#documentation": "

              Specifies the number of days between automatic scheduled rotations of the secret.

              \n

              Secrets Manager schedules the next rotation when the previous \n one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the \n actual date of the last rotation. The service chooses the hour within that 24-hour date window \n randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour \n and influenced by a variety of factors that help distribute load.

              " + "smithy.api#documentation": "

              Specifies the number of days between automatic scheduled rotations of the secret.

              \n

              Secrets Manager schedules the next rotation when the previous \n one is complete. Secrets Manager schedules the date by adding the rotation interval (number of days) to the \n actual date of the last rotation. The service chooses the hour within that 24-hour date window \n randomly. The minute is also chosen somewhat randomly, but weighted towards the top of the hour \n and influenced by a variety of factors that help distribute load.

              " } } }, @@ -1903,13 +1903,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the secret.

              \n

              For more information about ARNs in Secrets Manager, see Policy Resources in the\n Amazon Web Services Secrets Manager User Guide.

              " + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the secret.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret. You can use forward slashes in the name to represent a\n path hierarchy. For example, /prod/databases/dbserver1 could represent the secret\n for a server named dbserver1 in the folder databases in the folder\n prod.

              " + "smithy.api#documentation": "

              The friendly name of the secret. You can use forward slashes in the name to represent a\n path hierarchy. For example, /prod/databases/dbserver1 could represent the secret\n for a server named dbserver1 in the folder databases in the folder\n prod.

              " } }, "Description": { @@ -1921,7 +1921,7 @@ "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

              The ARN or alias of the Amazon Web Services KMS customer master key (CMK) used to encrypt the\n SecretString and SecretBinary fields in each version of the\n secret. If you don't provide a key, then Secrets Manager defaults to encrypting the secret fields with\n the default KMS CMK, the key named awssecretsmanager, for this account.

              " + "smithy.api#documentation": "

              The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with \n the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

              " } }, "RotationEnabled": { @@ -2176,7 +2176,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Removes the secret from replication and promotes the secret to a regional secret in the replica Region.

              " + "smithy.api#documentation": "

              Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

              \n

              You must call this operation from the Region in which you want to promote the replica to a primary secret.

              " } }, "com.amazonaws.secretsmanager#StopReplicationToReplicaRequest": { @@ -2185,7 +2185,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Response to StopReplicationToReplica of a secret, based on the SecretId.

              ", + "smithy.api#documentation": "

              The ARN of the primary secret.

              ", "smithy.api#required": {} } } @@ -2197,7 +2197,7 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              Response StopReplicationToReplica of a secret, based on the ARN,.

              " + "smithy.api#documentation": "

              The ARN of the promoted secret. The ARN is the same as the original primary secret except the Region is changed.

              " } } } @@ -2263,7 +2263,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Attaches one or more tags, each consisting of a key name and a value, to the specified\n secret. Tags are part of the secret's overall metadata, and are not associated with any\n specific version of the secret. This operation only appends tags to the existing list of tags.\n To remove tags, you must use UntagResource.

              \n

              The following basic restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per secret—50

                \n
              • \n
              • \n

                Maximum key length—127 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Maximum value length—255 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it\n for Amazon Web Services use. You can't edit or delete tag names or values with this \n prefix. Tags with this prefix do not count against your tags per secret limit.

                \n
              • \n
              • \n

                If you use your tagging schema across multiple services and resources,\n remember other services might have restrictions on allowed characters. Generally\n allowed characters: letters, spaces, and numbers representable in UTF-8, plus the\n following special characters: + - = . _ : / @.

                \n
              • \n
              \n \n

              If you use tags as part of your security strategy, then adding or removing a tag can\n change permissions. If successfully completing this operation would result in you losing\n your permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

              \n
              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:TagResource

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To remove one or more tags from the collection attached to a secret, use UntagResource.

                \n
              • \n
              • \n

                To view the list of tags attached to a secret, use DescribeSecret.

                \n
              • \n
              " + "smithy.api#documentation": "

              Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the \n secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

              \n

              The following restrictions apply to tags:

              \n
                \n
              • \n

                Maximum number of tags per secret: 50

                \n
              • \n
              • \n

                Maximum key length: 127 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Maximum value length: 255 Unicode characters in UTF-8

                \n
              • \n
              • \n

                Tag keys and values are case sensitive.

                \n
              • \n
              • \n

                Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it\n for Amazon Web Services use. You can't edit or delete tag names or values with this \n prefix. Tags with this prefix do not count against your tags per secret limit.

                \n
              • \n
              • \n

                If you use your tagging schema across multiple services and resources,\n other services might have restrictions on allowed characters. Generally\n allowed characters: letters, spaces, and numbers representable in UTF-8, plus the\n following special characters: + - = . _ : / @.

                \n
              • \n
              \n \n \n

              If you use tags as part of your security strategy, then adding or removing a tag can\n change permissions. If successfully completing this operation would result in you losing\n your permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

              \n
              " } }, "com.amazonaws.secretsmanager#TagResourceRequest": { @@ -2272,14 +2272,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              The identifier for the secret that you want to attach tags to. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The identifier for the secret to attach tags to. You can specify either the\n Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, "Tags": { "target": "com.amazonaws.secretsmanager#TagListType", "traits": { - "smithy.api#documentation": "

              The tags to attach to the secret. Each element in the list consists of a Key\n and a Value.

              \n

              This parameter to the API requires a JSON text string argument.

              \n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              ", + "smithy.api#documentation": "

              The tags to attach to the secret as a JSON text string argument. Each element in the list consists of a Key\n and a Value.

              \n\n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              ", "smithy.api#required": {} } } @@ -2317,7 +2317,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Removes one or more tags from the specified secret.

              \n

              This operation is idempotent. If a requested tag is not attached to the secret, no error\n is returned and the secret metadata is unchanged.

              \n \n

              If you use tags as part of your security strategy, then removing a tag can change\n permissions. If successfully completing this operation would result in you losing your\n permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

              \n
              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:UntagResource

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To add one or more tags to the collection attached to a secret, use TagResource.

                \n
              • \n
              • \n

                To view the list of tags attached to a secret, use DescribeSecret.

                \n
              • \n
              " + "smithy.api#documentation": "

              Removes specific tags from a secret.

              \n

              This operation is idempotent. If a requested tag is not attached to the secret, no error\n is returned and the secret metadata is unchanged.

              \n \n

              If you use tags as part of your security strategy, then removing a tag can change\n permissions. If successfully completing this operation would result in you losing your\n permissions for this secret, then the operation is blocked and returns an Access Denied\n error.

              \n
              " } }, "com.amazonaws.secretsmanager#UntagResourceRequest": { @@ -2326,14 +2326,14 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              The identifier for the secret that you want to remove tags from. You can specify either\n the Amazon Resource Name (ARN) or the friendly name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, "TagKeys": { "target": "com.amazonaws.secretsmanager#TagKeyListType", "traits": { - "smithy.api#documentation": "

              A list of tag key names to remove from the secret. You don't specify the value. Both the\n key and its associated value are removed.

              \n

              This parameter to the API requires a JSON text string argument.

              \n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              ", + "smithy.api#documentation": "

              A list of tag key names to remove from the secret. You don't specify the value. Both the\n key and its associated value are removed.

              \n

              This parameter requires a JSON text string argument.

              \n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              ", "smithy.api#required": {} } } @@ -2377,7 +2377,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Modifies many of the details of the specified secret.

              \n

              To change the secret value, you can also use PutSecretValue.

              \n

              To change the rotation configuration of a secret, use RotateSecret\n instead.

              \n \n

              We recommend you avoid calling UpdateSecret at a sustained rate of more than \n once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you update the secret value more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

              \n \n

              The Secrets Manager console uses only the SecretString parameter and therefore limits\n you to encrypting and storing only a text string. To encrypt and store binary data as part\n of the version of a secret, you must use either the Amazon Web Services CLI or one of the Amazon Web Services\n SDKs.

              \n
              \n
                \n
              • \n

                If a version with a VersionId with the same value as the\n ClientRequestToken parameter already exists, the operation results in an\n error. You cannot modify an existing version, you can only create a new version.

                \n
              • \n
              • \n

                If you include SecretString or SecretBinary to create a new\n secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new\n version.

                \n
              • \n
              \n \n
                \n
              • \n

                If you call an operation to encrypt or decrypt the SecretString \n or SecretBinary for a secret in the same account as the calling user and that \n secret doesn't specify a Amazon Web Services KMS encryption key, Secrets Manager uses the account's default \n Amazon Web Services managed customer master key (CMK) with the alias aws/secretsmanager. If this key \n doesn't already exist in your account then Secrets Manager creates it for you automatically. All\n users and roles in the same Amazon Web Services account automatically have access to use the default CMK. \n Note that if an Secrets Manager API call results in Amazon Web Services creating the account's \n Amazon Web Services-managed CMK, it can result in a one-time significant delay in returning the \n result.

                \n
              • \n
              • \n

                If the secret resides in a different Amazon Web Services account from the credentials calling an API that \n requires encryption or decryption of the secret value then you must create and use a custom \n Amazon Web Services KMS CMK because you can't access the default CMK for the account using credentials \n from a different Amazon Web Services account. Store the ARN of the CMK in the secret when you create the \n secret or when you update it by including it in the KMSKeyId. If you call an \n API that must encrypt or decrypt SecretString or SecretBinary \n using credentials from a different account then the Amazon Web Services KMS key policy must grant cross-account\n access to that other account's user or role for both the kms:GenerateDataKey and \n kms:Decrypt operations.

                \n
              • \n
              \n
              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:UpdateSecret

                \n
              • \n
              • \n

                kms:GenerateDataKey - needed only if you use a custom Amazon Web Services KMS key to encrypt the secret.\n You do not need this permission to use the account's Amazon Web Services managed CMK for\n Secrets Manager.

                \n
              • \n
              • \n

                kms:Decrypt - needed only if you use a custom Amazon Web Services KMS key to encrypt the secret. You do\n not need this permission to use the account's Amazon Web Services managed CMK for Secrets Manager.

                \n
              • \n
              \n

              \n Related operations\n

              \n " + "smithy.api#documentation": "

              Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use PutSecretValue.

              \n

              To change the rotation configuration of a secret, use RotateSecret instead.

              \n \n

              We recommend you avoid calling UpdateSecret at a sustained rate of more than \n once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version \n of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not \n remove versions created less than 24 hours ago. If you update the secret value more \n than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach \n the quota for secret versions.

              \n

              If you include SecretString or SecretBinary to create a new\n secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new\n version.

              \n

              If you call this operation with a VersionId that matches an existing version's \n ClientRequestToken, the operation results in an error. You can't modify an existing \n version, you can only create a new version. To remove a version, remove all staging labels from it. See \n UpdateSecretVersionStage.

              \n

              If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key \n aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager \n creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access \n to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time \n significant delay in returning the result.

              \n

              If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't \n use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed key.

              \n \n

              To run this command, you must have secretsmanager:UpdateSecret permissions. If you use a \n customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions .

              " } }, "com.amazonaws.secretsmanager#UpdateSecretRequest": { @@ -2386,39 +2386,39 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret that you want to modify or to which you want to add a new version.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or name of the secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, "ClientRequestToken": { "target": "com.amazonaws.secretsmanager#ClientRequestTokenType", "traits": { - "smithy.api#documentation": "

              (Optional) If you want to add a new version to the secret, this parameter specifies a\n unique identifier for the new version that helps ensure idempotency.

              \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes that\n in the request. If you don't use the SDK and instead generate a raw HTTP request to the Secrets Manager\n service endpoint, then you must generate a ClientRequestToken yourself for new\n versions and include that value in the request.

              \n

              You typically only need to interact with this value if you implement your own retry logic\n and want to ensure that a given secret is not created twice. We recommend that you generate a\n UUID-type\n value to ensure uniqueness within the specified secret.

              \n

              Secrets Manager uses this value to prevent the accidental creation of duplicate versions if\n there are failures and retries during the Lambda rotation function's processing.

              \n
                \n
              • \n

                If the ClientRequestToken value isn't already associated with a version\n of the secret then a new version of the secret is created.

                \n
              • \n
              • \n

                If a version with this value already exists and that version's\n SecretString and SecretBinary values are the same as those in\n the request then the request is ignored (the operation is idempotent).

                \n
              • \n
              • \n

                If a version with this value already exists and that version's\n SecretString and SecretBinary values are different from the\n request then an error occurs because you cannot modify an existing secret value.

                \n
              • \n
              \n

              This value becomes the VersionId of the new version.

              ", + "smithy.api#documentation": "

              If you include SecretString or SecretBinary, then Secrets Manager creates \n a new version for the secret, and this parameter specifies the unique identifier for the new \n version.

              \n \n

              If you use the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this operation, then you can\n leave this parameter empty. The CLI or SDK generates a random UUID for you and includes it\n as the value for this parameter in the request. If you don't use the SDK and instead\n generate a raw HTTP request to the Secrets Manager service endpoint, then you must generate a\n ClientRequestToken yourself for the new version and include the value in the\n request.

              \n
              \n

              This value becomes the VersionId of the new version.

              ", "smithy.api#idempotencyToken": {} } }, "Description": { "target": "com.amazonaws.secretsmanager#DescriptionType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies an updated user-provided description of the secret.

              " + "smithy.api#documentation": "

              The description of the secret.

              " } }, "KmsKeyId": { "target": "com.amazonaws.secretsmanager#KmsKeyIdType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies an updated ARN or alias of the Amazon Web Services KMS customer master key (CMK) that Secrets Manager \n uses to encrypt the protected text in new versions of this secret as well as any existing versions of this secret that have the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about staging labels, see Staging\n Labels in the Amazon Web Services Secrets Manager User Guide.

              \n \n

              You can only use the account's default CMK to encrypt and decrypt if you call this\n operation using credentials from the same account that owns the secret. If the secret is in\n a different account, then you must create a custom CMK and provide the ARN of that CMK in\n this field. The user making the call must have permissions to both the secret and the CMK in\n their respective accounts.

              \n
              " + "smithy.api#documentation": "

              The ARN, key ID, or alias of the KMS key that Secrets Manager \n uses to encrypt new secret versions as well as any existing versions the staging labels \n AWSCURRENT, AWSPENDING, or AWSPREVIOUS. \n For more information about versions and staging labels, see Concepts: Version.

              \n \n

              You can only use the Amazon Web Services managed key aws/secretsmanager if you call this\n operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in\n a different account, then you must use a customer managed key and provide the ARN of that KMS key in\n this field. The user making the call must have permissions to both the secret and the KMS key in\n their respective accounts.

              \n
              " } }, "SecretBinary": { "target": "com.amazonaws.secretsmanager#SecretBinaryType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies updated binary data that you want to encrypt and store in the new\n version of the secret. To use this parameter in the command-line tools, we recommend that you\n store your binary data in a file and then use the appropriate technique for your tool to pass\n the contents of the file as a parameter. Either SecretBinary or\n SecretString must have a value, but not both. They cannot both be empty.

              \n

              This parameter is not accessible using the Secrets Manager console.

              " + "smithy.api#documentation": "

              The binary data to encrypt and store in the new\n version of the secret. We recommend that you\n store your binary data in a file and then pass\n the contents of the file as a parameter.

              \n

              Either SecretBinary or\n SecretString must have a value, but not both.

              \n

              You can't access this parameter in the Secrets Manager console.

              " } }, "SecretString": { "target": "com.amazonaws.secretsmanager#SecretStringType", "traits": { - "smithy.api#documentation": "

              (Optional) Specifies updated text data that you want to encrypt and store in this new\n version of the secret. Either SecretBinary or SecretString must have\n a value, but not both. They cannot both be empty.

              \n

              If you create this secret by using the Secrets Manager console then Secrets Manager puts the\n protected secret text in only the SecretString parameter. The Secrets Manager console\n stores the information as a JSON structure of key/value pairs that the default Lambda rotation\n function knows how to parse.

              \n

              For storing multiple values, we recommend that you use a JSON text \n string argument and specify key/value pairs. For more information, see Specifying parameter values for the Amazon Web Services CLI\n in the Amazon Web Services CLI User Guide.

              " + "smithy.api#documentation": "

              The text data to encrypt and store in the new\n version of the secret. We recommend you use a JSON structure of key/value pairs for your secret value.

              \n

              Either SecretBinary or SecretString must have\n a value, but not both.

              " } } } @@ -2429,19 +2429,19 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The ARN of the secret that was updated.

              \n \n

              Secrets Manager automatically adds several random characters to the name at the end of the ARN when\n you initially create a secret. This affects only the ARN and not the actual friendly name. \n This ensures that if you create a new secret with the same name as an old secret that you \n previously deleted, then users with access to the old secret don't \n automatically get access to the new secret because the ARNs are different.

              \n
              " + "smithy.api#documentation": "

              The ARN of the secret that was updated.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret that was updated.

              " + "smithy.api#documentation": "

              The name of the secret that was updated.

              " } }, "VersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              If a new version of the secret was created by this operation, then VersionId\n contains the unique identifier of the new version.

              " + "smithy.api#documentation": "

              If Secrets Manager created a new version of the secret during this operation, then VersionId\n contains the unique identifier of the new version.

              " } } } @@ -2472,7 +2472,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Modifies the staging labels attached to a version of a secret. Staging labels are used to\n track a version as it progresses through the secret rotation process. You can attach a staging\n label to only one version of a secret at a time. If a staging label to be added is already\n attached to another version, then it is moved--removed from the other version first and\n then attached to this one. For more information about staging labels, see Staging\n Labels in the Amazon Web Services Secrets Manager User Guide.

              \n

              The staging labels that you specify in the VersionStage parameter are added\n to the existing list of staging labels--they don't replace it.

              \n

              You can move the AWSCURRENT staging label to this version by including it in this\n call.

              \n \n

              Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS\n to the version that AWSCURRENT was removed from.

              \n
              \n

              If this action results in the last label being removed from a version, then the version is\n considered to be 'deprecated' and can be deleted by Secrets Manager.

              \n

              \n Minimum permissions\n

              \n

              To run this command, you must have the following permissions:

              \n
                \n
              • \n

                secretsmanager:UpdateSecretVersionStage

                \n
              • \n
              \n

              \n Related operations\n

              \n
                \n
              • \n

                To get the list of staging labels that are currently associated with a version of a\n secret, use \n DescribeSecret\n and examine the\n SecretVersionsToStages response value.

                \n
              • \n
              " + "smithy.api#documentation": "

              Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to\n track a version as it progresses through the secret rotation process. Each staging label can be \n attached to only one version at a time. To add a staging label to a version when it is already \n attached to another version, Secrets Manager first removes it from the other version first and\n then attaches it to this one. For more information about versions and staging labels, see Concepts: Version.

              \n

              The staging labels that you specify in the VersionStage parameter are added\n to the existing list of staging labels for the version.

              \n

              You can move the AWSCURRENT staging label to this version by including it in this\n call.

              \n \n

              Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS\n to the version that AWSCURRENT was removed from.

              \n
              \n

              If this action results in the last label being removed from a version, then the version is\n considered to be 'deprecated' and can be deleted by Secrets Manager.

              " } }, "com.amazonaws.secretsmanager#UpdateSecretVersionStageRequest": { @@ -2481,7 +2481,7 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret with the version with the list of staging labels you want to modify.\n You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", + "smithy.api#documentation": "

              The ARN or the name of the secret with the version and staging labelsto modify.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              ", "smithy.api#required": {} } }, @@ -2495,13 +2495,13 @@ "RemoveFromVersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              Specifies the secret version ID of the version that the staging label is to be removed\n from. If the staging label you are trying to attach to one version is already attached to a\n different version, then you must include this parameter and specify the version that the label\n is to be removed from. If the label is attached and you either do not specify this parameter,\n or the version ID does not match, then the operation fails.

              " + "smithy.api#documentation": "

              The ID of the version that the staging label is to be removed\n from. If the staging label you are trying to attach to one version is already attached to a\n different version, then you must include this parameter and specify the version that the label\n is to be removed from. If the label is attached and you either do not specify this parameter,\n or the version ID does not match, then the operation fails.

              " } }, "MoveToVersionId": { "target": "com.amazonaws.secretsmanager#SecretVersionIdType", "traits": { - "smithy.api#documentation": "

              (Optional) The secret version ID that you want to add the staging label. If you want to\n remove a label from a version, then do not specify this parameter.

              \n

              If the staging label is already attached to a different version of the secret, then you\n must also specify the RemoveFromVersionId parameter.

              " + "smithy.api#documentation": "

              The ID of the version to add the staging label to. To\n remove a label from a version, then do not specify this parameter.

              \n

              If the staging label is already attached to a different version of the secret, then you\n must also specify the RemoveFromVersionId parameter.

              " } } } @@ -2512,13 +2512,13 @@ "ARN": { "target": "com.amazonaws.secretsmanager#SecretARNType", "traits": { - "smithy.api#documentation": "

              The ARN of the secret with the modified staging label.

              " + "smithy.api#documentation": "

              The ARN of the secret that was updated.

              " } }, "Name": { "target": "com.amazonaws.secretsmanager#SecretNameType", "traits": { - "smithy.api#documentation": "

              The friendly name of the secret with the modified staging label.

              " + "smithy.api#documentation": "

              The name of the secret that was updated.

              " } } } @@ -2549,7 +2549,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Validates that the resource policy does not grant a wide range of IAM principals access to\n your secret. The JSON request string input and response output displays formatted code\n with white space and line breaks for better readability. Submit your input as a single line \n JSON string. A resource-based policy is optional for secrets.

              \n

              The API performs three checks when validating the secret:

              \n
                \n
              • \n

                Sends a call to Zelkova, an automated reasoning engine, to ensure your Resource Policy does not\n allow broad access to your secret.

                \n
              • \n
              • \n

                Checks for correct syntax in a policy.

                \n
              • \n
              • \n

                Verifies the policy does not lock out a caller.

                \n
              • \n
              \n\n\n

              \n Minimum Permissions\n

              \n

              You must have the permissions required to access the following APIs:

              \n
                \n
              • \n

                \n secretsmanager:PutResourcePolicy\n

                \n
              • \n
              • \n

                \n secretsmanager:ValidateResourcePolicy\n

                \n
              • \n
              " + "smithy.api#documentation": "

              Validates that a resource policy does not grant a wide range of principals access to\n your secret. A resource-based policy is optional for secrets.

              \n

              The API performs three checks when validating the policy:

              \n
                \n
              • \n

                Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not\n allow broad access to your secret, for example policies that use a wildcard for the principal.

                \n
              • \n
              • \n

                Checks for correct syntax in a policy.

                \n
              • \n
              • \n

                Verifies the policy does not lock out a caller.

                \n
              • \n
              " } }, "com.amazonaws.secretsmanager#ValidateResourcePolicyRequest": { @@ -2558,13 +2558,13 @@ "SecretId": { "target": "com.amazonaws.secretsmanager#SecretIdType", "traits": { - "smithy.api#documentation": "

              (Optional) The identifier of the secret with the resource-based policy you want to\n validate. You can specify either the Amazon Resource Name (ARN) or the friendly name of the\n secret.

              \n

              For an ARN, we recommend that you specify a complete ARN rather \n than a partial ARN.

              " + "smithy.api#documentation": "

              This field is reserved for internal use.

              " } }, "ResourcePolicy": { "target": "com.amazonaws.secretsmanager#NonEmptyResourcePolicyType", "traits": { - "smithy.api#documentation": "

              A JSON-formatted string constructed according to the grammar and syntax for an Amazon Web Services\n resource-based policy. The policy in the string identifies who can access or manage this\n secret and its versions. For information on how to format a JSON parameter for the various\n command line tool environments, see Using\n JSON for Parameters in the CLI User Guide.publi

              ", + "smithy.api#documentation": "

              A JSON-formatted string that contains an Amazon Web Services\n resource-based policy. The policy in the string identifies who can access or manage this\n secret and its versions. For example policies, see Permissions policy examples.

              ", "smithy.api#required": {} } } @@ -2576,13 +2576,13 @@ "PolicyValidationPassed": { "target": "com.amazonaws.secretsmanager#BooleanType", "traits": { - "smithy.api#documentation": "

              Returns a message stating that your Reource Policy passed validation.

              " + "smithy.api#documentation": "

              True if your policy passes validation, otherwise false.

              " } }, "ValidationErrors": { "target": "com.amazonaws.secretsmanager#ValidationErrorsType", "traits": { - "smithy.api#documentation": "

              Returns an error message if your policy doesn't pass validatation.

              " + "smithy.api#documentation": "

              Validation errors if your policy didn't pass validation.

              " } } } @@ -2615,6 +2615,21 @@ }, "com.amazonaws.secretsmanager#secretsmanager": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Secrets Manager", + "arnNamespace": "secretsmanager", + "cloudFormationName": "SecretsManager", + "cloudTrailEventSource": "secretsmanager.amazonaws.com", + "endpointPrefix": "secretsmanager" + }, + "aws.auth#sigv4": { + "name": "secretsmanager" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Web Services Secrets Manager\n

              Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets.

              \n \n

              This guide provides descriptions of the Secrets Manager API. For more information about using this\n service, see the Amazon Web Services Secrets Manager User Guide.

              \n \n

              \n API Version\n

              \n \n

              This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17.

              \n \n

              As an alternative to using the API, you can use one of the Amazon Web Services SDKs, which consist of\n libraries and sample code for various programming languages and platforms such as Java,\n Ruby, .NET, iOS, and Android. The SDKs provide a convenient way to create programmatic\n access to Amazon Web Services Secrets Manager. For example, the SDKs provide cryptographically signing requests,\n managing errors, and retrying requests automatically. For more information about the Amazon Web Services\n SDKs, including downloading and installing them, see Tools for Amazon Web Services.

              \n
              \n

              We recommend you use the Amazon Web Services SDKs to make programmatic API calls to Secrets Manager. However, you\n also can use the Secrets Manager HTTP Query API to make direct calls to the Secrets Manager web service. To learn\n more about the Secrets Manager HTTP Query API, see Making Query Requests in the\n Amazon Web Services Secrets Manager User Guide.

              \n

              Secrets Manager API supports GET and POST requests for all actions, and doesn't require you to use\n GET for some actions and POST for others. However, GET requests are subject to the limitation\n size of a URL. Therefore, for operations that require larger sizes, use a POST request.

              \n \n \n \n \n \n \n \n

              \n Support and Feedback for Amazon Web Services Secrets Manager\n

              \n \n

              We welcome your feedback. Send your comments to awssecretsmanager-feedback@amazon.com, or post your feedback and questions in the Amazon Web Services Secrets Manager Discussion Forum. For more\n information about the Amazon Web Services Discussion Forums, see Forums\n Help.

              \n \n

              \n How examples are presented\n

              \n \n

              The JSON that Amazon Web Services Secrets Manager expects as your request parameters and the service returns as a\n response to HTTP query requests contain single, long strings without line breaks or white\n space formatting. The JSON shown in the examples displays the code formatted with both line\n breaks and white space to improve readability. When example input parameters can also cause\n long strings extending beyond the screen, you can insert line breaks to enhance readability.\n You should always submit the input as a single JSON text string.

              \n \n \n

              \n Logging API Requests\n

              \n

              Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services\n account and delivers log files to an Amazon S3 bucket. By using information that's collected\n by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the\n request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services\n CloudTrail, see Logging\n Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide.\n To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

              ", + "smithy.api#title": "AWS Secrets Manager" + }, "version": "2017-10-17", "operations": [ { @@ -2683,22 +2698,7 @@ { "target": "com.amazonaws.secretsmanager#ValidateResourcePolicy" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Secrets Manager", - "arnNamespace": "secretsmanager", - "cloudFormationName": "SecretsManager", - "cloudTrailEventSource": "secretsmanager.amazonaws.com", - "endpointPrefix": "secretsmanager" - }, - "aws.auth#sigv4": { - "name": "secretsmanager" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "Amazon Web Services Secrets Manager\n

              Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets.

              \n \n

              This guide provides descriptions of the Secrets Manager API. For more information about using this\n service, see the Amazon Web Services Secrets Manager User Guide.

              \n \n

              \n API Version\n

              \n \n

              This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17.

              \n \n

              As an alternative to using the API, you can use one of the Amazon Web Services SDKs, which consist of\n libraries and sample code for various programming languages and platforms such as Java,\n Ruby, .NET, iOS, and Android. The SDKs provide a convenient way to create programmatic\n access to Amazon Web Services Secrets Manager. For example, the SDKs provide cryptographically signing requests,\n managing errors, and retrying requests automatically. For more information about the Amazon Web Services\n SDKs, including downloading and installing them, see Tools for Amazon Web Services.

              \n
              \n

              We recommend you use the Amazon Web Services SDKs to make programmatic API calls to Secrets Manager. However, you\n also can use the Secrets Manager HTTP Query API to make direct calls to the Secrets Manager web service. To learn\n more about the Secrets Manager HTTP Query API, see Making Query Requests in the\n Amazon Web Services Secrets Manager User Guide.

              \n

              Secrets Manager API supports GET and POST requests for all actions, and doesn't require you to use\n GET for some actions and POST for others. However, GET requests are subject to the limitation\n size of a URL. Therefore, for operations that require larger sizes, use a POST request.

              \n \n \n \n \n \n \n \n

              \n Support and Feedback for Amazon Web Services Secrets Manager\n

              \n \n

              We welcome your feedback. Send your comments to awssecretsmanager-feedback@amazon.com, or post your feedback and questions in the Amazon Web Services Secrets Manager Discussion Forum. For more\n information about the Amazon Web Services Discussion Forums, see Forums\n Help.

              \n \n

              \n How examples are presented\n

              \n \n

              The JSON that Amazon Web Services Secrets Manager expects as your request parameters and the service returns as a\n response to HTTP query requests contain single, long strings without line breaks or white\n space formatting. The JSON shown in the examples displays the code formatted with both line\n breaks and white space to improve readability. When example input parameters can also cause\n long strings extending beyond the screen, you can insert line breaks to enhance readability.\n You should always submit the input as a single JSON text string.

              \n \n \n

              \n Logging API Requests\n

              \n

              Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web Services API calls for your Amazon Web Services\n account and delivers log files to an Amazon S3 bucket. By using information that's collected\n by Amazon Web Services CloudTrail, you can determine the requests successfully made to Secrets Manager, who made the\n request, when it was made, and so on. For more about Amazon Web Services Secrets Manager and support for Amazon Web Services\n CloudTrail, see Logging\n Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services Secrets Manager User Guide.\n To learn more about CloudTrail, including enabling it and find your log files, see the Amazon Web Services CloudTrail User Guide.

              ", - "smithy.api#title": "AWS Secrets Manager" - } + ] } } } diff --git a/codegen/sdk-codegen/aws-models/securityhub.json b/codegen/sdk-codegen/aws-models/securityhub.json index f5fcf08e4395..740ec58d9c41 100644 --- a/codegen/sdk-codegen/aws-models/securityhub.json +++ b/codegen/sdk-codegen/aws-models/securityhub.json @@ -1051,6 +1051,26 @@ "smithy.api#documentation": "

              Contains information about a version 2 stage for Amazon API Gateway.

              " } }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesListDetails": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The name of the Availability Zone.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              An Availability Zone for the automatic scaling group.

              " + } + }, "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupDetails": { "type": "structure", "members": { @@ -1083,12 +1103,160 @@ "traits": { "smithy.api#documentation": "

              Indicates when the auto scaling group was created.

              \n

              Uses the date-time format specified in RFC 3339 section 5.6, Internet\n Date/Time Format. The value cannot contain spaces. For example,\n 2020-03-22T13:22:13.933Z.

              " } + }, + "MixedInstancesPolicy": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails", + "traits": { + "smithy.api#documentation": "

              The mixed instances policy for the automatic scaling group.

              " + } + }, + "AvailabilityZones": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupAvailabilityZonesList", + "traits": { + "smithy.api#documentation": "

              The list of Availability Zones for the automatic scaling group.

              " + } } }, "traits": { "smithy.api#documentation": "

              Provides details about an auto scaling group.

              " } }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails": { + "type": "structure", + "members": { + "InstancesDistribution": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails", + "traits": { + "smithy.api#documentation": "

              The instances distribution. The instances distribution specifies the distribution of On-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacity.

              " + } + }, + "LaunchTemplate": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails", + "traits": { + "smithy.api#documentation": "

              The launch template to use and the instance types (overrides) to use to provision EC2 instances to fulfill On-Demand and Spot capacities.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The mixed instances policy for the automatic scaling group.

              " + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyInstancesDistributionDetails": { + "type": "structure", + "members": { + "OnDemandAllocationStrategy": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              How to allocate instance types to fulfill On-Demand capacity.

              " + } + }, + "OnDemandBaseCapacity": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances.

              " + } + }, + "OnDemandPercentageAboveBaseCapacity": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The percentage of On-Demand Instances and Spot Instances for additional capacity beyond OnDemandBaseCapacity.

              " + } + }, + "SpotAllocationStrategy": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              How to allocate instances across Spot Instance pools.

              " + } + }, + "SpotInstancePools": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The number of Spot Instance pools across which to allocate your Spot Instances.

              " + } + }, + "SpotMaxPrice": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The maximum price per unit hour that you are willing to pay for a Spot Instance.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Information about the instances distribution.

              " + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateDetails": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification", + "traits": { + "smithy.api#documentation": "

              The launch template to use.

              " + } + }, + "Overrides": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList", + "traits": { + "smithy.api#documentation": "

              Property values to use to override the values in the launch template.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes a launch template and overrides for a mixed instances policy.

              " + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification": { + "type": "structure", + "members": { + "LaunchTemplateId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The identifier of the launch template. You must specify either LaunchTemplateId or LaunchTemplateName.

              " + } + }, + "LaunchTemplateName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The name of the launch template. You must specify either LaunchTemplateId or LaunchTemplateName.

              " + } + }, + "Version": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              Identifies the version of the launch template. You can specify a version identifier, or use the values $Latest or $Default.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Details about the launch template to use.

              " + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails" + } + }, + "com.amazonaws.securityhub#AwsAutoScalingAutoScalingGroupMixedInstancesPolicyLaunchTemplateOverridesListDetails": { + "type": "structure", + "members": { + "InstanceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The instance type. For example, m3.xlarge.

              " + } + }, + "WeightedCapacity": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The number of capacity units provided by the specified instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Property values to use to override the values in the launch template.

              " + } + }, "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationBlockDeviceMappingsDetails": { "type": "structure", "members": { @@ -1281,6 +1449,12 @@ "traits": { "smithy.api#documentation": "

              The user data to make available to the launched EC2 instances. Must be base64-encoded\n text.

              " } + }, + "MetadataOptions": { + "target": "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationMetadataOptions", + "traits": { + "smithy.api#documentation": "

              The metadata options for the instances.

              " + } } }, "traits": { @@ -1301,6 +1475,32 @@ "smithy.api#documentation": "

              Information about the type of monitoring for instances in the group.

              " } }, + "com.amazonaws.securityhub#AwsAutoScalingLaunchConfigurationMetadataOptions": { + "type": "structure", + "members": { + "HttpEndpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              Enables or disables the HTTP metadata endpoint on your instances. By default, the metadata endpoint is enabled.

              " + } + }, + "HttpPutResponseHopLimit": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.

              " + } + }, + "HttpTokens": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              Indicates whether token usage is required or optional for metadata requests. By default, token usage is optional.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The metadata options for the instances.

              " + } + }, "com.amazonaws.securityhub#AwsCertificateManagerCertificateDetails": { "type": "structure", "members": { @@ -8306,149 +8506,325 @@ "com.amazonaws.securityhub#AwsLambdaLayerVersionNumber": { "type": "long" }, - "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails": { + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallDetails": { "type": "structure", "members": { - "InstanceCount": { - "target": "com.amazonaws.securityhub#Integer", + "DeleteProtection": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

              The number of data nodes to use in the OpenSearch domain.

              " + "smithy.api#documentation": "

              Whether the firewall is protected from deletion. If set to true, then the firewall cannot be deleted.

              " } }, - "WarmEnabled": { - "target": "com.amazonaws.securityhub#Boolean", + "Description": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              Whether UltraWarm is enabled.

              " + "smithy.api#documentation": "

              A description of the firewall.

              " } }, - "WarmCount": { - "target": "com.amazonaws.securityhub#Integer", + "FirewallArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The number of UltraWarm instances.

              " + "smithy.api#documentation": "

              The ARN of the firewall.

              " } }, - "DedicatedMasterEnabled": { + "FirewallId": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The identifier of the firewall.

              " + } + }, + "FirewallName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              A descriptive name of the firewall.

              " + } + }, + "FirewallPolicyArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The ARN of the firewall policy.

              " + } + }, + "FirewallPolicyChangeProtection": { "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

              Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

              " + "smithy.api#documentation": "

              Whether the firewall is protected from a change to the firewall policy. If set to true, you cannot associate a different policy with the firewall.

              " } }, - "ZoneAwarenessConfig": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails", + "SubnetChangeProtection": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

              Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

              " + "smithy.api#documentation": "

              Whether the firewall is protected from a change to the subnet associations. If set to true, you cannot map different subnets to the firewall.

              " } }, - "DedicatedMasterCount": { - "target": "com.amazonaws.securityhub#Integer", + "SubnetMappings": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsList", "traits": { - "smithy.api#documentation": "

              The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

              " + "smithy.api#documentation": "

              The public subnets that Network Firewall uses for the firewall. Each subnet must belong to a different Availability Zone.

              " } }, - "InstanceType": { + "VpcId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The instance type for your data nodes.

              " + "smithy.api#documentation": "

              The identifier of the VPC where the firewall is used.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Details about an Network Firewall firewall.

              " + } + }, + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallPolicyDetails": { + "type": "structure", + "members": { + "FirewallPolicy": { + "target": "com.amazonaws.securityhub#FirewallPolicyDetails", + "traits": { + "smithy.api#documentation": "

              The firewall policy configuration.

              " } }, - "WarmType": { + "FirewallPolicyArn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The type of UltraWarm instance.

              " + "smithy.api#documentation": "

              The ARN of the firewall policy.

              " } }, - "ZoneAwarenessEnabled": { - "target": "com.amazonaws.securityhub#Boolean", + "FirewallPolicyId": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

              " + "smithy.api#documentation": "

              The identifier of the firewall policy.

              " } }, - "DedicatedMasterType": { + "FirewallPolicyName": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The hardware configuration of the computer that hosts the dedicated master node.

              \n

              If this attribute is specified, then DedicatedMasterEnabled must be true.\n

              " + "smithy.api#documentation": "

              The name of the firewall policy.

              " + } + }, + "Description": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              A description of the firewall policy.

              " } } }, "traits": { - "smithy.api#documentation": "

              Details about the configuration of an OpenSearch cluster.

              " + "smithy.api#documentation": "

              Details about a firewall policy. A firewall policy defines the behavior of a network firewall.

              " } }, - "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails": { + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsDetails": { "type": "structure", "members": { - "AvailabilityZoneCount": { - "target": "com.amazonaws.securityhub#Integer", + "SubnetId": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

              " + "smithy.api#documentation": "

              The identifier of the subnet

              " } } }, "traits": { - "smithy.api#documentation": "

              Configuration options for zone awareness.

              " + "smithy.api#documentation": "

              A public subnet that Network Firewall uses for the firewall.

              " } }, - "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDetails": { + "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallSubnetMappingsDetails" + } + }, + "com.amazonaws.securityhub#AwsNetworkFirewallRuleGroupDetails": { "type": "structure", "members": { - "Arn": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "Capacity": { + "target": "com.amazonaws.securityhub#Integer", "traits": { - "smithy.api#documentation": "

              The ARN of the OpenSearch Service domain.

              " + "smithy.api#documentation": "

              The maximum number of operating resources that this rule group can use.

              " } }, - "AccessPolicies": { + "Description": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              IAM policy document that specifies the access policies for the OpenSearch Service domain.

              " + "smithy.api#documentation": "

              A description of the rule group.

              " } }, - "DomainName": { - "target": "com.amazonaws.securityhub#NonEmptyString", + "RuleGroup": { + "target": "com.amazonaws.securityhub#RuleGroupDetails", "traits": { - "smithy.api#documentation": "

              The name of the endpoint.

              " + "smithy.api#documentation": "

              Details about the rule group.

              " } }, - "Id": { + "RuleGroupArn": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The identifier of the domain.

              " + "smithy.api#documentation": "

              The ARN of the rule group.

              " } }, - "DomainEndpoint": { + "RuleGroupId": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The domain endpoint.

              " + "smithy.api#documentation": "

              The identifier of the rule group.

              " } }, - "EngineVersion": { + "RuleGroupName": { "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              The version of the domain engine.

              " + "smithy.api#documentation": "

              The descriptive name of the rule group.

              " } }, - "EncryptionAtRestOptions": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails", + "Type": { + "target": "com.amazonaws.securityhub#NonEmptyString", "traits": { - "smithy.api#documentation": "

              Details about the configuration for encryption at rest.

              " + "smithy.api#documentation": "

              The type of rule group. A rule group can be stateful or stateless.

              " } - }, - "NodeToNodeEncryptionOptions": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails", + } + }, + "traits": { + "smithy.api#documentation": "

              Details about an Network Firewall rule group. Rule groups are used to inspect and control network traffic. Stateless rule groups apply to individual packets. Stateful rule groups apply to packets in the context of their traffic flow.

              \n

              Rule groups are referenced in firewall policies.\n

              " + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails": { + "type": "structure", + "members": { + "InstanceCount": { + "target": "com.amazonaws.securityhub#Integer", "traits": { - "smithy.api#documentation": "

              Details about the configuration for node-to-node encryption.

              " + "smithy.api#documentation": "

              The number of data nodes to use in the OpenSearch domain.

              " } }, - "ServiceSoftwareOptions": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails", + "WarmEnabled": { + "target": "com.amazonaws.securityhub#Boolean", "traits": { - "smithy.api#documentation": "

              Information about the status of a domain relative to the latest service software.

              " + "smithy.api#documentation": "

              Whether UltraWarm is enabled.

              " } }, - "ClusterConfig": { - "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails", + "WarmCount": { + "target": "com.amazonaws.securityhub#Integer", "traits": { - "smithy.api#documentation": "

              Details about the configuration of an OpenSearch cluster.

              " + "smithy.api#documentation": "

              The number of UltraWarm instances.

              " + } + }, + "DedicatedMasterEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

              Whether to use a dedicated master node for the OpenSearch domain. A dedicated master node performs cluster management tasks, but does not hold data or respond to data upload requests.

              " + } + }, + "ZoneAwarenessConfig": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails", + "traits": { + "smithy.api#documentation": "

              Configuration options for zone awareness. Provided if ZoneAwarenessEnabled is true.

              " + } + }, + "DedicatedMasterCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The number of instances to use for the master node. If this attribute is specified, then DedicatedMasterEnabled must be true.

              " + } + }, + "InstanceType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The instance type for your data nodes.

              " + } + }, + "WarmType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The type of UltraWarm instance.

              " + } + }, + "ZoneAwarenessEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

              Whether to enable zone awareness for the OpenSearch domain. When zone awareness is enabled, OpenSearch Service allocates the cluster's nodes and replica index shards across Availability Zones (AZs) in the same Region. This prevents data loss and minimizes downtime if a node or data center fails.

              " + } + }, + "DedicatedMasterType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The hardware configuration of the computer that hosts the dedicated master node.

              \n

              If this attribute is specified, then DedicatedMasterEnabled must be true.\n

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Details about the configuration of an OpenSearch cluster.

              " + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigZoneAwarenessConfigDetails": { + "type": "structure", + "members": { + "AvailabilityZoneCount": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Configuration options for zone awareness.

              " + } + }, + "com.amazonaws.securityhub#AwsOpenSearchServiceDomainDetails": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The ARN of the OpenSearch Service domain.

              " + } + }, + "AccessPolicies": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              IAM policy document that specifies the access policies for the OpenSearch Service domain.

              " + } + }, + "DomainName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The name of the endpoint.

              " + } + }, + "Id": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The identifier of the domain.

              " + } + }, + "DomainEndpoint": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The domain endpoint.

              " + } + }, + "EngineVersion": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The version of the domain engine.

              " + } + }, + "EncryptionAtRestOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainEncryptionAtRestOptionsDetails", + "traits": { + "smithy.api#documentation": "

              Details about the configuration for encryption at rest.

              " + } + }, + "NodeToNodeEncryptionOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails", + "traits": { + "smithy.api#documentation": "

              Details about the configuration for node-to-node encryption.

              " + } + }, + "ServiceSoftwareOptions": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainServiceSoftwareOptionsDetails", + "traits": { + "smithy.api#documentation": "

              Information about the status of a domain relative to the latest service software.

              " + } + }, + "ClusterConfig": { + "target": "com.amazonaws.securityhub#AwsOpenSearchServiceDomainClusterConfigDetails", + "traits": { + "smithy.api#documentation": "

              Details about the configuration of an OpenSearch cluster.

              " } }, "DomainEndpointOptions": { @@ -11165,6 +11541,26 @@ "target": "com.amazonaws.securityhub#AwsS3BucketBucketLifecycleConfigurationRulesTransitionsDetails" } }, + "com.amazonaws.securityhub#AwsS3BucketBucketVersioningConfiguration": { + "type": "structure", + "members": { + "IsMfaDeleteEnabled": { + "target": "com.amazonaws.securityhub#Boolean", + "traits": { + "smithy.api#documentation": "

              Specifies whether MFA delete is currently enabled in the S3 bucket versioning configuration. If the S3 bucket was never configured with MFA delete, then this attribute is not included.

              " + } + }, + "Status": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The versioning status of the S3 bucket.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Describes the versioning state of an S3 bucket.

              " + } + }, "com.amazonaws.securityhub#AwsS3BucketDetails": { "type": "structure", "members": { @@ -11233,6 +11629,12 @@ "traits": { "smithy.api#documentation": "

              The notification configuration for the S3 bucket.

              " } + }, + "BucketVersioningConfiguration": { + "target": "com.amazonaws.securityhub#AwsS3BucketBucketVersioningConfiguration", + "traits": { + "smithy.api#documentation": "

              The versioning state of an S3 bucket.

              " + } } }, "traits": { @@ -12431,7 +12833,7 @@ "WorkflowStatus": { "target": "com.amazonaws.securityhub#StringFilterList", "traits": { - "smithy.api#documentation": "

              The status of the investigation into a finding. Allowed values are the following.

              \n
                \n
              • \n

                \n NEW - The initial state of a finding, before it is reviewed.

                \n

                Security Hub also resets the workflow status from NOTIFIED or\n RESOLVED to NEW in the following cases:

                \n
                  \n
                • \n

                  The record state changes from ARCHIVED to ACTIVE.

                  \n
                • \n
                • \n

                  The compliance status changes from PASSED to either WARNING,\n FAILED, or NOT_AVAILABLE.

                  \n
                • \n
                \n
              • \n
              • \n

                \n NOTIFIED - Indicates that the resource owner has been notified about\n the security issue. Used when the initial reviewer is not the resource owner, and\n needs intervention from the resource owner.

                \n
              • \n
              • \n

                \n SUPPRESSED - The finding will not be reviewed again and will not be\n acted upon.

                \n
              • \n
              • \n

                \n RESOLVED - The finding was reviewed and remediated and is now\n considered resolved.

                \n
              • \n
              " + "smithy.api#documentation": "

              The status of the investigation into a finding. Allowed values are the following.

              \n
                \n
              • \n

                \n NEW - The initial state of a finding, before it is reviewed.

                \n

                Security Hub also resets the workflow status from NOTIFIED or\n RESOLVED to NEW in the following cases:

                \n
                  \n
                • \n

                  \n RecordState changes from ARCHIVED to ACTIVE.

                  \n
                • \n
                • \n

                  \n Compliance.Status changes from PASSED to either WARNING,\n FAILED, or NOT_AVAILABLE.

                  \n
                • \n
                \n
              • \n
              • \n

                \n NOTIFIED - Indicates that the resource owner has been notified about\n the security issue. Used when the initial reviewer is not the resource owner, and\n needs intervention from the resource owner.

                \n

                If one of the following occurs, the workflow status is changed automatically from\n NOTIFIED to NEW:

                \n
                  \n
                • \n

                  \n RecordState changes from ARCHIVED to\n ACTIVE.

                  \n
                • \n
                • \n

                  \n Compliance.Status changes from PASSED to FAILED,\n WARNING, or NOT_AVAILABLE.

                  \n
                • \n
                \n
              • \n
              • \n

                \n SUPPRESSED - Indicates that you reviewed the finding and do not believe that any action is\n needed.

                \n

                The workflow status of a SUPPRESSED finding does not change if\n RecordState changes from ARCHIVED to\n ACTIVE.

                \n
              • \n
              • \n

                \n RESOLVED - The finding was reviewed and remediated and is now\n considered resolved.

                \n

                The finding remains RESOLVED unless one of the following occurs:

                \n
                  \n
                • \n

                  \n RecordState changes from ARCHIVED to\n ACTIVE.

                  \n
                • \n
                • \n

                  \n Compliance.Status changes from PASSED to FAILED,\n WARNING, or NOT_AVAILABLE.

                  \n
                • \n
                \n

                In those cases, the workflow status is automatically reset to NEW.

                \n

                For findings from controls, if Compliance.Status is PASSED,\n then Security Hub automatically sets the workflow status to RESOLVED.

                \n
              • \n
              " } }, "RecordState": { @@ -13185,7 +13587,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Imports security findings generated from an integrated product into Security Hub.\n This action is requested by the integrated product to import its findings into\n Security Hub.

              \n

              The maximum allowed size for a finding is 240 Kb. An error is returned for any finding\n larger than 240 Kb.

              \n

              After a finding is created, BatchImportFindings cannot be used to update\n the following finding fields and objects, which Security Hub customers use to manage their\n investigation workflow.

              \n
                \n
              • \n

                \n Note\n

                \n
              • \n
              • \n

                \n UserDefinedFields\n

                \n
              • \n
              • \n

                \n VerificationState\n

                \n
              • \n
              • \n

                \n Workflow\n

                \n
              • \n
              \n

              Finding providers also should not use BatchImportFindings to update the following attributes.

              \n
                \n
              • \n

                \n Confidence\n

                \n
              • \n
              • \n

                \n Criticality\n

                \n
              • \n
              • \n

                \n RelatedFindings\n

                \n
              • \n
              • \n

                \n Severity\n

                \n
              • \n
              • \n

                \n Types\n

                \n
              • \n
              \n

              Instead, finding providers use FindingProviderFields to provide values for these attributes.

              ", + "smithy.api#documentation": "

              Imports security findings generated by a finding provider into Security Hub.\n This action is requested by the finding provider to import its findings into\n Security Hub.

              \n

              \n BatchImportFindings must be called by one of the following:

              \n
                \n
              • \n

                The account that is associated with the findings. The identifier of the associated\n account is the value of the AwsAccountId attribute for the finding.

                \n
              • \n
              • \n

                An account that is allow-listed for an official Security Hub partner integration.

                \n
              • \n
              \n

              The maximum allowed size for a finding is 240 Kb. An error is returned for any finding\n larger than 240 Kb.

              \n

              After a finding is created, BatchImportFindings cannot be used to update\n the following finding fields and objects, which Security Hub customers use to manage their\n investigation workflow.

              \n
                \n
              • \n

                \n Note\n

                \n
              • \n
              • \n

                \n UserDefinedFields\n

                \n
              • \n
              • \n

                \n VerificationState\n

                \n
              • \n
              • \n

                \n Workflow\n

                \n
              • \n
              \n

              Finding providers also should not use BatchImportFindings to update the following attributes.

              \n
                \n
              • \n

                \n Confidence\n

                \n
              • \n
              • \n

                \n Criticality\n

                \n
              • \n
              • \n

                \n RelatedFindings\n

                \n
              • \n
              • \n

                \n Severity\n

                \n
              • \n
              • \n

                \n Types\n

                \n
              • \n
              \n

              Instead, finding providers use FindingProviderFields to provide values for these attributes.

              ", "smithy.api#http": { "method": "POST", "uri": "/findings/import", @@ -13914,7 +14316,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a member association in Security Hub between the specified accounts and the account\n used to make the request, which is the administrator account. If you are integrated with\n Organizations, then the administrator account is designated by the organization management account.

              \n

              \n CreateMembers is always used to add accounts that are not organization\n members.

              \n

              For accounts that are managed using Organizations, CreateMembers is only used\n in the following cases:

              \n
                \n
              • \n

                Security Hub is not configured to automatically add new organization accounts.

                \n
              • \n
              • \n

                The account was disassociated or deleted in Security Hub.

                \n
              • \n
              \n

              This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you\n can use the EnableSecurityHub operation.

              \n

              For accounts that are not organization members, you create the account association and\n then send an invitation to the member account. To send the invitation, you use the\n InviteMembers operation. If the account owner accepts\n the invitation, the account becomes a member account in Security Hub.

              \n

              Accounts that are managed using Organizations do not receive an invitation. They\n automatically become a member account in Security Hub.

              \n
                \n
              • \n

                If the organization account does not have Security Hub enabled, then Security Hub and the default standards are automatically enabled. Note that Security Hub cannot be enabled automatically for the organization management account. The organization management account must enable Security Hub before the administrator account enables it as a member account.

                \n
              • \n
              • \n

                For organization accounts that already have Security Hub enabled, Security Hub does not make any other changes to those accounts. It does not change their enabled standards or controls.

                \n
              • \n
              \n \n

              A permissions policy is added that permits the administrator account to view the findings\n generated in the member account.

              \n

              To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

              ", + "smithy.api#documentation": "

              Creates a member association in Security Hub between the specified accounts and the account\n used to make the request, which is the administrator account. If you are integrated with\n Organizations, then the administrator account is designated by the organization management account.

              \n

              \n CreateMembers is always used to add accounts that are not organization\n members.

              \n

              For accounts that are managed using Organizations, CreateMembers is only used\n in the following cases:

              \n
                \n
              • \n

                Security Hub is not configured to automatically add new organization accounts.

                \n
              • \n
              • \n

                The account was disassociated or deleted in Security Hub.

                \n
              • \n
              \n

              This action can only be used by an account that has Security Hub enabled. To enable Security Hub, you\n can use the EnableSecurityHub operation.

              \n

              For accounts that are not organization members, you create the account association and\n then send an invitation to the member account. To send the invitation, you use the\n InviteMembers operation. If the account owner accepts\n the invitation, the account becomes a member account in Security Hub.

              \n

              Accounts that are managed using Organizations do not receive an invitation. They\n automatically become a member account in Security Hub.

              \n
                \n
              • \n

                If the organization account does not have Security Hub enabled, then Security Hub and the default standards are automatically enabled. Note that Security Hub cannot be enabled automatically for the organization management account. The organization management account must enable Security Hub before the administrator account enables it as a member account.

                \n
              • \n
              • \n

                For organization accounts that already have Security Hub enabled, Security Hub does not make any other changes to those accounts. It does not change their enabled standards or controls.

                \n
              • \n
              \n

              A permissions policy is added that permits the administrator account to view the findings\n generated in the member account.

              \n

              To remove the association between the administrator and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

              ", "smithy.api#http": { "method": "POST", "uri": "/members", @@ -15452,6 +15854,116 @@ "smithy.api#documentation": "

              The severity assigned to the finding by the finding provider.

              " } }, + "com.amazonaws.securityhub#FirewallPolicyDetails": { + "type": "structure", + "members": { + "StatefulRuleGroupReferences": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesList", + "traits": { + "smithy.api#documentation": "

              The stateful rule groups that are used in the firewall policy.

              " + } + }, + "StatelessCustomActions": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsList", + "traits": { + "smithy.api#documentation": "

              The custom action definitions that are available to use in the firewall policy's StatelessDefaultActions setting.

              " + } + }, + "StatelessDefaultActions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The actions to take on a packet if it doesn't match any of the stateless rules in the policy.

              \n

              You must specify a standard action (aws:pass, aws:drop, aws:forward_to_sfe), and can optionally include a custom action from StatelessCustomActions.\n

              " + } + }, + "StatelessFragmentDefaultActions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The actions to take on a fragmented UDP packet if it doesn't match any of the stateless rules in the policy.

              \n

              You must specify a standard action (aws:pass, aws:drop, aws:forward_to_sfe), and can optionally include a custom action from StatelessCustomActions.\n

              " + } + }, + "StatelessRuleGroupReferences": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesList", + "traits": { + "smithy.api#documentation": "

              The stateless rule groups that are used in the firewall policy.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Defines the behavior of the firewall.

              " + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesDetails": { + "type": "structure", + "members": { + "ResourceArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The ARN of the stateful rule group.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A stateful rule group that is used by the firewall policy.

              " + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatefulRuleGroupReferencesDetails" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsDetails": { + "type": "structure", + "members": { + "ActionDefinition": { + "target": "com.amazonaws.securityhub#StatelessCustomActionDefinition", + "traits": { + "smithy.api#documentation": "

              The definition of the custom action.

              " + } + }, + "ActionName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The name of the custom action.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A custom action that can be used for stateless packet handling.

              " + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessCustomActionsDetails" + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesDetails": { + "type": "structure", + "members": { + "Priority": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The order in which to run the stateless rule group.

              " + } + }, + "ResourceArn": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The ARN of the stateless rule group.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A stateless rule group that is used by the firewall policy.

              " + } + }, + "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#FirewallPolicyStatelessRuleGroupReferencesDetails" + } + }, "com.amazonaws.securityhub#GeoLocation": { "type": "structure", "members": { @@ -18477,6 +18989,24 @@ "traits": { "smithy.api#documentation": "

              Details about an Amazon EKS cluster.

              " } + }, + "AwsNetworkFirewallFirewallPolicy": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallPolicyDetails", + "traits": { + "smithy.api#documentation": "

              Details about an Network Firewall firewall policy.

              " + } + }, + "AwsNetworkFirewallFirewall": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallFirewallDetails", + "traits": { + "smithy.api#documentation": "

              Details about an Network Firewall firewall.

              " + } + }, + "AwsNetworkFirewallRuleGroup": { + "target": "com.amazonaws.securityhub#AwsNetworkFirewallRuleGroupDetails", + "traits": { + "smithy.api#documentation": "

              Details about an Network Firewall rule group.

              " + } } }, "traits": { @@ -18531,21 +19061,530 @@ "target": "com.amazonaws.securityhub#Result" } }, - "com.amazonaws.securityhub#SecurityGroups": { - "type": "list", - "member": { - "target": "com.amazonaws.securityhub#NonEmptyString" + "com.amazonaws.securityhub#RuleGroupDetails": { + "type": "structure", + "members": { + "RuleVariables": { + "target": "com.amazonaws.securityhub#RuleGroupVariables", + "traits": { + "smithy.api#documentation": "

              Additional settings to use in the specified rules.

              " + } + }, + "RulesSource": { + "target": "com.amazonaws.securityhub#RuleGroupSource", + "traits": { + "smithy.api#documentation": "

              The rules and actions for the rule group.

              \n

              For stateful rule groups, can contain RulesString, RulesSourceList, or StatefulRules.

              \n

              For stateless rule groups, contains StatelessRulesAndCustomActions.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Details about the rule group.

              " } }, - "com.amazonaws.securityhub#SecurityHubAPIService": { - "type": "service", - "version": "2018-10-26", - "operations": [ - { - "target": "com.amazonaws.securityhub#AcceptAdministratorInvitation" + "com.amazonaws.securityhub#RuleGroupSource": { + "type": "structure", + "members": { + "RulesSourceList": { + "target": "com.amazonaws.securityhub#RuleGroupSourceListDetails", + "traits": { + "smithy.api#documentation": "

              Stateful inspection criteria for a domain list rule group. A domain list rule group determines access by specific protocols to specific domains.

              " + } }, - { - "target": "com.amazonaws.securityhub#AcceptInvitation" + "RulesString": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules.

              " + } + }, + "StatefulRules": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesList", + "traits": { + "smithy.api#documentation": "

              Suricata rule specifications.

              " + } + }, + "StatelessRulesAndCustomActions": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesAndCustomActionsDetails", + "traits": { + "smithy.api#documentation": "

              The stateless rules and custom actions used by a stateless rule group.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The rules and actions for the rule group.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceCustomActionsDetails": { + "type": "structure", + "members": { + "ActionDefinition": { + "target": "com.amazonaws.securityhub#StatelessCustomActionDefinition", + "traits": { + "smithy.api#documentation": "

              The definition of a custom action.

              " + } + }, + "ActionName": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              A descriptive name of the custom action.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A custom action definition. A custom action is an optional, non-standard action to use for stateless packet handling.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceCustomActionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceCustomActionsDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceListDetails": { + "type": "structure", + "members": { + "GeneratedRulesType": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              Indicates whether to allow or deny access to the domains listed in Targets.

              " + } + }, + "TargetTypes": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The protocols that you want to inspect. Specify LS_SNI for HTTPS. Specify HTTP_HOST for HTTP. You can specify either or both.

              " + } + }, + "Targets": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The domains that you want to inspect for in your traffic flows. You can provide full domain names, or use the '.' prefix as a wildcard. For example, .example.com matches all domains that end with example.com.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Stateful inspection criteria for a domain list rule group.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesDetails": { + "type": "structure", + "members": { + "Action": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria.

              " + } + }, + "Header": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesHeaderDetails", + "traits": { + "smithy.api#documentation": "

              The stateful inspection criteria for the rule.

              " + } + }, + "RuleOptions": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsList", + "traits": { + "smithy.api#documentation": "

              Additional options for the rule.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A Suricata rule specification.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesHeaderDetails": { + "type": "structure", + "members": { + "Destination": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

              " + } + }, + "DestinationPort": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The destination port to inspect for. You can specify an individual port, such as 1994. You also can specify a port range, such as 1990:1994. To match with any port, specify ANY.

              " + } + }, + "Direction": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The direction of traffic flow to inspect. If set to ANY, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source. If set to FORWARD, the inspection only matches traffic going from the source to the destination.

              " + } + }, + "Protocol": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The protocol to inspect for. To inspector for all protocols, use IP.

              " + } + }, + "Source": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

              " + } + }, + "SourcePort": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The source port to inspect for. You can specify an individual port, such as 1994. You also can specify a port range, such as 1990:1994. To match with any port, specify ANY.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The inspection criteria for a stateful rule.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsDetails": { + "type": "structure", + "members": { + "Keyword": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              A keyword to look for.

              " + } + }, + "Settings": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesRuleOptionsSettingsList", + "traits": { + "smithy.api#documentation": "

              A list of settings.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A rule option for a stateful rule.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesOptionsDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatefulRulesRuleOptionsSettingsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#NonEmptyString" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleDefinition": { + "type": "structure", + "members": { + "Actions": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action (aws:pass, aws:drop, or aws:forward_to_sfe). You can then add custom actions.

              " + } + }, + "MatchAttributes": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributes", + "traits": { + "smithy.api#documentation": "

              The criteria for Network Firewall to use to inspect an individual packet in a stateless rule inspection.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The definition of the stateless rule.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributes": { + "type": "structure", + "members": { + "DestinationPorts": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList", + "traits": { + "smithy.api#documentation": "

              A list of port ranges to specify the destination ports to inspect for.

              " + } + }, + "Destinations": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationsList", + "traits": { + "smithy.api#documentation": "

              The destination IP addresses and address ranges to inspect for, in CIDR notation.

              " + } + }, + "Protocols": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesProtocolsList", + "traits": { + "smithy.api#documentation": "

              The protocols to inspect for.

              " + } + }, + "SourcePorts": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList", + "traits": { + "smithy.api#documentation": "

              A list of port ranges to specify the source ports to inspect for.

              " + } + }, + "Sources": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcesList", + "traits": { + "smithy.api#documentation": "

              The source IP addresses and address ranges to inspect for, in CIDR notation.

              " + } + }, + "TcpFlags": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList", + "traits": { + "smithy.api#documentation": "

              The TCP flags and masks to inspect for.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Criteria for the stateless rule.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The starting port value for the port range.

              " + } + }, + "ToPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The ending port value for the port range.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A port range to specify the destination ports to inspect for.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPortsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationPorts" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinations": { + "type": "structure", + "members": { + "AddressDefinition": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              An IP address or a block of IP addresses.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A destination IP address or range.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinationsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesDestinations" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesProtocolsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#Integer" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePorts": { + "type": "structure", + "members": { + "FromPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The starting port value for the port range.

              " + } + }, + "ToPort": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              The ending port value for the port range.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A port range to specify the source ports to inspect for.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePortsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcePorts" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSources": { + "type": "structure", + "members": { + "AddressDefinition": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              An IP address or a block of IP addresses.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A source IP addresses and address range to inspect for.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSourcesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesSources" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlags": { + "type": "structure", + "members": { + "Flags": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              Defines the flags from the Masks setting that must be set in order for the packet to match. Flags that are listed must be set. Flags that are not listed must not be set.

              " + } + }, + "Masks": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The set of flags to consider in the inspection. If not specified, then all flags are inspected.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A set of TCP flags and masks to inspect for.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlagsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleMatchAttributesTcpFlags" + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesAndCustomActionsDetails": { + "type": "structure", + "members": { + "CustomActions": { + "target": "com.amazonaws.securityhub#RuleGroupSourceCustomActionsList", + "traits": { + "smithy.api#documentation": "

              Custom actions for the rule group.

              " + } + }, + "StatelessRules": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesList", + "traits": { + "smithy.api#documentation": "

              Stateless rules for the rule group.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Stateless rules and custom actions for a stateless rule group.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesDetails": { + "type": "structure", + "members": { + "Priority": { + "target": "com.amazonaws.securityhub#Integer", + "traits": { + "smithy.api#documentation": "

              Indicates the order in which to run this rule relative to all of the rules in the stateless rule group.

              " + } + }, + "RuleDefinition": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRuleDefinition", + "traits": { + "smithy.api#documentation": "

              Provides the definition of the stateless rule.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A stateless rule in the rule group.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#RuleGroupSourceStatelessRulesDetails" + } + }, + "com.amazonaws.securityhub#RuleGroupVariables": { + "type": "structure", + "members": { + "IpSets": { + "target": "com.amazonaws.securityhub#RuleGroupVariablesIpSetsDetails", + "traits": { + "smithy.api#documentation": "

              A list of IP addresses and address ranges, in CIDR notation.

              " + } + }, + "PortSets": { + "target": "com.amazonaws.securityhub#RuleGroupVariablesPortSetsDetails", + "traits": { + "smithy.api#documentation": "

              A list of port ranges.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Additional settings to use in the specified rules.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupVariablesIpSetsDetails": { + "type": "structure", + "members": { + "Definition": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The list of IP addresses and ranges.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A list of IP addresses and address ranges, in CIDR notation.

              " + } + }, + "com.amazonaws.securityhub#RuleGroupVariablesPortSetsDetails": { + "type": "structure", + "members": { + "Definition": { + "target": "com.amazonaws.securityhub#NonEmptyStringList", + "traits": { + "smithy.api#documentation": "

              The list of port ranges.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              A list of port ranges.

              " + } + }, + "com.amazonaws.securityhub#SecurityGroups": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#NonEmptyString" + } + }, + "com.amazonaws.securityhub#SecurityHubAPIService": { + "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "SecurityHub", + "arnNamespace": "securityhub", + "cloudFormationName": "SecurityHub", + "cloudTrailEventSource": "securityhub.amazonaws.com", + "endpointPrefix": "securityhub" + }, + "aws.auth#sigv4": { + "name": "securityhub" + }, + "aws.protocols#restJson1": {}, + "smithy.api#documentation": "

              Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status\n of your environment based on controls from supported security standards. Security Hub collects\n security data from Amazon Web Services accounts, services, and integrated third-party products and helps\n you analyze security trends in your environment to identify the highest priority security\n issues. For more information about Security Hub, see the Security HubUser\n Guide\n .

              \n

              When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services\n Region that is currently active or in the specific Amazon Web Services Region that you specify in your\n request. Any configuration or settings change that results from the operation is applied\n only to that Region. To make the same change in other Regions, execute the same command for\n each Region to apply the change to.

              \n

              For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of\n the member account with the administrator account is created only in the us-west-2\n Region. Security Hub must be enabled for the member account in the same Region that the invitation\n was sent from.

              \n

              The following throttling limits apply to using Security Hub API operations.

              \n
                \n
              • \n

                \n BatchEnableStandards - RateLimit of 1\n request per second, BurstLimit of 1 request per second.

                \n
              • \n
              • \n

                \n GetFindings - RateLimit of 3 requests per second.\n BurstLimit of 6 requests per second.

                \n
              • \n
              • \n

                \n UpdateFindings - RateLimit of 1 request per\n second. BurstLimit of 5 requests per second.

                \n
              • \n
              • \n

                \n UpdateStandardsControl - RateLimit of\n 1 request per second, BurstLimit of 5 requests per second.

                \n
              • \n
              • \n

                All other operations - RateLimit of 10 requests per second.\n BurstLimit of 30 requests per second.

                \n
              • \n
              ", + "smithy.api#title": "AWS SecurityHub" + }, + "version": "2018-10-26", + "operations": [ + { + "target": "com.amazonaws.securityhub#AcceptAdministratorInvitation" + }, + { + "target": "com.amazonaws.securityhub#AcceptInvitation" }, { "target": "com.amazonaws.securityhub#BatchDisableStandards" @@ -18709,22 +19748,7 @@ { "target": "com.amazonaws.securityhub#UpdateStandardsControl" } - ], - "traits": { - "aws.api#service": { - "sdkId": "SecurityHub", - "arnNamespace": "securityhub", - "cloudFormationName": "SecurityHub", - "cloudTrailEventSource": "securityhub.amazonaws.com", - "endpointPrefix": "securityhub" - }, - "aws.auth#sigv4": { - "name": "securityhub" - }, - "aws.protocols#restJson1": {}, - "smithy.api#documentation": "

              Security Hub provides you with a comprehensive view of the security state of your Amazon Web Services environment and resources. It also provides you with the readiness status\n of your environment based on controls from supported security standards. Security Hub collects\n security data from Amazon Web Services accounts, services, and integrated third-party products and helps\n you analyze security trends in your environment to identify the highest priority security\n issues. For more information about Security Hub, see the Security HubUser\n Guide\n .

              \n

              When you use operations in the Security Hub API, the requests are executed only in the Amazon Web Services\n Region that is currently active or in the specific Amazon Web Services Region that you specify in your\n request. Any configuration or settings change that results from the operation is applied\n only to that Region. To make the same change in other Regions, execute the same command for\n each Region to apply the change to.

              \n

              For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of\n the member account with the administrator account is created only in the us-west-2\n Region. Security Hub must be enabled for the member account in the same Region that the invitation\n was sent from.

              \n

              The following throttling limits apply to using Security Hub API operations.

              \n
                \n
              • \n

                \n BatchEnableStandards - RateLimit of 1\n request per second, BurstLimit of 1 request per second.

                \n
              • \n
              • \n

                \n GetFindings - RateLimit of 3 requests per second.\n BurstLimit of 6 requests per second.

                \n
              • \n
              • \n

                \n UpdateFindings - RateLimit of 1 request per\n second. BurstLimit of 5 requests per second.

                \n
              • \n
              • \n

                \n UpdateStandardsControl - RateLimit of\n 1 request per second, BurstLimit of 5 requests per second.

                \n
              • \n
              • \n

                All other operations - RateLimit of 10 requests per second.\n BurstLimit of 30 requests per second.

                \n
              • \n
              ", - "smithy.api#title": "AWS SecurityHub" - } + ] }, "com.amazonaws.securityhub#SensitiveDataDetections": { "type": "structure", @@ -19146,6 +20170,21 @@ ] } }, + "com.amazonaws.securityhub#StandardsStatusReason": { + "type": "structure", + "members": { + "StatusReasonCode": { + "target": "com.amazonaws.securityhub#StatusReasonCode", + "traits": { + "smithy.api#documentation": "

              The reason code that represents the reason for the current status of a standard subscription.

              ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

              The reason for the current status of a standard subscription.

              " + } + }, "com.amazonaws.securityhub#StandardsSubscription": { "type": "structure", "members": { @@ -19176,6 +20215,12 @@ "smithy.api#documentation": "

              The status of the standard subscription.

              \n

              The status values are as follows:

              \n
                \n
              • \n

                \n PENDING - Standard is in the process of being enabled.

                \n
              • \n
              • \n

                \n READY - Standard is enabled.

                \n
              • \n
              • \n

                \n INCOMPLETE - Standard could not be enabled completely. Some controls may not be available.

                \n
              • \n
              • \n

                \n DELETING - Standard is in the process of being disabled.

                \n
              • \n
              • \n

                \n FAILED - Standard could not be disabled.

                \n
              • \n
              ", "smithy.api#required": {} } + }, + "StandardsStatusReason": { + "target": "com.amazonaws.securityhub#StandardsStatusReason", + "traits": { + "smithy.api#documentation": "

              The reason for the current status.

              " + } } }, "traits": { @@ -19233,6 +20278,54 @@ "target": "com.amazonaws.securityhub#StandardsSubscription" } }, + "com.amazonaws.securityhub#StatelessCustomActionDefinition": { + "type": "structure", + "members": { + "PublishMetricAction": { + "target": "com.amazonaws.securityhub#StatelessCustomPublishMetricAction", + "traits": { + "smithy.api#documentation": "

              Information about metrics to publish to CloudWatch.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              The definition of a custom action that can be used for stateless packet handling.

              " + } + }, + "com.amazonaws.securityhub#StatelessCustomPublishMetricAction": { + "type": "structure", + "members": { + "Dimensions": { + "target": "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimensionsList", + "traits": { + "smithy.api#documentation": "

              Defines CloudWatch dimension values to publish.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Information about metrics to publish to CloudWatch.

              " + } + }, + "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimension": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.securityhub#NonEmptyString", + "traits": { + "smithy.api#documentation": "

              The value to use for the custom metric dimension.

              " + } + } + }, + "traits": { + "smithy.api#documentation": "

              Defines a CloudWatch dimension value to publish.

              " + } + }, + "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimensionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.securityhub#StatelessCustomPublishMetricActionDimension" + } + }, "com.amazonaws.securityhub#StatusReason": { "type": "structure", "members": { @@ -19254,6 +20347,21 @@ "smithy.api#documentation": "

              Provides additional context for the value of Compliance.Status.

              " } }, + "com.amazonaws.securityhub#StatusReasonCode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "NO_AVAILABLE_CONFIGURATION_RECORDER", + "name": "NO_AVAILABLE_CONFIGURATION_RECORDER" + }, + { + "value": "INTERNAL_ERROR", + "name": "INTERNAL_ERROR" + } + ] + } + }, "com.amazonaws.securityhub#StatusReasonsList": { "type": "list", "member": { diff --git a/codegen/sdk-codegen/aws-models/sms.json b/codegen/sdk-codegen/aws-models/sms.json index c3a2fcb390d1..53f507822ba6 100644 --- a/codegen/sdk-codegen/aws-models/sms.json +++ b/codegen/sdk-codegen/aws-models/sms.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.sms#AWSServerMigrationService_V2016_10_24": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "SMS", + "arnNamespace": "sms", + "cloudFormationName": "SMS", + "cloudTrailEventSource": "sms.amazonaws.com", + "endpointPrefix": "sms" + }, + "aws.auth#sigv4": { + "name": "sms" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "\n

              \n Product update\n

              \n

              As of March 31, 2022, Amazon Web Services will discontinue Server Migration Service (Amazon Web Services SMS).\n Going forward, we recommend Amazon Web Services Application Migration Service (Amazon Web Services MGN) as the primary migration\n service for lift-and-shift migrations.

              \n

              You can initiate new migration jobs in Server Migration Service until January 1, 2022.\n Complete these active migration projects by March 31, 2022. For more information, see\n When\n to Choose AWS Application Migration Service.

              \n
              \n \n

              Server Migration Service (Server Migration Service) makes it easier and faster for you to migrate your\n on-premises workloads to Amazon Web Services. To learn more about Server Migration Service, see the following \n resources:

              \n ", + "smithy.api#title": "AWS Server Migration Service", + "smithy.api#xmlNamespace": { + "uri": "http://ec2.amazon.com/servermigration/2016-10-24/" + } + }, "version": "2016-10-24", "operations": [ { @@ -138,25 +156,7 @@ { "target": "com.amazonaws.sms#UpdateReplicationJob" } - ], - "traits": { - "aws.api#service": { - "sdkId": "SMS", - "arnNamespace": "sms", - "cloudFormationName": "SMS", - "cloudTrailEventSource": "sms.amazonaws.com", - "endpointPrefix": "sms" - }, - "aws.auth#sigv4": { - "name": "sms" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Server Migration Service\n

              AWS Server Migration Service (AWS SMS) makes it easier and faster for you to migrate your\n on-premises workloads to AWS. To learn more about AWS SMS, see the following \n resources:

              \n ", - "smithy.api#title": "AWS Server Migration Service", - "smithy.api#xmlNamespace": { - "uri": "http://ec2.amazon.com/servermigration/2016-10-24/" - } - } + ] }, "com.amazonaws.sms#AmiId": { "type": "string" @@ -492,7 +492,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the service role in the customer's account used by AWS SMS.

              " + "smithy.api#documentation": "

              The name of the service role in the customer's account used by Server Migration Service.

              " } }, "totalServerGroups": { @@ -789,7 +789,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the service role in the customer's account to be used by AWS SMS.

              " + "smithy.api#documentation": "

              The name of the service role in the customer's account to be used by Server Migration Service.

              " } }, "clientToken": { @@ -873,7 +873,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a replication job. The replication job schedules periodic replication runs\n to replicate your server to AWS. Each replication run creates an Amazon Machine Image\n (AMI).

              " + "smithy.api#documentation": "

              Creates a replication job. The replication job schedules periodic replication runs\n to replicate your server to Amazon Web Services. Each replication run creates an Amazon Machine Image\n (AMI).

              " } }, "com.amazonaws.sms#CreateReplicationJobRequest": { @@ -914,7 +914,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the IAM role to be used by the AWS SMS.

              " + "smithy.api#documentation": "

              The name of the IAM role to be used by the Server Migration Service.

              " } }, "description": { @@ -980,7 +980,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes the specified application. Optionally deletes the launched stack associated with\n the application and all AWS SMS replication jobs for servers in the application.

              " + "smithy.api#documentation": "

              Deletes the specified application. Optionally deletes the launched stack associated with\n the application and all Server Migration Service replication jobs for servers in the application.

              " } }, "com.amazonaws.sms#DeleteAppLaunchConfiguration": { @@ -1169,7 +1169,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Deletes the specified replication job.

              \n

              After you delete a replication job, there are no further replication runs. AWS\n deletes the contents of the Amazon S3 bucket used to store AWS SMS artifacts. The AMIs created\n by the replication runs are not deleted.

              " + "smithy.api#documentation": "

              Deletes the specified replication job.

              \n

              After you delete a replication job, there are no further replication runs. Amazon Web Services\n deletes the contents of the Amazon S3 bucket used to store Server Migration Service artifacts. The AMIs created\n by the replication runs are not deleted.

              " } }, "com.amazonaws.sms#DeleteReplicationJobRequest": { @@ -1248,7 +1248,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Disassociates the specified connector from AWS SMS.

              \n

              After you disassociate a connector, it is no longer available to support\n replication jobs.

              " + "smithy.api#documentation": "

              Disassociates the specified connector from Server Migration Service.

              \n

              After you disassociate a connector, it is no longer available to support\n replication jobs.

              " } }, "com.amazonaws.sms#DisassociateConnectorRequest": { @@ -1275,6 +1275,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "DryRunOperationException", + "httpResponseCode": 412 + }, "smithy.api#documentation": "

              The user has the required permissions, so the request would have succeeded, \n but a dry run was performed.

              ", "smithy.api#error": "client", "smithy.api#httpError": 412 @@ -1402,7 +1406,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Generates an AWS CloudFormation template based on the current launch configuration and writes it to\n an Amazon S3 object in the customer’s Amazon S3 bucket.

              " + "smithy.api#documentation": "

              Generates an CloudFormation template based on the current launch configuration and writes it to\n an Amazon S3 object in the customer’s Amazon S3 bucket.

              " } }, "com.amazonaws.sms#GenerateTemplateRequest": { @@ -1411,13 +1415,13 @@ "appId": { "target": "com.amazonaws.sms#AppId", "traits": { - "smithy.api#documentation": "

              The ID of the application associated with the AWS CloudFormation template.

              " + "smithy.api#documentation": "

              The ID of the application associated with the CloudFormation template.

              " } }, "templateFormat": { "target": "com.amazonaws.sms#OutputFormat", "traits": { - "smithy.api#documentation": "

              The format for generating the AWS CloudFormation template.

              " + "smithy.api#documentation": "

              The format for generating the CloudFormation template.

              " } } } @@ -1514,7 +1518,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the service role in the customer's account that AWS CloudFormation uses to launch the\n application.

              " + "smithy.api#documentation": "

              The name of the service role in the customer's account that CloudFormation uses to launch the\n application.

              " } }, "autoLaunch": { @@ -1740,7 +1744,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Describes the connectors registered with the AWS SMS.

              ", + "smithy.api#documentation": "

              Describes the connectors registered with the Server Migration Service.

              ", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -2038,7 +2042,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Allows application import from AWS Migration Hub.

              " + "smithy.api#documentation": "

              Allows application import from Migration Hub.

              " } }, "com.amazonaws.sms#ImportAppCatalogRequest": { @@ -2047,7 +2051,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the service role. If you omit this parameter, we create a service-linked role\n for AWS Migration Hub in your account. Otherwise, the role that you provide must have the policy\n and trust policy described in the AWS Migration Hub User Guide.

              " + "smithy.api#documentation": "

              The name of the service role. If you omit this parameter, we create a service-linked role\n for Migration Hub in your account. Otherwise, the role that you provide must have the policy\n and trust policy described in the Migration Hub User Guide.

              " } } } @@ -2099,7 +2103,7 @@ "com.amazonaws.sms#InstanceId": { "type": "string", "traits": { - "smithy.api#pattern": "(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)" + "smithy.api#pattern": "^(^i-(\\w{8}|\\w{17})$)|(^mi-\\w{17}$)$" } }, "com.amazonaws.sms#InstanceType": { @@ -2113,6 +2117,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InternalError", + "httpResponseCode": 500 + }, "smithy.api#documentation": "

              An internal error occurred.

              ", "smithy.api#error": "server", "smithy.api#httpError": 500 @@ -2126,6 +2134,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "InvalidParameter", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

              A specified parameter is not valid.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2163,7 +2175,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Launches the specified application as a stack in AWS CloudFormation.

              " + "smithy.api#documentation": "

              Launches the specified application as a stack in CloudFormation.

              " } }, "com.amazonaws.sms#LaunchAppRequest": { @@ -2317,6 +2329,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "MissingRequiredParameter", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

              A required parameter is missing.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2333,6 +2349,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "NoConnectorsAvailable", + "httpResponseCode": 430 + }, "smithy.api#documentation": "

              There are no connectors available.

              ", "smithy.api#error": "client", "smithy.api#httpError": 430 @@ -2400,7 +2420,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Provides information to AWS SMS about whether application validation is successful.

              " + "smithy.api#documentation": "

              Provides information to Server Migration Service about whether application validation is successful.

              " } }, "com.amazonaws.sms#NotifyAppValidationOutputRequest": { @@ -2439,6 +2459,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "OperationNotPermitted", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

              This operation is not allowed.

              ", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -2500,7 +2524,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of service role in the customer's account that AWS CloudFormation uses to launch the\n application.

              " + "smithy.api#documentation": "

              The name of service role in the customer's account that CloudFormation uses to launch the\n application.

              " } }, "autoLaunch": { @@ -2688,7 +2712,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the IAM role to be used by AWS SMS.

              " + "smithy.api#documentation": "

              The name of the IAM role to be used by Server Migration Service.

              " } }, "latestAmiId": { @@ -2752,6 +2776,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ReplicationJobAlreadyExists", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

              The specified replication job already exists.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -2777,6 +2805,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ReplicationJobNotFound", + "httpResponseCode": 404 + }, "smithy.api#documentation": "

              The specified replication job does not exist.

              ", "smithy.api#error": "client", "smithy.api#httpError": 404 @@ -2915,6 +2947,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ReplicationRunLimitExceeded", + "httpResponseCode": 429 + }, "smithy.api#documentation": "

              You have exceeded the number of on-demand replication runs you can request in a\n 24-hour period.

              ", "smithy.api#error": "client", "smithy.api#httpError": 429 @@ -3090,7 +3126,7 @@ "command": { "target": "com.amazonaws.sms#Command", "traits": { - "smithy.api#documentation": "

              The command to run the validation script

              " + "smithy.api#documentation": "

              The command to run the validation script.

              " } }, "executionTimeoutSeconds": { @@ -3174,6 +3210,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "ServerCannotBeReplicated", + "httpResponseCode": 400 + }, "smithy.api#documentation": "

              The specified server cannot be replicated.

              ", "smithy.api#error": "client", "smithy.api#httpError": 400 @@ -3343,7 +3383,7 @@ "logicalId": { "target": "com.amazonaws.sms#LogicalId", "traits": { - "smithy.api#documentation": "

              The logical ID of the server in the AWS CloudFormation template.

              " + "smithy.api#documentation": "

              The logical ID of the server in the CloudFormation template.

              " } }, "vpc": { @@ -3829,6 +3869,10 @@ "type": "structure", "members": {}, "traits": { + "aws.protocols#awsQueryError": { + "code": "TemporarilyUnavailable", + "httpResponseCode": 503 + }, "smithy.api#documentation": "

              The service is temporarily unavailable.

              ", "smithy.api#error": "server", "smithy.api#httpError": 503 @@ -3901,6 +3945,10 @@ } }, "traits": { + "aws.protocols#awsQueryError": { + "code": "UnauthorizedOperation", + "httpResponseCode": 403 + }, "smithy.api#documentation": "

              You lack permissions needed to perform this operation. Check your IAM policies,\n and ensure that you are using the correct access keys.

              ", "smithy.api#error": "client", "smithy.api#httpError": 403 @@ -3959,7 +4007,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the service role in the customer's account used by AWS SMS.

              " + "smithy.api#documentation": "

              The name of the service role in the customer's account used by Server Migration Service.

              " } }, "serverGroups": { @@ -4068,7 +4116,7 @@ "roleName": { "target": "com.amazonaws.sms#RoleName", "traits": { - "smithy.api#documentation": "

              The name of the IAM role to be used by AWS SMS.

              " + "smithy.api#documentation": "

              The name of the IAM role to be used by Server Migration Service.

              " } }, "description": { diff --git a/codegen/sdk-codegen/aws-models/support.json b/codegen/sdk-codegen/aws-models/support.json index 03cad200c962..31166cbe4727 100644 --- a/codegen/sdk-codegen/aws-models/support.json +++ b/codegen/sdk-codegen/aws-models/support.json @@ -31,6 +31,24 @@ "shapes": { "com.amazonaws.support#AWSSupport_20130415": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "Support", + "arnNamespace": "support", + "cloudFormationName": "Support", + "cloudTrailEventSource": "support.amazonaws.com", + "endpointPrefix": "support" + }, + "aws.auth#sigv4": { + "name": "support" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "Amazon Web Services Support\n

              The Amazon Web Services Support API Reference is intended for programmers who need detailed\n information about the Amazon Web Services Support operations and data types. You can use the API to manage\n your support cases programmatically. The Amazon Web Services Support API uses HTTP methods that return\n results in JSON format.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              \n

              The Amazon Web Services Support service also exposes a set of Trusted Advisor features. You can\n retrieve a list of checks and their descriptions, get check results, specify checks to\n refresh, and get the refresh status of checks.

              \n

              The following list describes the Amazon Web Services Support case management operations:

              \n \n

              The following list describes the operations available from the Amazon Web Services Support service for\n Trusted Advisor:

              \n \n

              For authentication of requests, Amazon Web Services Support uses Signature Version 4 Signing\n Process.

              \n

              See About the\n Amazon Web Services Support API in the Amazon Web Services Support User Guide for\n information about how to use this service to create and manage your support cases, and\n how to call Trusted Advisor for results of checks on your resources.

              ", + "smithy.api#title": "AWS Support", + "smithy.api#xmlNamespace": { + "uri": "http://support.amazonaws.com/doc/2013-04-15/" + } + }, "version": "2013-04-15", "operations": [ { @@ -75,25 +93,7 @@ { "target": "com.amazonaws.support#ResolveCase" } - ], - "traits": { - "aws.api#service": { - "sdkId": "Support", - "arnNamespace": "support", - "cloudFormationName": "Support", - "cloudTrailEventSource": "support.amazonaws.com", - "endpointPrefix": "support" - }, - "aws.auth#sigv4": { - "name": "support" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "AWS Support\n

              The AWS Support API Reference is intended for programmers who need detailed\n information about the AWS Support operations and data types. You can use the API to manage\n your support cases programmatically. The AWS Support API uses HTTP methods that return\n results in JSON format.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              \n

              The AWS Support service also exposes a set of AWS Trusted Advisor features. You can\n retrieve a list of checks and their descriptions, get check results, specify checks to\n refresh, and get the refresh status of checks.

              \n

              The following list describes the AWS Support case management operations:

              \n \n

              The following list describes the operations available from the AWS Support service for\n Trusted Advisor:

              \n \n

              For authentication of requests, AWS Support uses Signature Version 4 Signing\n Process.

              \n

              See About the\n AWS Support API in the AWS Support User Guide for\n information about how to use this service to create and manage your support cases, and\n how to call Trusted Advisor for results of checks on your resources.

              ", - "smithy.api#title": "AWS Support", - "smithy.api#xmlNamespace": { - "uri": "http://support.amazonaws.com/doc/2013-04-15/" - } - } + ] }, "com.amazonaws.support#AddAttachmentsToSet": { "type": "operation", @@ -121,7 +121,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Adds one or more attachments to an attachment set.

              \n

              An attachment set is a temporary container for attachments that you add to a case or\n case communication. The set is available for 1 hour after it's created. The\n expiryTime returned in the response is when the set expires.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Adds one or more attachments to an attachment set.

              \n

              An attachment set is a temporary container for attachments that you add to a case or\n case communication. The set is available for 1 hour after it's created. The\n expiryTime returned in the response is when the set expires.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#AddAttachmentsToSetRequest": { @@ -185,7 +185,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Adds additional customer communication to an AWS Support case. Use the caseId\n parameter to identify the case to which to add communication. You can list a set of\n email addresses to copy on the communication by using the ccEmailAddresses\n parameter. The communicationBody value contains the text of the\n communication.

              \n \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Adds additional customer communication to an Amazon Web Services Support case. Use the caseId\n parameter to identify the case to which to add communication. You can list a set of\n email addresses to copy on the communication by using the ccEmailAddresses\n parameter. The communicationBody value contains the text of the\n communication.

              \n \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#AddCommunicationToCaseRequest": { @@ -401,13 +401,13 @@ "displayId": { "target": "com.amazonaws.support#DisplayId", "traits": { - "smithy.api#documentation": "

              The ID displayed for the case in the AWS Support Center. This is a numeric\n string.

              " + "smithy.api#documentation": "

              The ID displayed for the case in the Amazon Web Services Support Center. This is a numeric\n string.

              " } }, "subject": { "target": "com.amazonaws.support#Subject", "traits": { - "smithy.api#documentation": "

              The subject line for the case in the AWS Support Center.

              " + "smithy.api#documentation": "

              The subject line for the case in the Amazon Web Services Support Center.

              " } }, "status": { @@ -419,7 +419,7 @@ "serviceCode": { "target": "com.amazonaws.support#ServiceCode", "traits": { - "smithy.api#documentation": "

              The code for the AWS service. You can get a list of codes and the corresponding\n service names by calling DescribeServices.

              " + "smithy.api#documentation": "

              The code for the Amazon Web Services service. You can get a list of codes and the corresponding\n service names by calling DescribeServices.

              " } }, "categoryCode": { @@ -443,13 +443,13 @@ "timeCreated": { "target": "com.amazonaws.support#TimeCreated", "traits": { - "smithy.api#documentation": "

              The time that the case was created in the AWS Support Center.

              " + "smithy.api#documentation": "

              The time that the case was created in the Amazon Web Services Support Center.

              " } }, "recentCommunications": { "target": "com.amazonaws.support#RecentCaseCommunications", "traits": { - "smithy.api#documentation": "

              The five most recent communications between you and AWS Support Center, including the\n IDs of any attachments to the communications. Also includes a nextToken\n that you can use to retrieve earlier communications.

              " + "smithy.api#documentation": "

              The five most recent communications between you and Amazon Web Services Support Center, including the\n IDs of any attachments to the communications. Also includes a nextToken\n that you can use to retrieve earlier communications.

              " } }, "ccEmailAddresses": { @@ -461,12 +461,12 @@ "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

              The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " + "smithy.api#documentation": "

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " } } }, "traits": { - "smithy.api#documentation": "

              A JSON-formatted object that contains the metadata for a support case. It is contained\n in the response from a DescribeCases request. CaseDetails contains the following fields:

              \n
                \n
              • \n

                \n caseId - The support case ID requested or\n returned in the call. The case ID is an alphanumeric string formatted as shown\n in this example:\n case-12345678910-2013-c4c1d2bf33c5cf47.

                \n
              • \n
              • \n

                \n categoryCode - The category of problem for the\n support case. Corresponds to the CategoryCode values returned by a call to\n DescribeServices.

                \n
              • \n
              • \n

                \n displayId - The identifier for the case on pages\n in the AWS Support Center.

                \n
              • \n
              • \n

                \n language - The ISO 639-1 code for the language\n in which AWS provides support. AWS Support currently supports English (\"en\") and\n Japanese (\"ja\"). Language parameters must be passed explicitly for operations\n that take them.

                \n
              • \n
              • \n

                \n nextToken - A resumption point for\n pagination.

                \n
              • \n
              • \n

                \n recentCommunications - One or more Communication objects. Fields of these objects are\n attachments, body, caseId,\n submittedBy, and timeCreated.

                \n
              • \n
              • \n

                \n serviceCode - The identifier for the AWS service\n that corresponds to the service code defined in the call to DescribeServices.

                \n
              • \n
              • \n

                \n severityCode - The severity code assigned to the\n case. Contains one of the values returned by the call to DescribeSeverityLevels. The possible values are:\n low, normal, high,\n urgent, and critical.

                \n
              • \n
              • \n

                \n status - The status of the case in the AWS Support Center. Valid values:

                \n
                  \n
                • \n

                  \n opened\n

                  \n
                • \n
                • \n

                  \n pending-customer-action\n

                  \n
                • \n
                • \n

                  \n reopened\n

                  \n
                • \n
                • \n

                  \n resolved\n

                  \n
                • \n
                • \n

                  \n unassigned\n

                  \n
                • \n
                • \n

                  \n work-in-progress\n

                  \n
                • \n
                \n
              • \n
              • \n

                \n subject - The subject line of the case.

                \n
              • \n
              • \n

                \n submittedBy - The email address of the account\n that submitted the case.

                \n
              • \n
              • \n

                \n timeCreated - The time the case was created, in\n ISO-8601 format.

                \n
              • \n
              " + "smithy.api#documentation": "

              A JSON-formatted object that contains the metadata for a support case. It is contained\n in the response from a DescribeCases request. CaseDetails contains the following fields:

              \n
                \n
              • \n

                \n caseId - The support case ID requested or\n returned in the call. The case ID is an alphanumeric string formatted as shown\n in this example:\n case-12345678910-2013-c4c1d2bf33c5cf47.

                \n
              • \n
              • \n

                \n categoryCode - The category of problem for the\n support case. Corresponds to the CategoryCode values returned by a call to\n DescribeServices.

                \n
              • \n
              • \n

                \n displayId - The identifier for the case on pages\n in the Amazon Web Services Support Center.

                \n
              • \n
              • \n

                \n language - The ISO 639-1 code for the language\n in which Amazon Web Services provides support. Amazon Web Services Support currently supports English (\"en\") and\n Japanese (\"ja\"). Language parameters must be passed explicitly for operations\n that take them.

                \n
              • \n
              • \n

                \n nextToken - A resumption point for\n pagination.

                \n
              • \n
              • \n

                \n recentCommunications - One or more Communication objects. Fields of these objects are\n attachments, body, caseId,\n submittedBy, and timeCreated.

                \n
              • \n
              • \n

                \n serviceCode - The identifier for the Amazon Web Services service\n that corresponds to the service code defined in the call to DescribeServices.

                \n
              • \n
              • \n

                \n severityCode - The severity code assigned to the\n case. Contains one of the values returned by the call to DescribeSeverityLevels. The possible values are:\n low, normal, high,\n urgent, and critical.

                \n
              • \n
              • \n

                \n status - The status of the case in the Amazon Web Services Support Center. Valid values:

                \n
                  \n
                • \n

                  \n opened\n

                  \n
                • \n
                • \n

                  \n pending-customer-action\n

                  \n
                • \n
                • \n

                  \n reopened\n

                  \n
                • \n
                • \n

                  \n resolved\n

                  \n
                • \n
                • \n

                  \n unassigned\n

                  \n
                • \n
                • \n

                  \n work-in-progress\n

                  \n
                • \n
                \n
              • \n
              • \n

                \n subject - The subject line of the case.

                \n
              • \n
              • \n

                \n submittedBy - The email address of the account\n that submitted the case.

                \n
              • \n
              • \n

                \n timeCreated - The time the case was created, in\n ISO-8601 format.

                \n
              • \n
              " } }, "com.amazonaws.support#CaseId": { @@ -525,7 +525,7 @@ } }, "traits": { - "smithy.api#documentation": "

              A JSON-formatted name/value pair that represents the category name and category code\n of the problem, selected from the DescribeServices response for each\n AWS service.

              " + "smithy.api#documentation": "

              A JSON-formatted name/value pair that represents the category name and category code\n of the problem, selected from the DescribeServices response for each\n Amazon Web Services service.

              " } }, "com.amazonaws.support#CategoryCode": { @@ -561,13 +561,13 @@ "body": { "target": "com.amazonaws.support#CommunicationBody", "traits": { - "smithy.api#documentation": "

              The text of the communication between the customer and AWS Support.

              " + "smithy.api#documentation": "

              The text of the communication between the customer and Amazon Web Services Support.

              " } }, "submittedBy": { "target": "com.amazonaws.support#SubmittedBy", "traits": { - "smithy.api#documentation": "

              The identity of the account that submitted, or responded to, the support case.\n Customer entries include the role or IAM user as well as the email address. For example,\n \"AdminRole (Role) . Entries from the AWS Support team display\n \"Amazon Web Services,\" and don't show an email address.\n

              " + "smithy.api#documentation": "

              The identity of the account that submitted, or responded to, the support case.\n Customer entries include the role or IAM user as well as the email address. For example,\n \"AdminRole (Role) . Entries from the Amazon Web Services Support team display\n \"Amazon Web Services,\" and don't show an email address.\n

              " } }, "timeCreated": { @@ -619,7 +619,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Creates a case in the AWS Support Center. This operation is similar to how you create a case\n in the AWS Support Center Create\n Case page.

              \n

              The AWS Support API doesn't support requesting service limit increases. You can submit a\n service limit increase in the following ways:

              \n \n

              A successful CreateCase request returns an AWS Support case number. You can use\n the DescribeCases operation and specify the case number to get\n existing AWS Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or\n attachments to an existing case.

              \n

              The caseId is separate from the displayId that appears in\n the AWS Support Center. Use the DescribeCases operation to get the displayId.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Creates a case in the Amazon Web Services Support Center. This operation is similar to how you create a case\n in the Amazon Web Services Support Center Create\n Case page.

              \n

              The Amazon Web Services Support API doesn't support requesting service limit increases. You can submit a\n service limit increase in the following ways:

              \n \n

              A successful CreateCase request returns an Amazon Web Services Support case number. You can use\n the DescribeCases operation and specify the case number to get\n existing Amazon Web Services Support cases. After you create a case, use the AddCommunicationToCase operation to add additional communication or\n attachments to an existing case.

              \n

              The caseId is separate from the displayId that appears in\n the Amazon Web Services Support Center. Use the DescribeCases operation to get the displayId.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#CreateCaseRequest": { @@ -628,45 +628,45 @@ "subject": { "target": "com.amazonaws.support#Subject", "traits": { - "smithy.api#documentation": "

              The title of the support case. The title appears in the Subject field on the AWS Support Center Create Case page.

              ", + "smithy.api#documentation": "

              The title of the support case. The title appears in the Subject field on the Amazon Web Services Support Center Create Case page.

              ", "smithy.api#required": {} } }, "serviceCode": { "target": "com.amazonaws.support#ServiceCode", "traits": { - "smithy.api#documentation": "

              The code for the AWS service. You can use the DescribeServices\n operation to get the possible serviceCode values.

              " + "smithy.api#documentation": "

              The code for the Amazon Web Services service. You can use the DescribeServices\n operation to get the possible serviceCode values.

              " } }, "severityCode": { "target": "com.amazonaws.support#SeverityCode", "traits": { - "smithy.api#documentation": "

              A value that indicates the urgency of the case. This value determines the response\n time according to your service level agreement with AWS Support. You can use the DescribeSeverityLevels operation to get the possible values for\n severityCode.

              \n

              For more information, see SeverityLevel and Choosing a\n Severity in the AWS Support User Guide.

              \n \n

              The availability of severity levels depends on the support plan for the AWS\n account.

              \n
              " + "smithy.api#documentation": "

              A value that indicates the urgency of the case. This value determines the response\n time according to your service level agreement with Amazon Web Services Support. You can use the DescribeSeverityLevels operation to get the possible values for\n severityCode.

              \n

              For more information, see SeverityLevel and Choosing a\n Severity in the Amazon Web Services Support User Guide.

              \n \n

              The availability of severity levels depends on the support plan for the\n Amazon Web Services account.

              \n
              " } }, "categoryCode": { "target": "com.amazonaws.support#CategoryCode", "traits": { - "smithy.api#documentation": "

              The category of problem for the support case. You also use the DescribeServices operation to get the category code for a service. Each\n AWS service defines its own set of category codes.

              " + "smithy.api#documentation": "

              The category of problem for the support case. You also use the DescribeServices operation to get the category code for a service. Each\n Amazon Web Services service defines its own set of category codes.

              " } }, "communicationBody": { "target": "com.amazonaws.support#CommunicationBody", "traits": { - "smithy.api#documentation": "

              The communication body text that describes the issue. This text appears in the\n Description field on the AWS Support Center Create Case page.

              ", + "smithy.api#documentation": "

              The communication body text that describes the issue. This text appears in the\n Description field on the Amazon Web Services Support Center Create Case page.

              ", "smithy.api#required": {} } }, "ccEmailAddresses": { "target": "com.amazonaws.support#CcEmailAddressList", "traits": { - "smithy.api#documentation": "

              A list of email addresses that AWS Support copies on case correspondence. AWS Support\n identifies the account that creates the case when you specify your AWS credentials in an\n HTTP POST method or use the AWS SDKs.\n

              " + "smithy.api#documentation": "

              A list of email addresses that Amazon Web Services Support copies on case correspondence. Amazon Web Services Support\n identifies the account that creates the case when you specify your Amazon Web Services credentials in an\n HTTP POST method or use the Amazon Web Services SDKs.\n

              " } }, "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

              The language in which AWS Support handles the case. You must specify the ISO 639-1\n code for the language parameter if you want support in that language.\n Currently, English (\"en\") and Japanese (\"ja\") are supported.

              " + "smithy.api#documentation": "

              The language in which Amazon Web Services Support handles the case. You must specify the ISO 639-1\n code for the language parameter if you want support in that language.\n Currently, English (\"en\") and Japanese (\"ja\") are supported.

              " } }, "issueType": { @@ -720,7 +720,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the attachment that has the specified ID. Attachments can include screenshots,\n error logs, or other files that describe your issue. Attachment IDs are generated by the\n case management system when you add an attachment to a case or case communication.\n Attachment IDs are returned in the AttachmentDetails objects that are\n returned by the DescribeCommunications operation.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns the attachment that has the specified ID. Attachments can include screenshots,\n error logs, or other files that describe your issue. Attachment IDs are generated by the\n case management system when you add an attachment to a case or case communication.\n Attachment IDs are returned in the AttachmentDetails objects that are\n returned by the DescribeCommunications operation.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeAttachmentLimitExceeded": { @@ -781,7 +781,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns a list of cases that you specify by passing one or more case IDs. You can use\n the afterTime and beforeTime parameters to filter the cases by\n date. You can set values for the includeResolvedCases and\n includeCommunications parameters to specify how much information to\n return.

              \n

              The response returns the following in JSON format:

              \n
                \n
              • \n

                One or more CaseDetails data types.

                \n
              • \n
              • \n

                One or more nextToken values, which specify where to paginate the\n returned records represented by the CaseDetails objects.

                \n
              • \n
              \n

              Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request might return an error.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              ", + "smithy.api#documentation": "

              Returns a list of cases that you specify by passing one or more case IDs. You can use\n the afterTime and beforeTime parameters to filter the cases by\n date. You can set values for the includeResolvedCases and\n includeCommunications parameters to specify how much information to\n return.

              \n

              The response returns the following in JSON format:

              \n
                \n
              • \n

                One or more CaseDetails data types.

                \n
              • \n
              • \n

                One or more nextToken values, which specify where to paginate the\n returned records represented by the CaseDetails objects.

                \n
              • \n
              \n

              Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request might return an error.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              ", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -802,7 +802,7 @@ "displayId": { "target": "com.amazonaws.support#DisplayId", "traits": { - "smithy.api#documentation": "

              The ID displayed for a case in the AWS Support Center user interface.

              " + "smithy.api#documentation": "

              The ID displayed for a case in the Amazon Web Services Support Center user interface.

              " } }, "afterTime": { @@ -838,7 +838,7 @@ "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

              The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " + "smithy.api#documentation": "

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " } }, "includeCommunications": { @@ -886,7 +886,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns communications and attachments for one or more support cases. Use the\n afterTime and beforeTime parameters to filter by date. You\n can use the caseId parameter to restrict the results to a specific\n case.

              \n

              Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request for data might cause an error.

              \n

              You can use the maxResults and nextToken parameters to\n control the pagination of the results. Set maxResults to the number of\n cases that you want to display on each page, and use nextToken to specify\n the resumption of pagination.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              ", + "smithy.api#documentation": "

              Returns communications and attachments for one or more support cases. Use the\n afterTime and beforeTime parameters to filter by date. You\n can use the caseId parameter to restrict the results to a specific\n case.

              \n

              Case data is available for 12 months after creation. If a case was created more than\n 12 months ago, a request for data might cause an error.

              \n

              You can use the maxResults and nextToken parameters to\n control the pagination of the results. Set maxResults to the number of\n cases that you want to display on each page, and use nextToken to specify\n the resumption of pagination.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              ", "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", @@ -965,7 +965,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the current list of AWS services and a list of service categories for each\n service. You then use service names and categories in your CreateCase\n requests. Each AWS service has its own set of categories.

              \n

              The service codes and category codes correspond to the values that appear in the\n Service and Category lists on the AWS Support Center Create Case page. The values in those fields\n don't necessarily match the service codes and categories returned by the\n DescribeServices operation. Always use the service codes and categories\n that the DescribeServices operation returns, so that you have the most\n recent set of service and category codes.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns the current list of Amazon Web Services services and a list of service categories for each\n service. You then use service names and categories in your CreateCase\n requests. Each Amazon Web Services service has its own set of categories.

              \n

              The service codes and category codes correspond to the values that appear in the\n Service and Category lists on the Amazon Web Services Support Center Create Case page. The values in those fields\n don't necessarily match the service codes and categories returned by the\n DescribeServices operation. Always use the service codes and categories\n that the DescribeServices operation returns, so that you have the most\n recent set of service and category codes.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeServicesRequest": { @@ -974,13 +974,13 @@ "serviceCodeList": { "target": "com.amazonaws.support#ServiceCodeList", "traits": { - "smithy.api#documentation": "

              A JSON-formatted list of service codes available for AWS services.

              " + "smithy.api#documentation": "

              A JSON-formatted list of service codes available for Amazon Web Services services.

              " } }, "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

              The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " + "smithy.api#documentation": "

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " } } } @@ -991,12 +991,12 @@ "services": { "target": "com.amazonaws.support#ServiceList", "traits": { - "smithy.api#documentation": "

              A JSON-formatted list of AWS services.

              " + "smithy.api#documentation": "

              A JSON-formatted list of Amazon Web Services services.

              " } } }, "traits": { - "smithy.api#documentation": "

              The list of AWS services returned by the DescribeServices\n operation.

              " + "smithy.api#documentation": "

              The list of Amazon Web Services services returned by the DescribeServices\n operation.

              " } }, "com.amazonaws.support#DescribeSeverityLevels": { @@ -1013,7 +1013,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the list of severity levels that you can assign to a support case. The severity\n level for a case is also a field in the CaseDetails data type that you\n include for a CreateCase request.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns the list of severity levels that you can assign to a support case. The severity\n level for a case is also a field in the CaseDetails data type that you\n include for a CreateCase request.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeSeverityLevelsRequest": { @@ -1022,7 +1022,7 @@ "language": { "target": "com.amazonaws.support#Language", "traits": { - "smithy.api#documentation": "

              The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " + "smithy.api#documentation": "

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " } } } @@ -1033,7 +1033,7 @@ "severityLevels": { "target": "com.amazonaws.support#SeverityLevelsList", "traits": { - "smithy.api#documentation": "

              The available severity levels for the support case. Available severity levels are\n defined by your service level agreement with AWS.

              " + "smithy.api#documentation": "

              The available severity levels for the support case. Available severity levels are\n defined by your service level agreement with Amazon Web Services.

              " } } }, @@ -1055,7 +1055,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the refresh status of the AWS Trusted Advisor checks that have the specified check\n IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

              \n

              Some checks are refreshed automatically, and you can't return their refresh statuses\n by using the DescribeTrustedAdvisorCheckRefreshStatuses operation. If you\n call this operation for these checks, you might see an\n InvalidParameterValue error.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns the refresh status of the Trusted Advisor checks that have the specified check\n IDs. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

              \n

              Some checks are refreshed automatically, and you can't return their refresh statuses\n by using the DescribeTrustedAdvisorCheckRefreshStatuses operation. If you\n call this operation for these checks, you might see an\n InvalidParameterValue error.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeTrustedAdvisorCheckRefreshStatusesRequest": { @@ -1099,7 +1099,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the results of the AWS Trusted Advisor check that has the specified check ID. You\n can get the check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

              \n

              The response contains a TrustedAdvisorCheckResult object, which\n contains these three objects:

              \n \n

              In addition, the response contains these fields:

              \n
                \n
              • \n

                \n status - The alert status of the check\n can be ok (green), warning (yellow),\n error (red), or not_available.

                \n
              • \n
              • \n

                \n timestamp - The time of the last refresh\n of the check.

                \n
              • \n
              • \n

                \n checkId - The unique identifier for the\n check.

                \n
              • \n
              \n \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns the results of the Trusted Advisor check that has the specified check ID. You\n can get the check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

              \n

              The response contains a TrustedAdvisorCheckResult object, which\n contains these three objects:

              \n \n

              In addition, the response contains these fields:

              \n
                \n
              • \n

                \n status - The alert status of the check\n can be ok (green), warning (yellow),\n error (red), or not_available.

                \n
              • \n
              • \n

                \n timestamp - The time of the last refresh\n of the check.

                \n
              • \n
              • \n

                \n checkId - The unique identifier for the\n check.

                \n
              • \n
              \n \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeTrustedAdvisorCheckResultRequest": { @@ -1115,7 +1115,7 @@ "language": { "target": "com.amazonaws.support#String", "traits": { - "smithy.api#documentation": "

              The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " + "smithy.api#documentation": "

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              " } } }, @@ -1151,7 +1151,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns the results for the AWS Trusted Advisor check summaries for the check IDs that you\n specified. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

              \n

              The response contains an array of TrustedAdvisorCheckSummary\n objects.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns the results for the Trusted Advisor check summaries for the check IDs that you\n specified. You can get the check IDs by calling the DescribeTrustedAdvisorChecks operation.

              \n

              The response contains an array of TrustedAdvisorCheckSummary\n objects.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeTrustedAdvisorCheckSummariesRequest": { @@ -1195,7 +1195,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Returns information about all available AWS Trusted Advisor checks, including the name, ID,\n category, description, and metadata. You must specify a language code. The AWS Support API\n currently supports English (\"en\") and Japanese (\"ja\"). The response contains a TrustedAdvisorCheckDescription object for each check. You must set the\n AWS Region to us-east-1.

              \n \n \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              • \n

                The names and descriptions for Trusted Advisor checks are subject to change. We recommend\n that you specify the check ID in your code to uniquely identify a check.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Returns information about all available Trusted Advisor checks, including the name, ID,\n category, description, and metadata. You must specify a language code. The Amazon Web Services Support API\n currently supports English (\"en\") and Japanese (\"ja\"). The response contains a TrustedAdvisorCheckDescription object for each check. You must set the\n Amazon Web Services Region to us-east-1.

              \n \n \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              • \n

                The names and descriptions for Trusted Advisor checks are subject to change. We recommend\n that you specify the check ID in your code to uniquely identify a check.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#DescribeTrustedAdvisorChecksRequest": { @@ -1204,7 +1204,7 @@ "language": { "target": "com.amazonaws.support#String", "traits": { - "smithy.api#documentation": "

              The ISO 639-1 code for the language in which AWS provides support. AWS Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              ", + "smithy.api#documentation": "

              The ISO 639-1 code for the language in which Amazon Web Services provides support. Amazon Web Services Support\n currently supports English (\"en\") and Japanese (\"ja\"). Language parameters must be\n passed explicitly for operations that take them.

              ", "smithy.api#required": {} } } @@ -1320,7 +1320,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Refreshes the AWS Trusted Advisor check that you specify using the check ID. You can get the\n check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

              \n \n

              Some checks are refreshed automatically. If you call the\n RefreshTrustedAdvisorCheck operation to refresh them, you might see\n the InvalidParameterValue error.

              \n
              \n

              The response contains a TrustedAdvisorCheckRefreshStatus\n object.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Refreshes the Trusted Advisor check that you specify using the check ID. You can get the\n check IDs by calling the DescribeTrustedAdvisorChecks\n operation.

              \n \n

              Some checks are refreshed automatically. If you call the\n RefreshTrustedAdvisorCheck operation to refresh them, you might see\n the InvalidParameterValue error.

              \n
              \n

              The response contains a TrustedAdvisorCheckRefreshStatus\n object.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#RefreshTrustedAdvisorCheckRequest": { @@ -1370,7 +1370,7 @@ } ], "traits": { - "smithy.api#documentation": "

              Resolves a support case. This operation takes a caseId and returns the\n initial and final state of the case.

              \n \n
                \n
              • \n

                You must have a Business or Enterprise Support plan to use the AWS Support\n API.

                \n
              • \n
              • \n

                If you call the AWS Support API from an account that does not have a\n Business or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see AWS Support.

                \n
              • \n
              \n
              " + "smithy.api#documentation": "

              Resolves a support case. This operation takes a caseId and returns the\n initial and final state of the case.

              \n \n
                \n
              • \n

                You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use the Amazon Web Services Support\n API.

                \n
              • \n
              • \n

                If you call the Amazon Web Services Support API from an account that does not have a\n Business, Enterprise On-Ramp, or Enterprise Support plan, the\n SubscriptionRequiredException error message appears. For\n information about changing your support plan, see Amazon Web Services Support.

                \n
              • \n
              \n
              " } }, "com.amazonaws.support#ResolveCaseRequest": { @@ -1413,30 +1413,30 @@ "code": { "target": "com.amazonaws.support#ServiceCode", "traits": { - "smithy.api#documentation": "

              The code for an AWS service returned by the DescribeServices\n response. The name element contains the corresponding friendly name.

              " + "smithy.api#documentation": "

              The code for an Amazon Web Services service returned by the DescribeServices\n response. The name element contains the corresponding friendly name.

              " } }, "name": { "target": "com.amazonaws.support#ServiceName", "traits": { - "smithy.api#documentation": "

              The friendly name for an AWS service. The code element contains the\n corresponding code.

              " + "smithy.api#documentation": "

              The friendly name for an Amazon Web Services service. The code element contains the\n corresponding code.

              " } }, "categories": { "target": "com.amazonaws.support#CategoryList", "traits": { - "smithy.api#documentation": "

              A list of categories that describe the type of support issue a case describes.\n Categories consist of a category name and a category code. Category names and codes are\n passed to AWS Support when you call CreateCase.

              " + "smithy.api#documentation": "

              A list of categories that describe the type of support issue a case describes.\n Categories consist of a category name and a category code. Category names and codes are\n passed to Amazon Web Services Support when you call CreateCase.

              " } } }, "traits": { - "smithy.api#documentation": "

              Information about an AWS service returned by the DescribeServices\n operation.

              " + "smithy.api#documentation": "

              Information about an Amazon Web Services service returned by the DescribeServices\n operation.

              " } }, "com.amazonaws.support#ServiceCode": { "type": "string", "traits": { - "smithy.api#pattern": "[0-9a-z\\-_]+" + "smithy.api#pattern": "^[0-9a-z\\-_]+$" } }, "com.amazonaws.support#ServiceCodeList": { @@ -1475,12 +1475,12 @@ "name": { "target": "com.amazonaws.support#SeverityLevelName", "traits": { - "smithy.api#documentation": "

              The name of the severity level that corresponds to the severity level code.

              \n \n

              The values returned by the API are different from the values that appear in the\n AWS Support Center. For example, the API uses the code low, but the name\n appears as General guidance in Support Center.

              \n

              The following are the API code names and how they appear in the console:

              \n
                \n
              • \n

                \n low - General guidance

                \n
              • \n
              • \n

                \n normal - System impaired

                \n
              • \n
              • \n

                \n high - Production system impaired

                \n
              • \n
              • \n

                \n urgent - Production system down

                \n
              • \n
              • \n

                \n critical - Business-critical system down

                \n
              • \n
              \n
              \n

              For more information, see Choosing a\n severity in the AWS Support User Guide.

              " + "smithy.api#documentation": "

              The name of the severity level that corresponds to the severity level code.

              \n \n

              The values returned by the API are different from the values that appear in the\n Amazon Web Services Support Center. For example, the API uses the code low, but the name\n appears as General guidance in Support Center.

              \n

              The following are the API code names and how they appear in the console:

              \n
                \n
              • \n

                \n low - General guidance

                \n
              • \n
              • \n

                \n normal - System impaired

                \n
              • \n
              • \n

                \n high - Production system impaired

                \n
              • \n
              • \n

                \n urgent - Production system down

                \n
              • \n
              • \n

                \n critical - Business-critical system down

                \n
              • \n
              \n
              \n

              For more information, see Choosing a\n severity in the Amazon Web Services Support User Guide.

              " } } }, "traits": { - "smithy.api#documentation": "

              A code and name pair that represents the severity level of a support case. The\n available values depend on the support plan for the account. For more information, see\n Choosing a\n severity in the AWS Support User Guide.

              " + "smithy.api#documentation": "

              A code and name pair that represents the severity level of a support case. The\n available values depend on the support plan for the account. For more information, see\n Choosing a\n severity in the Amazon Web Services Support User Guide.

              " } }, "com.amazonaws.support#SeverityLevelCode": { @@ -1752,7 +1752,7 @@ "region": { "target": "com.amazonaws.support#String", "traits": { - "smithy.api#documentation": "

              The AWS Region in which the identified resource is located.

              " + "smithy.api#documentation": "

              The Amazon Web Services Region in which the identified resource is located.

              " } }, "resourceId": { @@ -1765,7 +1765,7 @@ "isSuppressed": { "target": "com.amazonaws.support#Boolean", "traits": { - "smithy.api#documentation": "

              Specifies whether the AWS resource was ignored by Trusted Advisor because it was\n marked as suppressed by the user.

              " + "smithy.api#documentation": "

              Specifies whether the Amazon Web Services resource was ignored by Trusted Advisor because it was\n marked as suppressed by the user.

              " } }, "metadata": { @@ -1792,34 +1792,34 @@ "resourcesProcessed": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

              The number of AWS resources that were analyzed by the Trusted Advisor check.

              ", + "smithy.api#documentation": "

              The number of Amazon Web Services resources that were analyzed by the Trusted Advisor check.

              ", "smithy.api#required": {} } }, "resourcesFlagged": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

              The number of AWS resources that were flagged (listed) by the Trusted Advisor\n check.

              ", + "smithy.api#documentation": "

              The number of Amazon Web Services resources that were flagged (listed) by the Trusted Advisor\n check.

              ", "smithy.api#required": {} } }, "resourcesIgnored": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

              The number of AWS resources ignored by Trusted Advisor because information was\n unavailable.

              ", + "smithy.api#documentation": "

              The number of Amazon Web Services resources ignored by Trusted Advisor because information was\n unavailable.

              ", "smithy.api#required": {} } }, "resourcesSuppressed": { "target": "com.amazonaws.support#Long", "traits": { - "smithy.api#documentation": "

              The number of AWS resources ignored by Trusted Advisor because they were marked as\n suppressed by the user.

              ", + "smithy.api#documentation": "

              The number of Amazon Web Services resources ignored by Trusted Advisor because they were marked as\n suppressed by the user.

              ", "smithy.api#required": {} } } }, "traits": { - "smithy.api#documentation": "

              Details about AWS resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              " + "smithy.api#documentation": "

              Details about Amazon Web Services resources that were analyzed in a call to Trusted Advisor DescribeTrustedAdvisorCheckSummaries.

              " } } } diff --git a/codegen/sdk-codegen/aws-models/transfer.json b/codegen/sdk-codegen/aws-models/transfer.json index 421f8e63876a..8b5f25ca740e 100644 --- a/codegen/sdk-codegen/aws-models/transfer.json +++ b/codegen/sdk-codegen/aws-models/transfer.json @@ -301,7 +301,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

              Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

              \n

              Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

              \n

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

              \n

              Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              " + "smithy.api#documentation": "

              Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

              \n

              Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

              \n

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

              \n

              Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              " } }, "LoggingRole": { @@ -316,6 +316,12 @@ "smithy.api#documentation": "

              Specifies the file transfer protocol or protocols over which your file transfer protocol\n client can connect to your server's endpoint. The available protocols are:

              \n\n
                \n
              • \n

                \n SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over\n SSH

                \n
              • \n
              • \n

                \n FTPS (File Transfer Protocol Secure): File transfer with TLS\n encryption

                \n
              • \n
              • \n

                \n FTP (File Transfer Protocol): Unencrypted file transfer

                \n
              • \n
              \n\n \n

              If you select FTPS, you must choose a certificate stored in Amazon Web Services Certificate\n Manager (ACM) which is used to identify your server when clients connect to it over\n FTPS.

              \n\n

              If Protocol includes either FTP or FTPS, then the\n EndpointType must be VPC and the\n IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

              \n\n

              If Protocol includes FTP, then\n AddressAllocationIds cannot be associated.

              \n\n

              If Protocol is set only to SFTP, the EndpointType\n can be set to PUBLIC and the IdentityProviderType can be set to\n SERVICE_MANAGED.

              \n
              " } }, + "ProtocolDetails": { + "target": "com.amazonaws.transfer#ProtocolDetails", + "traits": { + "smithy.api#documentation": "

              The protocol settings that are configured for your server.

              \n

              \n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

              \n

              Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

              " + } + }, "SecurityPolicyName": { "target": "com.amazonaws.transfer#SecurityPolicyName", "traits": { @@ -427,7 +433,7 @@ "SshPublicKeyBody": { "target": "com.amazonaws.transfer#SshPublicKeyBody", "traits": { - "smithy.api#documentation": "

              The public portion of the Secure Shell (SSH) key used to authenticate the user to the\n server.

              " + "smithy.api#documentation": "

              The public portion of the Secure Shell (SSH) key used to authenticate the user to the\n server.

              \n \n

              \n Currently, Transfer Family does not accept elliptical curve keys (keys beginning with ecdsa).\n

              \n
              " } }, "Tags": { @@ -1370,7 +1376,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

              Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

              \n

              Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

              \n

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

              \n

              Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              " + "smithy.api#documentation": "

              Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

              \n

              Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

              \n

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

              \n

              Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              " } }, "LoggingRole": { @@ -1925,7 +1931,7 @@ "DirectoryId": { "target": "com.amazonaws.transfer#DirectoryId", "traits": { - "smithy.api#documentation": "

              The identifier of the Amazon Web ServicesDirectory Service directory that you want to stop sharing.

              " + "smithy.api#documentation": "

              The identifier of the Amazon Web Services Directory Service directory that you want to stop sharing.

              " } }, "Function": { @@ -2738,7 +2744,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

              Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

              \n

              Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

              \n

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

              \n

              Use the LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              " + "smithy.api#documentation": "

              Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

              \n

              Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

              \n

              Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

              \n

              Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

              " } }, "EndpointType": { @@ -3057,10 +3063,16 @@ "traits": { "smithy.api#documentation": "

              \n Indicates passive mode, for FTP and FTPS protocols.\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n For example:\n

              \n

              \n \n aws transfer update-server --protocol-details PassiveIp=0.0.0.0\n \n

              \n

              Replace \n 0.0.0.0\n in the example above with the actual IP address you want to use.

              \n \n

              \n If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family.\n

              \n
              " } + }, + "TlsSessionResumptionMode": { + "target": "com.amazonaws.transfer#TlsSessionResumptionMode", + "traits": { + "smithy.api#documentation": "

              A property used with Transfer servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret\n key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent,\n negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls.\n If a TlsSessionResumptionMode value is not specified during CreateServer, it is set to ENFORCED by default.

              \n
                \n
              • \n

                \n DISABLED: the server does not process TLS session resumption client requests and creates a new TLS session for each request.

                \n
              • \n
              • \n

                \n ENABLED: the server processes and accepts clients that are performing TLS session resumption.\n The server doesn't reject client data connections that do not perform the TLS session resumption client processing.

                \n
              • \n
              • \n

                \n ENFORCED: the server processes and accepts clients that are performing TLS session resumption.\n The server rejects client data connections that do not perform the TLS session resumption client processing.\n Before you set the value to ENFORCED, test your clients.

                \n \n

                Not all FTPS clients perform TLS session resumption. So, if you choose to enforce\n TLS session resumption, you prevent any connections from FTPS clients that don't perform\n the protocol negotiation. To determine whether or not you can use the\n ENFORCED value, you need to test your clients.

                \n
                \n
              • \n
              " + } } }, "traits": { - "smithy.api#documentation": "

              \n The protocol settings that are configured for your server.\n

              \n \n

              \n This type is only valid in the UpdateServer API.\n

              \n
              " + "smithy.api#documentation": "

              \n The protocol settings that are configured for your server.\n

              " } }, "com.amazonaws.transfer#Protocols": { @@ -3924,6 +3936,25 @@ "smithy.api#httpError": 429 } }, + "com.amazonaws.transfer#TlsSessionResumptionMode": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "DISABLED", + "name": "DISABLED" + }, + { + "value": "ENABLED", + "name": "ENABLED" + }, + { + "value": "ENFORCED", + "name": "ENFORCED" + } + ] + } + }, "com.amazonaws.transfer#TransferService": { "type": "service", "traits": { @@ -4233,7 +4264,7 @@ "ProtocolDetails": { "target": "com.amazonaws.transfer#ProtocolDetails", "traits": { - "smithy.api#documentation": "

              \n The protocol settings that are configured for your server.\n

              \n

              \n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

              " + "smithy.api#documentation": "

              \n The protocol settings that are configured for your server.\n

              \n

              \n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

              \n

              Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

              " } }, "EndpointDetails": { diff --git a/codegen/sdk-codegen/aws-models/workmail.json b/codegen/sdk-codegen/aws-models/workmail.json index 1e1810ec068d..3d54bccb6b51 100644 --- a/codegen/sdk-codegen/aws-models/workmail.json +++ b/codegen/sdk-codegen/aws-models/workmail.json @@ -1054,6 +1054,46 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#DeleteEmailMonitoringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#InvalidParameterException" + }, + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + } + ], + "traits": { + "smithy.api#documentation": "

              Deletes the email monitoring configuration for a specified organization.

              ", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

              The ID of the organization from which the email monitoring configuration is deleted.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#DeleteEmailMonitoringConfigurationResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.workmail#DeleteGroup": { "type": "operation", "input": { @@ -1604,6 +1644,62 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#DescribeEmailMonitoringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#InvalidParameterException" + }, + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + }, + { + "target": "com.amazonaws.workmail#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

              Describes the current email monitoring configuration for a specified organization.

              ", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

              The ID of the organization for which the email monitoring configuration is described.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#DescribeEmailMonitoringConfigurationResponse": { + "type": "structure", + "members": { + "RoleArn": { + "target": "com.amazonaws.workmail#RoleArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

              " + } + }, + "LogGroupArn": { + "target": "com.amazonaws.workmail#LogGroupArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

              " + } + } + } + }, "com.amazonaws.workmail#DescribeGroup": { "type": "operation", "input": { @@ -4269,6 +4365,16 @@ } } }, + "com.amazonaws.workmail#LogGroupArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 47, + "max": 562 + }, + "smithy.api#pattern": "^arn:aws:logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([\\.\\-_/#A-Za-z0-9]+):\\*$" + } + }, "com.amazonaws.workmail#MailDomainInUseException": { "type": "structure", "members": { @@ -5062,6 +5168,63 @@ "type": "structure", "members": {} }, + "com.amazonaws.workmail#PutEmailMonitoringConfiguration": { + "type": "operation", + "input": { + "target": "com.amazonaws.workmail#PutEmailMonitoringConfigurationRequest" + }, + "output": { + "target": "com.amazonaws.workmail#PutEmailMonitoringConfigurationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.workmail#InvalidParameterException" + }, + { + "target": "com.amazonaws.workmail#OrganizationNotFoundException" + }, + { + "target": "com.amazonaws.workmail#OrganizationStateException" + }, + { + "target": "com.amazonaws.workmail#ResourceNotFoundException" + } + ], + "traits": { + "smithy.api#documentation": "

              Creates or updates the email monitoring configuration for a specified organization.

              ", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.workmail#PutEmailMonitoringConfigurationRequest": { + "type": "structure", + "members": { + "OrganizationId": { + "target": "com.amazonaws.workmail#OrganizationId", + "traits": { + "smithy.api#documentation": "

              The ID of the organization for which the email monitoring configuration is set.

              ", + "smithy.api#required": {} + } + }, + "RoleArn": { + "target": "com.amazonaws.workmail#RoleArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

              ", + "smithy.api#required": {} + } + }, + "LogGroupArn": { + "target": "com.amazonaws.workmail#LogGroupArn", + "traits": { + "smithy.api#documentation": "

              The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

              ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.workmail#PutEmailMonitoringConfigurationResponse": { + "type": "structure", + "members": {} + }, "com.amazonaws.workmail#PutInboundDmarcSettings": { "type": "operation", "input": { @@ -6515,6 +6678,21 @@ }, "com.amazonaws.workmail#WorkMailService": { "type": "service", + "traits": { + "aws.api#service": { + "sdkId": "WorkMail", + "arnNamespace": "workmail", + "cloudFormationName": "WorkMail", + "cloudTrailEventSource": "workmail.amazonaws.com", + "endpointPrefix": "workmail" + }, + "aws.auth#sigv4": { + "name": "workmail" + }, + "aws.protocols#awsJson1_1": {}, + "smithy.api#documentation": "

              Amazon WorkMail is a secure, managed business email and calendaring service with support for\n existing desktop and mobile email clients. You can access your email, contacts, and\n calendars using Microsoft Outlook, your browser, or other native iOS and Android email\n applications. You can integrate WorkMail with your existing corporate directory and control\n both the keys that encrypt your data and the location in which your data is\n stored.

              \n

              The WorkMail API is designed for the following scenarios:

              \n
                \n
              • \n

                Listing and describing organizations

                \n
              • \n
              \n
                \n
              • \n

                Managing users

                \n
              • \n
              \n
                \n
              • \n

                Managing groups

                \n
              • \n
              \n
                \n
              • \n

                Managing resources

                \n
              • \n
              \n

              All WorkMail API operations are Amazon-authenticated and certificate-signed. They not\n only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management\n users and roles to help facilitate access, trust, and permission policies. By creating a\n role and allowing an IAM user to access the WorkMail site, the IAM user gains full\n administrative visibility into the entire WorkMail organization (or as set in the IAM\n policy). This includes, but is not limited to, the ability to create, update, and delete\n users, groups, and resources. This allows developers to perform the scenarios listed above,\n as well as give users the ability to grant access on a selective basis using the IAM\n model.

              ", + "smithy.api#title": "Amazon WorkMail" + }, "version": "2017-10-01", "operations": [ { @@ -6550,6 +6728,9 @@ { "target": "com.amazonaws.workmail#DeleteAlias" }, + { + "target": "com.amazonaws.workmail#DeleteEmailMonitoringConfiguration" + }, { "target": "com.amazonaws.workmail#DeleteGroup" }, @@ -6580,6 +6761,9 @@ { "target": "com.amazonaws.workmail#DeregisterMailDomain" }, + { + "target": "com.amazonaws.workmail#DescribeEmailMonitoringConfiguration" + }, { "target": "com.amazonaws.workmail#DescribeGroup" }, @@ -6667,6 +6851,9 @@ { "target": "com.amazonaws.workmail#PutAccessControlRule" }, + { + "target": "com.amazonaws.workmail#PutEmailMonitoringConfiguration" + }, { "target": "com.amazonaws.workmail#PutInboundDmarcSettings" }, @@ -6712,22 +6899,7 @@ { "target": "com.amazonaws.workmail#UpdateResource" } - ], - "traits": { - "aws.api#service": { - "sdkId": "WorkMail", - "arnNamespace": "workmail", - "cloudFormationName": "WorkMail", - "cloudTrailEventSource": "workmail.amazonaws.com", - "endpointPrefix": "workmail" - }, - "aws.auth#sigv4": { - "name": "workmail" - }, - "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

              Amazon WorkMail is a secure, managed business email and calendaring service with support for\n existing desktop and mobile email clients. You can access your email, contacts, and\n calendars using Microsoft Outlook, your browser, or other native iOS and Android email\n applications. You can integrate WorkMail with your existing corporate directory and control\n both the keys that encrypt your data and the location in which your data is\n stored.

              \n

              The WorkMail API is designed for the following scenarios:

              \n
                \n
              • \n

                Listing and describing organizations

                \n
              • \n
              \n
                \n
              • \n

                Managing users

                \n
              • \n
              \n
                \n
              • \n

                Managing groups

                \n
              • \n
              \n
                \n
              • \n

                Managing resources

                \n
              • \n
              \n

              All WorkMail API operations are Amazon-authenticated and certificate-signed. They not\n only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management\n users and roles to help facilitate access, trust, and permission policies. By creating a\n role and allowing an IAM user to access the WorkMail site, the IAM user gains full\n administrative visibility into the entire WorkMail organization (or as set in the IAM\n policy). This includes, but is not limited to, the ability to create, update, and delete\n users, groups, and resources. This allows developers to perform the scenarios listed above,\n as well as give users the ability to grant access on a selective basis using the IAM\n model.

              ", - "smithy.api#title": "Amazon WorkMail" - } + ] } } } diff --git a/codegen/smithy-aws-typescript-codegen/src/main/resources/software/amazon/smithy/aws/typescript/codegen/endpoints.json b/codegen/smithy-aws-typescript-codegen/src/main/resources/software/amazon/smithy/aws/typescript/codegen/endpoints.json index cd632c2ad087..872329c00643 100644 --- a/codegen/smithy-aws-typescript-codegen/src/main/resources/software/amazon/smithy/aws/typescript/codegen/endpoints.json +++ b/codegen/smithy-aws-typescript-codegen/src/main/resources/software/amazon/smithy/aws/typescript/codegen/endpoints.json @@ -52,6 +52,9 @@ "ap-southeast-2": { "description": "Asia Pacific (Sydney)" }, + "ap-southeast-3": { + "description": "Asia Pacific (Jakarta)" + }, "ca-central-1": { "description": "Canada (Central)" }, @@ -108,6 +111,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -215,6 +219,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -597,6 +602,12 @@ }, "hostname": "api.ecr.ap-southeast-2.amazonaws.com" }, + "ap-southeast-3": { + "credentialScope": { + "region": "ap-southeast-3" + }, + "hostname": "api.ecr.ap-southeast-3.amazonaws.com" + }, "ca-central-1": { "credentialScope": { "region": "ca-central-1" @@ -1140,6 +1151,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -1418,6 +1430,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -1657,6 +1670,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -1765,6 +1779,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -2189,6 +2204,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -2782,6 +2798,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -3260,6 +3277,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -3352,6 +3370,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "dms": { "credentialScope": { @@ -3651,6 +3670,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -3858,6 +3878,7 @@ }, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -3979,6 +4000,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -4150,6 +4172,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -4641,6 +4664,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -4726,6 +4750,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -4946,6 +4971,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -5034,6 +5060,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -5879,6 +5906,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -6158,6 +6186,7 @@ "hostname": "groundstation-fips.us-west-2.amazonaws.com" }, "me-south-1": {}, + "sa-east-1": {}, "us-east-1": { "variants": [ { @@ -6965,6 +6994,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -7038,9 +7068,11 @@ }, "kinesisanalytics": { "endpoints": { + "af-south-1": {}, "ap-east-1": {}, "ap-northeast-1": {}, "ap-northeast-2": {}, + "ap-northeast-3": {}, "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, @@ -7200,6 +7232,14 @@ "deprecated": true, "hostname": "kms-fips.ap-southeast-2.amazonaws.com" }, + "ap-southeast-3": { + "variants": [ + { + "hostname": "kms-fips.ap-southeast-3.amazonaws.com", + "tags": ["fips"] + } + ] + }, "ap-southeast-3-fips": { "credentialScope": { "region": "ap-southeast-3" @@ -7495,6 +7535,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -7675,6 +7716,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -7753,6 +7795,19 @@ "us-east-1": {} } }, + "lookoutmetrics": { + "endpoints": { + "ap-northeast-1": {}, + "ap-southeast-1": {}, + "ap-southeast-2": {}, + "eu-central-1": {}, + "eu-north-1": {}, + "eu-west-1": {}, + "us-east-1": {}, + "us-east-2": {}, + "us-west-2": {} + } + }, "lookoutvision": { "endpoints": { "ap-northeast-1": {}, @@ -8121,6 +8176,42 @@ "us-west-2": {} } }, + "meetings-chime": { + "endpoints": { + "ap-southeast-1": {}, + "eu-central-1": {}, + "us-east-1": { + "variants": [ + { + "hostname": "meetings-chime-fips.us-east-1.amazonaws.com", + "tags": ["fips"] + } + ] + }, + "us-east-1-fips": { + "credentialScope": { + "region": "us-east-1" + }, + "deprecated": true, + "hostname": "meetings-chime-fips.us-east-1.amazonaws.com" + }, + "us-west-2": { + "variants": [ + { + "hostname": "meetings-chime-fips.us-west-2.amazonaws.com", + "tags": ["fips"] + } + ] + }, + "us-west-2-fips": { + "credentialScope": { + "region": "us-west-2" + }, + "deprecated": true, + "hostname": "meetings-chime-fips.us-west-2.amazonaws.com" + } + } + }, "messaging-chime": { "endpoints": { "us-east-1": { @@ -8155,6 +8246,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -8301,6 +8393,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -8950,6 +9043,31 @@ "us-west-2": {} } }, + "pi": { + "endpoints": { + "af-south-1": {}, + "ap-east-1": {}, + "ap-northeast-1": {}, + "ap-northeast-2": {}, + "ap-northeast-3": {}, + "ap-south-1": {}, + "ap-southeast-1": {}, + "ap-southeast-2": {}, + "ca-central-1": {}, + "eu-central-1": {}, + "eu-north-1": {}, + "eu-south-1": {}, + "eu-west-1": {}, + "eu-west-2": {}, + "eu-west-3": {}, + "me-south-1": {}, + "sa-east-1": {}, + "us-east-1": {}, + "us-east-2": {}, + "us-west-1": {}, + "us-west-2": {} + } + }, "pinpoint": { "defaults": { "credentialScope": { @@ -9407,6 +9525,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -9598,6 +9717,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -9875,6 +9995,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -10282,6 +10403,14 @@ } ] }, + "ap-southeast-3": { + "variants": [ + { + "hostname": "s3.dualstack.ap-southeast-3.amazonaws.com", + "tags": ["dualstack"] + } + ] + }, "aws-global": { "credentialScope": { "region": "us-east-1" @@ -11827,6 +11956,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -11912,6 +12042,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -11994,6 +12125,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": { "variants": [ { @@ -12109,6 +12241,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -12298,6 +12431,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -12330,6 +12464,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "aws-global": { "credentialScope": { "region": "us-east-1" @@ -12429,6 +12564,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -12510,6 +12646,7 @@ "ap-south-1": {}, "ap-southeast-1": {}, "ap-southeast-2": {}, + "ap-southeast-3": {}, "ca-central-1": {}, "eu-central-1": {}, "eu-north-1": {}, @@ -14276,6 +14413,12 @@ "cn-north-1": {} } }, + "pi": { + "endpoints": { + "cn-north-1": {}, + "cn-northwest-1": {} + } + }, "polly": { "endpoints": { "cn-northwest-1": {} diff --git a/private/aws-protocoltests-ec2/src/endpoints.ts b/private/aws-protocoltests-ec2/src/endpoints.ts index d1842d9a0304..2e2724a8158c 100644 --- a/private/aws-protocoltests-ec2/src/endpoints.ts +++ b/private/aws-protocoltests-ec2/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/private/aws-protocoltests-json-10/src/endpoints.ts b/private/aws-protocoltests-json-10/src/endpoints.ts index e6d7bf27576d..872641d6f7e6 100644 --- a/private/aws-protocoltests-json-10/src/endpoints.ts +++ b/private/aws-protocoltests-json-10/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/private/aws-protocoltests-json/src/endpoints.ts b/private/aws-protocoltests-json/src/endpoints.ts index 66f2d3612c60..af69fb663be5 100644 --- a/private/aws-protocoltests-json/src/endpoints.ts +++ b/private/aws-protocoltests-json/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/private/aws-protocoltests-query/src/endpoints.ts b/private/aws-protocoltests-query/src/endpoints.ts index d2bcb33c2130..6212ae726462 100644 --- a/private/aws-protocoltests-query/src/endpoints.ts +++ b/private/aws-protocoltests-query/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/private/aws-protocoltests-restjson/src/endpoints.ts b/private/aws-protocoltests-restjson/src/endpoints.ts index a59a90a5c56f..a28f0e26f90c 100644 --- a/private/aws-protocoltests-restjson/src/endpoints.ts +++ b/private/aws-protocoltests-restjson/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", diff --git a/private/aws-protocoltests-restxml/src/endpoints.ts b/private/aws-protocoltests-restxml/src/endpoints.ts index 1973586d1c6c..350a8f69e793 100644 --- a/private/aws-protocoltests-restxml/src/endpoints.ts +++ b/private/aws-protocoltests-restxml/src/endpoints.ts @@ -14,6 +14,7 @@ const partitionHash: PartitionHash = { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1",