From 13fd8a46855bfc44f7a166556498c3c3835f6935 Mon Sep 17 00:00:00 2001 From: awstools Date: Fri, 22 Nov 2024 19:18:05 +0000 Subject: [PATCH] feat(client-bcm-pricing-calculator): Initial release of the AWS Billing and Cost Management Pricing Calculator API. --- .../client-bcm-pricing-calculator/.gitignore | 9 + clients/client-bcm-pricing-calculator/LICENSE | 201 + .../client-bcm-pricing-calculator/README.md | 504 ++ .../api-extractor.json | 4 + .../package.json | 103 + .../src/BCMPricingCalculator.ts | 836 ++ .../src/BCMPricingCalculatorClient.ts | 486 ++ .../auth/httpAuthExtensionConfiguration.ts | 72 + .../src/auth/httpAuthSchemeProvider.ts | 145 + ...llScenarioCommitmentModificationCommand.ts | 196 + ...ateBillScenarioUsageModificationCommand.ts | 319 + ...BatchCreateWorkloadEstimateUsageCommand.ts | 308 + ...llScenarioCommitmentModificationCommand.ts | 151 + ...eteBillScenarioUsageModificationCommand.ts | 154 + ...BatchDeleteWorkloadEstimateUsageCommand.ts | 150 + ...llScenarioCommitmentModificationCommand.ts | 172 + ...ateBillScenarioUsageModificationCommand.ts | 243 + ...BatchUpdateWorkloadEstimateUsageCommand.ts | 233 + .../src/commands/CreateBillEstimateCommand.ts | 171 + .../src/commands/CreateBillScenarioCommand.ts | 146 + .../commands/CreateWorkloadEstimateCommand.ts | 147 + .../src/commands/DeleteBillEstimateCommand.ts | 121 + .../src/commands/DeleteBillScenarioCommand.ts | 121 + .../commands/DeleteWorkloadEstimateCommand.ts | 121 + .../src/commands/GetBillEstimateCommand.ts | 161 + .../src/commands/GetBillScenarioCommand.ts | 137 + .../src/commands/GetPreferencesCommand.ts | 126 + .../commands/GetWorkloadEstimateCommand.ts | 137 + .../ListBillEstimateCommitmentsCommand.ts | 151 + ...mateInputCommitmentModificationsCommand.ts | 162 + ...lEstimateInputUsageModificationsCommand.ts | 231 + .../ListBillEstimateLineItemsCommand.ts | 172 + .../src/commands/ListBillEstimatesCommand.ts | 154 + ...lScenarioCommitmentModificationsCommand.ts | 162 + ...stBillScenarioUsageModificationsCommand.ts | 230 + .../src/commands/ListBillScenariosCommand.ts | 155 + .../commands/ListTagsForResourceCommand.ts | 125 + .../ListWorkloadEstimateUsageCommand.ts | 221 + .../commands/ListWorkloadEstimatesCommand.ts | 155 + .../src/commands/TagResourceCommand.ts | 129 + .../src/commands/UntagResourceCommand.ts | 124 + .../src/commands/UpdateBillEstimateCommand.ts | 168 + .../src/commands/UpdateBillScenarioCommand.ts | 144 + .../src/commands/UpdatePreferencesCommand.ts | 138 + .../commands/UpdateWorkloadEstimateCommand.ts | 144 + .../src/commands/index.ts | 37 + .../src/endpoint/EndpointParameters.ts | 37 + .../src/endpoint/endpointResolver.ts | 26 + .../src/endpoint/ruleset.ts | 22 + .../src/extensionConfiguration.ts | 15 + .../src/index.ts | 28 + .../BCMPricingCalculatorServiceException.ts | 24 + .../src/models/index.ts | 2 + .../src/models/models_0.ts | 5087 ++++++++++++ .../src/pagination/Interfaces.ts | 11 + .../ListBillEstimateCommitmentsPaginator.ts | 24 + ...teInputCommitmentModificationsPaginator.ts | 30 + ...stimateInputUsageModificationsPaginator.ts | 24 + .../ListBillEstimateLineItemsPaginator.ts | 24 + .../pagination/ListBillEstimatesPaginator.ts | 24 + ...cenarioCommitmentModificationsPaginator.ts | 24 + ...BillScenarioUsageModificationsPaginator.ts | 24 + .../pagination/ListBillScenariosPaginator.ts | 24 + .../ListWorkloadEstimateUsagePaginator.ts | 24 + .../ListWorkloadEstimatesPaginator.ts | 24 + .../src/pagination/index.ts | 12 + .../src/protocols/Aws_json1_0.ts | 3209 ++++++++ .../src/runtimeConfig.browser.ts | 44 + .../src/runtimeConfig.native.ts | 18 + .../src/runtimeConfig.shared.ts | 38 + .../src/runtimeConfig.ts | 60 + .../src/runtimeExtensions.ts | 48 + .../tsconfig.cjs.json | 6 + .../tsconfig.es.json | 8 + .../tsconfig.json | 13 + .../tsconfig.types.json | 10 + .../aws-models/bcm-pricing-calculator.json | 7088 +++++++++++++++++ 77 files changed, 24528 insertions(+) create mode 100644 clients/client-bcm-pricing-calculator/.gitignore create mode 100644 clients/client-bcm-pricing-calculator/LICENSE create mode 100644 clients/client-bcm-pricing-calculator/README.md create mode 100644 clients/client-bcm-pricing-calculator/api-extractor.json create mode 100644 clients/client-bcm-pricing-calculator/package.json create mode 100644 clients/client-bcm-pricing-calculator/src/BCMPricingCalculator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/BCMPricingCalculatorClient.ts create mode 100644 clients/client-bcm-pricing-calculator/src/auth/httpAuthExtensionConfiguration.ts create mode 100644 clients/client-bcm-pricing-calculator/src/auth/httpAuthSchemeProvider.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioCommitmentModificationCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioUsageModificationCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchCreateWorkloadEstimateUsageCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioCommitmentModificationCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioUsageModificationCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchDeleteWorkloadEstimateUsageCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioCommitmentModificationCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioUsageModificationCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/BatchUpdateWorkloadEstimateUsageCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/CreateBillEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/CreateBillScenarioCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/CreateWorkloadEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/DeleteBillEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/DeleteBillScenarioCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/DeleteWorkloadEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/GetBillEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/GetBillScenarioCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/GetPreferencesCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/GetWorkloadEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateCommitmentsCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputCommitmentModificationsCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputUsageModificationsCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateLineItemsCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillEstimatesCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioCommitmentModificationsCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioUsageModificationsCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListBillScenariosCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListTagsForResourceCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimateUsageCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimatesCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/TagResourceCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/UntagResourceCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/UpdateBillEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/UpdateBillScenarioCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/UpdatePreferencesCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/UpdateWorkloadEstimateCommand.ts create mode 100644 clients/client-bcm-pricing-calculator/src/commands/index.ts create mode 100644 clients/client-bcm-pricing-calculator/src/endpoint/EndpointParameters.ts create mode 100644 clients/client-bcm-pricing-calculator/src/endpoint/endpointResolver.ts create mode 100644 clients/client-bcm-pricing-calculator/src/endpoint/ruleset.ts create mode 100644 clients/client-bcm-pricing-calculator/src/extensionConfiguration.ts create mode 100644 clients/client-bcm-pricing-calculator/src/index.ts create mode 100644 clients/client-bcm-pricing-calculator/src/models/BCMPricingCalculatorServiceException.ts create mode 100644 clients/client-bcm-pricing-calculator/src/models/index.ts create mode 100644 clients/client-bcm-pricing-calculator/src/models/models_0.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/Interfaces.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateCommitmentsPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputCommitmentModificationsPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputUsageModificationsPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateLineItemsPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimatesPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioCommitmentModificationsPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioUsageModificationsPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListBillScenariosPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimateUsagePaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimatesPaginator.ts create mode 100644 clients/client-bcm-pricing-calculator/src/pagination/index.ts create mode 100644 clients/client-bcm-pricing-calculator/src/protocols/Aws_json1_0.ts create mode 100644 clients/client-bcm-pricing-calculator/src/runtimeConfig.browser.ts create mode 100644 clients/client-bcm-pricing-calculator/src/runtimeConfig.native.ts create mode 100644 clients/client-bcm-pricing-calculator/src/runtimeConfig.shared.ts create mode 100644 clients/client-bcm-pricing-calculator/src/runtimeConfig.ts create mode 100644 clients/client-bcm-pricing-calculator/src/runtimeExtensions.ts create mode 100644 clients/client-bcm-pricing-calculator/tsconfig.cjs.json create mode 100644 clients/client-bcm-pricing-calculator/tsconfig.es.json create mode 100644 clients/client-bcm-pricing-calculator/tsconfig.json create mode 100644 clients/client-bcm-pricing-calculator/tsconfig.types.json create mode 100644 codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json diff --git a/clients/client-bcm-pricing-calculator/.gitignore b/clients/client-bcm-pricing-calculator/.gitignore new file mode 100644 index 0000000000000..54f14c9aef253 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/.gitignore @@ -0,0 +1,9 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/dist-* +*.tsbuildinfo +*.tgz +*.log +package-lock.json diff --git a/clients/client-bcm-pricing-calculator/LICENSE b/clients/client-bcm-pricing-calculator/LICENSE new file mode 100644 index 0000000000000..1349aa7c99232 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/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-2024 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-bcm-pricing-calculator/README.md b/clients/client-bcm-pricing-calculator/README.md new file mode 100644 index 0000000000000..0e788488780da --- /dev/null +++ b/clients/client-bcm-pricing-calculator/README.md @@ -0,0 +1,504 @@ + + +# @aws-sdk/client-bcm-pricing-calculator + +## Description + +AWS SDK for JavaScript BCMPricingCalculator Client for Node.js, Browser and React Native. + +

+You can use the Pricing Calculator API to programmatically create estimates for your planned cloud use. You can model usage and commitments such as Savings Plans and +Reserved Instances, and generate estimated costs using your discounts and benefit sharing preferences. +

+

The Pricing Calculator API provides the following endpoint:

+ + +## Installing + +To install this package, simply type add or install @aws-sdk/client-bcm-pricing-calculator +using your favorite package manager: + +- `npm install @aws-sdk/client-bcm-pricing-calculator` +- `yarn add @aws-sdk/client-bcm-pricing-calculator` +- `pnpm add @aws-sdk/client-bcm-pricing-calculator` + +## Getting Started + +### Import + +The AWS SDK is modulized by clients and commands. +To send a request, you only need to import the `BCMPricingCalculatorClient` and +the commands you need, for example `ListBillEstimatesCommand`: + +```js +// ES5 example +const { BCMPricingCalculatorClient, ListBillEstimatesCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); +``` + +```ts +// ES6+ example +import { BCMPricingCalculatorClient, ListBillEstimatesCommand } from "@aws-sdk/client-bcm-pricing-calculator"; +``` + +### 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 BCMPricingCalculatorClient({ region: "REGION" }); + +const params = { + /** input parameters */ +}; +const command = new ListBillEstimatesCommand(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) => { + // process 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-bcm-pricing-calculator"; +const client = new AWS.BCMPricingCalculator({ region: "REGION" }); + +// async/await. +try { + const data = await client.listBillEstimates(params); + // process data. +} catch (error) { + // error handling. +} + +// Promises. +client + .listBillEstimates(params) + .then((data) => { + // process data. + }) + .catch((error) => { + // error handling. + }); + +// callbacks. +client.listBillEstimates(params, (err, data) => { + // process 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-bcm-pricing-calculator` 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. + +## Client Commands (Operations List) + +
+ +BatchCreateBillScenarioCommitmentModification + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchCreateBillScenarioCommitmentModificationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchCreateBillScenarioCommitmentModificationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchCreateBillScenarioCommitmentModificationCommandOutput/) + +
+
+ +BatchCreateBillScenarioUsageModification + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchCreateBillScenarioUsageModificationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchCreateBillScenarioUsageModificationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchCreateBillScenarioUsageModificationCommandOutput/) + +
+
+ +BatchCreateWorkloadEstimateUsage + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchCreateWorkloadEstimateUsageCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchCreateWorkloadEstimateUsageCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchCreateWorkloadEstimateUsageCommandOutput/) + +
+
+ +BatchDeleteBillScenarioCommitmentModification + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchDeleteBillScenarioCommitmentModificationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchDeleteBillScenarioCommitmentModificationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchDeleteBillScenarioCommitmentModificationCommandOutput/) + +
+
+ +BatchDeleteBillScenarioUsageModification + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchDeleteBillScenarioUsageModificationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchDeleteBillScenarioUsageModificationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchDeleteBillScenarioUsageModificationCommandOutput/) + +
+
+ +BatchDeleteWorkloadEstimateUsage + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchDeleteWorkloadEstimateUsageCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchDeleteWorkloadEstimateUsageCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchDeleteWorkloadEstimateUsageCommandOutput/) + +
+
+ +BatchUpdateBillScenarioCommitmentModification + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchUpdateBillScenarioCommitmentModificationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchUpdateBillScenarioCommitmentModificationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchUpdateBillScenarioCommitmentModificationCommandOutput/) + +
+
+ +BatchUpdateBillScenarioUsageModification + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchUpdateBillScenarioUsageModificationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchUpdateBillScenarioUsageModificationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchUpdateBillScenarioUsageModificationCommandOutput/) + +
+
+ +BatchUpdateWorkloadEstimateUsage + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/BatchUpdateWorkloadEstimateUsageCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchUpdateWorkloadEstimateUsageCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/BatchUpdateWorkloadEstimateUsageCommandOutput/) + +
+
+ +CreateBillEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/CreateBillEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/CreateBillEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/CreateBillEstimateCommandOutput/) + +
+
+ +CreateBillScenario + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/CreateBillScenarioCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/CreateBillScenarioCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/CreateBillScenarioCommandOutput/) + +
+
+ +CreateWorkloadEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/CreateWorkloadEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/CreateWorkloadEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/CreateWorkloadEstimateCommandOutput/) + +
+
+ +DeleteBillEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/DeleteBillEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/DeleteBillEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/DeleteBillEstimateCommandOutput/) + +
+
+ +DeleteBillScenario + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/DeleteBillScenarioCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/DeleteBillScenarioCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/DeleteBillScenarioCommandOutput/) + +
+
+ +DeleteWorkloadEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/DeleteWorkloadEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/DeleteWorkloadEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/DeleteWorkloadEstimateCommandOutput/) + +
+
+ +GetBillEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/GetBillEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetBillEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetBillEstimateCommandOutput/) + +
+
+ +GetBillScenario + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/GetBillScenarioCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetBillScenarioCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetBillScenarioCommandOutput/) + +
+
+ +GetPreferences + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/GetPreferencesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetPreferencesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetPreferencesCommandOutput/) + +
+
+ +GetWorkloadEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/GetWorkloadEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetWorkloadEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/GetWorkloadEstimateCommandOutput/) + +
+
+ +ListBillEstimateCommitments + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillEstimateCommitmentsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateCommitmentsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateCommitmentsCommandOutput/) + +
+
+ +ListBillEstimateInputCommitmentModifications + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillEstimateInputCommitmentModificationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateInputCommitmentModificationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateInputCommitmentModificationsCommandOutput/) + +
+
+ +ListBillEstimateInputUsageModifications + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillEstimateInputUsageModificationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateInputUsageModificationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateInputUsageModificationsCommandOutput/) + +
+
+ +ListBillEstimateLineItems + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillEstimateLineItemsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateLineItemsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimateLineItemsCommandOutput/) + +
+
+ +ListBillEstimates + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillEstimatesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimatesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillEstimatesCommandOutput/) + +
+
+ +ListBillScenarioCommitmentModifications + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillScenarioCommitmentModificationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillScenarioCommitmentModificationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillScenarioCommitmentModificationsCommandOutput/) + +
+
+ +ListBillScenarios + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillScenariosCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillScenariosCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillScenariosCommandOutput/) + +
+
+ +ListBillScenarioUsageModifications + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListBillScenarioUsageModificationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillScenarioUsageModificationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListBillScenarioUsageModificationsCommandOutput/) + +
+
+ +ListTagsForResource + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListTagsForResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListTagsForResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListTagsForResourceCommandOutput/) + +
+
+ +ListWorkloadEstimates + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListWorkloadEstimatesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListWorkloadEstimatesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListWorkloadEstimatesCommandOutput/) + +
+
+ +ListWorkloadEstimateUsage + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/ListWorkloadEstimateUsageCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListWorkloadEstimateUsageCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/ListWorkloadEstimateUsageCommandOutput/) + +
+
+ +TagResource + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/TagResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/TagResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/TagResourceCommandOutput/) + +
+
+ +UntagResource + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/UntagResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UntagResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UntagResourceCommandOutput/) + +
+
+ +UpdateBillEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/UpdateBillEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdateBillEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdateBillEstimateCommandOutput/) + +
+
+ +UpdateBillScenario + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/UpdateBillScenarioCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdateBillScenarioCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdateBillScenarioCommandOutput/) + +
+
+ +UpdatePreferences + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/UpdatePreferencesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdatePreferencesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdatePreferencesCommandOutput/) + +
+
+ +UpdateWorkloadEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/bcm-pricing-calculator/command/UpdateWorkloadEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdateWorkloadEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-bcm-pricing-calculator/Interface/UpdateWorkloadEstimateCommandOutput/) + +
diff --git a/clients/client-bcm-pricing-calculator/api-extractor.json b/clients/client-bcm-pricing-calculator/api-extractor.json new file mode 100644 index 0000000000000..d5bf5ffeee851 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/api-extractor.json @@ -0,0 +1,4 @@ +{ + "extends": "../../api-extractor.json", + "mainEntryPointFilePath": "/dist-types/index.d.ts" +} diff --git a/clients/client-bcm-pricing-calculator/package.json b/clients/client-bcm-pricing-calculator/package.json new file mode 100644 index 0000000000000..7b9c6cc3f177d --- /dev/null +++ b/clients/client-bcm-pricing-calculator/package.json @@ -0,0 +1,103 @@ +{ + "name": "@aws-sdk/client-bcm-pricing-calculator", + "description": "AWS SDK for JavaScript Bcm Pricing Calculator Client for Node.js, Browser and React Native", + "version": "3.0.0", + "scripts": { + "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", + "build:cjs": "tsc -p tsconfig.cjs.json", + "build:es": "tsc -p tsconfig.es.json", + "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build", + "build:types": "tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo || exit 0", + "extract:docs": "api-extractor run --local", + "generate:client": "node ../../scripts/generate-clients/single-service --solo bcm-pricing-calculator" + }, + "main": "./dist-cjs/index.js", + "types": "./dist-types/index.d.ts", + "module": "./dist-es/index.js", + "sideEffects": false, + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "*", + "@aws-sdk/client-sts": "*", + "@aws-sdk/core": "*", + "@aws-sdk/credential-provider-node": "*", + "@aws-sdk/middleware-host-header": "*", + "@aws-sdk/middleware-logger": "*", + "@aws-sdk/middleware-recursion-detection": "*", + "@aws-sdk/middleware-user-agent": "*", + "@aws-sdk/region-config-resolver": "*", + "@aws-sdk/types": "*", + "@aws-sdk/util-endpoints": "*", + "@aws-sdk/util-user-agent-browser": "*", + "@aws-sdk/util-user-agent-node": "*", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", + "@smithy/util-utf8": "^3.0.0", + "@types/uuid": "^9.0.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@tsconfig/node16": "16.1.3", + "@types/node": "^16.18.96", + "concurrently": "7.0.0", + "downlevel-dts": "0.10.1", + "rimraf": "3.0.2", + "typescript": "~4.9.5" + }, + "engines": { + "node": ">=16.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-bcm-pricing-calculator", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-js-v3.git", + "directory": "clients/client-bcm-pricing-calculator" + } +} diff --git a/clients/client-bcm-pricing-calculator/src/BCMPricingCalculator.ts b/clients/client-bcm-pricing-calculator/src/BCMPricingCalculator.ts new file mode 100644 index 0000000000000..8467c3098943f --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/BCMPricingCalculator.ts @@ -0,0 +1,836 @@ +// smithy-typescript generated code +import { createAggregatedClient } from "@smithy/smithy-client"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types"; + +import { BCMPricingCalculatorClient, BCMPricingCalculatorClientConfig } from "./BCMPricingCalculatorClient"; +import { + BatchCreateBillScenarioCommitmentModificationCommand, + BatchCreateBillScenarioCommitmentModificationCommandInput, + BatchCreateBillScenarioCommitmentModificationCommandOutput, +} from "./commands/BatchCreateBillScenarioCommitmentModificationCommand"; +import { + BatchCreateBillScenarioUsageModificationCommand, + BatchCreateBillScenarioUsageModificationCommandInput, + BatchCreateBillScenarioUsageModificationCommandOutput, +} from "./commands/BatchCreateBillScenarioUsageModificationCommand"; +import { + BatchCreateWorkloadEstimateUsageCommand, + BatchCreateWorkloadEstimateUsageCommandInput, + BatchCreateWorkloadEstimateUsageCommandOutput, +} from "./commands/BatchCreateWorkloadEstimateUsageCommand"; +import { + BatchDeleteBillScenarioCommitmentModificationCommand, + BatchDeleteBillScenarioCommitmentModificationCommandInput, + BatchDeleteBillScenarioCommitmentModificationCommandOutput, +} from "./commands/BatchDeleteBillScenarioCommitmentModificationCommand"; +import { + BatchDeleteBillScenarioUsageModificationCommand, + BatchDeleteBillScenarioUsageModificationCommandInput, + BatchDeleteBillScenarioUsageModificationCommandOutput, +} from "./commands/BatchDeleteBillScenarioUsageModificationCommand"; +import { + BatchDeleteWorkloadEstimateUsageCommand, + BatchDeleteWorkloadEstimateUsageCommandInput, + BatchDeleteWorkloadEstimateUsageCommandOutput, +} from "./commands/BatchDeleteWorkloadEstimateUsageCommand"; +import { + BatchUpdateBillScenarioCommitmentModificationCommand, + BatchUpdateBillScenarioCommitmentModificationCommandInput, + BatchUpdateBillScenarioCommitmentModificationCommandOutput, +} from "./commands/BatchUpdateBillScenarioCommitmentModificationCommand"; +import { + BatchUpdateBillScenarioUsageModificationCommand, + BatchUpdateBillScenarioUsageModificationCommandInput, + BatchUpdateBillScenarioUsageModificationCommandOutput, +} from "./commands/BatchUpdateBillScenarioUsageModificationCommand"; +import { + BatchUpdateWorkloadEstimateUsageCommand, + BatchUpdateWorkloadEstimateUsageCommandInput, + BatchUpdateWorkloadEstimateUsageCommandOutput, +} from "./commands/BatchUpdateWorkloadEstimateUsageCommand"; +import { + CreateBillEstimateCommand, + CreateBillEstimateCommandInput, + CreateBillEstimateCommandOutput, +} from "./commands/CreateBillEstimateCommand"; +import { + CreateBillScenarioCommand, + CreateBillScenarioCommandInput, + CreateBillScenarioCommandOutput, +} from "./commands/CreateBillScenarioCommand"; +import { + CreateWorkloadEstimateCommand, + CreateWorkloadEstimateCommandInput, + CreateWorkloadEstimateCommandOutput, +} from "./commands/CreateWorkloadEstimateCommand"; +import { + DeleteBillEstimateCommand, + DeleteBillEstimateCommandInput, + DeleteBillEstimateCommandOutput, +} from "./commands/DeleteBillEstimateCommand"; +import { + DeleteBillScenarioCommand, + DeleteBillScenarioCommandInput, + DeleteBillScenarioCommandOutput, +} from "./commands/DeleteBillScenarioCommand"; +import { + DeleteWorkloadEstimateCommand, + DeleteWorkloadEstimateCommandInput, + DeleteWorkloadEstimateCommandOutput, +} from "./commands/DeleteWorkloadEstimateCommand"; +import { + GetBillEstimateCommand, + GetBillEstimateCommandInput, + GetBillEstimateCommandOutput, +} from "./commands/GetBillEstimateCommand"; +import { + GetBillScenarioCommand, + GetBillScenarioCommandInput, + GetBillScenarioCommandOutput, +} from "./commands/GetBillScenarioCommand"; +import { + GetPreferencesCommand, + GetPreferencesCommandInput, + GetPreferencesCommandOutput, +} from "./commands/GetPreferencesCommand"; +import { + GetWorkloadEstimateCommand, + GetWorkloadEstimateCommandInput, + GetWorkloadEstimateCommandOutput, +} from "./commands/GetWorkloadEstimateCommand"; +import { + ListBillEstimateCommitmentsCommand, + ListBillEstimateCommitmentsCommandInput, + ListBillEstimateCommitmentsCommandOutput, +} from "./commands/ListBillEstimateCommitmentsCommand"; +import { + ListBillEstimateInputCommitmentModificationsCommand, + ListBillEstimateInputCommitmentModificationsCommandInput, + ListBillEstimateInputCommitmentModificationsCommandOutput, +} from "./commands/ListBillEstimateInputCommitmentModificationsCommand"; +import { + ListBillEstimateInputUsageModificationsCommand, + ListBillEstimateInputUsageModificationsCommandInput, + ListBillEstimateInputUsageModificationsCommandOutput, +} from "./commands/ListBillEstimateInputUsageModificationsCommand"; +import { + ListBillEstimateLineItemsCommand, + ListBillEstimateLineItemsCommandInput, + ListBillEstimateLineItemsCommandOutput, +} from "./commands/ListBillEstimateLineItemsCommand"; +import { + ListBillEstimatesCommand, + ListBillEstimatesCommandInput, + ListBillEstimatesCommandOutput, +} from "./commands/ListBillEstimatesCommand"; +import { + ListBillScenarioCommitmentModificationsCommand, + ListBillScenarioCommitmentModificationsCommandInput, + ListBillScenarioCommitmentModificationsCommandOutput, +} from "./commands/ListBillScenarioCommitmentModificationsCommand"; +import { + ListBillScenariosCommand, + ListBillScenariosCommandInput, + ListBillScenariosCommandOutput, +} from "./commands/ListBillScenariosCommand"; +import { + ListBillScenarioUsageModificationsCommand, + ListBillScenarioUsageModificationsCommandInput, + ListBillScenarioUsageModificationsCommandOutput, +} from "./commands/ListBillScenarioUsageModificationsCommand"; +import { + ListTagsForResourceCommand, + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { + ListWorkloadEstimatesCommand, + ListWorkloadEstimatesCommandInput, + ListWorkloadEstimatesCommandOutput, +} from "./commands/ListWorkloadEstimatesCommand"; +import { + ListWorkloadEstimateUsageCommand, + ListWorkloadEstimateUsageCommandInput, + ListWorkloadEstimateUsageCommandOutput, +} from "./commands/ListWorkloadEstimateUsageCommand"; +import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { + UntagResourceCommand, + UntagResourceCommandInput, + UntagResourceCommandOutput, +} from "./commands/UntagResourceCommand"; +import { + UpdateBillEstimateCommand, + UpdateBillEstimateCommandInput, + UpdateBillEstimateCommandOutput, +} from "./commands/UpdateBillEstimateCommand"; +import { + UpdateBillScenarioCommand, + UpdateBillScenarioCommandInput, + UpdateBillScenarioCommandOutput, +} from "./commands/UpdateBillScenarioCommand"; +import { + UpdatePreferencesCommand, + UpdatePreferencesCommandInput, + UpdatePreferencesCommandOutput, +} from "./commands/UpdatePreferencesCommand"; +import { + UpdateWorkloadEstimateCommand, + UpdateWorkloadEstimateCommandInput, + UpdateWorkloadEstimateCommandOutput, +} from "./commands/UpdateWorkloadEstimateCommand"; + +const commands = { + BatchCreateBillScenarioCommitmentModificationCommand, + BatchCreateBillScenarioUsageModificationCommand, + BatchCreateWorkloadEstimateUsageCommand, + BatchDeleteBillScenarioCommitmentModificationCommand, + BatchDeleteBillScenarioUsageModificationCommand, + BatchDeleteWorkloadEstimateUsageCommand, + BatchUpdateBillScenarioCommitmentModificationCommand, + BatchUpdateBillScenarioUsageModificationCommand, + BatchUpdateWorkloadEstimateUsageCommand, + CreateBillEstimateCommand, + CreateBillScenarioCommand, + CreateWorkloadEstimateCommand, + DeleteBillEstimateCommand, + DeleteBillScenarioCommand, + DeleteWorkloadEstimateCommand, + GetBillEstimateCommand, + GetBillScenarioCommand, + GetPreferencesCommand, + GetWorkloadEstimateCommand, + ListBillEstimateCommitmentsCommand, + ListBillEstimateInputCommitmentModificationsCommand, + ListBillEstimateInputUsageModificationsCommand, + ListBillEstimateLineItemsCommand, + ListBillEstimatesCommand, + ListBillScenarioCommitmentModificationsCommand, + ListBillScenariosCommand, + ListBillScenarioUsageModificationsCommand, + ListTagsForResourceCommand, + ListWorkloadEstimatesCommand, + ListWorkloadEstimateUsageCommand, + TagResourceCommand, + UntagResourceCommand, + UpdateBillEstimateCommand, + UpdateBillScenarioCommand, + UpdatePreferencesCommand, + UpdateWorkloadEstimateCommand, +}; + +export interface BCMPricingCalculator { + /** + * @see {@link BatchCreateBillScenarioCommitmentModificationCommand} + */ + batchCreateBillScenarioCommitmentModification( + args: BatchCreateBillScenarioCommitmentModificationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchCreateBillScenarioCommitmentModification( + args: BatchCreateBillScenarioCommitmentModificationCommandInput, + cb: (err: any, data?: BatchCreateBillScenarioCommitmentModificationCommandOutput) => void + ): void; + batchCreateBillScenarioCommitmentModification( + args: BatchCreateBillScenarioCommitmentModificationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchCreateBillScenarioCommitmentModificationCommandOutput) => void + ): void; + + /** + * @see {@link BatchCreateBillScenarioUsageModificationCommand} + */ + batchCreateBillScenarioUsageModification( + args: BatchCreateBillScenarioUsageModificationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchCreateBillScenarioUsageModification( + args: BatchCreateBillScenarioUsageModificationCommandInput, + cb: (err: any, data?: BatchCreateBillScenarioUsageModificationCommandOutput) => void + ): void; + batchCreateBillScenarioUsageModification( + args: BatchCreateBillScenarioUsageModificationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchCreateBillScenarioUsageModificationCommandOutput) => void + ): void; + + /** + * @see {@link BatchCreateWorkloadEstimateUsageCommand} + */ + batchCreateWorkloadEstimateUsage( + args: BatchCreateWorkloadEstimateUsageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchCreateWorkloadEstimateUsage( + args: BatchCreateWorkloadEstimateUsageCommandInput, + cb: (err: any, data?: BatchCreateWorkloadEstimateUsageCommandOutput) => void + ): void; + batchCreateWorkloadEstimateUsage( + args: BatchCreateWorkloadEstimateUsageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchCreateWorkloadEstimateUsageCommandOutput) => void + ): void; + + /** + * @see {@link BatchDeleteBillScenarioCommitmentModificationCommand} + */ + batchDeleteBillScenarioCommitmentModification( + args: BatchDeleteBillScenarioCommitmentModificationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchDeleteBillScenarioCommitmentModification( + args: BatchDeleteBillScenarioCommitmentModificationCommandInput, + cb: (err: any, data?: BatchDeleteBillScenarioCommitmentModificationCommandOutput) => void + ): void; + batchDeleteBillScenarioCommitmentModification( + args: BatchDeleteBillScenarioCommitmentModificationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchDeleteBillScenarioCommitmentModificationCommandOutput) => void + ): void; + + /** + * @see {@link BatchDeleteBillScenarioUsageModificationCommand} + */ + batchDeleteBillScenarioUsageModification( + args: BatchDeleteBillScenarioUsageModificationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchDeleteBillScenarioUsageModification( + args: BatchDeleteBillScenarioUsageModificationCommandInput, + cb: (err: any, data?: BatchDeleteBillScenarioUsageModificationCommandOutput) => void + ): void; + batchDeleteBillScenarioUsageModification( + args: BatchDeleteBillScenarioUsageModificationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchDeleteBillScenarioUsageModificationCommandOutput) => void + ): void; + + /** + * @see {@link BatchDeleteWorkloadEstimateUsageCommand} + */ + batchDeleteWorkloadEstimateUsage( + args: BatchDeleteWorkloadEstimateUsageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchDeleteWorkloadEstimateUsage( + args: BatchDeleteWorkloadEstimateUsageCommandInput, + cb: (err: any, data?: BatchDeleteWorkloadEstimateUsageCommandOutput) => void + ): void; + batchDeleteWorkloadEstimateUsage( + args: BatchDeleteWorkloadEstimateUsageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchDeleteWorkloadEstimateUsageCommandOutput) => void + ): void; + + /** + * @see {@link BatchUpdateBillScenarioCommitmentModificationCommand} + */ + batchUpdateBillScenarioCommitmentModification( + args: BatchUpdateBillScenarioCommitmentModificationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchUpdateBillScenarioCommitmentModification( + args: BatchUpdateBillScenarioCommitmentModificationCommandInput, + cb: (err: any, data?: BatchUpdateBillScenarioCommitmentModificationCommandOutput) => void + ): void; + batchUpdateBillScenarioCommitmentModification( + args: BatchUpdateBillScenarioCommitmentModificationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchUpdateBillScenarioCommitmentModificationCommandOutput) => void + ): void; + + /** + * @see {@link BatchUpdateBillScenarioUsageModificationCommand} + */ + batchUpdateBillScenarioUsageModification( + args: BatchUpdateBillScenarioUsageModificationCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchUpdateBillScenarioUsageModification( + args: BatchUpdateBillScenarioUsageModificationCommandInput, + cb: (err: any, data?: BatchUpdateBillScenarioUsageModificationCommandOutput) => void + ): void; + batchUpdateBillScenarioUsageModification( + args: BatchUpdateBillScenarioUsageModificationCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchUpdateBillScenarioUsageModificationCommandOutput) => void + ): void; + + /** + * @see {@link BatchUpdateWorkloadEstimateUsageCommand} + */ + batchUpdateWorkloadEstimateUsage( + args: BatchUpdateWorkloadEstimateUsageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchUpdateWorkloadEstimateUsage( + args: BatchUpdateWorkloadEstimateUsageCommandInput, + cb: (err: any, data?: BatchUpdateWorkloadEstimateUsageCommandOutput) => void + ): void; + batchUpdateWorkloadEstimateUsage( + args: BatchUpdateWorkloadEstimateUsageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchUpdateWorkloadEstimateUsageCommandOutput) => void + ): void; + + /** + * @see {@link CreateBillEstimateCommand} + */ + createBillEstimate( + args: CreateBillEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createBillEstimate( + args: CreateBillEstimateCommandInput, + cb: (err: any, data?: CreateBillEstimateCommandOutput) => void + ): void; + createBillEstimate( + args: CreateBillEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateBillEstimateCommandOutput) => void + ): void; + + /** + * @see {@link CreateBillScenarioCommand} + */ + createBillScenario( + args: CreateBillScenarioCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createBillScenario( + args: CreateBillScenarioCommandInput, + cb: (err: any, data?: CreateBillScenarioCommandOutput) => void + ): void; + createBillScenario( + args: CreateBillScenarioCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateBillScenarioCommandOutput) => void + ): void; + + /** + * @see {@link CreateWorkloadEstimateCommand} + */ + createWorkloadEstimate( + args: CreateWorkloadEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createWorkloadEstimate( + args: CreateWorkloadEstimateCommandInput, + cb: (err: any, data?: CreateWorkloadEstimateCommandOutput) => void + ): void; + createWorkloadEstimate( + args: CreateWorkloadEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateWorkloadEstimateCommandOutput) => void + ): void; + + /** + * @see {@link DeleteBillEstimateCommand} + */ + deleteBillEstimate( + args: DeleteBillEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteBillEstimate( + args: DeleteBillEstimateCommandInput, + cb: (err: any, data?: DeleteBillEstimateCommandOutput) => void + ): void; + deleteBillEstimate( + args: DeleteBillEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteBillEstimateCommandOutput) => void + ): void; + + /** + * @see {@link DeleteBillScenarioCommand} + */ + deleteBillScenario( + args: DeleteBillScenarioCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteBillScenario( + args: DeleteBillScenarioCommandInput, + cb: (err: any, data?: DeleteBillScenarioCommandOutput) => void + ): void; + deleteBillScenario( + args: DeleteBillScenarioCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteBillScenarioCommandOutput) => void + ): void; + + /** + * @see {@link DeleteWorkloadEstimateCommand} + */ + deleteWorkloadEstimate( + args: DeleteWorkloadEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteWorkloadEstimate( + args: DeleteWorkloadEstimateCommandInput, + cb: (err: any, data?: DeleteWorkloadEstimateCommandOutput) => void + ): void; + deleteWorkloadEstimate( + args: DeleteWorkloadEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteWorkloadEstimateCommandOutput) => void + ): void; + + /** + * @see {@link GetBillEstimateCommand} + */ + getBillEstimate( + args: GetBillEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getBillEstimate(args: GetBillEstimateCommandInput, cb: (err: any, data?: GetBillEstimateCommandOutput) => void): void; + getBillEstimate( + args: GetBillEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetBillEstimateCommandOutput) => void + ): void; + + /** + * @see {@link GetBillScenarioCommand} + */ + getBillScenario( + args: GetBillScenarioCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getBillScenario(args: GetBillScenarioCommandInput, cb: (err: any, data?: GetBillScenarioCommandOutput) => void): void; + getBillScenario( + args: GetBillScenarioCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetBillScenarioCommandOutput) => void + ): void; + + /** + * @see {@link GetPreferencesCommand} + */ + getPreferences(): Promise; + getPreferences( + args: GetPreferencesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getPreferences(args: GetPreferencesCommandInput, cb: (err: any, data?: GetPreferencesCommandOutput) => void): void; + getPreferences( + args: GetPreferencesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetPreferencesCommandOutput) => void + ): void; + + /** + * @see {@link GetWorkloadEstimateCommand} + */ + getWorkloadEstimate( + args: GetWorkloadEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getWorkloadEstimate( + args: GetWorkloadEstimateCommandInput, + cb: (err: any, data?: GetWorkloadEstimateCommandOutput) => void + ): void; + getWorkloadEstimate( + args: GetWorkloadEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetWorkloadEstimateCommandOutput) => void + ): void; + + /** + * @see {@link ListBillEstimateCommitmentsCommand} + */ + listBillEstimateCommitments( + args: ListBillEstimateCommitmentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillEstimateCommitments( + args: ListBillEstimateCommitmentsCommandInput, + cb: (err: any, data?: ListBillEstimateCommitmentsCommandOutput) => void + ): void; + listBillEstimateCommitments( + args: ListBillEstimateCommitmentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillEstimateCommitmentsCommandOutput) => void + ): void; + + /** + * @see {@link ListBillEstimateInputCommitmentModificationsCommand} + */ + listBillEstimateInputCommitmentModifications( + args: ListBillEstimateInputCommitmentModificationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillEstimateInputCommitmentModifications( + args: ListBillEstimateInputCommitmentModificationsCommandInput, + cb: (err: any, data?: ListBillEstimateInputCommitmentModificationsCommandOutput) => void + ): void; + listBillEstimateInputCommitmentModifications( + args: ListBillEstimateInputCommitmentModificationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillEstimateInputCommitmentModificationsCommandOutput) => void + ): void; + + /** + * @see {@link ListBillEstimateInputUsageModificationsCommand} + */ + listBillEstimateInputUsageModifications( + args: ListBillEstimateInputUsageModificationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillEstimateInputUsageModifications( + args: ListBillEstimateInputUsageModificationsCommandInput, + cb: (err: any, data?: ListBillEstimateInputUsageModificationsCommandOutput) => void + ): void; + listBillEstimateInputUsageModifications( + args: ListBillEstimateInputUsageModificationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillEstimateInputUsageModificationsCommandOutput) => void + ): void; + + /** + * @see {@link ListBillEstimateLineItemsCommand} + */ + listBillEstimateLineItems( + args: ListBillEstimateLineItemsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillEstimateLineItems( + args: ListBillEstimateLineItemsCommandInput, + cb: (err: any, data?: ListBillEstimateLineItemsCommandOutput) => void + ): void; + listBillEstimateLineItems( + args: ListBillEstimateLineItemsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillEstimateLineItemsCommandOutput) => void + ): void; + + /** + * @see {@link ListBillEstimatesCommand} + */ + listBillEstimates(): Promise; + listBillEstimates( + args: ListBillEstimatesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillEstimates( + args: ListBillEstimatesCommandInput, + cb: (err: any, data?: ListBillEstimatesCommandOutput) => void + ): void; + listBillEstimates( + args: ListBillEstimatesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillEstimatesCommandOutput) => void + ): void; + + /** + * @see {@link ListBillScenarioCommitmentModificationsCommand} + */ + listBillScenarioCommitmentModifications( + args: ListBillScenarioCommitmentModificationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillScenarioCommitmentModifications( + args: ListBillScenarioCommitmentModificationsCommandInput, + cb: (err: any, data?: ListBillScenarioCommitmentModificationsCommandOutput) => void + ): void; + listBillScenarioCommitmentModifications( + args: ListBillScenarioCommitmentModificationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillScenarioCommitmentModificationsCommandOutput) => void + ): void; + + /** + * @see {@link ListBillScenariosCommand} + */ + listBillScenarios(): Promise; + listBillScenarios( + args: ListBillScenariosCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillScenarios( + args: ListBillScenariosCommandInput, + cb: (err: any, data?: ListBillScenariosCommandOutput) => void + ): void; + listBillScenarios( + args: ListBillScenariosCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillScenariosCommandOutput) => void + ): void; + + /** + * @see {@link ListBillScenarioUsageModificationsCommand} + */ + listBillScenarioUsageModifications( + args: ListBillScenarioUsageModificationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listBillScenarioUsageModifications( + args: ListBillScenarioUsageModificationsCommandInput, + cb: (err: any, data?: ListBillScenarioUsageModificationsCommandOutput) => void + ): void; + listBillScenarioUsageModifications( + args: ListBillScenarioUsageModificationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListBillScenarioUsageModificationsCommandOutput) => void + ): void; + + /** + * @see {@link ListTagsForResourceCommand} + */ + listTagsForResource( + args: ListTagsForResourceCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listTagsForResource( + args: ListTagsForResourceCommandInput, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + listTagsForResource( + args: ListTagsForResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTagsForResourceCommandOutput) => void + ): void; + + /** + * @see {@link ListWorkloadEstimatesCommand} + */ + listWorkloadEstimates(): Promise; + listWorkloadEstimates( + args: ListWorkloadEstimatesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listWorkloadEstimates( + args: ListWorkloadEstimatesCommandInput, + cb: (err: any, data?: ListWorkloadEstimatesCommandOutput) => void + ): void; + listWorkloadEstimates( + args: ListWorkloadEstimatesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListWorkloadEstimatesCommandOutput) => void + ): void; + + /** + * @see {@link ListWorkloadEstimateUsageCommand} + */ + listWorkloadEstimateUsage( + args: ListWorkloadEstimateUsageCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listWorkloadEstimateUsage( + args: ListWorkloadEstimateUsageCommandInput, + cb: (err: any, data?: ListWorkloadEstimateUsageCommandOutput) => void + ): void; + listWorkloadEstimateUsage( + args: ListWorkloadEstimateUsageCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListWorkloadEstimateUsageCommandOutput) => void + ): void; + + /** + * @see {@link TagResourceCommand} + */ + tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void; + tagResource( + args: TagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagResourceCommandOutput) => void + ): void; + + /** + * @see {@link UntagResourceCommand} + */ + untagResource(args: UntagResourceCommandInput, options?: __HttpHandlerOptions): Promise; + untagResource(args: UntagResourceCommandInput, cb: (err: any, data?: UntagResourceCommandOutput) => void): void; + untagResource( + args: UntagResourceCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagResourceCommandOutput) => void + ): void; + + /** + * @see {@link UpdateBillEstimateCommand} + */ + updateBillEstimate( + args: UpdateBillEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateBillEstimate( + args: UpdateBillEstimateCommandInput, + cb: (err: any, data?: UpdateBillEstimateCommandOutput) => void + ): void; + updateBillEstimate( + args: UpdateBillEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateBillEstimateCommandOutput) => void + ): void; + + /** + * @see {@link UpdateBillScenarioCommand} + */ + updateBillScenario( + args: UpdateBillScenarioCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateBillScenario( + args: UpdateBillScenarioCommandInput, + cb: (err: any, data?: UpdateBillScenarioCommandOutput) => void + ): void; + updateBillScenario( + args: UpdateBillScenarioCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateBillScenarioCommandOutput) => void + ): void; + + /** + * @see {@link UpdatePreferencesCommand} + */ + updatePreferences(): Promise; + updatePreferences( + args: UpdatePreferencesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updatePreferences( + args: UpdatePreferencesCommandInput, + cb: (err: any, data?: UpdatePreferencesCommandOutput) => void + ): void; + updatePreferences( + args: UpdatePreferencesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdatePreferencesCommandOutput) => void + ): void; + + /** + * @see {@link UpdateWorkloadEstimateCommand} + */ + updateWorkloadEstimate( + args: UpdateWorkloadEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateWorkloadEstimate( + args: UpdateWorkloadEstimateCommandInput, + cb: (err: any, data?: UpdateWorkloadEstimateCommandOutput) => void + ): void; + updateWorkloadEstimate( + args: UpdateWorkloadEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateWorkloadEstimateCommandOutput) => void + ): void; +} + +/** + *

+ * You can use the Pricing Calculator API to programmatically create estimates for your planned cloud use. You can model usage and commitments such as Savings Plans and + * Reserved Instances, and generate estimated costs using your discounts and benefit sharing preferences. + *

+ *

The Pricing Calculator API provides the following endpoint:

+ *
    + *
  • + *

    + * https://bcm-pricing-calculator.us-east-1.api.aws + *

    + *
  • + *
+ * @public + */ +export class BCMPricingCalculator extends BCMPricingCalculatorClient implements BCMPricingCalculator {} +createAggregatedClient(commands, BCMPricingCalculator); diff --git a/clients/client-bcm-pricing-calculator/src/BCMPricingCalculatorClient.ts b/clients/client-bcm-pricing-calculator/src/BCMPricingCalculatorClient.ts new file mode 100644 index 0000000000000..fa465553dc642 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/BCMPricingCalculatorClient.ts @@ -0,0 +1,486 @@ +// smithy-typescript generated code +import { + getHostHeaderPlugin, + HostHeaderInputConfig, + HostHeaderResolvedConfig, + resolveHostHeaderConfig, +} from "@aws-sdk/middleware-host-header"; +import { getLoggerPlugin } from "@aws-sdk/middleware-logger"; +import { getRecursionDetectionPlugin } from "@aws-sdk/middleware-recursion-detection"; +import { + getUserAgentPlugin, + resolveUserAgentConfig, + UserAgentInputConfig, + UserAgentResolvedConfig, +} from "@aws-sdk/middleware-user-agent"; +import { RegionInputConfig, RegionResolvedConfig, resolveRegionConfig } from "@smithy/config-resolver"; +import { + DefaultIdentityProviderConfig, + getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpSigningPlugin, +} from "@smithy/core"; +import { getContentLengthPlugin } from "@smithy/middleware-content-length"; +import { EndpointInputConfig, EndpointResolvedConfig, resolveEndpointConfig } from "@smithy/middleware-endpoint"; +import { getRetryPlugin, resolveRetryConfig, RetryInputConfig, RetryResolvedConfig } from "@smithy/middleware-retry"; +import { HttpHandlerUserInput as __HttpHandlerUserInput } from "@smithy/protocol-http"; +import { + Client as __Client, + DefaultsMode as __DefaultsMode, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration, +} from "@smithy/smithy-client"; +import { + AwsCredentialIdentityProvider, + BodyLengthCalculator as __BodyLengthCalculator, + CheckOptionalClientConfig as __CheckOptionalClientConfig, + ChecksumConstructor as __ChecksumConstructor, + Decoder as __Decoder, + Encoder as __Encoder, + EndpointV2 as __EndpointV2, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Logger as __Logger, + Provider as __Provider, + Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser, + UserAgent as __UserAgent, +} from "@smithy/types"; + +import { + defaultBCMPricingCalculatorHttpAuthSchemeParametersProvider, + HttpAuthSchemeInputConfig, + HttpAuthSchemeResolvedConfig, + resolveHttpAuthSchemeConfig, +} from "./auth/httpAuthSchemeProvider"; +import { + BatchCreateBillScenarioCommitmentModificationCommandInput, + BatchCreateBillScenarioCommitmentModificationCommandOutput, +} from "./commands/BatchCreateBillScenarioCommitmentModificationCommand"; +import { + BatchCreateBillScenarioUsageModificationCommandInput, + BatchCreateBillScenarioUsageModificationCommandOutput, +} from "./commands/BatchCreateBillScenarioUsageModificationCommand"; +import { + BatchCreateWorkloadEstimateUsageCommandInput, + BatchCreateWorkloadEstimateUsageCommandOutput, +} from "./commands/BatchCreateWorkloadEstimateUsageCommand"; +import { + BatchDeleteBillScenarioCommitmentModificationCommandInput, + BatchDeleteBillScenarioCommitmentModificationCommandOutput, +} from "./commands/BatchDeleteBillScenarioCommitmentModificationCommand"; +import { + BatchDeleteBillScenarioUsageModificationCommandInput, + BatchDeleteBillScenarioUsageModificationCommandOutput, +} from "./commands/BatchDeleteBillScenarioUsageModificationCommand"; +import { + BatchDeleteWorkloadEstimateUsageCommandInput, + BatchDeleteWorkloadEstimateUsageCommandOutput, +} from "./commands/BatchDeleteWorkloadEstimateUsageCommand"; +import { + BatchUpdateBillScenarioCommitmentModificationCommandInput, + BatchUpdateBillScenarioCommitmentModificationCommandOutput, +} from "./commands/BatchUpdateBillScenarioCommitmentModificationCommand"; +import { + BatchUpdateBillScenarioUsageModificationCommandInput, + BatchUpdateBillScenarioUsageModificationCommandOutput, +} from "./commands/BatchUpdateBillScenarioUsageModificationCommand"; +import { + BatchUpdateWorkloadEstimateUsageCommandInput, + BatchUpdateWorkloadEstimateUsageCommandOutput, +} from "./commands/BatchUpdateWorkloadEstimateUsageCommand"; +import { CreateBillEstimateCommandInput, CreateBillEstimateCommandOutput } from "./commands/CreateBillEstimateCommand"; +import { CreateBillScenarioCommandInput, CreateBillScenarioCommandOutput } from "./commands/CreateBillScenarioCommand"; +import { + CreateWorkloadEstimateCommandInput, + CreateWorkloadEstimateCommandOutput, +} from "./commands/CreateWorkloadEstimateCommand"; +import { DeleteBillEstimateCommandInput, DeleteBillEstimateCommandOutput } from "./commands/DeleteBillEstimateCommand"; +import { DeleteBillScenarioCommandInput, DeleteBillScenarioCommandOutput } from "./commands/DeleteBillScenarioCommand"; +import { + DeleteWorkloadEstimateCommandInput, + DeleteWorkloadEstimateCommandOutput, +} from "./commands/DeleteWorkloadEstimateCommand"; +import { GetBillEstimateCommandInput, GetBillEstimateCommandOutput } from "./commands/GetBillEstimateCommand"; +import { GetBillScenarioCommandInput, GetBillScenarioCommandOutput } from "./commands/GetBillScenarioCommand"; +import { GetPreferencesCommandInput, GetPreferencesCommandOutput } from "./commands/GetPreferencesCommand"; +import { + GetWorkloadEstimateCommandInput, + GetWorkloadEstimateCommandOutput, +} from "./commands/GetWorkloadEstimateCommand"; +import { + ListBillEstimateCommitmentsCommandInput, + ListBillEstimateCommitmentsCommandOutput, +} from "./commands/ListBillEstimateCommitmentsCommand"; +import { + ListBillEstimateInputCommitmentModificationsCommandInput, + ListBillEstimateInputCommitmentModificationsCommandOutput, +} from "./commands/ListBillEstimateInputCommitmentModificationsCommand"; +import { + ListBillEstimateInputUsageModificationsCommandInput, + ListBillEstimateInputUsageModificationsCommandOutput, +} from "./commands/ListBillEstimateInputUsageModificationsCommand"; +import { + ListBillEstimateLineItemsCommandInput, + ListBillEstimateLineItemsCommandOutput, +} from "./commands/ListBillEstimateLineItemsCommand"; +import { ListBillEstimatesCommandInput, ListBillEstimatesCommandOutput } from "./commands/ListBillEstimatesCommand"; +import { + ListBillScenarioCommitmentModificationsCommandInput, + ListBillScenarioCommitmentModificationsCommandOutput, +} from "./commands/ListBillScenarioCommitmentModificationsCommand"; +import { ListBillScenariosCommandInput, ListBillScenariosCommandOutput } from "./commands/ListBillScenariosCommand"; +import { + ListBillScenarioUsageModificationsCommandInput, + ListBillScenarioUsageModificationsCommandOutput, +} from "./commands/ListBillScenarioUsageModificationsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "./commands/ListTagsForResourceCommand"; +import { + ListWorkloadEstimatesCommandInput, + ListWorkloadEstimatesCommandOutput, +} from "./commands/ListWorkloadEstimatesCommand"; +import { + ListWorkloadEstimateUsageCommandInput, + ListWorkloadEstimateUsageCommandOutput, +} from "./commands/ListWorkloadEstimateUsageCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; +import { UpdateBillEstimateCommandInput, UpdateBillEstimateCommandOutput } from "./commands/UpdateBillEstimateCommand"; +import { UpdateBillScenarioCommandInput, UpdateBillScenarioCommandOutput } from "./commands/UpdateBillScenarioCommand"; +import { UpdatePreferencesCommandInput, UpdatePreferencesCommandOutput } from "./commands/UpdatePreferencesCommand"; +import { + UpdateWorkloadEstimateCommandInput, + UpdateWorkloadEstimateCommandOutput, +} from "./commands/UpdateWorkloadEstimateCommand"; +import { + ClientInputEndpointParameters, + ClientResolvedEndpointParameters, + EndpointParameters, + resolveClientEndpointParameters, +} from "./endpoint/EndpointParameters"; +import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; +import { resolveRuntimeExtensions, RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions"; + +export { __Client }; + +/** + * @public + */ +export type ServiceInputTypes = + | BatchCreateBillScenarioCommitmentModificationCommandInput + | BatchCreateBillScenarioUsageModificationCommandInput + | BatchCreateWorkloadEstimateUsageCommandInput + | BatchDeleteBillScenarioCommitmentModificationCommandInput + | BatchDeleteBillScenarioUsageModificationCommandInput + | BatchDeleteWorkloadEstimateUsageCommandInput + | BatchUpdateBillScenarioCommitmentModificationCommandInput + | BatchUpdateBillScenarioUsageModificationCommandInput + | BatchUpdateWorkloadEstimateUsageCommandInput + | CreateBillEstimateCommandInput + | CreateBillScenarioCommandInput + | CreateWorkloadEstimateCommandInput + | DeleteBillEstimateCommandInput + | DeleteBillScenarioCommandInput + | DeleteWorkloadEstimateCommandInput + | GetBillEstimateCommandInput + | GetBillScenarioCommandInput + | GetPreferencesCommandInput + | GetWorkloadEstimateCommandInput + | ListBillEstimateCommitmentsCommandInput + | ListBillEstimateInputCommitmentModificationsCommandInput + | ListBillEstimateInputUsageModificationsCommandInput + | ListBillEstimateLineItemsCommandInput + | ListBillEstimatesCommandInput + | ListBillScenarioCommitmentModificationsCommandInput + | ListBillScenarioUsageModificationsCommandInput + | ListBillScenariosCommandInput + | ListTagsForResourceCommandInput + | ListWorkloadEstimateUsageCommandInput + | ListWorkloadEstimatesCommandInput + | TagResourceCommandInput + | UntagResourceCommandInput + | UpdateBillEstimateCommandInput + | UpdateBillScenarioCommandInput + | UpdatePreferencesCommandInput + | UpdateWorkloadEstimateCommandInput; + +/** + * @public + */ +export type ServiceOutputTypes = + | BatchCreateBillScenarioCommitmentModificationCommandOutput + | BatchCreateBillScenarioUsageModificationCommandOutput + | BatchCreateWorkloadEstimateUsageCommandOutput + | BatchDeleteBillScenarioCommitmentModificationCommandOutput + | BatchDeleteBillScenarioUsageModificationCommandOutput + | BatchDeleteWorkloadEstimateUsageCommandOutput + | BatchUpdateBillScenarioCommitmentModificationCommandOutput + | BatchUpdateBillScenarioUsageModificationCommandOutput + | BatchUpdateWorkloadEstimateUsageCommandOutput + | CreateBillEstimateCommandOutput + | CreateBillScenarioCommandOutput + | CreateWorkloadEstimateCommandOutput + | DeleteBillEstimateCommandOutput + | DeleteBillScenarioCommandOutput + | DeleteWorkloadEstimateCommandOutput + | GetBillEstimateCommandOutput + | GetBillScenarioCommandOutput + | GetPreferencesCommandOutput + | GetWorkloadEstimateCommandOutput + | ListBillEstimateCommitmentsCommandOutput + | ListBillEstimateInputCommitmentModificationsCommandOutput + | ListBillEstimateInputUsageModificationsCommandOutput + | ListBillEstimateLineItemsCommandOutput + | ListBillEstimatesCommandOutput + | ListBillScenarioCommitmentModificationsCommandOutput + | ListBillScenarioUsageModificationsCommandOutput + | ListBillScenariosCommandOutput + | ListTagsForResourceCommandOutput + | ListWorkloadEstimateUsageCommandOutput + | ListWorkloadEstimatesCommandOutput + | TagResourceCommandOutput + | UntagResourceCommandOutput + | UpdateBillEstimateCommandOutput + | UpdateBillScenarioCommandOutput + | UpdatePreferencesCommandOutput + | UpdateWorkloadEstimateCommandOutput; + +/** + * @public + */ +export interface ClientDefaults extends Partial<__SmithyConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use or its constructor options. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandlerUserInput; + + /** + * A constructor for a class implementing the {@link @smithy/types#ChecksumConstructor} interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + * @internal + */ + sha256?: __ChecksumConstructor | __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?: __BodyLengthCalculator; + + /** + * 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 dynamically changing the endpoint of the client based on the hostPrefix + * trait of an operation. + */ + disableHostPrefix?: boolean; + + /** + * Unique service identifier. + * @internal + */ + serviceId?: string; + + /** + * Enables IPv6/IPv4 dualstack endpoint. + */ + useDualstackEndpoint?: boolean | __Provider; + + /** + * Enables FIPS compatible endpoints. + */ + useFipsEndpoint?: boolean | __Provider; + + /** + * The AWS region to which this client will send requests + */ + region?: string | __Provider; + + /** + * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header + * @internal + */ + defaultUserAgentProvider?: Provider<__UserAgent>; + + /** + * Default credentials provider; Not available in browser runtime. + * @deprecated + * @internal + */ + credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider; + + /** + * 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. + * @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-smithy-util-retry/Enum/RETRY_MODES/ + * + */ + retryMode?: string | __Provider; + + /** + * Optional logger for logging debug/info/warn/error. + */ + logger?: __Logger; + + /** + * Optional extensions + */ + extensions?: RuntimeExtension[]; + + /** + * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. + */ + defaultsMode?: __DefaultsMode | __Provider<__DefaultsMode>; +} + +/** + * @public + */ +export type BCMPricingCalculatorClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & + ClientDefaults & + UserAgentInputConfig & + RetryInputConfig & + RegionInputConfig & + HostHeaderInputConfig & + EndpointInputConfig & + HttpAuthSchemeInputConfig & + ClientInputEndpointParameters; +/** + * @public + * + * The configuration interface of BCMPricingCalculatorClient class constructor that set the region, credentials and other options. + */ +export interface BCMPricingCalculatorClientConfig extends BCMPricingCalculatorClientConfigType {} + +/** + * @public + */ +export type BCMPricingCalculatorClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & + Required & + RuntimeExtensionsConfig & + UserAgentResolvedConfig & + RetryResolvedConfig & + RegionResolvedConfig & + HostHeaderResolvedConfig & + EndpointResolvedConfig & + HttpAuthSchemeResolvedConfig & + ClientResolvedEndpointParameters; +/** + * @public + * + * The resolved configuration interface of BCMPricingCalculatorClient class. This is resolved and normalized from the {@link BCMPricingCalculatorClientConfig | constructor configuration interface}. + */ +export interface BCMPricingCalculatorClientResolvedConfig extends BCMPricingCalculatorClientResolvedConfigType {} + +/** + *

+ * You can use the Pricing Calculator API to programmatically create estimates for your planned cloud use. You can model usage and commitments such as Savings Plans and + * Reserved Instances, and generate estimated costs using your discounts and benefit sharing preferences. + *

+ *

The Pricing Calculator API provides the following endpoint:

+ *
    + *
  • + *

    + * https://bcm-pricing-calculator.us-east-1.api.aws + *

    + *
  • + *
+ * @public + */ +export class BCMPricingCalculatorClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + BCMPricingCalculatorClientResolvedConfig +> { + /** + * The resolved configuration of BCMPricingCalculatorClient class. This is resolved and normalized from the {@link BCMPricingCalculatorClientConfig | constructor configuration interface}. + */ + readonly config: BCMPricingCalculatorClientResolvedConfig; + + constructor(...[configuration]: __CheckOptionalClientConfig) { + const _config_0 = __getRuntimeConfig(configuration || {}); + const _config_1 = resolveClientEndpointParameters(_config_0); + const _config_2 = resolveUserAgentConfig(_config_1); + const _config_3 = resolveRetryConfig(_config_2); + const _config_4 = resolveRegionConfig(_config_3); + const _config_5 = resolveHostHeaderConfig(_config_4); + const _config_6 = resolveEndpointConfig(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig(_config_6); + const _config_8 = resolveRuntimeExtensions(_config_7, configuration?.extensions || []); + super(_config_8); + this.config = _config_8; + this.middlewareStack.use(getUserAgentPlugin(this.config)); + 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(getRecursionDetectionPlugin(this.config)); + this.middlewareStack.use( + getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultBCMPricingCalculatorHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async (config: BCMPricingCalculatorClientResolvedConfig) => + new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config.credentials, + }), + }) + ); + this.middlewareStack.use(getHttpSigningPlugin(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-bcm-pricing-calculator/src/auth/httpAuthExtensionConfiguration.ts b/clients/client-bcm-pricing-calculator/src/auth/httpAuthExtensionConfiguration.ts new file mode 100644 index 0000000000000..63d08725fb6ce --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/auth/httpAuthExtensionConfiguration.ts @@ -0,0 +1,72 @@ +// smithy-typescript generated code +import { AwsCredentialIdentity, AwsCredentialIdentityProvider, HttpAuthScheme } from "@smithy/types"; + +import { BCMPricingCalculatorHttpAuthSchemeProvider } from "./httpAuthSchemeProvider"; + +/** + * @internal + */ +export interface HttpAuthExtensionConfiguration { + setHttpAuthScheme(httpAuthScheme: HttpAuthScheme): void; + httpAuthSchemes(): HttpAuthScheme[]; + setHttpAuthSchemeProvider(httpAuthSchemeProvider: BCMPricingCalculatorHttpAuthSchemeProvider): void; + httpAuthSchemeProvider(): BCMPricingCalculatorHttpAuthSchemeProvider; + setCredentials(credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider): void; + credentials(): AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined; +} + +/** + * @internal + */ +export type HttpAuthRuntimeConfig = Partial<{ + httpAuthSchemes: HttpAuthScheme[]; + httpAuthSchemeProvider: BCMPricingCalculatorHttpAuthSchemeProvider; + credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider; +}>; + +/** + * @internal + */ +export const getHttpAuthExtensionConfiguration = ( + runtimeConfig: HttpAuthRuntimeConfig +): HttpAuthExtensionConfiguration => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes!; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider!; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme: HttpAuthScheme): void { + const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index, 1, httpAuthScheme); + } + }, + httpAuthSchemes(): HttpAuthScheme[] { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider: BCMPricingCalculatorHttpAuthSchemeProvider): void { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider(): BCMPricingCalculatorHttpAuthSchemeProvider { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials: AwsCredentialIdentity | AwsCredentialIdentityProvider): void { + _credentials = credentials; + }, + credentials(): AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined { + return _credentials; + }, + }; +}; + +/** + * @internal + */ +export const resolveHttpAuthRuntimeConfig = (config: HttpAuthExtensionConfiguration): HttpAuthRuntimeConfig => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials(), + }; +}; diff --git a/clients/client-bcm-pricing-calculator/src/auth/httpAuthSchemeProvider.ts b/clients/client-bcm-pricing-calculator/src/auth/httpAuthSchemeProvider.ts new file mode 100644 index 0000000000000..c0fc55db4316a --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/auth/httpAuthSchemeProvider.ts @@ -0,0 +1,145 @@ +// smithy-typescript generated code +import { + AwsSdkSigV4AuthInputConfig, + AwsSdkSigV4AuthResolvedConfig, + AwsSdkSigV4PreviouslyResolved, + resolveAwsSdkSigV4Config, +} from "@aws-sdk/core"; +import { + HandlerExecutionContext, + HttpAuthOption, + HttpAuthScheme, + HttpAuthSchemeParameters, + HttpAuthSchemeParametersProvider, + HttpAuthSchemeProvider, +} from "@smithy/types"; +import { getSmithyContext, normalizeProvider } from "@smithy/util-middleware"; + +import { + BCMPricingCalculatorClientConfig, + BCMPricingCalculatorClientResolvedConfig, +} from "../BCMPricingCalculatorClient"; + +/** + * @internal + */ +export interface BCMPricingCalculatorHttpAuthSchemeParameters extends HttpAuthSchemeParameters { + region?: string; +} + +/** + * @internal + */ +export interface BCMPricingCalculatorHttpAuthSchemeParametersProvider + extends HttpAuthSchemeParametersProvider< + BCMPricingCalculatorClientResolvedConfig, + HandlerExecutionContext, + BCMPricingCalculatorHttpAuthSchemeParameters, + object + > {} + +/** + * @internal + */ +export const defaultBCMPricingCalculatorHttpAuthSchemeParametersProvider = async ( + config: BCMPricingCalculatorClientResolvedConfig, + context: HandlerExecutionContext, + input: object +): Promise => { + return { + operation: getSmithyContext(context).operation as string, + region: + (await normalizeProvider(config.region)()) || + (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })(), + }; +}; + +function createAwsAuthSigv4HttpAuthOption( + authParameters: BCMPricingCalculatorHttpAuthSchemeParameters +): HttpAuthOption { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "bcm-pricing-calculator", + region: authParameters.region, + }, + propertiesExtractor: (config: Partial, context) => ({ + /** + * @internal + */ + signingProperties: { + config, + context, + }, + }), + }; +} + +/** + * @internal + */ +export interface BCMPricingCalculatorHttpAuthSchemeProvider + extends HttpAuthSchemeProvider {} + +/** + * @internal + */ +export const defaultBCMPricingCalculatorHttpAuthSchemeProvider: BCMPricingCalculatorHttpAuthSchemeProvider = ( + authParameters +) => { + const options: HttpAuthOption[] = []; + switch (authParameters.operation) { + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + } + } + return options; +}; + +/** + * @internal + */ +export interface HttpAuthSchemeInputConfig extends AwsSdkSigV4AuthInputConfig { + /** + * Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme. + * @internal + */ + httpAuthSchemes?: HttpAuthScheme[]; + + /** + * Configuration of an HttpAuthSchemeProvider for a client which resolves which HttpAuthScheme to use. + * @internal + */ + httpAuthSchemeProvider?: BCMPricingCalculatorHttpAuthSchemeProvider; +} + +/** + * @internal + */ +export interface HttpAuthSchemeResolvedConfig extends AwsSdkSigV4AuthResolvedConfig { + /** + * Configuration of HttpAuthSchemes for a client which provides default identity providers and signers per auth scheme. + * @internal + */ + readonly httpAuthSchemes: HttpAuthScheme[]; + + /** + * Configuration of an HttpAuthSchemeProvider for a client which resolves which HttpAuthScheme to use. + * @internal + */ + readonly httpAuthSchemeProvider: BCMPricingCalculatorHttpAuthSchemeProvider; +} + +/** + * @internal + */ +export const resolveHttpAuthSchemeConfig = ( + config: T & HttpAuthSchemeInputConfig & AwsSdkSigV4PreviouslyResolved +): T & HttpAuthSchemeResolvedConfig => { + const config_0 = resolveAwsSdkSigV4Config(config); + return { + ...config_0, + } as T & HttpAuthSchemeResolvedConfig; +}; diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioCommitmentModificationCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioCommitmentModificationCommand.ts new file mode 100644 index 0000000000000..615d6d2ed5878 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioCommitmentModificationCommand.ts @@ -0,0 +1,196 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchCreateBillScenarioCommitmentModificationRequest, + BatchCreateBillScenarioCommitmentModificationResponse, +} from "../models/models_0"; +import { + de_BatchCreateBillScenarioCommitmentModificationCommand, + se_BatchCreateBillScenarioCommitmentModificationCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchCreateBillScenarioCommitmentModificationCommand}. + */ +export interface BatchCreateBillScenarioCommitmentModificationCommandInput + extends BatchCreateBillScenarioCommitmentModificationRequest {} +/** + * @public + * + * The output of {@link BatchCreateBillScenarioCommitmentModificationCommand}. + */ +export interface BatchCreateBillScenarioCommitmentModificationCommandOutput + extends BatchCreateBillScenarioCommitmentModificationResponse, + __MetadataBearer {} + +/** + *

+ * Create Compute Savings Plans, EC2 Instance Savings Plans, or EC2 Reserved Instances commitments that you want to model in a Bill Scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchCreateBillScenarioCommitmentModificationCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchCreateBillScenarioCommitmentModificationCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchCreateBillScenarioCommitmentModificationRequest + * billScenarioId: "STRING_VALUE", // required + * commitmentModifications: [ // BatchCreateBillScenarioCommitmentModificationEntries // required + * { // BatchCreateBillScenarioCommitmentModificationEntry + * key: "STRING_VALUE", // required + * group: "STRING_VALUE", + * usageAccountId: "STRING_VALUE", // required + * commitmentAction: { // BillScenarioCommitmentModificationAction Union: only one key present + * addReservedInstanceAction: { // AddReservedInstanceAction + * reservedInstancesOfferingId: "STRING_VALUE", + * instanceCount: Number("int"), + * }, + * addSavingsPlanAction: { // AddSavingsPlanAction + * savingsPlanOfferingId: "STRING_VALUE", + * commitment: Number("double"), + * }, + * negateReservedInstanceAction: { // NegateReservedInstanceAction + * reservedInstancesId: "STRING_VALUE", + * }, + * negateSavingsPlanAction: { // NegateSavingsPlanAction + * savingsPlanId: "STRING_VALUE", + * }, + * }, + * }, + * ], + * clientToken: "STRING_VALUE", + * }; + * const command = new BatchCreateBillScenarioCommitmentModificationCommand(input); + * const response = await client.send(command); + * // { // BatchCreateBillScenarioCommitmentModificationResponse + * // items: [ // BatchCreateBillScenarioCommitmentModificationItems + * // { // BatchCreateBillScenarioCommitmentModificationItem + * // key: "STRING_VALUE", + * // id: "STRING_VALUE", + * // group: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // commitmentAction: { // BillScenarioCommitmentModificationAction Union: only one key present + * // addReservedInstanceAction: { // AddReservedInstanceAction + * // reservedInstancesOfferingId: "STRING_VALUE", + * // instanceCount: Number("int"), + * // }, + * // addSavingsPlanAction: { // AddSavingsPlanAction + * // savingsPlanOfferingId: "STRING_VALUE", + * // commitment: Number("double"), + * // }, + * // negateReservedInstanceAction: { // NegateReservedInstanceAction + * // reservedInstancesId: "STRING_VALUE", + * // }, + * // negateSavingsPlanAction: { // NegateSavingsPlanAction + * // savingsPlanId: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // errors: [ // BatchCreateBillScenarioCommitmentModificationErrors + * // { // BatchCreateBillScenarioCommitmentModificationError + * // key: "STRING_VALUE", + * // errorMessage: "STRING_VALUE", + * // errorCode: "CONFLICT" || "INTERNAL_SERVER_ERROR" || "INVALID_ACCOUNT", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchCreateBillScenarioCommitmentModificationCommandInput - {@link BatchCreateBillScenarioCommitmentModificationCommandInput} + * @returns {@link BatchCreateBillScenarioCommitmentModificationCommandOutput} + * @see {@link BatchCreateBillScenarioCommitmentModificationCommandInput} for command's `input` shape. + * @see {@link BatchCreateBillScenarioCommitmentModificationCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchCreateBillScenarioCommitmentModificationCommand extends $Command + .classBuilder< + BatchCreateBillScenarioCommitmentModificationCommandInput, + BatchCreateBillScenarioCommitmentModificationCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchCreateBillScenarioCommitmentModification", {}) + .n("BCMPricingCalculatorClient", "BatchCreateBillScenarioCommitmentModificationCommand") + .f(void 0, void 0) + .ser(se_BatchCreateBillScenarioCommitmentModificationCommand) + .de(de_BatchCreateBillScenarioCommitmentModificationCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchCreateBillScenarioCommitmentModificationRequest; + output: BatchCreateBillScenarioCommitmentModificationResponse; + }; + sdk: { + input: BatchCreateBillScenarioCommitmentModificationCommandInput; + output: BatchCreateBillScenarioCommitmentModificationCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioUsageModificationCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioUsageModificationCommand.ts new file mode 100644 index 0000000000000..9fc01f037eb85 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchCreateBillScenarioUsageModificationCommand.ts @@ -0,0 +1,319 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchCreateBillScenarioUsageModificationRequest, + BatchCreateBillScenarioUsageModificationResponse, +} from "../models/models_0"; +import { + de_BatchCreateBillScenarioUsageModificationCommand, + se_BatchCreateBillScenarioUsageModificationCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchCreateBillScenarioUsageModificationCommand}. + */ +export interface BatchCreateBillScenarioUsageModificationCommandInput + extends BatchCreateBillScenarioUsageModificationRequest {} +/** + * @public + * + * The output of {@link BatchCreateBillScenarioUsageModificationCommand}. + */ +export interface BatchCreateBillScenarioUsageModificationCommandOutput + extends BatchCreateBillScenarioUsageModificationResponse, + __MetadataBearer {} + +/** + *

+ * Create Amazon Web Services service usage that you want to model in a Bill Scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchCreateBillScenarioUsageModificationCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchCreateBillScenarioUsageModificationCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchCreateBillScenarioUsageModificationRequest + * billScenarioId: "STRING_VALUE", // required + * usageModifications: [ // BatchCreateBillScenarioUsageModificationEntries // required + * { // BatchCreateBillScenarioUsageModificationEntry + * serviceCode: "STRING_VALUE", // required + * usageType: "STRING_VALUE", // required + * operation: "STRING_VALUE", // required + * availabilityZone: "STRING_VALUE", + * key: "STRING_VALUE", // required + * group: "STRING_VALUE", + * usageAccountId: "STRING_VALUE", // required + * amounts: [ // UsageAmounts + * { // UsageAmount + * startHour: new Date("TIMESTAMP"), // required + * amount: Number("double"), // required + * }, + * ], + * historicalUsage: { // HistoricalUsageEntity + * serviceCode: "STRING_VALUE", // required + * usageType: "STRING_VALUE", // required + * operation: "STRING_VALUE", // required + * location: "STRING_VALUE", + * usageAccountId: "STRING_VALUE", // required + * billInterval: { // BillInterval + * start: new Date("TIMESTAMP"), + * end: new Date("TIMESTAMP"), + * }, + * filterExpression: { // Expression + * and: [ // ExpressionList + * { + * and: [ + * "", + * ], + * or: [ + * "", + * ], + * not: "", + * costCategories: { // ExpressionFilter + * key: "STRING_VALUE", + * matchOptions: [ // StringList + * "STRING_VALUE", + * ], + * values: [ + * "STRING_VALUE", + * ], + * }, + * dimensions: { + * key: "STRING_VALUE", + * matchOptions: [ + * "STRING_VALUE", + * ], + * values: [ + * "STRING_VALUE", + * ], + * }, + * tags: { + * key: "STRING_VALUE", + * matchOptions: [ + * "STRING_VALUE", + * ], + * values: "", + * }, + * }, + * ], + * or: [ + * "", + * ], + * not: "", + * costCategories: { + * key: "STRING_VALUE", + * matchOptions: "", + * values: "", + * }, + * dimensions: { + * key: "STRING_VALUE", + * matchOptions: "", + * values: "", + * }, + * tags: "", + * }, + * }, + * }, + * ], + * clientToken: "STRING_VALUE", + * }; + * const command = new BatchCreateBillScenarioUsageModificationCommand(input); + * const response = await client.send(command); + * // { // BatchCreateBillScenarioUsageModificationResponse + * // items: [ // BatchCreateBillScenarioUsageModificationItems + * // { // BatchCreateBillScenarioUsageModificationItem + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // availabilityZone: "STRING_VALUE", + * // id: "STRING_VALUE", + * // group: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // quantities: [ // UsageQuantities + * // { // UsageQuantity + * // startHour: new Date("TIMESTAMP"), + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // ], + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // key: "STRING_VALUE", + * // }, + * // ], + * // errors: [ // BatchCreateBillScenarioUsageModificationErrors + * // { // BatchCreateBillScenarioUsageModificationError + * // key: "STRING_VALUE", + * // errorMessage: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "NOT_FOUND" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchCreateBillScenarioUsageModificationCommandInput - {@link BatchCreateBillScenarioUsageModificationCommandInput} + * @returns {@link BatchCreateBillScenarioUsageModificationCommandOutput} + * @see {@link BatchCreateBillScenarioUsageModificationCommandInput} for command's `input` shape. + * @see {@link BatchCreateBillScenarioUsageModificationCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchCreateBillScenarioUsageModificationCommand extends $Command + .classBuilder< + BatchCreateBillScenarioUsageModificationCommandInput, + BatchCreateBillScenarioUsageModificationCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchCreateBillScenarioUsageModification", {}) + .n("BCMPricingCalculatorClient", "BatchCreateBillScenarioUsageModificationCommand") + .f(void 0, void 0) + .ser(se_BatchCreateBillScenarioUsageModificationCommand) + .de(de_BatchCreateBillScenarioUsageModificationCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchCreateBillScenarioUsageModificationRequest; + output: BatchCreateBillScenarioUsageModificationResponse; + }; + sdk: { + input: BatchCreateBillScenarioUsageModificationCommandInput; + output: BatchCreateBillScenarioUsageModificationCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchCreateWorkloadEstimateUsageCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchCreateWorkloadEstimateUsageCommand.ts new file mode 100644 index 0000000000000..86073dd5ee8c8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchCreateWorkloadEstimateUsageCommand.ts @@ -0,0 +1,308 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { BatchCreateWorkloadEstimateUsageRequest, BatchCreateWorkloadEstimateUsageResponse } from "../models/models_0"; +import { + de_BatchCreateWorkloadEstimateUsageCommand, + se_BatchCreateWorkloadEstimateUsageCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchCreateWorkloadEstimateUsageCommand}. + */ +export interface BatchCreateWorkloadEstimateUsageCommandInput extends BatchCreateWorkloadEstimateUsageRequest {} +/** + * @public + * + * The output of {@link BatchCreateWorkloadEstimateUsageCommand}. + */ +export interface BatchCreateWorkloadEstimateUsageCommandOutput + extends BatchCreateWorkloadEstimateUsageResponse, + __MetadataBearer {} + +/** + *

+ * Create Amazon Web Services service usage that you want to model in a Workload Estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchCreateWorkloadEstimateUsageCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchCreateWorkloadEstimateUsageCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchCreateWorkloadEstimateUsageRequest + * workloadEstimateId: "STRING_VALUE", // required + * usage: [ // BatchCreateWorkloadEstimateUsageEntries // required + * { // BatchCreateWorkloadEstimateUsageEntry + * serviceCode: "STRING_VALUE", // required + * usageType: "STRING_VALUE", // required + * operation: "STRING_VALUE", // required + * key: "STRING_VALUE", // required + * group: "STRING_VALUE", + * usageAccountId: "STRING_VALUE", // required + * amount: Number("double"), // required + * historicalUsage: { // HistoricalUsageEntity + * serviceCode: "STRING_VALUE", // required + * usageType: "STRING_VALUE", // required + * operation: "STRING_VALUE", // required + * location: "STRING_VALUE", + * usageAccountId: "STRING_VALUE", // required + * billInterval: { // BillInterval + * start: new Date("TIMESTAMP"), + * end: new Date("TIMESTAMP"), + * }, + * filterExpression: { // Expression + * and: [ // ExpressionList + * { + * and: [ + * "", + * ], + * or: [ + * "", + * ], + * not: "", + * costCategories: { // ExpressionFilter + * key: "STRING_VALUE", + * matchOptions: [ // StringList + * "STRING_VALUE", + * ], + * values: [ + * "STRING_VALUE", + * ], + * }, + * dimensions: { + * key: "STRING_VALUE", + * matchOptions: [ + * "STRING_VALUE", + * ], + * values: [ + * "STRING_VALUE", + * ], + * }, + * tags: { + * key: "STRING_VALUE", + * matchOptions: [ + * "STRING_VALUE", + * ], + * values: "", + * }, + * }, + * ], + * or: [ + * "", + * ], + * not: "", + * costCategories: { + * key: "STRING_VALUE", + * matchOptions: "", + * values: "", + * }, + * dimensions: { + * key: "STRING_VALUE", + * matchOptions: "", + * values: "", + * }, + * tags: "", + * }, + * }, + * }, + * ], + * clientToken: "STRING_VALUE", + * }; + * const command = new BatchCreateWorkloadEstimateUsageCommand(input); + * const response = await client.send(command); + * // { // BatchCreateWorkloadEstimateUsageResponse + * // items: [ // BatchCreateWorkloadEstimateUsageItems + * // { // BatchCreateWorkloadEstimateUsageItem + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // id: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // group: "STRING_VALUE", + * // quantity: { // WorkloadEstimateUsageQuantity + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // cost: Number("double"), + * // currency: "USD", + * // status: "VALID" || "INVALID" || "STALE", + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // key: "STRING_VALUE", + * // }, + * // ], + * // errors: [ // BatchCreateWorkloadEstimateUsageErrors + * // { // BatchCreateWorkloadEstimateUsageError + * // key: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "NOT_FOUND" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // errorMessage: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchCreateWorkloadEstimateUsageCommandInput - {@link BatchCreateWorkloadEstimateUsageCommandInput} + * @returns {@link BatchCreateWorkloadEstimateUsageCommandOutput} + * @see {@link BatchCreateWorkloadEstimateUsageCommandInput} for command's `input` shape. + * @see {@link BatchCreateWorkloadEstimateUsageCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchCreateWorkloadEstimateUsageCommand extends $Command + .classBuilder< + BatchCreateWorkloadEstimateUsageCommandInput, + BatchCreateWorkloadEstimateUsageCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchCreateWorkloadEstimateUsage", {}) + .n("BCMPricingCalculatorClient", "BatchCreateWorkloadEstimateUsageCommand") + .f(void 0, void 0) + .ser(se_BatchCreateWorkloadEstimateUsageCommand) + .de(de_BatchCreateWorkloadEstimateUsageCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchCreateWorkloadEstimateUsageRequest; + output: BatchCreateWorkloadEstimateUsageResponse; + }; + sdk: { + input: BatchCreateWorkloadEstimateUsageCommandInput; + output: BatchCreateWorkloadEstimateUsageCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioCommitmentModificationCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioCommitmentModificationCommand.ts new file mode 100644 index 0000000000000..bceabcad52410 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioCommitmentModificationCommand.ts @@ -0,0 +1,151 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchDeleteBillScenarioCommitmentModificationRequest, + BatchDeleteBillScenarioCommitmentModificationResponse, +} from "../models/models_0"; +import { + de_BatchDeleteBillScenarioCommitmentModificationCommand, + se_BatchDeleteBillScenarioCommitmentModificationCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchDeleteBillScenarioCommitmentModificationCommand}. + */ +export interface BatchDeleteBillScenarioCommitmentModificationCommandInput + extends BatchDeleteBillScenarioCommitmentModificationRequest {} +/** + * @public + * + * The output of {@link BatchDeleteBillScenarioCommitmentModificationCommand}. + */ +export interface BatchDeleteBillScenarioCommitmentModificationCommandOutput + extends BatchDeleteBillScenarioCommitmentModificationResponse, + __MetadataBearer {} + +/** + *

+ * Delete commitment that you have created in a Bill Scenario. You can only delete a commitment that you had + * added and cannot model deletion (or removal) of a existing commitment. If you want model deletion of an existing + * commitment, see the negate + * BillScenarioCommitmentModificationAction of + * + * BatchCreateBillScenarioCommitmentModification operation. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchDeleteBillScenarioCommitmentModificationCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchDeleteBillScenarioCommitmentModificationCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchDeleteBillScenarioCommitmentModificationRequest + * billScenarioId: "STRING_VALUE", // required + * ids: [ // BatchDeleteBillScenarioCommitmentModificationEntries // required + * "STRING_VALUE", + * ], + * }; + * const command = new BatchDeleteBillScenarioCommitmentModificationCommand(input); + * const response = await client.send(command); + * // { // BatchDeleteBillScenarioCommitmentModificationResponse + * // errors: [ // BatchDeleteBillScenarioCommitmentModificationErrors + * // { // BatchDeleteBillScenarioCommitmentModificationError + * // id: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // errorMessage: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchDeleteBillScenarioCommitmentModificationCommandInput - {@link BatchDeleteBillScenarioCommitmentModificationCommandInput} + * @returns {@link BatchDeleteBillScenarioCommitmentModificationCommandOutput} + * @see {@link BatchDeleteBillScenarioCommitmentModificationCommandInput} for command's `input` shape. + * @see {@link BatchDeleteBillScenarioCommitmentModificationCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchDeleteBillScenarioCommitmentModificationCommand extends $Command + .classBuilder< + BatchDeleteBillScenarioCommitmentModificationCommandInput, + BatchDeleteBillScenarioCommitmentModificationCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchDeleteBillScenarioCommitmentModification", {}) + .n("BCMPricingCalculatorClient", "BatchDeleteBillScenarioCommitmentModificationCommand") + .f(void 0, void 0) + .ser(se_BatchDeleteBillScenarioCommitmentModificationCommand) + .de(de_BatchDeleteBillScenarioCommitmentModificationCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchDeleteBillScenarioCommitmentModificationRequest; + output: BatchDeleteBillScenarioCommitmentModificationResponse; + }; + sdk: { + input: BatchDeleteBillScenarioCommitmentModificationCommandInput; + output: BatchDeleteBillScenarioCommitmentModificationCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioUsageModificationCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioUsageModificationCommand.ts new file mode 100644 index 0000000000000..99d5be0f5d004 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteBillScenarioUsageModificationCommand.ts @@ -0,0 +1,154 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchDeleteBillScenarioUsageModificationRequest, + BatchDeleteBillScenarioUsageModificationResponse, +} from "../models/models_0"; +import { + de_BatchDeleteBillScenarioUsageModificationCommand, + se_BatchDeleteBillScenarioUsageModificationCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchDeleteBillScenarioUsageModificationCommand}. + */ +export interface BatchDeleteBillScenarioUsageModificationCommandInput + extends BatchDeleteBillScenarioUsageModificationRequest {} +/** + * @public + * + * The output of {@link BatchDeleteBillScenarioUsageModificationCommand}. + */ +export interface BatchDeleteBillScenarioUsageModificationCommandOutput + extends BatchDeleteBillScenarioUsageModificationResponse, + __MetadataBearer {} + +/** + *

+ * Delete usage that you have created in a Bill Scenario. You can only delete usage that you had added and cannot model + * deletion (or removal) of a existing usage. If you want model removal of an existing usage, see + * + * BatchUpdateBillScenarioUsageModification. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchDeleteBillScenarioUsageModificationCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchDeleteBillScenarioUsageModificationCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchDeleteBillScenarioUsageModificationRequest + * billScenarioId: "STRING_VALUE", // required + * ids: [ // BatchDeleteBillScenarioUsageModificationEntries // required + * "STRING_VALUE", + * ], + * }; + * const command = new BatchDeleteBillScenarioUsageModificationCommand(input); + * const response = await client.send(command); + * // { // BatchDeleteBillScenarioUsageModificationResponse + * // errors: [ // BatchDeleteBillScenarioUsageModificationErrors + * // { // BatchDeleteBillScenarioUsageModificationError + * // id: "STRING_VALUE", + * // errorMessage: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchDeleteBillScenarioUsageModificationCommandInput - {@link BatchDeleteBillScenarioUsageModificationCommandInput} + * @returns {@link BatchDeleteBillScenarioUsageModificationCommandOutput} + * @see {@link BatchDeleteBillScenarioUsageModificationCommandInput} for command's `input` shape. + * @see {@link BatchDeleteBillScenarioUsageModificationCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchDeleteBillScenarioUsageModificationCommand extends $Command + .classBuilder< + BatchDeleteBillScenarioUsageModificationCommandInput, + BatchDeleteBillScenarioUsageModificationCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchDeleteBillScenarioUsageModification", {}) + .n("BCMPricingCalculatorClient", "BatchDeleteBillScenarioUsageModificationCommand") + .f(void 0, void 0) + .ser(se_BatchDeleteBillScenarioUsageModificationCommand) + .de(de_BatchDeleteBillScenarioUsageModificationCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchDeleteBillScenarioUsageModificationRequest; + output: BatchDeleteBillScenarioUsageModificationResponse; + }; + sdk: { + input: BatchDeleteBillScenarioUsageModificationCommandInput; + output: BatchDeleteBillScenarioUsageModificationCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteWorkloadEstimateUsageCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteWorkloadEstimateUsageCommand.ts new file mode 100644 index 0000000000000..52aff82a750e8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchDeleteWorkloadEstimateUsageCommand.ts @@ -0,0 +1,150 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { BatchDeleteWorkloadEstimateUsageRequest, BatchDeleteWorkloadEstimateUsageResponse } from "../models/models_0"; +import { + de_BatchDeleteWorkloadEstimateUsageCommand, + se_BatchDeleteWorkloadEstimateUsageCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchDeleteWorkloadEstimateUsageCommand}. + */ +export interface BatchDeleteWorkloadEstimateUsageCommandInput extends BatchDeleteWorkloadEstimateUsageRequest {} +/** + * @public + * + * The output of {@link BatchDeleteWorkloadEstimateUsageCommand}. + */ +export interface BatchDeleteWorkloadEstimateUsageCommandOutput + extends BatchDeleteWorkloadEstimateUsageResponse, + __MetadataBearer {} + +/** + *

+ * Delete usage that you have created in a Workload estimate. You can only delete usage that you had added and cannot model deletion + * (or removal) of a existing usage. If you want model removal of an existing usage, see + * + * BatchUpdateWorkloadEstimateUsage. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchDeleteWorkloadEstimateUsageCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchDeleteWorkloadEstimateUsageCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchDeleteWorkloadEstimateUsageRequest + * workloadEstimateId: "STRING_VALUE", // required + * ids: [ // BatchDeleteWorkloadEstimateUsageEntries // required + * "STRING_VALUE", + * ], + * }; + * const command = new BatchDeleteWorkloadEstimateUsageCommand(input); + * const response = await client.send(command); + * // { // BatchDeleteWorkloadEstimateUsageResponse + * // errors: [ // BatchDeleteWorkloadEstimateUsageErrors + * // { // BatchDeleteWorkloadEstimateUsageError + * // id: "STRING_VALUE", + * // errorMessage: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "NOT_FOUND" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchDeleteWorkloadEstimateUsageCommandInput - {@link BatchDeleteWorkloadEstimateUsageCommandInput} + * @returns {@link BatchDeleteWorkloadEstimateUsageCommandOutput} + * @see {@link BatchDeleteWorkloadEstimateUsageCommandInput} for command's `input` shape. + * @see {@link BatchDeleteWorkloadEstimateUsageCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchDeleteWorkloadEstimateUsageCommand extends $Command + .classBuilder< + BatchDeleteWorkloadEstimateUsageCommandInput, + BatchDeleteWorkloadEstimateUsageCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchDeleteWorkloadEstimateUsage", {}) + .n("BCMPricingCalculatorClient", "BatchDeleteWorkloadEstimateUsageCommand") + .f(void 0, void 0) + .ser(se_BatchDeleteWorkloadEstimateUsageCommand) + .de(de_BatchDeleteWorkloadEstimateUsageCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchDeleteWorkloadEstimateUsageRequest; + output: BatchDeleteWorkloadEstimateUsageResponse; + }; + sdk: { + input: BatchDeleteWorkloadEstimateUsageCommandInput; + output: BatchDeleteWorkloadEstimateUsageCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioCommitmentModificationCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioCommitmentModificationCommand.ts new file mode 100644 index 0000000000000..db1433c76a457 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioCommitmentModificationCommand.ts @@ -0,0 +1,172 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchUpdateBillScenarioCommitmentModificationRequest, + BatchUpdateBillScenarioCommitmentModificationResponse, +} from "../models/models_0"; +import { + de_BatchUpdateBillScenarioCommitmentModificationCommand, + se_BatchUpdateBillScenarioCommitmentModificationCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchUpdateBillScenarioCommitmentModificationCommand}. + */ +export interface BatchUpdateBillScenarioCommitmentModificationCommandInput + extends BatchUpdateBillScenarioCommitmentModificationRequest {} +/** + * @public + * + * The output of {@link BatchUpdateBillScenarioCommitmentModificationCommand}. + */ +export interface BatchUpdateBillScenarioCommitmentModificationCommandOutput + extends BatchUpdateBillScenarioCommitmentModificationResponse, + __MetadataBearer {} + +/** + *

+ * Update a newly added or existing commitment. You can update the commitment group based on a commitment ID and a Bill scenario ID. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchUpdateBillScenarioCommitmentModificationCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchUpdateBillScenarioCommitmentModificationCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchUpdateBillScenarioCommitmentModificationRequest + * billScenarioId: "STRING_VALUE", // required + * commitmentModifications: [ // BatchUpdateBillScenarioCommitmentModificationEntries // required + * { // BatchUpdateBillScenarioCommitmentModificationEntry + * id: "STRING_VALUE", // required + * group: "STRING_VALUE", + * }, + * ], + * }; + * const command = new BatchUpdateBillScenarioCommitmentModificationCommand(input); + * const response = await client.send(command); + * // { // BatchUpdateBillScenarioCommitmentModificationResponse + * // items: [ // BillScenarioCommitmentModificationItems + * // { // BillScenarioCommitmentModificationItem + * // id: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // group: "STRING_VALUE", + * // commitmentAction: { // BillScenarioCommitmentModificationAction Union: only one key present + * // addReservedInstanceAction: { // AddReservedInstanceAction + * // reservedInstancesOfferingId: "STRING_VALUE", + * // instanceCount: Number("int"), + * // }, + * // addSavingsPlanAction: { // AddSavingsPlanAction + * // savingsPlanOfferingId: "STRING_VALUE", + * // commitment: Number("double"), + * // }, + * // negateReservedInstanceAction: { // NegateReservedInstanceAction + * // reservedInstancesId: "STRING_VALUE", + * // }, + * // negateSavingsPlanAction: { // NegateSavingsPlanAction + * // savingsPlanId: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // errors: [ // BatchUpdateBillScenarioCommitmentModificationErrors + * // { // BatchUpdateBillScenarioCommitmentModificationError + * // id: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "NOT_FOUND" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // errorMessage: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchUpdateBillScenarioCommitmentModificationCommandInput - {@link BatchUpdateBillScenarioCommitmentModificationCommandInput} + * @returns {@link BatchUpdateBillScenarioCommitmentModificationCommandOutput} + * @see {@link BatchUpdateBillScenarioCommitmentModificationCommandInput} for command's `input` shape. + * @see {@link BatchUpdateBillScenarioCommitmentModificationCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchUpdateBillScenarioCommitmentModificationCommand extends $Command + .classBuilder< + BatchUpdateBillScenarioCommitmentModificationCommandInput, + BatchUpdateBillScenarioCommitmentModificationCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchUpdateBillScenarioCommitmentModification", {}) + .n("BCMPricingCalculatorClient", "BatchUpdateBillScenarioCommitmentModificationCommand") + .f(void 0, void 0) + .ser(se_BatchUpdateBillScenarioCommitmentModificationCommand) + .de(de_BatchUpdateBillScenarioCommitmentModificationCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchUpdateBillScenarioCommitmentModificationRequest; + output: BatchUpdateBillScenarioCommitmentModificationResponse; + }; + sdk: { + input: BatchUpdateBillScenarioCommitmentModificationCommandInput; + output: BatchUpdateBillScenarioCommitmentModificationCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioUsageModificationCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioUsageModificationCommand.ts new file mode 100644 index 0000000000000..accd0a1a6619a --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateBillScenarioUsageModificationCommand.ts @@ -0,0 +1,243 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchUpdateBillScenarioUsageModificationRequest, + BatchUpdateBillScenarioUsageModificationResponse, +} from "../models/models_0"; +import { + de_BatchUpdateBillScenarioUsageModificationCommand, + se_BatchUpdateBillScenarioUsageModificationCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchUpdateBillScenarioUsageModificationCommand}. + */ +export interface BatchUpdateBillScenarioUsageModificationCommandInput + extends BatchUpdateBillScenarioUsageModificationRequest {} +/** + * @public + * + * The output of {@link BatchUpdateBillScenarioUsageModificationCommand}. + */ +export interface BatchUpdateBillScenarioUsageModificationCommandOutput + extends BatchUpdateBillScenarioUsageModificationResponse, + __MetadataBearer {} + +/** + *

+ * Update a newly added or existing usage lines. You can update the usage amounts, usage hour, and usage group based on a usage ID and a Bill scenario ID. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchUpdateBillScenarioUsageModificationCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchUpdateBillScenarioUsageModificationCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchUpdateBillScenarioUsageModificationRequest + * billScenarioId: "STRING_VALUE", // required + * usageModifications: [ // BatchUpdateBillScenarioUsageModificationEntries // required + * { // BatchUpdateBillScenarioUsageModificationEntry + * id: "STRING_VALUE", // required + * group: "STRING_VALUE", + * amounts: [ // UsageAmounts + * { // UsageAmount + * startHour: new Date("TIMESTAMP"), // required + * amount: Number("double"), // required + * }, + * ], + * }, + * ], + * }; + * const command = new BatchUpdateBillScenarioUsageModificationCommand(input); + * const response = await client.send(command); + * // { // BatchUpdateBillScenarioUsageModificationResponse + * // items: [ // BillScenarioUsageModificationItems + * // { // BillScenarioUsageModificationItem + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // availabilityZone: "STRING_VALUE", + * // id: "STRING_VALUE", + * // group: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // quantities: [ // UsageQuantities + * // { // UsageQuantity + * // startHour: new Date("TIMESTAMP"), + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // ], + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // }, + * // ], + * // errors: [ // BatchUpdateBillScenarioUsageModificationErrors + * // { // BatchUpdateBillScenarioUsageModificationError + * // id: "STRING_VALUE", + * // errorMessage: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "NOT_FOUND" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchUpdateBillScenarioUsageModificationCommandInput - {@link BatchUpdateBillScenarioUsageModificationCommandInput} + * @returns {@link BatchUpdateBillScenarioUsageModificationCommandOutput} + * @see {@link BatchUpdateBillScenarioUsageModificationCommandInput} for command's `input` shape. + * @see {@link BatchUpdateBillScenarioUsageModificationCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchUpdateBillScenarioUsageModificationCommand extends $Command + .classBuilder< + BatchUpdateBillScenarioUsageModificationCommandInput, + BatchUpdateBillScenarioUsageModificationCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchUpdateBillScenarioUsageModification", {}) + .n("BCMPricingCalculatorClient", "BatchUpdateBillScenarioUsageModificationCommand") + .f(void 0, void 0) + .ser(se_BatchUpdateBillScenarioUsageModificationCommand) + .de(de_BatchUpdateBillScenarioUsageModificationCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchUpdateBillScenarioUsageModificationRequest; + output: BatchUpdateBillScenarioUsageModificationResponse; + }; + sdk: { + input: BatchUpdateBillScenarioUsageModificationCommandInput; + output: BatchUpdateBillScenarioUsageModificationCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateWorkloadEstimateUsageCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateWorkloadEstimateUsageCommand.ts new file mode 100644 index 0000000000000..bbcb43bed5bce --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/BatchUpdateWorkloadEstimateUsageCommand.ts @@ -0,0 +1,233 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { BatchUpdateWorkloadEstimateUsageRequest, BatchUpdateWorkloadEstimateUsageResponse } from "../models/models_0"; +import { + de_BatchUpdateWorkloadEstimateUsageCommand, + se_BatchUpdateWorkloadEstimateUsageCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchUpdateWorkloadEstimateUsageCommand}. + */ +export interface BatchUpdateWorkloadEstimateUsageCommandInput extends BatchUpdateWorkloadEstimateUsageRequest {} +/** + * @public + * + * The output of {@link BatchUpdateWorkloadEstimateUsageCommand}. + */ +export interface BatchUpdateWorkloadEstimateUsageCommandOutput + extends BatchUpdateWorkloadEstimateUsageResponse, + __MetadataBearer {} + +/** + *

+ * Update a newly added or existing usage lines. You can update the usage amounts and usage group based on a usage ID and a Workload estimate ID. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, BatchUpdateWorkloadEstimateUsageCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, BatchUpdateWorkloadEstimateUsageCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // BatchUpdateWorkloadEstimateUsageRequest + * workloadEstimateId: "STRING_VALUE", // required + * usage: [ // BatchUpdateWorkloadEstimateUsageEntries // required + * { // BatchUpdateWorkloadEstimateUsageEntry + * id: "STRING_VALUE", // required + * group: "STRING_VALUE", + * amount: Number("double"), + * }, + * ], + * }; + * const command = new BatchUpdateWorkloadEstimateUsageCommand(input); + * const response = await client.send(command); + * // { // BatchUpdateWorkloadEstimateUsageResponse + * // items: [ // WorkloadEstimateUsageItems + * // { // WorkloadEstimateUsageItem + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // id: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // group: "STRING_VALUE", + * // quantity: { // WorkloadEstimateUsageQuantity + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // cost: Number("double"), + * // currency: "USD", + * // status: "VALID" || "INVALID" || "STALE", + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // }, + * // ], + * // errors: [ // BatchUpdateWorkloadEstimateUsageErrors + * // { // BatchUpdateWorkloadEstimateUsageError + * // id: "STRING_VALUE", + * // errorMessage: "STRING_VALUE", + * // errorCode: "BAD_REQUEST" || "NOT_FOUND" || "CONFLICT" || "INTERNAL_SERVER_ERROR", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchUpdateWorkloadEstimateUsageCommandInput - {@link BatchUpdateWorkloadEstimateUsageCommandInput} + * @returns {@link BatchUpdateWorkloadEstimateUsageCommandOutput} + * @see {@link BatchUpdateWorkloadEstimateUsageCommandInput} for command's `input` shape. + * @see {@link BatchUpdateWorkloadEstimateUsageCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class BatchUpdateWorkloadEstimateUsageCommand extends $Command + .classBuilder< + BatchUpdateWorkloadEstimateUsageCommandInput, + BatchUpdateWorkloadEstimateUsageCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "BatchUpdateWorkloadEstimateUsage", {}) + .n("BCMPricingCalculatorClient", "BatchUpdateWorkloadEstimateUsageCommand") + .f(void 0, void 0) + .ser(se_BatchUpdateWorkloadEstimateUsageCommand) + .de(de_BatchUpdateWorkloadEstimateUsageCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchUpdateWorkloadEstimateUsageRequest; + output: BatchUpdateWorkloadEstimateUsageResponse; + }; + sdk: { + input: BatchUpdateWorkloadEstimateUsageCommandInput; + output: BatchUpdateWorkloadEstimateUsageCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/CreateBillEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/CreateBillEstimateCommand.ts new file mode 100644 index 0000000000000..ef2763ddea3cf --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/CreateBillEstimateCommand.ts @@ -0,0 +1,171 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { CreateBillEstimateRequest, CreateBillEstimateResponse } from "../models/models_0"; +import { de_CreateBillEstimateCommand, se_CreateBillEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateBillEstimateCommand}. + */ +export interface CreateBillEstimateCommandInput extends CreateBillEstimateRequest {} +/** + * @public + * + * The output of {@link CreateBillEstimateCommand}. + */ +export interface CreateBillEstimateCommandOutput extends CreateBillEstimateResponse, __MetadataBearer {} + +/** + *

+ * Create a Bill estimate from a Bill scenario. In the Bill scenario you can model usage addition, usage changes, and usage removal. You can also model commitment addition and commitment removal. After all changes in a Bill scenario is made satisfactorily, you can call this API with a Bill scenario ID to generate the Bill estimate. Bill estimate calculates the pre-tax cost for your consolidated billing family, incorporating all modeled usage and commitments alongside existing usage and commitments from your most recent completed anniversary bill, with any applicable discounts applied. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, CreateBillEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, CreateBillEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // CreateBillEstimateRequest + * billScenarioId: "STRING_VALUE", // required + * name: "STRING_VALUE", // required + * clientToken: "STRING_VALUE", + * tags: { // Tags + * "": "STRING_VALUE", + * }, + * }; + * const command = new CreateBillEstimateCommand(input); + * const response = await client.send(command); + * // { // CreateBillEstimateResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // status: "IN_PROGRESS" || "COMPLETE" || "FAILED", + * // failureMessage: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // costSummary: { // BillEstimateCostSummary + * // totalCostDifference: { // CostDifference + * // historicalCost: { // CostAmount + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // estimatedCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // serviceCostDifferences: { // ServiceCostDifferenceMap + * // "": { + * // historicalCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // estimatedCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // }, + * // }, + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // }; + * + * ``` + * + * @param CreateBillEstimateCommandInput - {@link CreateBillEstimateCommandInput} + * @returns {@link CreateBillEstimateCommandOutput} + * @see {@link CreateBillEstimateCommandInput} for command's `input` shape. + * @see {@link CreateBillEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class CreateBillEstimateCommand extends $Command + .classBuilder< + CreateBillEstimateCommandInput, + CreateBillEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "CreateBillEstimate", {}) + .n("BCMPricingCalculatorClient", "CreateBillEstimateCommand") + .f(void 0, void 0) + .ser(se_CreateBillEstimateCommand) + .de(de_CreateBillEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateBillEstimateRequest; + output: CreateBillEstimateResponse; + }; + sdk: { + input: CreateBillEstimateCommandInput; + output: CreateBillEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/CreateBillScenarioCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/CreateBillScenarioCommand.ts new file mode 100644 index 0000000000000..d83e11add2ab3 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/CreateBillScenarioCommand.ts @@ -0,0 +1,146 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { CreateBillScenarioRequest, CreateBillScenarioResponse } from "../models/models_0"; +import { de_CreateBillScenarioCommand, se_CreateBillScenarioCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateBillScenarioCommand}. + */ +export interface CreateBillScenarioCommandInput extends CreateBillScenarioRequest {} +/** + * @public + * + * The output of {@link CreateBillScenarioCommand}. + */ +export interface CreateBillScenarioCommandOutput extends CreateBillScenarioResponse, __MetadataBearer {} + +/** + *

+ * Creates a new bill scenario to model potential changes to Amazon Web Services usage and costs. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, CreateBillScenarioCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, CreateBillScenarioCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // CreateBillScenarioRequest + * name: "STRING_VALUE", // required + * clientToken: "STRING_VALUE", + * tags: { // Tags + * "": "STRING_VALUE", + * }, + * }; + * const command = new CreateBillScenarioCommand(input); + * const response = await client.send(command); + * // { // CreateBillScenarioResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // status: "READY" || "LOCKED" || "FAILED", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // failureMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param CreateBillScenarioCommandInput - {@link CreateBillScenarioCommandInput} + * @returns {@link CreateBillScenarioCommandOutput} + * @see {@link CreateBillScenarioCommandInput} for command's `input` shape. + * @see {@link CreateBillScenarioCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class CreateBillScenarioCommand extends $Command + .classBuilder< + CreateBillScenarioCommandInput, + CreateBillScenarioCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "CreateBillScenario", {}) + .n("BCMPricingCalculatorClient", "CreateBillScenarioCommand") + .f(void 0, void 0) + .ser(se_CreateBillScenarioCommand) + .de(de_CreateBillScenarioCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateBillScenarioRequest; + output: CreateBillScenarioResponse; + }; + sdk: { + input: CreateBillScenarioCommandInput; + output: CreateBillScenarioCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/CreateWorkloadEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/CreateWorkloadEstimateCommand.ts new file mode 100644 index 0000000000000..05f30d1369260 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/CreateWorkloadEstimateCommand.ts @@ -0,0 +1,147 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { CreateWorkloadEstimateRequest, CreateWorkloadEstimateResponse } from "../models/models_0"; +import { de_CreateWorkloadEstimateCommand, se_CreateWorkloadEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateWorkloadEstimateCommand}. + */ +export interface CreateWorkloadEstimateCommandInput extends CreateWorkloadEstimateRequest {} +/** + * @public + * + * The output of {@link CreateWorkloadEstimateCommand}. + */ +export interface CreateWorkloadEstimateCommandOutput extends CreateWorkloadEstimateResponse, __MetadataBearer {} + +/** + *

+ * Creates a new workload estimate to model costs for a specific workload. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, CreateWorkloadEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, CreateWorkloadEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // CreateWorkloadEstimateRequest + * name: "STRING_VALUE", // required + * clientToken: "STRING_VALUE", + * rateType: "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * tags: { // Tags + * "": "STRING_VALUE", + * }, + * }; + * const command = new CreateWorkloadEstimateCommand(input); + * const response = await client.send(command); + * // { // CreateWorkloadEstimateResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // rateType: "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // rateTimestamp: new Date("TIMESTAMP"), + * // status: "UPDATING" || "VALID" || "INVALID" || "ACTION_NEEDED", + * // totalCost: Number("double"), + * // costCurrency: "USD", + * // failureMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param CreateWorkloadEstimateCommandInput - {@link CreateWorkloadEstimateCommandInput} + * @returns {@link CreateWorkloadEstimateCommandOutput} + * @see {@link CreateWorkloadEstimateCommandInput} for command's `input` shape. + * @see {@link CreateWorkloadEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class CreateWorkloadEstimateCommand extends $Command + .classBuilder< + CreateWorkloadEstimateCommandInput, + CreateWorkloadEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "CreateWorkloadEstimate", {}) + .n("BCMPricingCalculatorClient", "CreateWorkloadEstimateCommand") + .f(void 0, void 0) + .ser(se_CreateWorkloadEstimateCommand) + .de(de_CreateWorkloadEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateWorkloadEstimateRequest; + output: CreateWorkloadEstimateResponse; + }; + sdk: { + input: CreateWorkloadEstimateCommandInput; + output: CreateWorkloadEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/DeleteBillEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/DeleteBillEstimateCommand.ts new file mode 100644 index 0000000000000..6f3c24b8707f1 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/DeleteBillEstimateCommand.ts @@ -0,0 +1,121 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DeleteBillEstimateRequest, DeleteBillEstimateResponse } from "../models/models_0"; +import { de_DeleteBillEstimateCommand, se_DeleteBillEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DeleteBillEstimateCommand}. + */ +export interface DeleteBillEstimateCommandInput extends DeleteBillEstimateRequest {} +/** + * @public + * + * The output of {@link DeleteBillEstimateCommand}. + */ +export interface DeleteBillEstimateCommandOutput extends DeleteBillEstimateResponse, __MetadataBearer {} + +/** + *

+ * Deletes an existing bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, DeleteBillEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, DeleteBillEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // DeleteBillEstimateRequest + * identifier: "STRING_VALUE", // required + * }; + * const command = new DeleteBillEstimateCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteBillEstimateCommandInput - {@link DeleteBillEstimateCommandInput} + * @returns {@link DeleteBillEstimateCommandOutput} + * @see {@link DeleteBillEstimateCommandInput} for command's `input` shape. + * @see {@link DeleteBillEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class DeleteBillEstimateCommand extends $Command + .classBuilder< + DeleteBillEstimateCommandInput, + DeleteBillEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "DeleteBillEstimate", {}) + .n("BCMPricingCalculatorClient", "DeleteBillEstimateCommand") + .f(void 0, void 0) + .ser(se_DeleteBillEstimateCommand) + .de(de_DeleteBillEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DeleteBillEstimateRequest; + output: {}; + }; + sdk: { + input: DeleteBillEstimateCommandInput; + output: DeleteBillEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/DeleteBillScenarioCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/DeleteBillScenarioCommand.ts new file mode 100644 index 0000000000000..4c0864b51865d --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/DeleteBillScenarioCommand.ts @@ -0,0 +1,121 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DeleteBillScenarioRequest, DeleteBillScenarioResponse } from "../models/models_0"; +import { de_DeleteBillScenarioCommand, se_DeleteBillScenarioCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DeleteBillScenarioCommand}. + */ +export interface DeleteBillScenarioCommandInput extends DeleteBillScenarioRequest {} +/** + * @public + * + * The output of {@link DeleteBillScenarioCommand}. + */ +export interface DeleteBillScenarioCommandOutput extends DeleteBillScenarioResponse, __MetadataBearer {} + +/** + *

+ * Deletes an existing bill scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, DeleteBillScenarioCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, DeleteBillScenarioCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // DeleteBillScenarioRequest + * identifier: "STRING_VALUE", // required + * }; + * const command = new DeleteBillScenarioCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteBillScenarioCommandInput - {@link DeleteBillScenarioCommandInput} + * @returns {@link DeleteBillScenarioCommandOutput} + * @see {@link DeleteBillScenarioCommandInput} for command's `input` shape. + * @see {@link DeleteBillScenarioCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class DeleteBillScenarioCommand extends $Command + .classBuilder< + DeleteBillScenarioCommandInput, + DeleteBillScenarioCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "DeleteBillScenario", {}) + .n("BCMPricingCalculatorClient", "DeleteBillScenarioCommand") + .f(void 0, void 0) + .ser(se_DeleteBillScenarioCommand) + .de(de_DeleteBillScenarioCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DeleteBillScenarioRequest; + output: {}; + }; + sdk: { + input: DeleteBillScenarioCommandInput; + output: DeleteBillScenarioCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/DeleteWorkloadEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/DeleteWorkloadEstimateCommand.ts new file mode 100644 index 0000000000000..c32cd29831049 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/DeleteWorkloadEstimateCommand.ts @@ -0,0 +1,121 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DeleteWorkloadEstimateRequest, DeleteWorkloadEstimateResponse } from "../models/models_0"; +import { de_DeleteWorkloadEstimateCommand, se_DeleteWorkloadEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DeleteWorkloadEstimateCommand}. + */ +export interface DeleteWorkloadEstimateCommandInput extends DeleteWorkloadEstimateRequest {} +/** + * @public + * + * The output of {@link DeleteWorkloadEstimateCommand}. + */ +export interface DeleteWorkloadEstimateCommandOutput extends DeleteWorkloadEstimateResponse, __MetadataBearer {} + +/** + *

+ * Deletes an existing workload estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, DeleteWorkloadEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, DeleteWorkloadEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // DeleteWorkloadEstimateRequest + * identifier: "STRING_VALUE", // required + * }; + * const command = new DeleteWorkloadEstimateCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteWorkloadEstimateCommandInput - {@link DeleteWorkloadEstimateCommandInput} + * @returns {@link DeleteWorkloadEstimateCommandOutput} + * @see {@link DeleteWorkloadEstimateCommandInput} for command's `input` shape. + * @see {@link DeleteWorkloadEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class DeleteWorkloadEstimateCommand extends $Command + .classBuilder< + DeleteWorkloadEstimateCommandInput, + DeleteWorkloadEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "DeleteWorkloadEstimate", {}) + .n("BCMPricingCalculatorClient", "DeleteWorkloadEstimateCommand") + .f(void 0, void 0) + .ser(se_DeleteWorkloadEstimateCommand) + .de(de_DeleteWorkloadEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DeleteWorkloadEstimateRequest; + output: {}; + }; + sdk: { + input: DeleteWorkloadEstimateCommandInput; + output: DeleteWorkloadEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/GetBillEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/GetBillEstimateCommand.ts new file mode 100644 index 0000000000000..e07e7b719dd2a --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/GetBillEstimateCommand.ts @@ -0,0 +1,161 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetBillEstimateRequest, GetBillEstimateResponse } from "../models/models_0"; +import { de_GetBillEstimateCommand, se_GetBillEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetBillEstimateCommand}. + */ +export interface GetBillEstimateCommandInput extends GetBillEstimateRequest {} +/** + * @public + * + * The output of {@link GetBillEstimateCommand}. + */ +export interface GetBillEstimateCommandOutput extends GetBillEstimateResponse, __MetadataBearer {} + +/** + *

+ * Retrieves details of a specific bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, GetBillEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, GetBillEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // GetBillEstimateRequest + * identifier: "STRING_VALUE", // required + * }; + * const command = new GetBillEstimateCommand(input); + * const response = await client.send(command); + * // { // GetBillEstimateResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // status: "IN_PROGRESS" || "COMPLETE" || "FAILED", + * // failureMessage: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // costSummary: { // BillEstimateCostSummary + * // totalCostDifference: { // CostDifference + * // historicalCost: { // CostAmount + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // estimatedCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // serviceCostDifferences: { // ServiceCostDifferenceMap + * // "": { + * // historicalCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // estimatedCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // }, + * // }, + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // }; + * + * ``` + * + * @param GetBillEstimateCommandInput - {@link GetBillEstimateCommandInput} + * @returns {@link GetBillEstimateCommandOutput} + * @see {@link GetBillEstimateCommandInput} for command's `input` shape. + * @see {@link GetBillEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class GetBillEstimateCommand extends $Command + .classBuilder< + GetBillEstimateCommandInput, + GetBillEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "GetBillEstimate", {}) + .n("BCMPricingCalculatorClient", "GetBillEstimateCommand") + .f(void 0, void 0) + .ser(se_GetBillEstimateCommand) + .de(de_GetBillEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetBillEstimateRequest; + output: GetBillEstimateResponse; + }; + sdk: { + input: GetBillEstimateCommandInput; + output: GetBillEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/GetBillScenarioCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/GetBillScenarioCommand.ts new file mode 100644 index 0000000000000..bd3ef755bffa8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/GetBillScenarioCommand.ts @@ -0,0 +1,137 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetBillScenarioRequest, GetBillScenarioResponse } from "../models/models_0"; +import { de_GetBillScenarioCommand, se_GetBillScenarioCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetBillScenarioCommand}. + */ +export interface GetBillScenarioCommandInput extends GetBillScenarioRequest {} +/** + * @public + * + * The output of {@link GetBillScenarioCommand}. + */ +export interface GetBillScenarioCommandOutput extends GetBillScenarioResponse, __MetadataBearer {} + +/** + *

+ * Retrieves details of a specific bill scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, GetBillScenarioCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, GetBillScenarioCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // GetBillScenarioRequest + * identifier: "STRING_VALUE", // required + * }; + * const command = new GetBillScenarioCommand(input); + * const response = await client.send(command); + * // { // GetBillScenarioResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // status: "READY" || "LOCKED" || "FAILED", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // failureMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param GetBillScenarioCommandInput - {@link GetBillScenarioCommandInput} + * @returns {@link GetBillScenarioCommandOutput} + * @see {@link GetBillScenarioCommandInput} for command's `input` shape. + * @see {@link GetBillScenarioCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class GetBillScenarioCommand extends $Command + .classBuilder< + GetBillScenarioCommandInput, + GetBillScenarioCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "GetBillScenario", {}) + .n("BCMPricingCalculatorClient", "GetBillScenarioCommand") + .f(void 0, void 0) + .ser(se_GetBillScenarioCommand) + .de(de_GetBillScenarioCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetBillScenarioRequest; + output: GetBillScenarioResponse; + }; + sdk: { + input: GetBillScenarioCommandInput; + output: GetBillScenarioCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/GetPreferencesCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/GetPreferencesCommand.ts new file mode 100644 index 0000000000000..5362cb303d020 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/GetPreferencesCommand.ts @@ -0,0 +1,126 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetPreferencesRequest, GetPreferencesResponse } from "../models/models_0"; +import { de_GetPreferencesCommand, se_GetPreferencesCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetPreferencesCommand}. + */ +export interface GetPreferencesCommandInput extends GetPreferencesRequest {} +/** + * @public + * + * The output of {@link GetPreferencesCommand}. + */ +export interface GetPreferencesCommandOutput extends GetPreferencesResponse, __MetadataBearer {} + +/** + *

+ * Retrieves the current preferences for the Amazon Web Services Cost Explorer service. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, GetPreferencesCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, GetPreferencesCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = {}; + * const command = new GetPreferencesCommand(input); + * const response = await client.send(command); + * // { // GetPreferencesResponse + * // managementAccountRateTypeSelections: [ // RateTypes + * // "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // ], + * // memberAccountRateTypeSelections: [ + * // "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // ], + * // }; + * + * ``` + * + * @param GetPreferencesCommandInput - {@link GetPreferencesCommandInput} + * @returns {@link GetPreferencesCommandOutput} + * @see {@link GetPreferencesCommandInput} for command's `input` shape. + * @see {@link GetPreferencesCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class GetPreferencesCommand extends $Command + .classBuilder< + GetPreferencesCommandInput, + GetPreferencesCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "GetPreferences", {}) + .n("BCMPricingCalculatorClient", "GetPreferencesCommand") + .f(void 0, void 0) + .ser(se_GetPreferencesCommand) + .de(de_GetPreferencesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: {}; + output: GetPreferencesResponse; + }; + sdk: { + input: GetPreferencesCommandInput; + output: GetPreferencesCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/GetWorkloadEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/GetWorkloadEstimateCommand.ts new file mode 100644 index 0000000000000..4bc783eca29d7 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/GetWorkloadEstimateCommand.ts @@ -0,0 +1,137 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetWorkloadEstimateRequest, GetWorkloadEstimateResponse } from "../models/models_0"; +import { de_GetWorkloadEstimateCommand, se_GetWorkloadEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetWorkloadEstimateCommand}. + */ +export interface GetWorkloadEstimateCommandInput extends GetWorkloadEstimateRequest {} +/** + * @public + * + * The output of {@link GetWorkloadEstimateCommand}. + */ +export interface GetWorkloadEstimateCommandOutput extends GetWorkloadEstimateResponse, __MetadataBearer {} + +/** + *

+ * Retrieves details of a specific workload estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, GetWorkloadEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, GetWorkloadEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // GetWorkloadEstimateRequest + * identifier: "STRING_VALUE", // required + * }; + * const command = new GetWorkloadEstimateCommand(input); + * const response = await client.send(command); + * // { // GetWorkloadEstimateResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // rateType: "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // rateTimestamp: new Date("TIMESTAMP"), + * // status: "UPDATING" || "VALID" || "INVALID" || "ACTION_NEEDED", + * // totalCost: Number("double"), + * // costCurrency: "USD", + * // failureMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param GetWorkloadEstimateCommandInput - {@link GetWorkloadEstimateCommandInput} + * @returns {@link GetWorkloadEstimateCommandOutput} + * @see {@link GetWorkloadEstimateCommandInput} for command's `input` shape. + * @see {@link GetWorkloadEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class GetWorkloadEstimateCommand extends $Command + .classBuilder< + GetWorkloadEstimateCommandInput, + GetWorkloadEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "GetWorkloadEstimate", {}) + .n("BCMPricingCalculatorClient", "GetWorkloadEstimateCommand") + .f(void 0, void 0) + .ser(se_GetWorkloadEstimateCommand) + .de(de_GetWorkloadEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetWorkloadEstimateRequest; + output: GetWorkloadEstimateResponse; + }; + sdk: { + input: GetWorkloadEstimateCommandInput; + output: GetWorkloadEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateCommitmentsCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateCommitmentsCommand.ts new file mode 100644 index 0000000000000..0a035bc7ed709 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateCommitmentsCommand.ts @@ -0,0 +1,151 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListBillEstimateCommitmentsRequest, ListBillEstimateCommitmentsResponse } from "../models/models_0"; +import { de_ListBillEstimateCommitmentsCommand, se_ListBillEstimateCommitmentsCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillEstimateCommitmentsCommand}. + */ +export interface ListBillEstimateCommitmentsCommandInput extends ListBillEstimateCommitmentsRequest {} +/** + * @public + * + * The output of {@link ListBillEstimateCommitmentsCommand}. + */ +export interface ListBillEstimateCommitmentsCommandOutput + extends ListBillEstimateCommitmentsResponse, + __MetadataBearer {} + +/** + *

+ * Lists the commitments associated with a bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillEstimateCommitmentsCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillEstimateCommitmentsCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillEstimateCommitmentsRequest + * billEstimateId: "STRING_VALUE", // required + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillEstimateCommitmentsCommand(input); + * const response = await client.send(command); + * // { // ListBillEstimateCommitmentsResponse + * // items: [ // BillEstimateCommitmentSummaries + * // { // BillEstimateCommitmentSummary + * // id: "STRING_VALUE", + * // purchaseAgreementType: "SAVINGS_PLANS" || "RESERVED_INSTANCE", + * // offeringId: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // region: "STRING_VALUE", + * // termLength: "STRING_VALUE", + * // paymentOption: "STRING_VALUE", + * // upfrontPayment: { // CostAmount + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // monthlyPayment: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillEstimateCommitmentsCommandInput - {@link ListBillEstimateCommitmentsCommandInput} + * @returns {@link ListBillEstimateCommitmentsCommandOutput} + * @see {@link ListBillEstimateCommitmentsCommandInput} for command's `input` shape. + * @see {@link ListBillEstimateCommitmentsCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillEstimateCommitmentsCommand extends $Command + .classBuilder< + ListBillEstimateCommitmentsCommandInput, + ListBillEstimateCommitmentsCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillEstimateCommitments", {}) + .n("BCMPricingCalculatorClient", "ListBillEstimateCommitmentsCommand") + .f(void 0, void 0) + .ser(se_ListBillEstimateCommitmentsCommand) + .de(de_ListBillEstimateCommitmentsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillEstimateCommitmentsRequest; + output: ListBillEstimateCommitmentsResponse; + }; + sdk: { + input: ListBillEstimateCommitmentsCommandInput; + output: ListBillEstimateCommitmentsCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputCommitmentModificationsCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputCommitmentModificationsCommand.ts new file mode 100644 index 0000000000000..bc94706d4b680 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputCommitmentModificationsCommand.ts @@ -0,0 +1,162 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListBillEstimateInputCommitmentModificationsRequest, + ListBillEstimateInputCommitmentModificationsResponse, +} from "../models/models_0"; +import { + de_ListBillEstimateInputCommitmentModificationsCommand, + se_ListBillEstimateInputCommitmentModificationsCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillEstimateInputCommitmentModificationsCommand}. + */ +export interface ListBillEstimateInputCommitmentModificationsCommandInput + extends ListBillEstimateInputCommitmentModificationsRequest {} +/** + * @public + * + * The output of {@link ListBillEstimateInputCommitmentModificationsCommand}. + */ +export interface ListBillEstimateInputCommitmentModificationsCommandOutput + extends ListBillEstimateInputCommitmentModificationsResponse, + __MetadataBearer {} + +/** + *

+ * Lists the input commitment modifications associated with a bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillEstimateInputCommitmentModificationsCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillEstimateInputCommitmentModificationsCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillEstimateInputCommitmentModificationsRequest + * billEstimateId: "STRING_VALUE", // required + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillEstimateInputCommitmentModificationsCommand(input); + * const response = await client.send(command); + * // { // ListBillEstimateInputCommitmentModificationsResponse + * // items: [ // BillEstimateInputCommitmentModificationSummaries + * // { // BillEstimateInputCommitmentModificationSummary + * // id: "STRING_VALUE", + * // group: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // commitmentAction: { // BillScenarioCommitmentModificationAction Union: only one key present + * // addReservedInstanceAction: { // AddReservedInstanceAction + * // reservedInstancesOfferingId: "STRING_VALUE", + * // instanceCount: Number("int"), + * // }, + * // addSavingsPlanAction: { // AddSavingsPlanAction + * // savingsPlanOfferingId: "STRING_VALUE", + * // commitment: Number("double"), + * // }, + * // negateReservedInstanceAction: { // NegateReservedInstanceAction + * // reservedInstancesId: "STRING_VALUE", + * // }, + * // negateSavingsPlanAction: { // NegateSavingsPlanAction + * // savingsPlanId: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillEstimateInputCommitmentModificationsCommandInput - {@link ListBillEstimateInputCommitmentModificationsCommandInput} + * @returns {@link ListBillEstimateInputCommitmentModificationsCommandOutput} + * @see {@link ListBillEstimateInputCommitmentModificationsCommandInput} for command's `input` shape. + * @see {@link ListBillEstimateInputCommitmentModificationsCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillEstimateInputCommitmentModificationsCommand extends $Command + .classBuilder< + ListBillEstimateInputCommitmentModificationsCommandInput, + ListBillEstimateInputCommitmentModificationsCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillEstimateInputCommitmentModifications", {}) + .n("BCMPricingCalculatorClient", "ListBillEstimateInputCommitmentModificationsCommand") + .f(void 0, void 0) + .ser(se_ListBillEstimateInputCommitmentModificationsCommand) + .de(de_ListBillEstimateInputCommitmentModificationsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillEstimateInputCommitmentModificationsRequest; + output: ListBillEstimateInputCommitmentModificationsResponse; + }; + sdk: { + input: ListBillEstimateInputCommitmentModificationsCommandInput; + output: ListBillEstimateInputCommitmentModificationsCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputUsageModificationsCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputUsageModificationsCommand.ts new file mode 100644 index 0000000000000..a13c22e1d128f --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateInputUsageModificationsCommand.ts @@ -0,0 +1,231 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListBillEstimateInputUsageModificationsRequest, + ListBillEstimateInputUsageModificationsResponse, +} from "../models/models_0"; +import { + de_ListBillEstimateInputUsageModificationsCommand, + se_ListBillEstimateInputUsageModificationsCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillEstimateInputUsageModificationsCommand}. + */ +export interface ListBillEstimateInputUsageModificationsCommandInput + extends ListBillEstimateInputUsageModificationsRequest {} +/** + * @public + * + * The output of {@link ListBillEstimateInputUsageModificationsCommand}. + */ +export interface ListBillEstimateInputUsageModificationsCommandOutput + extends ListBillEstimateInputUsageModificationsResponse, + __MetadataBearer {} + +/** + *

+ * Lists the input usage modifications associated with a bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillEstimateInputUsageModificationsCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillEstimateInputUsageModificationsCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillEstimateInputUsageModificationsRequest + * billEstimateId: "STRING_VALUE", // required + * filters: [ // ListUsageFilters + * { // ListUsageFilter + * name: "USAGE_ACCOUNT_ID" || "SERVICE_CODE" || "USAGE_TYPE" || "OPERATION" || "LOCATION" || "USAGE_GROUP" || "HISTORICAL_USAGE_ACCOUNT_ID" || "HISTORICAL_SERVICE_CODE" || "HISTORICAL_USAGE_TYPE" || "HISTORICAL_OPERATION" || "HISTORICAL_LOCATION", // required + * values: [ // ListUsageFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillEstimateInputUsageModificationsCommand(input); + * const response = await client.send(command); + * // { // ListBillEstimateInputUsageModificationsResponse + * // items: [ // BillEstimateInputUsageModificationSummaries + * // { // BillEstimateInputUsageModificationSummary + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // availabilityZone: "STRING_VALUE", + * // id: "STRING_VALUE", + * // group: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // quantities: [ // UsageQuantities + * // { // UsageQuantity + * // startHour: new Date("TIMESTAMP"), + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // ], + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillEstimateInputUsageModificationsCommandInput - {@link ListBillEstimateInputUsageModificationsCommandInput} + * @returns {@link ListBillEstimateInputUsageModificationsCommandOutput} + * @see {@link ListBillEstimateInputUsageModificationsCommandInput} for command's `input` shape. + * @see {@link ListBillEstimateInputUsageModificationsCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillEstimateInputUsageModificationsCommand extends $Command + .classBuilder< + ListBillEstimateInputUsageModificationsCommandInput, + ListBillEstimateInputUsageModificationsCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillEstimateInputUsageModifications", {}) + .n("BCMPricingCalculatorClient", "ListBillEstimateInputUsageModificationsCommand") + .f(void 0, void 0) + .ser(se_ListBillEstimateInputUsageModificationsCommand) + .de(de_ListBillEstimateInputUsageModificationsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillEstimateInputUsageModificationsRequest; + output: ListBillEstimateInputUsageModificationsResponse; + }; + sdk: { + input: ListBillEstimateInputUsageModificationsCommandInput; + output: ListBillEstimateInputUsageModificationsCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateLineItemsCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateLineItemsCommand.ts new file mode 100644 index 0000000000000..1bcce527e1034 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimateLineItemsCommand.ts @@ -0,0 +1,172 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListBillEstimateLineItemsRequest, ListBillEstimateLineItemsResponse } from "../models/models_0"; +import { de_ListBillEstimateLineItemsCommand, se_ListBillEstimateLineItemsCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillEstimateLineItemsCommand}. + */ +export interface ListBillEstimateLineItemsCommandInput extends ListBillEstimateLineItemsRequest {} +/** + * @public + * + * The output of {@link ListBillEstimateLineItemsCommand}. + */ +export interface ListBillEstimateLineItemsCommandOutput extends ListBillEstimateLineItemsResponse, __MetadataBearer {} + +/** + *

+ * Lists the line items associated with a bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillEstimateLineItemsCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillEstimateLineItemsCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillEstimateLineItemsRequest + * billEstimateId: "STRING_VALUE", // required + * filters: [ // ListBillEstimateLineItemsFilters + * { // ListBillEstimateLineItemsFilter + * name: "USAGE_ACCOUNT_ID" || "SERVICE_CODE" || "USAGE_TYPE" || "OPERATION" || "LOCATION" || "LINE_ITEM_TYPE", // required + * values: [ // ListBillEstimateLineItemsFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillEstimateLineItemsCommand(input); + * const response = await client.send(command); + * // { // ListBillEstimateLineItemsResponse + * // items: [ // BillEstimateLineItemSummaries + * // { // BillEstimateLineItemSummary + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // availabilityZone: "STRING_VALUE", + * // id: "STRING_VALUE", + * // lineItemId: "STRING_VALUE", + * // lineItemType: "STRING_VALUE", + * // payerAccountId: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // estimatedUsageQuantity: { // UsageQuantityResult + * // amount: Number("double"), + * // unit: "STRING_VALUE", + * // }, + * // estimatedCost: { // CostAmount + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // historicalUsageQuantity: { + * // amount: Number("double"), + * // unit: "STRING_VALUE", + * // }, + * // historicalCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // savingsPlanArns: [ // SavingsPlanArns + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillEstimateLineItemsCommandInput - {@link ListBillEstimateLineItemsCommandInput} + * @returns {@link ListBillEstimateLineItemsCommandOutput} + * @see {@link ListBillEstimateLineItemsCommandInput} for command's `input` shape. + * @see {@link ListBillEstimateLineItemsCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillEstimateLineItemsCommand extends $Command + .classBuilder< + ListBillEstimateLineItemsCommandInput, + ListBillEstimateLineItemsCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillEstimateLineItems", {}) + .n("BCMPricingCalculatorClient", "ListBillEstimateLineItemsCommand") + .f(void 0, void 0) + .ser(se_ListBillEstimateLineItemsCommand) + .de(de_ListBillEstimateLineItemsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillEstimateLineItemsRequest; + output: ListBillEstimateLineItemsResponse; + }; + sdk: { + input: ListBillEstimateLineItemsCommandInput; + output: ListBillEstimateLineItemsCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimatesCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimatesCommand.ts new file mode 100644 index 0000000000000..86276cef11a28 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillEstimatesCommand.ts @@ -0,0 +1,154 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListBillEstimatesRequest, ListBillEstimatesResponse } from "../models/models_0"; +import { de_ListBillEstimatesCommand, se_ListBillEstimatesCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillEstimatesCommand}. + */ +export interface ListBillEstimatesCommandInput extends ListBillEstimatesRequest {} +/** + * @public + * + * The output of {@link ListBillEstimatesCommand}. + */ +export interface ListBillEstimatesCommandOutput extends ListBillEstimatesResponse, __MetadataBearer {} + +/** + *

+ * Lists all bill estimates for the account. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillEstimatesCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillEstimatesCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillEstimatesRequest + * filters: [ // ListBillEstimatesFilters + * { // ListBillEstimatesFilter + * name: "STATUS" || "NAME", // required + * values: [ // ListBillEstimatesFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * createdAtFilter: { // FilterTimestamp + * afterTimestamp: new Date("TIMESTAMP"), + * beforeTimestamp: new Date("TIMESTAMP"), + * }, + * expiresAtFilter: { + * afterTimestamp: new Date("TIMESTAMP"), + * beforeTimestamp: new Date("TIMESTAMP"), + * }, + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillEstimatesCommand(input); + * const response = await client.send(command); + * // { // ListBillEstimatesResponse + * // items: [ // BillEstimateSummaries + * // { // BillEstimateSummary + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // status: "IN_PROGRESS" || "COMPLETE" || "FAILED", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillEstimatesCommandInput - {@link ListBillEstimatesCommandInput} + * @returns {@link ListBillEstimatesCommandOutput} + * @see {@link ListBillEstimatesCommandInput} for command's `input` shape. + * @see {@link ListBillEstimatesCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillEstimatesCommand extends $Command + .classBuilder< + ListBillEstimatesCommandInput, + ListBillEstimatesCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillEstimates", {}) + .n("BCMPricingCalculatorClient", "ListBillEstimatesCommand") + .f(void 0, void 0) + .ser(se_ListBillEstimatesCommand) + .de(de_ListBillEstimatesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillEstimatesRequest; + output: ListBillEstimatesResponse; + }; + sdk: { + input: ListBillEstimatesCommandInput; + output: ListBillEstimatesCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioCommitmentModificationsCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioCommitmentModificationsCommand.ts new file mode 100644 index 0000000000000..338d081b2fa63 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioCommitmentModificationsCommand.ts @@ -0,0 +1,162 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListBillScenarioCommitmentModificationsRequest, + ListBillScenarioCommitmentModificationsResponse, +} from "../models/models_0"; +import { + de_ListBillScenarioCommitmentModificationsCommand, + se_ListBillScenarioCommitmentModificationsCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillScenarioCommitmentModificationsCommand}. + */ +export interface ListBillScenarioCommitmentModificationsCommandInput + extends ListBillScenarioCommitmentModificationsRequest {} +/** + * @public + * + * The output of {@link ListBillScenarioCommitmentModificationsCommand}. + */ +export interface ListBillScenarioCommitmentModificationsCommandOutput + extends ListBillScenarioCommitmentModificationsResponse, + __MetadataBearer {} + +/** + *

+ * Lists the commitment modifications associated with a bill scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillScenarioCommitmentModificationsCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillScenarioCommitmentModificationsCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillScenarioCommitmentModificationsRequest + * billScenarioId: "STRING_VALUE", // required + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillScenarioCommitmentModificationsCommand(input); + * const response = await client.send(command); + * // { // ListBillScenarioCommitmentModificationsResponse + * // items: [ // BillScenarioCommitmentModificationItems + * // { // BillScenarioCommitmentModificationItem + * // id: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // group: "STRING_VALUE", + * // commitmentAction: { // BillScenarioCommitmentModificationAction Union: only one key present + * // addReservedInstanceAction: { // AddReservedInstanceAction + * // reservedInstancesOfferingId: "STRING_VALUE", + * // instanceCount: Number("int"), + * // }, + * // addSavingsPlanAction: { // AddSavingsPlanAction + * // savingsPlanOfferingId: "STRING_VALUE", + * // commitment: Number("double"), + * // }, + * // negateReservedInstanceAction: { // NegateReservedInstanceAction + * // reservedInstancesId: "STRING_VALUE", + * // }, + * // negateSavingsPlanAction: { // NegateSavingsPlanAction + * // savingsPlanId: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillScenarioCommitmentModificationsCommandInput - {@link ListBillScenarioCommitmentModificationsCommandInput} + * @returns {@link ListBillScenarioCommitmentModificationsCommandOutput} + * @see {@link ListBillScenarioCommitmentModificationsCommandInput} for command's `input` shape. + * @see {@link ListBillScenarioCommitmentModificationsCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillScenarioCommitmentModificationsCommand extends $Command + .classBuilder< + ListBillScenarioCommitmentModificationsCommandInput, + ListBillScenarioCommitmentModificationsCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillScenarioCommitmentModifications", {}) + .n("BCMPricingCalculatorClient", "ListBillScenarioCommitmentModificationsCommand") + .f(void 0, void 0) + .ser(se_ListBillScenarioCommitmentModificationsCommand) + .de(de_ListBillScenarioCommitmentModificationsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillScenarioCommitmentModificationsRequest; + output: ListBillScenarioCommitmentModificationsResponse; + }; + sdk: { + input: ListBillScenarioCommitmentModificationsCommandInput; + output: ListBillScenarioCommitmentModificationsCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioUsageModificationsCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioUsageModificationsCommand.ts new file mode 100644 index 0000000000000..744b48b50e2f4 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillScenarioUsageModificationsCommand.ts @@ -0,0 +1,230 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListBillScenarioUsageModificationsRequest, + ListBillScenarioUsageModificationsResponse, +} from "../models/models_0"; +import { + de_ListBillScenarioUsageModificationsCommand, + se_ListBillScenarioUsageModificationsCommand, +} from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillScenarioUsageModificationsCommand}. + */ +export interface ListBillScenarioUsageModificationsCommandInput extends ListBillScenarioUsageModificationsRequest {} +/** + * @public + * + * The output of {@link ListBillScenarioUsageModificationsCommand}. + */ +export interface ListBillScenarioUsageModificationsCommandOutput + extends ListBillScenarioUsageModificationsResponse, + __MetadataBearer {} + +/** + *

+ * Lists the usage modifications associated with a bill scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillScenarioUsageModificationsCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillScenarioUsageModificationsCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillScenarioUsageModificationsRequest + * billScenarioId: "STRING_VALUE", // required + * filters: [ // ListUsageFilters + * { // ListUsageFilter + * name: "USAGE_ACCOUNT_ID" || "SERVICE_CODE" || "USAGE_TYPE" || "OPERATION" || "LOCATION" || "USAGE_GROUP" || "HISTORICAL_USAGE_ACCOUNT_ID" || "HISTORICAL_SERVICE_CODE" || "HISTORICAL_USAGE_TYPE" || "HISTORICAL_OPERATION" || "HISTORICAL_LOCATION", // required + * values: [ // ListUsageFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillScenarioUsageModificationsCommand(input); + * const response = await client.send(command); + * // { // ListBillScenarioUsageModificationsResponse + * // items: [ // BillScenarioUsageModificationItems + * // { // BillScenarioUsageModificationItem + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // availabilityZone: "STRING_VALUE", + * // id: "STRING_VALUE", + * // group: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // quantities: [ // UsageQuantities + * // { // UsageQuantity + * // startHour: new Date("TIMESTAMP"), + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // ], + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillScenarioUsageModificationsCommandInput - {@link ListBillScenarioUsageModificationsCommandInput} + * @returns {@link ListBillScenarioUsageModificationsCommandOutput} + * @see {@link ListBillScenarioUsageModificationsCommandInput} for command's `input` shape. + * @see {@link ListBillScenarioUsageModificationsCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillScenarioUsageModificationsCommand extends $Command + .classBuilder< + ListBillScenarioUsageModificationsCommandInput, + ListBillScenarioUsageModificationsCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillScenarioUsageModifications", {}) + .n("BCMPricingCalculatorClient", "ListBillScenarioUsageModificationsCommand") + .f(void 0, void 0) + .ser(se_ListBillScenarioUsageModificationsCommand) + .de(de_ListBillScenarioUsageModificationsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillScenarioUsageModificationsRequest; + output: ListBillScenarioUsageModificationsResponse; + }; + sdk: { + input: ListBillScenarioUsageModificationsCommandInput; + output: ListBillScenarioUsageModificationsCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListBillScenariosCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListBillScenariosCommand.ts new file mode 100644 index 0000000000000..16ee224a097b4 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListBillScenariosCommand.ts @@ -0,0 +1,155 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListBillScenariosRequest, ListBillScenariosResponse } from "../models/models_0"; +import { de_ListBillScenariosCommand, se_ListBillScenariosCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListBillScenariosCommand}. + */ +export interface ListBillScenariosCommandInput extends ListBillScenariosRequest {} +/** + * @public + * + * The output of {@link ListBillScenariosCommand}. + */ +export interface ListBillScenariosCommandOutput extends ListBillScenariosResponse, __MetadataBearer {} + +/** + *

+ * Lists all bill scenarios for the account. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListBillScenariosCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListBillScenariosCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListBillScenariosRequest + * filters: [ // ListBillScenariosFilters + * { // ListBillScenariosFilter + * name: "STATUS" || "NAME", // required + * values: [ // ListBillScenariosFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * createdAtFilter: { // FilterTimestamp + * afterTimestamp: new Date("TIMESTAMP"), + * beforeTimestamp: new Date("TIMESTAMP"), + * }, + * expiresAtFilter: { + * afterTimestamp: new Date("TIMESTAMP"), + * beforeTimestamp: new Date("TIMESTAMP"), + * }, + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListBillScenariosCommand(input); + * const response = await client.send(command); + * // { // ListBillScenariosResponse + * // items: [ // BillScenarioSummaries + * // { // BillScenarioSummary + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // status: "READY" || "LOCKED" || "FAILED", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // failureMessage: "STRING_VALUE", + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListBillScenariosCommandInput - {@link ListBillScenariosCommandInput} + * @returns {@link ListBillScenariosCommandOutput} + * @see {@link ListBillScenariosCommandInput} for command's `input` shape. + * @see {@link ListBillScenariosCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListBillScenariosCommand extends $Command + .classBuilder< + ListBillScenariosCommandInput, + ListBillScenariosCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListBillScenarios", {}) + .n("BCMPricingCalculatorClient", "ListBillScenariosCommand") + .f(void 0, void 0) + .ser(se_ListBillScenariosCommand) + .de(de_ListBillScenariosCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListBillScenariosRequest; + output: ListBillScenariosResponse; + }; + sdk: { + input: ListBillScenariosCommandInput; + output: ListBillScenariosCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListTagsForResourceCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListTagsForResourceCommand.ts new file mode 100644 index 0000000000000..a482a830fc944 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListTagsForResourceCommand.ts @@ -0,0 +1,125 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListTagsForResourceRequest, ListTagsForResourceResponse } from "../models/models_0"; +import { de_ListTagsForResourceCommand, se_ListTagsForResourceCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListTagsForResourceCommand}. + */ +export interface ListTagsForResourceCommandInput extends ListTagsForResourceRequest {} +/** + * @public + * + * The output of {@link ListTagsForResourceCommand}. + */ +export interface ListTagsForResourceCommandOutput extends ListTagsForResourceResponse, __MetadataBearer {} + +/** + *

+ * Lists all tags associated with a specified resource. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListTagsForResourceCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListTagsForResourceCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListTagsForResourceRequest + * arn: "STRING_VALUE", // required + * }; + * const command = new ListTagsForResourceCommand(input); + * const response = await client.send(command); + * // { // ListTagsForResourceResponse + * // tags: { // Tags + * // "": "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param ListTagsForResourceCommandInput - {@link ListTagsForResourceCommandInput} + * @returns {@link ListTagsForResourceCommandOutput} + * @see {@link ListTagsForResourceCommandInput} for command's `input` shape. + * @see {@link ListTagsForResourceCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListTagsForResourceCommand extends $Command + .classBuilder< + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListTagsForResource", {}) + .n("BCMPricingCalculatorClient", "ListTagsForResourceCommand") + .f(void 0, void 0) + .ser(se_ListTagsForResourceCommand) + .de(de_ListTagsForResourceCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListTagsForResourceRequest; + output: ListTagsForResourceResponse; + }; + sdk: { + input: ListTagsForResourceCommandInput; + output: ListTagsForResourceCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimateUsageCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimateUsageCommand.ts new file mode 100644 index 0000000000000..db1f1463e14b2 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimateUsageCommand.ts @@ -0,0 +1,221 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListWorkloadEstimateUsageRequest, ListWorkloadEstimateUsageResponse } from "../models/models_0"; +import { de_ListWorkloadEstimateUsageCommand, se_ListWorkloadEstimateUsageCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListWorkloadEstimateUsageCommand}. + */ +export interface ListWorkloadEstimateUsageCommandInput extends ListWorkloadEstimateUsageRequest {} +/** + * @public + * + * The output of {@link ListWorkloadEstimateUsageCommand}. + */ +export interface ListWorkloadEstimateUsageCommandOutput extends ListWorkloadEstimateUsageResponse, __MetadataBearer {} + +/** + *

+ * Lists the usage associated with a workload estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListWorkloadEstimateUsageCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListWorkloadEstimateUsageCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListWorkloadEstimateUsageRequest + * workloadEstimateId: "STRING_VALUE", // required + * filters: [ // ListUsageFilters + * { // ListUsageFilter + * name: "USAGE_ACCOUNT_ID" || "SERVICE_CODE" || "USAGE_TYPE" || "OPERATION" || "LOCATION" || "USAGE_GROUP" || "HISTORICAL_USAGE_ACCOUNT_ID" || "HISTORICAL_SERVICE_CODE" || "HISTORICAL_USAGE_TYPE" || "HISTORICAL_OPERATION" || "HISTORICAL_LOCATION", // required + * values: [ // ListUsageFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListWorkloadEstimateUsageCommand(input); + * const response = await client.send(command); + * // { // ListWorkloadEstimateUsageResponse + * // items: [ // WorkloadEstimateUsageItems + * // { // WorkloadEstimateUsageItem + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // id: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", + * // group: "STRING_VALUE", + * // quantity: { // WorkloadEstimateUsageQuantity + * // unit: "STRING_VALUE", + * // amount: Number("double"), + * // }, + * // cost: Number("double"), + * // currency: "USD", + * // status: "VALID" || "INVALID" || "STALE", + * // historicalUsage: { // HistoricalUsageEntity + * // serviceCode: "STRING_VALUE", // required + * // usageType: "STRING_VALUE", // required + * // operation: "STRING_VALUE", // required + * // location: "STRING_VALUE", + * // usageAccountId: "STRING_VALUE", // required + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // filterExpression: { // Expression + * // and: [ // ExpressionList + * // { + * // and: [ + * // "", + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { // ExpressionFilter + * // key: "STRING_VALUE", + * // matchOptions: [ // StringList + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: [ + * // "STRING_VALUE", + * // ], + * // }, + * // tags: { + * // key: "STRING_VALUE", + * // matchOptions: [ + * // "STRING_VALUE", + * // ], + * // values: "", + * // }, + * // }, + * // ], + * // or: [ + * // "", + * // ], + * // not: "", + * // costCategories: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // dimensions: { + * // key: "STRING_VALUE", + * // matchOptions: "", + * // values: "", + * // }, + * // tags: "", + * // }, + * // }, + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListWorkloadEstimateUsageCommandInput - {@link ListWorkloadEstimateUsageCommandInput} + * @returns {@link ListWorkloadEstimateUsageCommandOutput} + * @see {@link ListWorkloadEstimateUsageCommandInput} for command's `input` shape. + * @see {@link ListWorkloadEstimateUsageCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListWorkloadEstimateUsageCommand extends $Command + .classBuilder< + ListWorkloadEstimateUsageCommandInput, + ListWorkloadEstimateUsageCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListWorkloadEstimateUsage", {}) + .n("BCMPricingCalculatorClient", "ListWorkloadEstimateUsageCommand") + .f(void 0, void 0) + .ser(se_ListWorkloadEstimateUsageCommand) + .de(de_ListWorkloadEstimateUsageCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListWorkloadEstimateUsageRequest; + output: ListWorkloadEstimateUsageResponse; + }; + sdk: { + input: ListWorkloadEstimateUsageCommandInput; + output: ListWorkloadEstimateUsageCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimatesCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimatesCommand.ts new file mode 100644 index 0000000000000..a58ba5aeeb35d --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/ListWorkloadEstimatesCommand.ts @@ -0,0 +1,155 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListWorkloadEstimatesRequest, ListWorkloadEstimatesResponse } from "../models/models_0"; +import { de_ListWorkloadEstimatesCommand, se_ListWorkloadEstimatesCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListWorkloadEstimatesCommand}. + */ +export interface ListWorkloadEstimatesCommandInput extends ListWorkloadEstimatesRequest {} +/** + * @public + * + * The output of {@link ListWorkloadEstimatesCommand}. + */ +export interface ListWorkloadEstimatesCommandOutput extends ListWorkloadEstimatesResponse, __MetadataBearer {} + +/** + *

+ * Lists all workload estimates for the account. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, ListWorkloadEstimatesCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, ListWorkloadEstimatesCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // ListWorkloadEstimatesRequest + * createdAtFilter: { // FilterTimestamp + * afterTimestamp: new Date("TIMESTAMP"), + * beforeTimestamp: new Date("TIMESTAMP"), + * }, + * expiresAtFilter: { + * afterTimestamp: new Date("TIMESTAMP"), + * beforeTimestamp: new Date("TIMESTAMP"), + * }, + * filters: [ // ListWorkloadEstimatesFilters + * { // ListWorkloadEstimatesFilter + * name: "STATUS" || "NAME", // required + * values: [ // ListWorkloadEstimatesFilterValues // required + * "STRING_VALUE", + * ], + * matchOption: "EQUALS" || "STARTS_WITH" || "CONTAINS", + * }, + * ], + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListWorkloadEstimatesCommand(input); + * const response = await client.send(command); + * // { // ListWorkloadEstimatesResponse + * // items: [ // WorkloadEstimateSummaries + * // { // WorkloadEstimateSummary + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // rateType: "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // rateTimestamp: new Date("TIMESTAMP"), + * // status: "UPDATING" || "VALID" || "INVALID" || "ACTION_NEEDED", + * // totalCost: Number("double"), + * // costCurrency: "USD", + * // failureMessage: "STRING_VALUE", + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListWorkloadEstimatesCommandInput - {@link ListWorkloadEstimatesCommandInput} + * @returns {@link ListWorkloadEstimatesCommandOutput} + * @see {@link ListWorkloadEstimatesCommandInput} for command's `input` shape. + * @see {@link ListWorkloadEstimatesCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class ListWorkloadEstimatesCommand extends $Command + .classBuilder< + ListWorkloadEstimatesCommandInput, + ListWorkloadEstimatesCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "ListWorkloadEstimates", {}) + .n("BCMPricingCalculatorClient", "ListWorkloadEstimatesCommand") + .f(void 0, void 0) + .ser(se_ListWorkloadEstimatesCommand) + .de(de_ListWorkloadEstimatesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListWorkloadEstimatesRequest; + output: ListWorkloadEstimatesResponse; + }; + sdk: { + input: ListWorkloadEstimatesCommandInput; + output: ListWorkloadEstimatesCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/TagResourceCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/TagResourceCommand.ts new file mode 100644 index 0000000000000..0de5fdc5dd98a --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/TagResourceCommand.ts @@ -0,0 +1,129 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { TagResourceRequest, TagResourceResponse } from "../models/models_0"; +import { de_TagResourceCommand, se_TagResourceCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link TagResourceCommand}. + */ +export interface TagResourceCommandInput extends TagResourceRequest {} +/** + * @public + * + * The output of {@link TagResourceCommand}. + */ +export interface TagResourceCommandOutput extends TagResourceResponse, __MetadataBearer {} + +/** + *

+ * Adds one or more tags to a specified resource. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, TagResourceCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, TagResourceCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // TagResourceRequest + * arn: "STRING_VALUE", // required + * tags: { // Tags // required + * "": "STRING_VALUE", + * }, + * }; + * const command = new TagResourceCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param TagResourceCommandInput - {@link TagResourceCommandInput} + * @returns {@link TagResourceCommandOutput} + * @see {@link TagResourceCommandInput} for command's `input` shape. + * @see {@link TagResourceCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class TagResourceCommand extends $Command + .classBuilder< + TagResourceCommandInput, + TagResourceCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "TagResource", {}) + .n("BCMPricingCalculatorClient", "TagResourceCommand") + .f(void 0, void 0) + .ser(se_TagResourceCommand) + .de(de_TagResourceCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: TagResourceRequest; + output: {}; + }; + sdk: { + input: TagResourceCommandInput; + output: TagResourceCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/UntagResourceCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/UntagResourceCommand.ts new file mode 100644 index 0000000000000..77df352e5c9b0 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/UntagResourceCommand.ts @@ -0,0 +1,124 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { UntagResourceRequest, UntagResourceResponse } from "../models/models_0"; +import { de_UntagResourceCommand, se_UntagResourceCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link UntagResourceCommand}. + */ +export interface UntagResourceCommandInput extends UntagResourceRequest {} +/** + * @public + * + * The output of {@link UntagResourceCommand}. + */ +export interface UntagResourceCommandOutput extends UntagResourceResponse, __MetadataBearer {} + +/** + *

+ * Removes one or more tags from a specified resource. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, UntagResourceCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, UntagResourceCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // UntagResourceRequest + * arn: "STRING_VALUE", // required + * tagKeys: [ // ResourceTagKeys // required + * "STRING_VALUE", + * ], + * }; + * const command = new UntagResourceCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param UntagResourceCommandInput - {@link UntagResourceCommandInput} + * @returns {@link UntagResourceCommandOutput} + * @see {@link UntagResourceCommandInput} for command's `input` shape. + * @see {@link UntagResourceCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class UntagResourceCommand extends $Command + .classBuilder< + UntagResourceCommandInput, + UntagResourceCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "UntagResource", {}) + .n("BCMPricingCalculatorClient", "UntagResourceCommand") + .f(void 0, void 0) + .ser(se_UntagResourceCommand) + .de(de_UntagResourceCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: UntagResourceRequest; + output: {}; + }; + sdk: { + input: UntagResourceCommandInput; + output: UntagResourceCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/UpdateBillEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/UpdateBillEstimateCommand.ts new file mode 100644 index 0000000000000..e4377401f9403 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/UpdateBillEstimateCommand.ts @@ -0,0 +1,168 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { UpdateBillEstimateRequest, UpdateBillEstimateResponse } from "../models/models_0"; +import { de_UpdateBillEstimateCommand, se_UpdateBillEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link UpdateBillEstimateCommand}. + */ +export interface UpdateBillEstimateCommandInput extends UpdateBillEstimateRequest {} +/** + * @public + * + * The output of {@link UpdateBillEstimateCommand}. + */ +export interface UpdateBillEstimateCommandOutput extends UpdateBillEstimateResponse, __MetadataBearer {} + +/** + *

+ * Updates an existing bill estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, UpdateBillEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, UpdateBillEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // UpdateBillEstimateRequest + * identifier: "STRING_VALUE", // required + * name: "STRING_VALUE", + * expiresAt: new Date("TIMESTAMP"), + * }; + * const command = new UpdateBillEstimateCommand(input); + * const response = await client.send(command); + * // { // UpdateBillEstimateResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // status: "IN_PROGRESS" || "COMPLETE" || "FAILED", + * // failureMessage: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // costSummary: { // BillEstimateCostSummary + * // totalCostDifference: { // CostDifference + * // historicalCost: { // CostAmount + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // estimatedCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // serviceCostDifferences: { // ServiceCostDifferenceMap + * // "": { + * // historicalCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // estimatedCost: { + * // amount: Number("double"), + * // currency: "USD", + * // }, + * // }, + * // }, + * // }, + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // }; + * + * ``` + * + * @param UpdateBillEstimateCommandInput - {@link UpdateBillEstimateCommandInput} + * @returns {@link UpdateBillEstimateCommandOutput} + * @see {@link UpdateBillEstimateCommandInput} for command's `input` shape. + * @see {@link UpdateBillEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class UpdateBillEstimateCommand extends $Command + .classBuilder< + UpdateBillEstimateCommandInput, + UpdateBillEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "UpdateBillEstimate", {}) + .n("BCMPricingCalculatorClient", "UpdateBillEstimateCommand") + .f(void 0, void 0) + .ser(se_UpdateBillEstimateCommand) + .de(de_UpdateBillEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: UpdateBillEstimateRequest; + output: UpdateBillEstimateResponse; + }; + sdk: { + input: UpdateBillEstimateCommandInput; + output: UpdateBillEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/UpdateBillScenarioCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/UpdateBillScenarioCommand.ts new file mode 100644 index 0000000000000..fd1ca5865fef8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/UpdateBillScenarioCommand.ts @@ -0,0 +1,144 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { UpdateBillScenarioRequest, UpdateBillScenarioResponse } from "../models/models_0"; +import { de_UpdateBillScenarioCommand, se_UpdateBillScenarioCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link UpdateBillScenarioCommand}. + */ +export interface UpdateBillScenarioCommandInput extends UpdateBillScenarioRequest {} +/** + * @public + * + * The output of {@link UpdateBillScenarioCommand}. + */ +export interface UpdateBillScenarioCommandOutput extends UpdateBillScenarioResponse, __MetadataBearer {} + +/** + *

+ * Updates an existing bill scenario. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, UpdateBillScenarioCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, UpdateBillScenarioCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // UpdateBillScenarioRequest + * identifier: "STRING_VALUE", // required + * name: "STRING_VALUE", + * expiresAt: new Date("TIMESTAMP"), + * }; + * const command = new UpdateBillScenarioCommand(input); + * const response = await client.send(command); + * // { // UpdateBillScenarioResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // billInterval: { // BillInterval + * // start: new Date("TIMESTAMP"), + * // end: new Date("TIMESTAMP"), + * // }, + * // status: "READY" || "LOCKED" || "FAILED", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // failureMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param UpdateBillScenarioCommandInput - {@link UpdateBillScenarioCommandInput} + * @returns {@link UpdateBillScenarioCommandOutput} + * @see {@link UpdateBillScenarioCommandInput} for command's `input` shape. + * @see {@link UpdateBillScenarioCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class UpdateBillScenarioCommand extends $Command + .classBuilder< + UpdateBillScenarioCommandInput, + UpdateBillScenarioCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "UpdateBillScenario", {}) + .n("BCMPricingCalculatorClient", "UpdateBillScenarioCommand") + .f(void 0, void 0) + .ser(se_UpdateBillScenarioCommand) + .de(de_UpdateBillScenarioCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: UpdateBillScenarioRequest; + output: UpdateBillScenarioResponse; + }; + sdk: { + input: UpdateBillScenarioCommandInput; + output: UpdateBillScenarioCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/UpdatePreferencesCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/UpdatePreferencesCommand.ts new file mode 100644 index 0000000000000..790832ac5af21 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/UpdatePreferencesCommand.ts @@ -0,0 +1,138 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { UpdatePreferencesRequest, UpdatePreferencesResponse } from "../models/models_0"; +import { de_UpdatePreferencesCommand, se_UpdatePreferencesCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link UpdatePreferencesCommand}. + */ +export interface UpdatePreferencesCommandInput extends UpdatePreferencesRequest {} +/** + * @public + * + * The output of {@link UpdatePreferencesCommand}. + */ +export interface UpdatePreferencesCommandOutput extends UpdatePreferencesResponse, __MetadataBearer {} + +/** + *

+ * Updates the preferences for the Amazon Web Services Cost Explorer service. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, UpdatePreferencesCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, UpdatePreferencesCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // UpdatePreferencesRequest + * managementAccountRateTypeSelections: [ // RateTypes + * "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * ], + * memberAccountRateTypeSelections: [ + * "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * ], + * }; + * const command = new UpdatePreferencesCommand(input); + * const response = await client.send(command); + * // { // UpdatePreferencesResponse + * // managementAccountRateTypeSelections: [ // RateTypes + * // "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // ], + * // memberAccountRateTypeSelections: [ + * // "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // ], + * // }; + * + * ``` + * + * @param UpdatePreferencesCommandInput - {@link UpdatePreferencesCommandInput} + * @returns {@link UpdatePreferencesCommandOutput} + * @see {@link UpdatePreferencesCommandInput} for command's `input` shape. + * @see {@link UpdatePreferencesCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

+ * The request would cause you to exceed your service quota. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class UpdatePreferencesCommand extends $Command + .classBuilder< + UpdatePreferencesCommandInput, + UpdatePreferencesCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "UpdatePreferences", {}) + .n("BCMPricingCalculatorClient", "UpdatePreferencesCommand") + .f(void 0, void 0) + .ser(se_UpdatePreferencesCommand) + .de(de_UpdatePreferencesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: UpdatePreferencesRequest; + output: UpdatePreferencesResponse; + }; + sdk: { + input: UpdatePreferencesCommandInput; + output: UpdatePreferencesCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/UpdateWorkloadEstimateCommand.ts b/clients/client-bcm-pricing-calculator/src/commands/UpdateWorkloadEstimateCommand.ts new file mode 100644 index 0000000000000..e37261742ca9c --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/UpdateWorkloadEstimateCommand.ts @@ -0,0 +1,144 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes, +} from "../BCMPricingCalculatorClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { UpdateWorkloadEstimateRequest, UpdateWorkloadEstimateResponse } from "../models/models_0"; +import { de_UpdateWorkloadEstimateCommand, se_UpdateWorkloadEstimateCommand } from "../protocols/Aws_json1_0"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link UpdateWorkloadEstimateCommand}. + */ +export interface UpdateWorkloadEstimateCommandInput extends UpdateWorkloadEstimateRequest {} +/** + * @public + * + * The output of {@link UpdateWorkloadEstimateCommand}. + */ +export interface UpdateWorkloadEstimateCommandOutput extends UpdateWorkloadEstimateResponse, __MetadataBearer {} + +/** + *

+ * Updates an existing workload estimate. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { BCMPricingCalculatorClient, UpdateWorkloadEstimateCommand } from "@aws-sdk/client-bcm-pricing-calculator"; // ES Modules import + * // const { BCMPricingCalculatorClient, UpdateWorkloadEstimateCommand } = require("@aws-sdk/client-bcm-pricing-calculator"); // CommonJS import + * const client = new BCMPricingCalculatorClient(config); + * const input = { // UpdateWorkloadEstimateRequest + * identifier: "STRING_VALUE", // required + * name: "STRING_VALUE", + * expiresAt: new Date("TIMESTAMP"), + * }; + * const command = new UpdateWorkloadEstimateCommand(input); + * const response = await client.send(command); + * // { // UpdateWorkloadEstimateResponse + * // id: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // expiresAt: new Date("TIMESTAMP"), + * // rateType: "BEFORE_DISCOUNTS" || "AFTER_DISCOUNTS", + * // rateTimestamp: new Date("TIMESTAMP"), + * // status: "UPDATING" || "VALID" || "INVALID" || "ACTION_NEEDED", + * // totalCost: Number("double"), + * // costCurrency: "USD", + * // failureMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param UpdateWorkloadEstimateCommandInput - {@link UpdateWorkloadEstimateCommandInput} + * @returns {@link UpdateWorkloadEstimateCommandOutput} + * @see {@link UpdateWorkloadEstimateCommandInput} for command's `input` shape. + * @see {@link UpdateWorkloadEstimateCommandOutput} for command's `response` shape. + * @see {@link BCMPricingCalculatorClientResolvedConfig | config} for BCMPricingCalculatorClient's `config` shape. + * + * @throws {@link ConflictException} (client fault) + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * + * @throws {@link DataUnavailableException} (client fault) + *

+ * The requested data is currently unavailable. + *

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

+ * The specified resource was not found. + *

+ * + * @throws {@link AccessDeniedException} (client fault) + *

+ * You do not have sufficient access to perform this action. + *

+ * + * @throws {@link InternalServerException} (server fault) + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * + * @throws {@link ThrottlingException} (client fault) + *

+ * The request was denied due to request throttling. + *

+ * + * @throws {@link ValidationException} (client fault) + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * + * @throws {@link BCMPricingCalculatorServiceException} + *

Base exception class for all service exceptions from BCMPricingCalculator service.

+ * + * @public + */ +export class UpdateWorkloadEstimateCommand extends $Command + .classBuilder< + UpdateWorkloadEstimateCommandInput, + UpdateWorkloadEstimateCommandOutput, + BCMPricingCalculatorClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: BCMPricingCalculatorClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AWSBCMPricingCalculator", "UpdateWorkloadEstimate", {}) + .n("BCMPricingCalculatorClient", "UpdateWorkloadEstimateCommand") + .f(void 0, void 0) + .ser(se_UpdateWorkloadEstimateCommand) + .de(de_UpdateWorkloadEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: UpdateWorkloadEstimateRequest; + output: UpdateWorkloadEstimateResponse; + }; + sdk: { + input: UpdateWorkloadEstimateCommandInput; + output: UpdateWorkloadEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/commands/index.ts b/clients/client-bcm-pricing-calculator/src/commands/index.ts new file mode 100644 index 0000000000000..511995bb97022 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/commands/index.ts @@ -0,0 +1,37 @@ +// smithy-typescript generated code +export * from "./BatchCreateBillScenarioCommitmentModificationCommand"; +export * from "./BatchCreateBillScenarioUsageModificationCommand"; +export * from "./BatchCreateWorkloadEstimateUsageCommand"; +export * from "./BatchDeleteBillScenarioCommitmentModificationCommand"; +export * from "./BatchDeleteBillScenarioUsageModificationCommand"; +export * from "./BatchDeleteWorkloadEstimateUsageCommand"; +export * from "./BatchUpdateBillScenarioCommitmentModificationCommand"; +export * from "./BatchUpdateBillScenarioUsageModificationCommand"; +export * from "./BatchUpdateWorkloadEstimateUsageCommand"; +export * from "./CreateBillEstimateCommand"; +export * from "./CreateBillScenarioCommand"; +export * from "./CreateWorkloadEstimateCommand"; +export * from "./DeleteBillEstimateCommand"; +export * from "./DeleteBillScenarioCommand"; +export * from "./DeleteWorkloadEstimateCommand"; +export * from "./GetBillEstimateCommand"; +export * from "./GetBillScenarioCommand"; +export * from "./GetPreferencesCommand"; +export * from "./GetWorkloadEstimateCommand"; +export * from "./ListBillEstimateCommitmentsCommand"; +export * from "./ListBillEstimateInputCommitmentModificationsCommand"; +export * from "./ListBillEstimateInputUsageModificationsCommand"; +export * from "./ListBillEstimateLineItemsCommand"; +export * from "./ListBillEstimatesCommand"; +export * from "./ListBillScenarioCommitmentModificationsCommand"; +export * from "./ListBillScenarioUsageModificationsCommand"; +export * from "./ListBillScenariosCommand"; +export * from "./ListTagsForResourceCommand"; +export * from "./ListWorkloadEstimateUsageCommand"; +export * from "./ListWorkloadEstimatesCommand"; +export * from "./TagResourceCommand"; +export * from "./UntagResourceCommand"; +export * from "./UpdateBillEstimateCommand"; +export * from "./UpdateBillScenarioCommand"; +export * from "./UpdatePreferencesCommand"; +export * from "./UpdateWorkloadEstimateCommand"; diff --git a/clients/client-bcm-pricing-calculator/src/endpoint/EndpointParameters.ts b/clients/client-bcm-pricing-calculator/src/endpoint/EndpointParameters.ts new file mode 100644 index 0000000000000..deb205131d60b --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/endpoint/EndpointParameters.ts @@ -0,0 +1,37 @@ +// smithy-typescript generated code +import { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types"; + +/** + * @public + */ +export interface ClientInputEndpointParameters { + useFipsEndpoint?: boolean | Provider; + endpoint?: string | Provider | Endpoint | Provider | EndpointV2 | Provider; + region?: string | Provider; +} + +export type ClientResolvedEndpointParameters = ClientInputEndpointParameters & { + defaultSigningName: string; +}; + +export const resolveClientEndpointParameters = ( + options: T & ClientInputEndpointParameters +): T & ClientResolvedEndpointParameters => { + return { + ...options, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "bcm-pricing-calculator", + }; +}; + +export const commonParams = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, +} as const; + +export interface EndpointParameters extends __EndpointParameters { + UseFIPS?: boolean; + Endpoint?: string; + Region?: string; +} diff --git a/clients/client-bcm-pricing-calculator/src/endpoint/endpointResolver.ts b/clients/client-bcm-pricing-calculator/src/endpoint/endpointResolver.ts new file mode 100644 index 0000000000000..b08a72482ca0e --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/endpoint/endpointResolver.ts @@ -0,0 +1,26 @@ +// smithy-typescript generated code +import { awsEndpointFunctions } from "@aws-sdk/util-endpoints"; +import { EndpointV2, Logger } from "@smithy/types"; +import { customEndpointFunctions, EndpointCache, EndpointParams, resolveEndpoint } from "@smithy/util-endpoints"; + +import { EndpointParameters } from "./EndpointParameters"; +import { ruleSet } from "./ruleset"; + +const cache = new EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseFIPS"], +}); + +export const defaultEndpointResolver = ( + endpointParams: EndpointParameters, + context: { logger?: Logger } = {} +): EndpointV2 => { + return cache.get(endpointParams as EndpointParams, () => + resolveEndpoint(ruleSet, { + endpointParams: endpointParams as EndpointParams, + logger: context.logger, + }) + ); +}; + +customEndpointFunctions.aws = awsEndpointFunctions; diff --git a/clients/client-bcm-pricing-calculator/src/endpoint/ruleset.ts b/clients/client-bcm-pricing-calculator/src/endpoint/ruleset.ts new file mode 100644 index 0000000000000..512df9f898204 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/endpoint/ruleset.ts @@ -0,0 +1,22 @@ +// @ts-nocheck +// generated code, do not edit +import { RuleSetObject } from "@smithy/types"; + +/* This file is compressed. Log this object + or see "smithy.rules#endpointRuleSet" + in codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json */ + +const l="ref"; +const a=true, +b=false, +c="isSet", +d="error", +e="endpoint", +f="tree", +g={"required":false,"type":"String"}, +h={[l]:"Endpoint"}, +i={"authSchemes":[{"name":"sigv4","signingRegion":"{PartitionResult#implicitGlobalRegion}"}]}, +j=[{"fn":"booleanEquals","argv":[{[l]:"UseFIPS"},true]}], +k=[{[l]:"Region"}]; +const _data={version:"1.0",parameters:{UseFIPS:{required:a,default:b,type:"Boolean"},Endpoint:g,Region:g},rules:[{conditions:[{fn:c,argv:[h]}],rules:[{conditions:j,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:d},{endpoint:{url:h,properties:{},headers:{}},type:e}],type:f},{rules:[{conditions:[{fn:c,argv:k}],rules:[{conditions:[{fn:"aws.partition",argv:k,assign:"PartitionResult"}],rules:[{conditions:j,endpoint:{url:"https://bcm-pricing-calculator-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}",properties:i,headers:{}},type:e},{endpoint:{url:"https://bcm-pricing-calculator.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}",properties:i,headers:{}},type:e}],type:f}],type:f},{error:"Invalid Configuration: Missing Region",type:d}],type:f}]}; +export const ruleSet: RuleSetObject = _data; diff --git a/clients/client-bcm-pricing-calculator/src/extensionConfiguration.ts b/clients/client-bcm-pricing-calculator/src/extensionConfiguration.ts new file mode 100644 index 0000000000000..0108eb8a483d7 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/extensionConfiguration.ts @@ -0,0 +1,15 @@ +// smithy-typescript generated code +import { AwsRegionExtensionConfiguration } from "@aws-sdk/types"; +import { HttpHandlerExtensionConfiguration } from "@smithy/protocol-http"; +import { DefaultExtensionConfiguration } from "@smithy/types"; + +import { HttpAuthExtensionConfiguration } from "./auth/httpAuthExtensionConfiguration"; + +/** + * @internal + */ +export interface BCMPricingCalculatorExtensionConfiguration + extends HttpHandlerExtensionConfiguration, + DefaultExtensionConfiguration, + AwsRegionExtensionConfiguration, + HttpAuthExtensionConfiguration {} diff --git a/clients/client-bcm-pricing-calculator/src/index.ts b/clients/client-bcm-pricing-calculator/src/index.ts new file mode 100644 index 0000000000000..072d2a03f61cd --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/index.ts @@ -0,0 +1,28 @@ +// smithy-typescript generated code +/* eslint-disable */ +/** + *

+ * You can use the Pricing Calculator API to programmatically create estimates for your planned cloud use. You can model usage and commitments such as Savings Plans and + * Reserved Instances, and generate estimated costs using your discounts and benefit sharing preferences. + *

+ *

The Pricing Calculator API provides the following endpoint:

+ *
    + *
  • + *

    + * https://bcm-pricing-calculator.us-east-1.api.aws + *

    + *
  • + *
+ * + * @packageDocumentation + */ +export * from "./BCMPricingCalculatorClient"; +export * from "./BCMPricingCalculator"; +export { ClientInputEndpointParameters } from "./endpoint/EndpointParameters"; +export type { RuntimeExtension } from "./runtimeExtensions"; +export type { BCMPricingCalculatorExtensionConfiguration } from "./extensionConfiguration"; +export * from "./commands"; +export * from "./pagination"; +export * from "./models"; + +export { BCMPricingCalculatorServiceException } from "./models/BCMPricingCalculatorServiceException"; diff --git a/clients/client-bcm-pricing-calculator/src/models/BCMPricingCalculatorServiceException.ts b/clients/client-bcm-pricing-calculator/src/models/BCMPricingCalculatorServiceException.ts new file mode 100644 index 0000000000000..ff439d995c5d8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/models/BCMPricingCalculatorServiceException.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { + ServiceException as __ServiceException, + ServiceExceptionOptions as __ServiceExceptionOptions, +} from "@smithy/smithy-client"; + +export type { __ServiceExceptionOptions }; + +export { __ServiceException }; + +/** + * @public + * + * Base exception class for all service exceptions from BCMPricingCalculator service. + */ +export class BCMPricingCalculatorServiceException extends __ServiceException { + /** + * @internal + */ + constructor(options: __ServiceExceptionOptions) { + super(options); + Object.setPrototypeOf(this, BCMPricingCalculatorServiceException.prototype); + } +} diff --git a/clients/client-bcm-pricing-calculator/src/models/index.ts b/clients/client-bcm-pricing-calculator/src/models/index.ts new file mode 100644 index 0000000000000..9eaceb12865f8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/models/index.ts @@ -0,0 +1,2 @@ +// smithy-typescript generated code +export * from "./models_0"; diff --git a/clients/client-bcm-pricing-calculator/src/models/models_0.ts b/clients/client-bcm-pricing-calculator/src/models/models_0.ts new file mode 100644 index 0000000000000..ec4bb325ea620 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/models/models_0.ts @@ -0,0 +1,5087 @@ +// smithy-typescript generated code +import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client"; + +import { BCMPricingCalculatorServiceException as __BaseException } from "./BCMPricingCalculatorServiceException"; + +/** + *

+ * You do not have sufficient access to perform this action. + *

+ * @public + */ +export class AccessDeniedException extends __BaseException { + readonly name: "AccessDeniedException" = "AccessDeniedException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "AccessDeniedException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, AccessDeniedException.prototype); + } +} + +/** + *

+ * Represents an action to add a Reserved Instance to a bill scenario. + *

+ * @public + */ +export interface AddReservedInstanceAction { + /** + *

+ * The ID of the Reserved Instance offering to add. For more information, see + * + * DescribeReservedInstancesOfferings. + *

+ * @public + */ + reservedInstancesOfferingId?: string | undefined; + + /** + *

+ * The number of instances to add for this Reserved Instance offering. + *

+ * @public + */ + instanceCount?: number | undefined; +} + +/** + *

+ * Represents an action to add a Savings Plan to a bill scenario. + *

+ * @public + */ +export interface AddSavingsPlanAction { + /** + *

+ * The ID of the Savings Plan offering to add. For more information, see + * + * DescribeSavingsPlansOfferings. + *

+ * @public + */ + savingsPlanOfferingId?: string | undefined; + + /** + *

+ * The hourly commitment, in the same currency of the savingsPlanOfferingId. + * This is a value between 0.001 and 1 million. You cannot specify more than five digits + * after the decimal point. + *

+ * @public + */ + commitment?: number | undefined; +} + +/** + *

+ * The requested data is currently unavailable. + *

+ * @public + */ +export class DataUnavailableException extends __BaseException { + readonly name: "DataUnavailableException" = "DataUnavailableException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "DataUnavailableException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, DataUnavailableException.prototype); + } +} + +/** + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * @public + */ +export class InternalServerException extends __BaseException { + readonly name: "InternalServerException" = "InternalServerException"; + readonly $fault: "server" = "server"; + /** + *

+ * An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support. + *

+ * @public + */ + retryAfterSeconds?: number | undefined; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts, + }); + Object.setPrototypeOf(this, InternalServerException.prototype); + this.retryAfterSeconds = opts.retryAfterSeconds; + } +} + +/** + * @public + */ +export interface ListBillEstimateCommitmentsRequest { + /** + *

+ * The unique identifier of the bill estimate to list commitments for. + *

+ * @public + */ + billEstimateId: string | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + * @public + * @enum + */ +export const CurrencyCode = { + USD: "USD", +} as const; + +/** + * @public + */ +export type CurrencyCode = (typeof CurrencyCode)[keyof typeof CurrencyCode]; + +/** + *

+ * Represents a monetary amount with associated currency. + *

+ * @public + */ +export interface CostAmount { + /** + *

+ * The numeric value of the cost. + *

+ * @public + */ + amount?: number | undefined; + + /** + *

+ * The currency code for the cost amount. + *

+ * @public + */ + currency?: CurrencyCode | undefined; +} + +/** + * @public + * @enum + */ +export const PurchaseAgreementType = { + RESERVED_INSTANCE: "RESERVED_INSTANCE", + SAVINGS_PLANS: "SAVINGS_PLANS", +} as const; + +/** + * @public + */ +export type PurchaseAgreementType = (typeof PurchaseAgreementType)[keyof typeof PurchaseAgreementType]; + +/** + *

+ * Provides a summary of commitment-related information for a bill estimate. + *

+ * @public + */ +export interface BillEstimateCommitmentSummary { + /** + *

+ * The unique identifier of the commitment. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The type of purchase agreement (e.g., Reserved Instance, Savings Plan). + *

+ * @public + */ + purchaseAgreementType?: PurchaseAgreementType | undefined; + + /** + *

+ * The identifier of the specific offering associated with this commitment. + *

+ * @public + */ + offeringId?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this commitment. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The Amazon Web Services region associated with this commitment. + *

+ * @public + */ + region?: string | undefined; + + /** + *

+ * The length of the commitment term. + *

+ * @public + */ + termLength?: string | undefined; + + /** + *

+ * The payment option chosen for this commitment (e.g., All Upfront, Partial Upfront, No Upfront). + *

+ * @public + */ + paymentOption?: string | undefined; + + /** + *

+ * The upfront payment amount for this commitment, if applicable. + *

+ * @public + */ + upfrontPayment?: CostAmount | undefined; + + /** + *

+ * The monthly payment amount for this commitment, if applicable. + *

+ * @public + */ + monthlyPayment?: CostAmount | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateCommitmentsResponse { + /** + *

+ * The list of commitments associated with the bill estimate. + *

+ * @public + */ + items?: BillEstimateCommitmentSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + *

+ * The specified resource was not found. + *

+ * @public + */ +export class ResourceNotFoundException extends __BaseException { + readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; + readonly $fault: "client" = "client"; + /** + *

+ * The identifier of the resource that was not found. + *

+ * @public + */ + resourceId: string | undefined; + + /** + *

+ * The type of the resource that was not found. + *

+ * @public + */ + resourceType: string | undefined; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ResourceNotFoundException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ResourceNotFoundException.prototype); + this.resourceId = opts.resourceId; + this.resourceType = opts.resourceType; + } +} + +/** + *

+ * The request was denied due to request throttling. + *

+ * @public + */ +export class ThrottlingException extends __BaseException { + readonly name: "ThrottlingException" = "ThrottlingException"; + readonly $fault: "client" = "client"; + /** + *

The service code that exceeded the throttling limit.

+ * @public + */ + serviceCode?: string | undefined; + + /** + *

The quota code that exceeded the throttling limit.

+ * @public + */ + quotaCode?: string | undefined; + + /** + *

The service code that exceeded the throttling limit. Retry your + * request, but if the problem persists, contact Amazon Web Services support.

+ * @public + */ + retryAfterSeconds?: number | undefined; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ThrottlingException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ThrottlingException.prototype); + this.serviceCode = opts.serviceCode; + this.quotaCode = opts.quotaCode; + this.retryAfterSeconds = opts.retryAfterSeconds; + } +} + +/** + *

+ * Represents a field that failed validation in a request. + *

+ * @public + */ +export interface ValidationExceptionField { + /** + *

+ * The name of the field that failed validation. + *

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

+ * The error message describing why the field failed validation. + *

+ * @public + */ + message: string | undefined; +} + +/** + * @public + * @enum + */ +export const ValidationExceptionReason = { + CANNOT_PARSE: "cannotParse", + DISALLOWED_RATE: "disallowedRate", + FIELD_VALIDATION_FAILED: "fieldValidationFailed", + INVALID_REQUEST_FROM_MEMBER: "invalidRequestFromMember", + OTHER: "other", + UNKNOWN_OPERATION: "unknownOperation", +} as const; + +/** + * @public + */ +export type ValidationExceptionReason = (typeof ValidationExceptionReason)[keyof typeof ValidationExceptionReason]; + +/** + *

+ * The input provided fails to satisfy the constraints specified by an Amazon Web Services service. + *

+ * @public + */ +export class ValidationException extends __BaseException { + readonly name: "ValidationException" = "ValidationException"; + readonly $fault: "client" = "client"; + /** + *

+ * The reason for the validation exception. + *

+ * @public + */ + reason?: ValidationExceptionReason | undefined; + + /** + *

+ * The list of fields that are invalid. + *

+ * @public + */ + fieldList?: ValidationExceptionField[] | undefined; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ValidationException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ValidationException.prototype); + this.reason = opts.reason; + this.fieldList = opts.fieldList; + } +} + +/** + *

+ * Represents the difference between historical and estimated costs. + *

+ * @public + */ +export interface CostDifference { + /** + *

+ * The historical cost amount. + *

+ * @public + */ + historicalCost?: CostAmount | undefined; + + /** + *

+ * The estimated cost amount. + *

+ * @public + */ + estimatedCost?: CostAmount | undefined; +} + +/** + *

+ * Provides a summary of cost-related information for a bill estimate. + *

+ * @public + */ +export interface BillEstimateCostSummary { + /** + *

+ * The total difference in cost between the estimated and historical costs. + *

+ * @public + */ + totalCostDifference?: CostDifference | undefined; + + /** + *

+ * A breakdown of cost differences by Amazon Web Services service. + *

+ * @public + */ + serviceCostDifferences?: Record | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateInputCommitmentModificationsRequest { + /** + *

+ * The unique identifier of the bill estimate to list input commitment modifications for. + *

+ * @public + */ + billEstimateId: string | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Represents an action to remove a Reserved Instance from a bill scenario. + *

+ *

+ * This is the ID of an existing Reserved Instance in your account. + *

+ * @public + */ +export interface NegateReservedInstanceAction { + /** + *

+ * The ID of the Reserved Instance to remove. + *

+ * @public + */ + reservedInstancesId?: string | undefined; +} + +/** + *

+ * Represents an action to remove a Savings Plan from a bill scenario. + *

+ *

+ * This is the ID of an existing Savings Plan in your account. + *

+ * @public + */ +export interface NegateSavingsPlanAction { + /** + *

+ * The ID of the Savings Plan to remove. + *

+ * @public + */ + savingsPlanId?: string | undefined; +} + +/** + *

+ * Represents an action to modify commitments in a bill scenario. + *

+ * @public + */ +export type BillScenarioCommitmentModificationAction = + | BillScenarioCommitmentModificationAction.AddReservedInstanceActionMember + | BillScenarioCommitmentModificationAction.AddSavingsPlanActionMember + | BillScenarioCommitmentModificationAction.NegateReservedInstanceActionMember + | BillScenarioCommitmentModificationAction.NegateSavingsPlanActionMember + | BillScenarioCommitmentModificationAction.$UnknownMember; + +/** + * @public + */ +export namespace BillScenarioCommitmentModificationAction { + /** + *

+ * Action to add a Reserved Instance to the scenario. + *

+ * @public + */ + export interface AddReservedInstanceActionMember { + addReservedInstanceAction: AddReservedInstanceAction; + addSavingsPlanAction?: never; + negateReservedInstanceAction?: never; + negateSavingsPlanAction?: never; + $unknown?: never; + } + + /** + *

+ * Action to add a Savings Plan to the scenario. + *

+ * @public + */ + export interface AddSavingsPlanActionMember { + addReservedInstanceAction?: never; + addSavingsPlanAction: AddSavingsPlanAction; + negateReservedInstanceAction?: never; + negateSavingsPlanAction?: never; + $unknown?: never; + } + + /** + *

+ * Action to remove a Reserved Instance from the scenario. + *

+ * @public + */ + export interface NegateReservedInstanceActionMember { + addReservedInstanceAction?: never; + addSavingsPlanAction?: never; + negateReservedInstanceAction: NegateReservedInstanceAction; + negateSavingsPlanAction?: never; + $unknown?: never; + } + + /** + *

+ * Action to remove a Savings Plan from the scenario. + *

+ * @public + */ + export interface NegateSavingsPlanActionMember { + addReservedInstanceAction?: never; + addSavingsPlanAction?: never; + negateReservedInstanceAction?: never; + negateSavingsPlanAction: NegateSavingsPlanAction; + $unknown?: never; + } + + /** + * @public + */ + export interface $UnknownMember { + addReservedInstanceAction?: never; + addSavingsPlanAction?: never; + negateReservedInstanceAction?: never; + negateSavingsPlanAction?: never; + $unknown: [string, any]; + } + + export interface Visitor { + addReservedInstanceAction: (value: AddReservedInstanceAction) => T; + addSavingsPlanAction: (value: AddSavingsPlanAction) => T; + negateReservedInstanceAction: (value: NegateReservedInstanceAction) => T; + negateSavingsPlanAction: (value: NegateSavingsPlanAction) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: BillScenarioCommitmentModificationAction, visitor: Visitor): T => { + if (value.addReservedInstanceAction !== undefined) + return visitor.addReservedInstanceAction(value.addReservedInstanceAction); + if (value.addSavingsPlanAction !== undefined) return visitor.addSavingsPlanAction(value.addSavingsPlanAction); + if (value.negateReservedInstanceAction !== undefined) + return visitor.negateReservedInstanceAction(value.negateReservedInstanceAction); + if (value.negateSavingsPlanAction !== undefined) + return visitor.negateSavingsPlanAction(value.negateSavingsPlanAction); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; +} + +/** + *

+ * Summarizes an input commitment modification for a bill estimate. + *

+ * @public + */ +export interface BillEstimateInputCommitmentModificationSummary { + /** + *

+ * The unique identifier of the commitment modification. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The group identifier for the commitment modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this commitment modification. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The specific commitment action taken in this modification. + *

+ * @public + */ + commitmentAction?: BillScenarioCommitmentModificationAction | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateInputCommitmentModificationsResponse { + /** + *

+ * The list of input commitment modifications associated with the bill estimate. + *

+ * @public + */ + items?: BillEstimateInputCommitmentModificationSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + * @enum + */ +export const MatchOption = { + CONTAINS: "CONTAINS", + EQUALS: "EQUALS", + STARTS_WITH: "STARTS_WITH", +} as const; + +/** + * @public + */ +export type MatchOption = (typeof MatchOption)[keyof typeof MatchOption]; + +/** + * @public + * @enum + */ +export const ListUsageFilterName = { + HISTORICAL_LOCATION: "HISTORICAL_LOCATION", + HISTORICAL_OPERATION: "HISTORICAL_OPERATION", + HISTORICAL_SERVICE_CODE: "HISTORICAL_SERVICE_CODE", + HISTORICAL_USAGE_ACCOUNT_ID: "HISTORICAL_USAGE_ACCOUNT_ID", + HISTORICAL_USAGE_TYPE: "HISTORICAL_USAGE_TYPE", + LOCATION: "LOCATION", + OPERATION: "OPERATION", + SERVICE_CODE: "SERVICE_CODE", + USAGE_ACCOUNT_ID: "USAGE_ACCOUNT_ID", + USAGE_GROUP: "USAGE_GROUP", + USAGE_TYPE: "USAGE_TYPE", +} as const; + +/** + * @public + */ +export type ListUsageFilterName = (typeof ListUsageFilterName)[keyof typeof ListUsageFilterName]; + +/** + *

+ * Represents a filter for listing usage data. + *

+ * @public + */ +export interface ListUsageFilter { + /** + *

+ * The name of the filter attribute. + *

+ * @public + */ + name: ListUsageFilterName | undefined; + + /** + *

+ * The values to filter by. + *

+ * @public + */ + values: string[] | undefined; + + /** + *

+ * The match option for the filter (e.g., equals, contains). + *

+ * @public + */ + matchOption?: MatchOption | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateInputUsageModificationsRequest { + /** + *

+ * The unique identifier of the bill estimate to list input usage modifications for. + *

+ * @public + */ + billEstimateId: string | undefined; + + /** + *

+ * Filters to apply to the list of input usage modifications. + *

+ * @public + */ + filters?: ListUsageFilter[] | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Represents a time interval for a bill or estimate. + *

+ * @public + */ +export interface BillInterval { + /** + *

+ * The start date and time of the interval. + *

+ * @public + */ + start?: Date | undefined; + + /** + *

+ * The end date and time of the interval. + *

+ * @public + */ + end?: Date | undefined; +} + +/** + *

+ * Represents a filter used within an expression. + *

+ * @public + */ +export interface ExpressionFilter { + /** + *

+ * The key or attribute to filter on. + *

+ * @public + */ + key?: string | undefined; + + /** + *

+ * The match options for the filter (e.g., equals, contains). + *

+ * @public + */ + matchOptions?: string[] | undefined; + + /** + *

+ * The values to match against. + *

+ * @public + */ + values?: string[] | undefined; +} + +/** + *

+ * Represents a usage quantity with associated unit and time period. + *

+ * @public + */ +export interface UsageQuantity { + /** + *

+ * The start hour of the usage period. + *

+ * @public + */ + startHour?: Date | undefined; + + /** + *

+ * The unit of measurement for the usage quantity. + *

+ * @public + */ + unit?: string | undefined; + + /** + *

+ * The numeric value of the usage quantity. + *

+ * @public + */ + amount?: number | undefined; +} + +/** + * @public + * @enum + */ +export const ListBillEstimateLineItemsFilterName = { + LINE_ITEM_TYPE: "LINE_ITEM_TYPE", + LOCATION: "LOCATION", + OPERATION: "OPERATION", + SERVICE_CODE: "SERVICE_CODE", + USAGE_ACCOUNT_ID: "USAGE_ACCOUNT_ID", + USAGE_TYPE: "USAGE_TYPE", +} as const; + +/** + * @public + */ +export type ListBillEstimateLineItemsFilterName = + (typeof ListBillEstimateLineItemsFilterName)[keyof typeof ListBillEstimateLineItemsFilterName]; + +/** + *

+ * Represents a filter for listing bill estimate line items. + *

+ * @public + */ +export interface ListBillEstimateLineItemsFilter { + /** + *

+ * The name of the filter attribute. + *

+ * @public + */ + name: ListBillEstimateLineItemsFilterName | undefined; + + /** + *

+ * The values to filter by. + *

+ * @public + */ + values: string[] | undefined; + + /** + *

+ * The match option for the filter (e.g., equals, contains). + *

+ * @public + */ + matchOption?: MatchOption | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateLineItemsRequest { + /** + *

+ * The unique identifier of the bill estimate to list line items for. + *

+ * @public + */ + billEstimateId: string | undefined; + + /** + *

+ * Filters to apply to the list of line items. + *

+ * @public + */ + filters?: ListBillEstimateLineItemsFilter[] | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Represents the result of a usage quantity calculation. + *

+ * @public + */ +export interface UsageQuantityResult { + /** + *

+ * The numeric value of the usage quantity result. + *

+ * @public + */ + amount?: number | undefined; + + /** + *

+ * The unit of measurement for the usage quantity result. + *

+ * @public + */ + unit?: string | undefined; +} + +/** + *

+ * Provides a summary of a line item in a bill estimate. + *

+ * @public + */ +export interface BillEstimateLineItemSummary { + /** + *

+ * The Amazon Web Services service code associated with this line item. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage for this line item. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this line item. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with this line item. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The availability zone associated with this line item, if applicable. + *

+ * @public + */ + availabilityZone?: string | undefined; + + /** + *

+ * The unique identifier of this line item. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The line item identifier from the original bill. + *

+ * @public + */ + lineItemId?: string | undefined; + + /** + *

+ * The type of this line item (e.g., Usage, Tax, Credit). + *

+ * @public + */ + lineItemType?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID of the payer for this line item. + *

+ * @public + */ + payerAccountId?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with the usage for this line item. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The estimated usage quantity for this line item. + *

+ * @public + */ + estimatedUsageQuantity?: UsageQuantityResult | undefined; + + /** + *

+ * The estimated cost for this line item. + *

+ * @public + */ + estimatedCost?: CostAmount | undefined; + + /** + *

+ * The historical usage quantity for this line item. + *

+ * @public + */ + historicalUsageQuantity?: UsageQuantityResult | undefined; + + /** + *

+ * The historical cost for this line item. + *

+ * @public + */ + historicalCost?: CostAmount | undefined; + + /** + *

+ * The Amazon Resource Names (ARNs) of any Savings Plans applied to this line item. + *

+ * @public + */ + savingsPlanArns?: string[] | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateLineItemsResponse { + /** + *

+ * The list of line items associated with the bill estimate. + *

+ * @public + */ + items?: BillEstimateLineItemSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + * @enum + */ +export const BillEstimateStatus = { + COMPLETE: "COMPLETE", + FAILED: "FAILED", + IN_PROGRESS: "IN_PROGRESS", +} as const; + +/** + * @public + */ +export type BillEstimateStatus = (typeof BillEstimateStatus)[keyof typeof BillEstimateStatus]; + +/** + *

+ * The request could not be processed because of conflict in the current state of the resource. + *

+ * @public + */ +export class ConflictException extends __BaseException { + readonly name: "ConflictException" = "ConflictException"; + readonly $fault: "client" = "client"; + /** + *

+ * The identifier of the resource that was not found. + *

+ * @public + */ + resourceId: string | undefined; + + /** + *

+ * The type of the resource that was not found. + *

+ * @public + */ + resourceType: string | undefined; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ConflictException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ConflictException.prototype); + this.resourceId = opts.resourceId; + this.resourceType = opts.resourceType; + } +} + +/** + * @public + */ +export interface CreateBillEstimateRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to create a Bill estimate. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * The name of the Bill estimate that will be created. Names must be unique for an account. + *

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

+ * A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. + *

+ * @public + */ + clientToken?: string | undefined; + + /** + *

+ * An optional list of tags to associate with the specified BillEstimate. You can use resource tags to control access to your + * BillEstimate using IAM policies. Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags: + *

+ *
    + *
  • + *

    Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. + * The remaining are reserved for Amazon Web Services.

    + *
  • + *
  • + *

    The maximum length of a key is 128 characters.

    + *
  • + *
  • + *

    The maximum length of a value is 256 characters.

    + *
  • + *
  • + *

    Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-.

    + *
  • + *
  • + *

    Keys and values are case sensitive.

    + *
  • + *
  • + *

    Keys and values are trimmed for any leading or trailing whitespaces.

    + *
  • + *
  • + *

    Don't use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services.

    + *
  • + *
+ * @public + */ + tags?: Record | undefined; +} + +/** + * @public + */ +export interface CreateBillEstimateResponse { + /** + *

The unique identifier of your newly created Bill estimate.

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

The name of your newly created Bill estimate.

+ * @public + */ + name?: string | undefined; + + /** + *

The status of your newly created Bill estimate. Bill estimate creation can take anywhere between 8 to 12 hours. + * The status will allow you to identify when the Bill estimate is complete or has failed.

+ * @public + */ + status?: BillEstimateStatus | undefined; + + /** + *

This attribute provides the reason if a Bill estimate result generation fails.

+ * @public + */ + failureMessage?: string | undefined; + + /** + *

The bill month start and end + * timestamp that was used to create the Bill estimate. This is set to the last complete anniversary bill month start and end timestamp.

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

Returns summary-level cost information once a Bill estimate is + * successfully generated. This summary includes: 1) the total cost difference, showing the pre-tax cost change for the consolidated + * billing family between the completed anniversary bill and the estimated bill, and 2) total cost differences per service, detailing + * the pre-tax cost of each service, comparing the completed anniversary bill to the estimated bill on a per-service basis.

+ * @public + */ + costSummary?: BillEstimateCostSummary | undefined; + + /** + *

The timestamp of when the Bill estimate create process + * was started (not when it successfully completed or failed).

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

The timestamp of when the Bill estimate will + * expire. A Bill estimate becomes inaccessible after expiration.

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + * @public + */ +export interface DeleteBillEstimateRequest { + /** + *

+ * The unique identifier of the bill estimate to delete. + *

+ * @public + */ + identifier: string | undefined; +} + +/** + * @public + */ +export interface DeleteBillEstimateResponse {} + +/** + * @public + */ +export interface GetBillEstimateRequest { + /** + *

+ * The unique identifier of the bill estimate to retrieve. + *

+ * @public + */ + identifier: string | undefined; +} + +/** + * @public + */ +export interface GetBillEstimateResponse { + /** + *

+ * The unique identifier of the retrieved bill estimate. + *

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

+ * The name of the retrieved bill estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The current status of the bill estimate. + *

+ * @public + */ + status?: BillEstimateStatus | undefined; + + /** + *

+ * An error message if the bill estimate retrieval failed. + *

+ * @public + */ + failureMessage?: string | undefined; + + /** + *

+ * The time period covered by the bill estimate. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * A summary of the estimated costs. + *

+ * @public + */ + costSummary?: BillEstimateCostSummary | undefined; + + /** + *

+ * The timestamp when the bill estimate was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the bill estimate will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + *

+ * Represents a time-based filter. + *

+ * @public + */ +export interface FilterTimestamp { + /** + *

+ * Include results after this timestamp. + *

+ * @public + */ + afterTimestamp?: Date | undefined; + + /** + *

+ * Include results before this timestamp. + *

+ * @public + */ + beforeTimestamp?: Date | undefined; +} + +/** + * @public + * @enum + */ +export const ListBillEstimatesFilterName = { + NAME: "NAME", + STATUS: "STATUS", +} as const; + +/** + * @public + */ +export type ListBillEstimatesFilterName = + (typeof ListBillEstimatesFilterName)[keyof typeof ListBillEstimatesFilterName]; + +/** + *

+ * Represents a filter for listing bill estimates. + *

+ * @public + */ +export interface ListBillEstimatesFilter { + /** + *

+ * The name of the filter attribute. + *

+ * @public + */ + name: ListBillEstimatesFilterName | undefined; + + /** + *

+ * The values to filter by. + *

+ * @public + */ + values: string[] | undefined; + + /** + *

+ * The match option for the filter (e.g., equals, contains). + *

+ * @public + */ + matchOption?: MatchOption | undefined; +} + +/** + * @public + */ +export interface ListBillEstimatesRequest { + /** + *

+ * Filters to apply to the list of bill estimates. + *

+ * @public + */ + filters?: ListBillEstimatesFilter[] | undefined; + + /** + *

+ * Filter bill estimates based on their creation date. + *

+ * @public + */ + createdAtFilter?: FilterTimestamp | undefined; + + /** + *

+ * Filter bill estimates based on their expiration date. + *

+ * @public + */ + expiresAtFilter?: FilterTimestamp | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Provides a summary of a bill estimate. + *

+ * @public + */ +export interface BillEstimateSummary { + /** + *

+ * The unique identifier of the bill estimate. + *

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

+ * The name of the bill estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The current status of the bill estimate. + *

+ * @public + */ + status?: BillEstimateStatus | undefined; + + /** + *

+ * The time period covered by the bill estimate. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * The timestamp when the bill estimate was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the bill estimate will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + * @public + */ +export interface ListBillEstimatesResponse { + /** + *

+ * The list of bill estimates for the account. + *

+ * @public + */ + items?: BillEstimateSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface UpdateBillEstimateRequest { + /** + *

+ * The unique identifier of the bill estimate to update. + *

+ * @public + */ + identifier: string | undefined; + + /** + *

+ * The new name for the bill estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The new expiration date for the bill estimate. + *

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + * @public + */ +export interface UpdateBillEstimateResponse { + /** + *

+ * The unique identifier of the updated bill estimate. + *

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

+ * The updated name of the bill estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The current status of the updated bill estimate. + *

+ * @public + */ + status?: BillEstimateStatus | undefined; + + /** + *

+ * An error message if the bill estimate update failed. + *

+ * @public + */ + failureMessage?: string | undefined; + + /** + *

+ * The time period covered by the updated bill estimate. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * A summary of the updated estimated costs. + *

+ * @public + */ + costSummary?: BillEstimateCostSummary | undefined; + + /** + *

+ * The timestamp when the bill estimate was originally created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The updated expiration timestamp for the bill estimate. + *

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + *

+ * Represents an entry object in the batch operation to create bill scenario commitment modifications. + *

+ * @public + */ +export interface BatchCreateBillScenarioCommitmentModificationEntry { + /** + *

+ * A unique identifier for this entry in the batch operation. This can be any valid string. + * This key is useful to identify errors associated with any commitment entry as any error is + * returned with this key. + *

+ * @public + */ + key: string | undefined; + + /** + *

+ * An optional group identifier for the commitment modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID to which this commitment will be applied to. + *

+ * @public + */ + usageAccountId: string | undefined; + + /** + *

+ * The specific commitment action to be taken (e.g., adding a Reserved Instance or Savings Plan). + *

+ * @public + */ + commitmentAction: BillScenarioCommitmentModificationAction | undefined; +} + +/** + * @public + */ +export interface BatchCreateBillScenarioCommitmentModificationRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to create the modeled commitment. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * List of commitments that you want to model in the Bill Scenario. + *

+ * @public + */ + commitmentModifications: BatchCreateBillScenarioCommitmentModificationEntry[] | undefined; + + /** + *

+ * A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. + *

+ * @public + */ + clientToken?: string | undefined; +} + +/** + * @public + * @enum + */ +export const BatchCreateBillScenarioCommitmentModificationErrorCode = { + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", + INVALID_ACCOUNT: "INVALID_ACCOUNT", +} as const; + +/** + * @public + */ +export type BatchCreateBillScenarioCommitmentModificationErrorCode = + (typeof BatchCreateBillScenarioCommitmentModificationErrorCode)[keyof typeof BatchCreateBillScenarioCommitmentModificationErrorCode]; + +/** + *

+ * Represents an error that occurred during a batch create operation for bill scenario commitment modifications. + *

+ * @public + */ +export interface BatchCreateBillScenarioCommitmentModificationError { + /** + *

+ * The key of the entry that caused the error. + *

+ * @public + */ + key?: string | undefined; + + /** + *

+ * A descriptive message for the error that occurred. + *

+ * @public + */ + errorMessage?: string | undefined; + + /** + *

+ * The error code associated with the failed operation. + *

+ * @public + */ + errorCode?: BatchCreateBillScenarioCommitmentModificationErrorCode | undefined; +} + +/** + *

+ * Represents a successfully created item in a batch operation for bill scenario commitment modifications. + *

+ * @public + */ +export interface BatchCreateBillScenarioCommitmentModificationItem { + /** + *

+ * The key of the successfully created entry. This can be any valid string. This key is useful to + * identify errors associated with any commitment entry as any error is returned with this key. + *

+ * @public + */ + key?: string | undefined; + + /** + *

+ * The unique identifier assigned to the created commitment modification. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The group identifier for the created commitment modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with the created commitment modification. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The specific commitment action that was taken. + *

+ * @public + */ + commitmentAction?: BillScenarioCommitmentModificationAction | undefined; +} + +/** + * @public + */ +export interface BatchCreateBillScenarioCommitmentModificationResponse { + /** + *

+ * Returns the list of successful commitment line items that were created for the Bill Scenario. + *

+ * @public + */ + items?: BatchCreateBillScenarioCommitmentModificationItem[] | undefined; + + /** + *

+ * Returns the list of errors reason and the commitment item keys that cannot be created in the Bill Scenario. + *

+ * @public + */ + errors?: BatchCreateBillScenarioCommitmentModificationError[] | undefined; +} + +/** + * @public + */ +export interface BatchDeleteBillScenarioCommitmentModificationRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to delete the modeled commitment. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * List of commitments that you want to delete from the Bill Scenario. + *

+ * @public + */ + ids: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const BatchDeleteBillScenarioCommitmentModificationErrorCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", +} as const; + +/** + * @public + */ +export type BatchDeleteBillScenarioCommitmentModificationErrorCode = + (typeof BatchDeleteBillScenarioCommitmentModificationErrorCode)[keyof typeof BatchDeleteBillScenarioCommitmentModificationErrorCode]; + +/** + *

+ * Represents an error that occurred when deleting a commitment in a Bill Scenario. + *

+ * @public + */ +export interface BatchDeleteBillScenarioCommitmentModificationError { + /** + *

+ * The ID of the error. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The code associated with the error. + *

+ * @public + */ + errorCode?: BatchDeleteBillScenarioCommitmentModificationErrorCode | undefined; + + /** + *

+ * The message that describes the error. + *

+ * @public + */ + errorMessage?: string | undefined; +} + +/** + * @public + */ +export interface BatchDeleteBillScenarioCommitmentModificationResponse { + /** + *

+ * Returns the list of errors reason and the commitment item keys that cannot be deleted from the Bill Scenario. + *

+ * @public + */ + errors?: BatchDeleteBillScenarioCommitmentModificationError[] | undefined; +} + +/** + *

+ * Represents an entry in a batch operation to update bill scenario commitment modifications. + *

+ * @public + */ +export interface BatchUpdateBillScenarioCommitmentModificationEntry { + /** + *

+ * The unique identifier of the commitment modification to update. + *

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

+ * The updated group identifier for the commitment modification. + *

+ * @public + */ + group?: string | undefined; +} + +/** + * @public + */ +export interface BatchUpdateBillScenarioCommitmentModificationRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to modify the commitment group of a modeled commitment. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * List of commitments that you want to update in a Bill Scenario. + *

+ * @public + */ + commitmentModifications: BatchUpdateBillScenarioCommitmentModificationEntry[] | undefined; +} + +/** + * @public + * @enum + */ +export const BatchUpdateBillScenarioCommitmentModificationErrorCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", + NOT_FOUND: "NOT_FOUND", +} as const; + +/** + * @public + */ +export type BatchUpdateBillScenarioCommitmentModificationErrorCode = + (typeof BatchUpdateBillScenarioCommitmentModificationErrorCode)[keyof typeof BatchUpdateBillScenarioCommitmentModificationErrorCode]; + +/** + *

+ * Represents an error that occurred when updating a commitment in a Bill Scenario. + *

+ * @public + */ +export interface BatchUpdateBillScenarioCommitmentModificationError { + /** + *

+ * The ID of the error. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The code associated with the error. + *

+ * @public + */ + errorCode?: BatchUpdateBillScenarioCommitmentModificationErrorCode | undefined; + + /** + *

+ * The message that describes the error. + *

+ * @public + */ + errorMessage?: string | undefined; +} + +/** + *

+ * Represents a commitment modification item in a bill scenario. + *

+ * @public + */ +export interface BillScenarioCommitmentModificationItem { + /** + *

+ * The unique identifier of the commitment modification. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this commitment modification. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The group identifier for the commitment modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The specific commitment action taken in this modification. + *

+ * @public + */ + commitmentAction?: BillScenarioCommitmentModificationAction | undefined; +} + +/** + * @public + */ +export interface BatchUpdateBillScenarioCommitmentModificationResponse { + /** + *

+ * Returns the list of successful commitment line items that were updated for a Bill Scenario. + *

+ * @public + */ + items?: BillScenarioCommitmentModificationItem[] | undefined; + + /** + *

+ * Returns the list of error reasons and commitment line item IDs that could not be updated for the Bill Scenario. + *

+ * @public + */ + errors?: BatchUpdateBillScenarioCommitmentModificationError[] | undefined; +} + +/** + * @public + */ +export interface ListBillScenarioCommitmentModificationsRequest { + /** + *

+ * The unique identifier of the bill scenario to list commitment modifications for. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + * @public + */ +export interface ListBillScenarioCommitmentModificationsResponse { + /** + *

+ * The list of commitment modifications associated with the bill scenario. + *

+ * @public + */ + items?: BillScenarioCommitmentModificationItem[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + * @enum + */ +export const BillScenarioStatus = { + FAILED: "FAILED", + LOCKED: "LOCKED", + READY: "READY", +} as const; + +/** + * @public + */ +export type BillScenarioStatus = (typeof BillScenarioStatus)[keyof typeof BillScenarioStatus]; + +/** + *

+ * Represents a usage amount for a specific time period. + *

+ * @public + */ +export interface UsageAmount { + /** + *

+ * The start hour of the usage period. + *

+ * @public + */ + startHour: Date | undefined; + + /** + *

+ * The usage amount for the period. + *

+ * @public + */ + amount: number | undefined; +} + +/** + * @public + * @enum + */ +export const BatchCreateBillScenarioUsageModificationErrorCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", + NOT_FOUND: "NOT_FOUND", +} as const; + +/** + * @public + */ +export type BatchCreateBillScenarioUsageModificationErrorCode = + (typeof BatchCreateBillScenarioUsageModificationErrorCode)[keyof typeof BatchCreateBillScenarioUsageModificationErrorCode]; + +/** + *

+ * Represents an error that occurred during a batch create operation for bill scenario usage modifications. + *

+ * @public + */ +export interface BatchCreateBillScenarioUsageModificationError { + /** + *

+ * The key of the entry that caused the error. + *

+ * @public + */ + key?: string | undefined; + + /** + *

+ * A descriptive message for the error that occurred. + *

+ * @public + */ + errorMessage?: string | undefined; + + /** + *

+ * The error code associated with the failed operation. + *

+ * @public + */ + errorCode?: BatchCreateBillScenarioUsageModificationErrorCode | undefined; +} + +/** + *

+ * The request would cause you to exceed your service quota. + *

+ * @public + */ +export class ServiceQuotaExceededException extends __BaseException { + readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; + readonly $fault: "client" = "client"; + /** + *

+ * The identifier of the resource that exceeded quota. + *

+ * @public + */ + resourceId: string | undefined; + + /** + *

+ * The type of the resource that exceeded quota. + *

+ * @public + */ + resourceType: string | undefined; + + /** + *

+ * The service code that exceeded quota. + *

+ * @public + */ + serviceCode?: string | undefined; + + /** + *

+ * The quota code that was exceeded. + *

+ * @public + */ + quotaCode?: string | undefined; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ServiceQuotaExceededException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); + this.resourceId = opts.resourceId; + this.resourceType = opts.resourceType; + this.serviceCode = opts.serviceCode; + this.quotaCode = opts.quotaCode; + } +} + +/** + * @public + */ +export interface BatchDeleteBillScenarioUsageModificationRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to delete the modeled usage. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * List of usage that you want to delete from the Bill Scenario. + *

+ * @public + */ + ids: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const BatchDeleteBillScenarioUsageModificationErrorCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", +} as const; + +/** + * @public + */ +export type BatchDeleteBillScenarioUsageModificationErrorCode = + (typeof BatchDeleteBillScenarioUsageModificationErrorCode)[keyof typeof BatchDeleteBillScenarioUsageModificationErrorCode]; + +/** + *

+ * Represents an error that occurred when deleting usage in a Bill Scenario. + *

+ * @public + */ +export interface BatchDeleteBillScenarioUsageModificationError { + /** + *

+ * The ID of the error. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The message that describes the error. + *

+ * @public + */ + errorMessage?: string | undefined; + + /** + *

+ * The code associated with the error. + *

+ * @public + */ + errorCode?: BatchDeleteBillScenarioUsageModificationErrorCode | undefined; +} + +/** + * @public + */ +export interface BatchDeleteBillScenarioUsageModificationResponse { + /** + *

+ * Returns the list of errors reason and the usage item keys that cannot be deleted from the Bill Scenario. + *

+ * @public + */ + errors?: BatchDeleteBillScenarioUsageModificationError[] | undefined; +} + +/** + *

+ * Represents an entry in a batch operation to update bill scenario usage modifications. + *

+ * @public + */ +export interface BatchUpdateBillScenarioUsageModificationEntry { + /** + *

+ * The unique identifier of the usage modification to update. + *

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

+ * The updated group identifier for the usage modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The updated usage amounts for the modification. + *

+ * @public + */ + amounts?: UsageAmount[] | undefined; +} + +/** + * @public + */ +export interface BatchUpdateBillScenarioUsageModificationRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to modify the usage lines. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * List of usage lines that you want to update in a Bill Scenario identified by the usage ID. + *

+ * @public + */ + usageModifications: BatchUpdateBillScenarioUsageModificationEntry[] | undefined; +} + +/** + * @public + * @enum + */ +export const BatchUpdateBillScenarioUsageModificationErrorCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", + NOT_FOUND: "NOT_FOUND", +} as const; + +/** + * @public + */ +export type BatchUpdateBillScenarioUsageModificationErrorCode = + (typeof BatchUpdateBillScenarioUsageModificationErrorCode)[keyof typeof BatchUpdateBillScenarioUsageModificationErrorCode]; + +/** + *

+ * Represents an error that occurred when updating usage in a Bill Scenario. + *

+ * @public + */ +export interface BatchUpdateBillScenarioUsageModificationError { + /** + *

+ * The ID of the error. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The message that describes the error. + *

+ * @public + */ + errorMessage?: string | undefined; + + /** + *

+ * The code associated with the error. + *

+ * @public + */ + errorCode?: BatchUpdateBillScenarioUsageModificationErrorCode | undefined; +} + +/** + * @public + */ +export interface ListBillScenarioUsageModificationsRequest { + /** + *

+ * The unique identifier of the bill scenario to list usage modifications for. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * Filters to apply to the list of usage modifications. + *

+ * @public + */ + filters?: ListUsageFilter[] | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + * @public + */ +export interface CreateBillScenarioRequest { + /** + *

+ * A descriptive name for the bill scenario. + *

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

+ * A unique, case-sensitive identifier to ensure idempotency of the request. + *

+ * @public + */ + clientToken?: string | undefined; + + /** + *

+ * The tags to apply to the bill scenario. + *

+ * @public + */ + tags?: Record | undefined; +} + +/** + * @public + */ +export interface CreateBillScenarioResponse { + /** + *

+ * The unique identifier for the created bill scenario. + *

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

+ * The name of the created bill scenario. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The time period covered by the bill scenario. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * The current status of the bill scenario. + *

+ * @public + */ + status?: BillScenarioStatus | undefined; + + /** + *

+ * The timestamp when the bill scenario was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the bill scenario will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * An error message if the bill scenario creation failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + */ +export interface DeleteBillScenarioRequest { + /** + *

+ * The unique identifier of the bill scenario to delete. + *

+ * @public + */ + identifier: string | undefined; +} + +/** + * @public + */ +export interface DeleteBillScenarioResponse {} + +/** + * @public + */ +export interface GetBillScenarioRequest { + /** + *

+ * The unique identifier of the bill scenario to retrieve. + *

+ * @public + */ + identifier: string | undefined; +} + +/** + * @public + */ +export interface GetBillScenarioResponse { + /** + *

+ * The unique identifier of the retrieved bill scenario. + *

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

+ * The name of the retrieved bill scenario. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The time period covered by the bill scenario. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * The current status of the bill scenario. + *

+ * @public + */ + status?: BillScenarioStatus | undefined; + + /** + *

+ * The timestamp when the bill scenario was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the bill scenario will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * An error message if the bill scenario retrieval failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + * @enum + */ +export const ListBillScenariosFilterName = { + NAME: "NAME", + STATUS: "STATUS", +} as const; + +/** + * @public + */ +export type ListBillScenariosFilterName = + (typeof ListBillScenariosFilterName)[keyof typeof ListBillScenariosFilterName]; + +/** + *

+ * Represents a filter for listing bill scenarios. + *

+ * @public + */ +export interface ListBillScenariosFilter { + /** + *

+ * The name of the filter attribute. + *

+ * @public + */ + name: ListBillScenariosFilterName | undefined; + + /** + *

+ * The values to filter by. + *

+ * @public + */ + values: string[] | undefined; + + /** + *

+ * The match option for the filter (e.g., equals, contains). + *

+ * @public + */ + matchOption?: MatchOption | undefined; +} + +/** + * @public + */ +export interface ListBillScenariosRequest { + /** + *

+ * Filters to apply to the list of bill scenarios. + *

+ * @public + */ + filters?: ListBillScenariosFilter[] | undefined; + + /** + *

+ * Filter bill scenarios based on their creation date. + *

+ * @public + */ + createdAtFilter?: FilterTimestamp | undefined; + + /** + *

+ * Filter bill scenarios based on their expiration date. + *

+ * @public + */ + expiresAtFilter?: FilterTimestamp | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Provides a summary of a bill scenario. + *

+ * @public + */ +export interface BillScenarioSummary { + /** + *

+ * The unique identifier of the bill scenario. + *

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

+ * The name of the bill scenario. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The time period covered by the bill scenario. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * The current status of the bill scenario. + *

+ * @public + */ + status?: BillScenarioStatus | undefined; + + /** + *

+ * The timestamp when the bill scenario was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the bill scenario will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * An error message if the bill scenario creation or processing failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + */ +export interface ListBillScenariosResponse { + /** + *

+ * The list of bill scenarios for the account. + *

+ * @public + */ + items?: BillScenarioSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface UpdateBillScenarioRequest { + /** + *

+ * The unique identifier of the bill scenario to update. + *

+ * @public + */ + identifier: string | undefined; + + /** + *

+ * The new name for the bill scenario. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The new expiration date for the bill scenario. + *

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + * @public + */ +export interface UpdateBillScenarioResponse { + /** + *

+ * The unique identifier of the updated bill scenario. + *

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

+ * The updated name of the bill scenario. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The time period covered by the updated bill scenario. + *

+ * @public + */ + billInterval?: BillInterval | undefined; + + /** + *

+ * The current status of the updated bill scenario. + *

+ * @public + */ + status?: BillScenarioStatus | undefined; + + /** + *

+ * The timestamp when the bill scenario was originally created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The updated expiration timestamp for the bill scenario. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * An error message if the bill scenario update failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + */ +export interface GetPreferencesRequest {} + +/** + * @public + * @enum + */ +export const RateType = { + AFTER_DISCOUNTS: "AFTER_DISCOUNTS", + BEFORE_DISCOUNTS: "BEFORE_DISCOUNTS", +} as const; + +/** + * @public + */ +export type RateType = (typeof RateType)[keyof typeof RateType]; + +/** + * @public + */ +export interface GetPreferencesResponse { + /** + *

+ * The preferred rate types for the management account. + *

+ * @public + */ + managementAccountRateTypeSelections?: RateType[] | undefined; + + /** + *

+ * The preferred rate types for member accounts. + *

+ * @public + */ + memberAccountRateTypeSelections?: RateType[] | undefined; +} + +/** + * @public + */ +export interface ListTagsForResourceRequest { + /** + *

+ * The Amazon Resource Name (ARN) of the resource to list tags for. + *

+ * @public + */ + arn: string | undefined; +} + +/** + * @public + */ +export interface ListTagsForResourceResponse { + /** + *

+ * The list of tags associated with the specified resource. + *

+ * @public + */ + tags?: Record | undefined; +} + +/** + * @public + */ +export interface TagResourceRequest { + /** + *

+ * The Amazon Resource Name (ARN) of the resource to add tags to. + *

+ * @public + */ + arn: string | undefined; + + /** + *

+ * The tags to add to the resource. + *

+ * @public + */ + tags: Record | undefined; +} + +/** + * @public + */ +export interface TagResourceResponse {} + +/** + * @public + */ +export interface UntagResourceRequest { + /** + *

+ * The Amazon Resource Name (ARN) of the resource to remove tags from. + *

+ * @public + */ + arn: string | undefined; + + /** + *

+ * The keys of the tags to remove from the resource. + *

+ * @public + */ + tagKeys: string[] | undefined; +} + +/** + * @public + */ +export interface UntagResourceResponse {} + +/** + * @public + */ +export interface UpdatePreferencesRequest { + /** + *

+ * The updated preferred rate types for the management account. + *

+ * @public + */ + managementAccountRateTypeSelections?: RateType[] | undefined; + + /** + *

+ * The updated preferred rate types for member accounts. + *

+ * @public + */ + memberAccountRateTypeSelections?: RateType[] | undefined; +} + +/** + * @public + */ +export interface UpdatePreferencesResponse { + /** + *

+ * The updated preferred rate types for the management account. + *

+ * @public + */ + managementAccountRateTypeSelections?: RateType[] | undefined; + + /** + *

+ * The updated preferred rate types for member accounts. + *

+ * @public + */ + memberAccountRateTypeSelections?: RateType[] | undefined; +} + +/** + * @public + * @enum + */ +export const WorkloadEstimateRateType = { + AFTER_DISCOUNTS: "AFTER_DISCOUNTS", + BEFORE_DISCOUNTS: "BEFORE_DISCOUNTS", +} as const; + +/** + * @public + */ +export type WorkloadEstimateRateType = (typeof WorkloadEstimateRateType)[keyof typeof WorkloadEstimateRateType]; + +/** + * @public + */ +export interface CreateWorkloadEstimateRequest { + /** + *

+ * A descriptive name for the workload estimate. + *

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

+ * A unique, case-sensitive identifier to ensure idempotency of the request. + *

+ * @public + */ + clientToken?: string | undefined; + + /** + *

+ * The type of pricing rates to use for the estimate. + *

+ * @public + */ + rateType?: WorkloadEstimateRateType | undefined; + + /** + *

+ * The tags to apply to the workload estimate. + *

+ * @public + */ + tags?: Record | undefined; +} + +/** + * @public + * @enum + */ +export const WorkloadEstimateStatus = { + ACTION_NEEDED: "ACTION_NEEDED", + INVALID: "INVALID", + UPDATING: "UPDATING", + VALID: "VALID", +} as const; + +/** + * @public + */ +export type WorkloadEstimateStatus = (typeof WorkloadEstimateStatus)[keyof typeof WorkloadEstimateStatus]; + +/** + * Mixin for common fields returned by CRUD APIs + * @public + */ +export interface CreateWorkloadEstimateResponse { + /** + *

+ * The unique identifier for the created workload estimate. + *

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

+ * The name of the created workload estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The timestamp when the workload estimate was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the workload estimate will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * The type of pricing rates used for the estimate. + *

+ * @public + */ + rateType?: WorkloadEstimateRateType | undefined; + + /** + *

+ * The timestamp of the pricing rates used for the estimate. + *

+ * @public + */ + rateTimestamp?: Date | undefined; + + /** + *

+ * The current status of the workload estimate. + *

+ * @public + */ + status?: WorkloadEstimateStatus | undefined; + + /** + *

+ * The total estimated cost for the workload. + *

+ * @public + */ + totalCost?: number | undefined; + + /** + *

+ * The currency of the estimated cost. + *

+ * @public + */ + costCurrency?: CurrencyCode | undefined; + + /** + *

+ * An error message if the workload estimate creation failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + */ +export interface DeleteWorkloadEstimateRequest { + /** + *

+ * The unique identifier of the workload estimate to delete. + *

+ * @public + */ + identifier: string | undefined; +} + +/** + * @public + */ +export interface DeleteWorkloadEstimateResponse {} + +/** + * @public + */ +export interface GetWorkloadEstimateRequest { + /** + *

+ * The unique identifier of the workload estimate to retrieve. + *

+ * @public + */ + identifier: string | undefined; +} + +/** + * Mixin for common fields returned by CRUD APIs + * @public + */ +export interface GetWorkloadEstimateResponse { + /** + *

+ * The unique identifier of the retrieved workload estimate. + *

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

+ * The name of the retrieved workload estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The timestamp when the workload estimate was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the workload estimate will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * The type of pricing rates used for the estimate. + *

+ * @public + */ + rateType?: WorkloadEstimateRateType | undefined; + + /** + *

+ * The timestamp of the pricing rates used for the estimate. + *

+ * @public + */ + rateTimestamp?: Date | undefined; + + /** + *

+ * The current status of the workload estimate. + *

+ * @public + */ + status?: WorkloadEstimateStatus | undefined; + + /** + *

+ * The total estimated cost for the workload. + *

+ * @public + */ + totalCost?: number | undefined; + + /** + *

+ * The currency of the estimated cost. + *

+ * @public + */ + costCurrency?: CurrencyCode | undefined; + + /** + *

+ * An error message if the workload estimate retrieval failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + * @enum + */ +export const ListWorkloadEstimatesFilterName = { + NAME: "NAME", + STATUS: "STATUS", +} as const; + +/** + * @public + */ +export type ListWorkloadEstimatesFilterName = + (typeof ListWorkloadEstimatesFilterName)[keyof typeof ListWorkloadEstimatesFilterName]; + +/** + *

+ * Represents a filter for listing workload estimates. + *

+ * @public + */ +export interface ListWorkloadEstimatesFilter { + /** + *

+ * The name of the filter attribute. + *

+ * @public + */ + name: ListWorkloadEstimatesFilterName | undefined; + + /** + *

+ * The values to filter by. + *

+ * @public + */ + values: string[] | undefined; + + /** + *

+ * The match option for the filter (e.g., equals, contains). + *

+ * @public + */ + matchOption?: MatchOption | undefined; +} + +/** + * @public + */ +export interface ListWorkloadEstimatesRequest { + /** + *

+ * Filter workload estimates based on their creation date. + *

+ * @public + */ + createdAtFilter?: FilterTimestamp | undefined; + + /** + *

+ * Filter workload estimates based on their expiration date. + *

+ * @public + */ + expiresAtFilter?: FilterTimestamp | undefined; + + /** + *

+ * Filters to apply to the list of workload estimates. + *

+ * @public + */ + filters?: ListWorkloadEstimatesFilter[] | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Provides a summary of a workload estimate. + *

+ * @public + */ +export interface WorkloadEstimateSummary { + /** + *

+ * The unique identifier of the workload estimate. + *

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

+ * The name of the workload estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The timestamp when the workload estimate was created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The timestamp when the workload estimate will expire. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * The type of pricing rates used for the estimate. + *

+ * @public + */ + rateType?: WorkloadEstimateRateType | undefined; + + /** + *

+ * The timestamp of the pricing rates used for the estimate. + *

+ * @public + */ + rateTimestamp?: Date | undefined; + + /** + *

+ * The current status of the workload estimate. + *

+ * @public + */ + status?: WorkloadEstimateStatus | undefined; + + /** + *

+ * The total estimated cost for the workload. + *

+ * @public + */ + totalCost?: number | undefined; + + /** + *

+ * The currency of the estimated cost. + *

+ * @public + */ + costCurrency?: CurrencyCode | undefined; + + /** + *

+ * An error message if the workload estimate creation or processing failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + */ +export interface ListWorkloadEstimatesResponse { + /** + *

+ * The list of workload estimates for the account. + *

+ * @public + */ + items?: WorkloadEstimateSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface UpdateWorkloadEstimateRequest { + /** + *

+ * The unique identifier of the workload estimate to update. + *

+ * @public + */ + identifier: string | undefined; + + /** + *

+ * The new name for the workload estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The new expiration date for the workload estimate. + *

+ * @public + */ + expiresAt?: Date | undefined; +} + +/** + * Mixin for common fields returned by CRUD APIs + * @public + */ +export interface UpdateWorkloadEstimateResponse { + /** + *

+ * The unique identifier of the updated workload estimate. + *

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

+ * The updated name of the workload estimate. + *

+ * @public + */ + name?: string | undefined; + + /** + *

+ * The timestamp when the workload estimate was originally created. + *

+ * @public + */ + createdAt?: Date | undefined; + + /** + *

+ * The updated expiration timestamp for the workload estimate. + *

+ * @public + */ + expiresAt?: Date | undefined; + + /** + *

+ * The type of pricing rates used for the updated estimate. + *

+ * @public + */ + rateType?: WorkloadEstimateRateType | undefined; + + /** + *

+ * The timestamp of the pricing rates used for the updated estimate. + *

+ * @public + */ + rateTimestamp?: Date | undefined; + + /** + *

+ * The current status of the updated workload estimate. + *

+ * @public + */ + status?: WorkloadEstimateStatus | undefined; + + /** + *

+ * The updated total estimated cost for the workload. + *

+ * @public + */ + totalCost?: number | undefined; + + /** + *

+ * The currency of the updated estimated cost. + *

+ * @public + */ + costCurrency?: CurrencyCode | undefined; + + /** + *

+ * An error message if the workload estimate update failed. + *

+ * @public + */ + failureMessage?: string | undefined; +} + +/** + * @public + * @enum + */ +export const BatchCreateWorkloadEstimateUsageCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", + NOT_FOUND: "NOT_FOUND", +} as const; + +/** + * @public + */ +export type BatchCreateWorkloadEstimateUsageCode = + (typeof BatchCreateWorkloadEstimateUsageCode)[keyof typeof BatchCreateWorkloadEstimateUsageCode]; + +/** + *

+ * Represents an error that occurred during a batch create operation for workload estimate usage. + *

+ * @public + */ +export interface BatchCreateWorkloadEstimateUsageError { + /** + *

+ * The key of the entry that caused the error. + *

+ * @public + */ + key?: string | undefined; + + /** + *

+ * The error code associated with the failed operation. + *

+ * @public + */ + errorCode?: BatchCreateWorkloadEstimateUsageCode | undefined; + + /** + *

+ * A descriptive message for the error that occurred. + *

+ * @public + */ + errorMessage?: string | undefined; +} + +/** + *

+ * Represents a usage quantity for a workload estimate. + *

+ * @public + */ +export interface WorkloadEstimateUsageQuantity { + /** + *

+ * The unit of measurement for the usage quantity. + *

+ * @public + */ + unit?: string | undefined; + + /** + *

+ * The numeric value of the usage quantity. + *

+ * @public + */ + amount?: number | undefined; +} + +/** + * @public + * @enum + */ +export const WorkloadEstimateCostStatus = { + INVALID: "INVALID", + STALE: "STALE", + VALID: "VALID", +} as const; + +/** + * @public + */ +export type WorkloadEstimateCostStatus = (typeof WorkloadEstimateCostStatus)[keyof typeof WorkloadEstimateCostStatus]; + +/** + * @public + */ +export interface BatchDeleteWorkloadEstimateUsageRequest { + /** + *

+ * The ID of the Workload estimate for which you want to delete the modeled usage. + *

+ * @public + */ + workloadEstimateId: string | undefined; + + /** + *

+ * List of usage that you want to delete from the Workload estimate. + *

+ * @public + */ + ids: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const WorkloadEstimateUpdateUsageErrorCode = { + BAD_REQUEST: "BAD_REQUEST", + CONFLICT: "CONFLICT", + INTERNAL_SERVER_ERROR: "INTERNAL_SERVER_ERROR", + NOT_FOUND: "NOT_FOUND", +} as const; + +/** + * @public + */ +export type WorkloadEstimateUpdateUsageErrorCode = + (typeof WorkloadEstimateUpdateUsageErrorCode)[keyof typeof WorkloadEstimateUpdateUsageErrorCode]; + +/** + *

+ * Represents an error that occurred when deleting usage in a workload estimate. + *

+ * @public + */ +export interface BatchDeleteWorkloadEstimateUsageError { + /** + *

+ * The ID of the error. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The message that describes the error. + *

+ * @public + */ + errorMessage?: string | undefined; + + /** + *

+ * The code associated with the error. + *

+ * @public + */ + errorCode?: WorkloadEstimateUpdateUsageErrorCode | undefined; +} + +/** + * @public + */ +export interface BatchDeleteWorkloadEstimateUsageResponse { + /** + *

+ * Returns the list of errors reason and the usage item keys that cannot be deleted from the Workload estimate. + *

+ * @public + */ + errors?: BatchDeleteWorkloadEstimateUsageError[] | undefined; +} + +/** + *

+ * Represents an entry in a batch operation to update workload estimate usage. + *

+ * @public + */ +export interface BatchUpdateWorkloadEstimateUsageEntry { + /** + *

+ * The unique identifier of the usage estimate to update. + *

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

+ * The updated group identifier for the usage estimate. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The updated estimated usage amount. + *

+ * @public + */ + amount?: number | undefined; +} + +/** + * @public + */ +export interface BatchUpdateWorkloadEstimateUsageRequest { + /** + *

+ * The ID of the Workload estimate for which you want to modify the usage lines. + *

+ * @public + */ + workloadEstimateId: string | undefined; + + /** + *

+ * List of usage line amounts and usage group that you want to update in a Workload estimate identified by the usage ID. + *

+ * @public + */ + usage: BatchUpdateWorkloadEstimateUsageEntry[] | undefined; +} + +/** + *

+ * Represents an error that occurred when updating usage in a workload estimate. + *

+ * @public + */ +export interface BatchUpdateWorkloadEstimateUsageError { + /** + *

+ * The ID of the error. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The message that describes the error. + *

+ * @public + */ + errorMessage?: string | undefined; + + /** + *

+ * The code associated with the error. + *

+ * @public + */ + errorCode?: WorkloadEstimateUpdateUsageErrorCode | undefined; +} + +/** + * @public + */ +export interface ListWorkloadEstimateUsageRequest { + /** + *

+ * The unique identifier of the workload estimate to list usage for. + *

+ * @public + */ + workloadEstimateId: string | undefined; + + /** + *

+ * Filters to apply to the list of usage items. + *

+ * @public + */ + filters?: ListUsageFilter[] | undefined; + + /** + *

+ * A token to retrieve the next page of results. + *

+ * @public + */ + nextToken?: string | undefined; + + /** + *

+ * The maximum number of results to return per page. + *

+ * @public + */ + maxResults?: number | undefined; +} + +/** + *

+ * Represents a complex filtering expression for cost and usage data. + *

+ * @public + */ +export interface Expression { + /** + *

+ * A list of expressions to be combined with AND logic. + *

+ * @public + */ + and?: Expression[] | undefined; + + /** + *

+ * A list of expressions to be combined with OR logic. + *

+ * @public + */ + or?: Expression[] | undefined; + + /** + *

+ * An expression to be negated. + *

+ * @public + */ + not?: Expression | undefined; + + /** + *

+ * Filters based on cost categories. + *

+ * @public + */ + costCategories?: ExpressionFilter | undefined; + + /** + *

+ * Filters based on dimensions (e.g., service, operation). + *

+ * @public + */ + dimensions?: ExpressionFilter | undefined; + + /** + *

+ * Filters based on resource tags. + *

+ * @public + */ + tags?: ExpressionFilter | undefined; +} + +/** + *

+ * Represents historical usage data for a specific entity. + *

+ * @public + */ +export interface HistoricalUsageEntity { + /** + *

+ * The Amazon Web Services service code associated with the usage. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with the usage. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with the usage. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with the usage. + *

+ * @public + */ + usageAccountId: string | undefined; + + /** + *

+ * The time interval for the historical usage data. + *

+ * @public + */ + billInterval: BillInterval | undefined; + + /** + *

+ * An optional filter expression to apply to the historical usage data. + *

+ * @public + */ + filterExpression: Expression | undefined; +} + +/** + *

+ * Represents an entry in a batch operation to create bill scenario usage modifications. + *

+ * @public + */ +export interface BatchCreateBillScenarioUsageModificationEntry { + /** + *

+ * The Amazon Web Services service code for this usage modification. + * This identifies the specific Amazon Web Services service to the customer as + * a unique short abbreviation. For example, AmazonEC2 + * and AWSKMS. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * Describes the usage details of the usage line item. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage modification. + * Describes the specific Amazon Web Services operation that this usage line models. + * For example, RunInstances indicates the operation of an Amazon EC2 instance. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The Availability Zone that this usage line uses. + *

+ * @public + */ + availabilityZone?: string | undefined; + + /** + *

+ * A unique identifier for this entry in the batch operation. + * This can be any valid string. This key is useful to identify errors + * associated with any usage entry as any error is returned with this key. + *

+ * @public + */ + key: string | undefined; + + /** + *

+ * An optional group identifier for the usage modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID to which this usage will be applied to. + *

+ * @public + */ + usageAccountId: string | undefined; + + /** + *

+ * The amount of usage you want to create for the service use you are modeling. + *

+ * @public + */ + amounts?: UsageAmount[] | undefined; + + /** + *

+ * Historical usage data associated with this modification, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; +} + +/** + *

+ * Represents a successfully created item in a batch operation for bill scenario usage modifications. + *

+ * @public + */ +export interface BatchCreateBillScenarioUsageModificationItem { + /** + *

+ * The Amazon Web Services service code for this usage modification. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage that was modified. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage modification. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with this usage modification. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The availability zone associated with this usage modification, if applicable. + *

+ * @public + */ + availabilityZone?: string | undefined; + + /** + *

+ * The unique identifier assigned to the created usage modification. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The group identifier for the created usage modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with the created usage modification. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The modified usage quantities. + *

+ * @public + */ + quantities?: UsageQuantity[] | undefined; + + /** + *

+ * Historical usage data associated with this modification, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; + + /** + *

+ * The key of the successfully created entry. + *

+ * @public + */ + key?: string | undefined; +} + +/** + *

+ * Represents an entry in a batch operation to create workload estimate usage. + *

+ * @public + */ +export interface BatchCreateWorkloadEstimateUsageEntry { + /** + *

+ * The Amazon Web Services service code for this usage estimate. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage being estimated. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage estimate. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * A unique identifier for this entry in the batch operation. + *

+ * @public + */ + key: string | undefined; + + /** + *

+ * An optional group identifier for the usage estimate. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this usage estimate. + *

+ * @public + */ + usageAccountId: string | undefined; + + /** + *

+ * The estimated usage amount. + *

+ * @public + */ + amount: number | undefined; + + /** + *

+ * Historical usage data associated with this estimate, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; +} + +/** + *

+ * Represents a successfully created item in a batch operation for workload estimate usage. + *

+ * @public + */ +export interface BatchCreateWorkloadEstimateUsageItem { + /** + *

+ * The Amazon Web Services service code for this usage estimate. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage that was estimated. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage estimate. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with this usage estimate. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The unique identifier assigned to the created usage estimate. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with the created usage estimate. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The group identifier for the created usage estimate. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The estimated usage quantity. + *

+ * @public + */ + quantity?: WorkloadEstimateUsageQuantity | undefined; + + /** + *

+ * The estimated cost associated with this usage. + *

+ * @public + */ + cost?: number | undefined; + + /** + *

+ * The currency of the estimated cost. + *

+ * @public + */ + currency?: CurrencyCode | undefined; + + /** + *

+ * The current status of the created usage estimate. + *

+ * @public + */ + status?: WorkloadEstimateCostStatus | undefined; + + /** + *

+ * Historical usage data associated with this estimate, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; + + /** + *

+ * The key of the successfully created entry. + *

+ * @public + */ + key?: string | undefined; +} + +/** + *

+ * Summarizes an input usage modification for a bill estimate. + *

+ * @public + */ +export interface BillEstimateInputUsageModificationSummary { + /** + *

+ * The Amazon Web Services service code for this usage modification. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage being modified. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage modification. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with this usage modification. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The availability zone associated with this usage modification, if applicable. + *

+ * @public + */ + availabilityZone?: string | undefined; + + /** + *

+ * The unique identifier of the usage modification. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The group identifier for the usage modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this usage modification. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The modified usage quantities. + *

+ * @public + */ + quantities?: UsageQuantity[] | undefined; + + /** + *

+ * Historical usage data associated with this modification, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; +} + +/** + *

+ * Represents a usage modification item in a bill scenario. + *

+ * @public + */ +export interface BillScenarioUsageModificationItem { + /** + *

+ * The Amazon Web Services service code for this usage modification. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage being modified. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage modification. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with this usage modification. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The availability zone associated with this usage modification, if applicable. + *

+ * @public + */ + availabilityZone?: string | undefined; + + /** + *

+ * The unique identifier of the usage modification. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The group identifier for the usage modification. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this usage modification. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The modified usage quantities. + *

+ * @public + */ + quantities?: UsageQuantity[] | undefined; + + /** + *

+ * Historical usage data associated with this modification, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; +} + +/** + *

+ * Represents a usage item in a workload estimate. + *

+ * @public + */ +export interface WorkloadEstimateUsageItem { + /** + *

+ * The Amazon Web Services service code associated with this usage item. + *

+ * @public + */ + serviceCode: string | undefined; + + /** + *

+ * The type of usage for this item. + *

+ * @public + */ + usageType: string | undefined; + + /** + *

+ * The specific operation associated with this usage item. + *

+ * @public + */ + operation: string | undefined; + + /** + *

+ * The location associated with this usage item. + *

+ * @public + */ + location?: string | undefined; + + /** + *

+ * The unique identifier of this usage item. + *

+ * @public + */ + id?: string | undefined; + + /** + *

+ * The Amazon Web Services account ID associated with this usage item. + *

+ * @public + */ + usageAccountId?: string | undefined; + + /** + *

+ * The group identifier for this usage item. + *

+ * @public + */ + group?: string | undefined; + + /** + *

+ * The estimated usage quantity for this item. + *

+ * @public + */ + quantity?: WorkloadEstimateUsageQuantity | undefined; + + /** + *

+ * The estimated cost for this usage item. + *

+ * @public + */ + cost?: number | undefined; + + /** + *

+ * The currency of the estimated cost. + *

+ * @public + */ + currency?: CurrencyCode | undefined; + + /** + *

+ * The current status of this usage item. + *

+ * @public + */ + status?: WorkloadEstimateCostStatus | undefined; + + /** + *

+ * Historical usage data associated with this item, if available. + *

+ * @public + */ + historicalUsage?: HistoricalUsageEntity | undefined; +} + +/** + * @public + */ +export interface BatchCreateBillScenarioUsageModificationRequest { + /** + *

+ * The ID of the Bill Scenario for which you want to create the modeled usage. + *

+ * @public + */ + billScenarioId: string | undefined; + + /** + *

+ * List of usage that you want to model in the Bill Scenario. + *

+ * @public + */ + usageModifications: BatchCreateBillScenarioUsageModificationEntry[] | undefined; + + /** + *

+ * A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. + *

+ * @public + */ + clientToken?: string | undefined; +} + +/** + * @public + */ +export interface BatchCreateBillScenarioUsageModificationResponse { + /** + *

+ * Returns the list of successful usage line items that were created for the Bill Scenario. + *

+ * @public + */ + items?: BatchCreateBillScenarioUsageModificationItem[] | undefined; + + /** + *

+ * Returns the list of errors reason and the usage item keys that cannot be created in the Bill Scenario. + *

+ * @public + */ + errors?: BatchCreateBillScenarioUsageModificationError[] | undefined; +} + +/** + * @public + */ +export interface BatchCreateWorkloadEstimateUsageRequest { + /** + *

+ * The ID of the Workload estimate for which you want to create the modeled usage. + *

+ * @public + */ + workloadEstimateId: string | undefined; + + /** + *

+ * List of usage that you want to model in the Workload estimate. + *

+ * @public + */ + usage: BatchCreateWorkloadEstimateUsageEntry[] | undefined; + + /** + *

+ * A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. + *

+ * @public + */ + clientToken?: string | undefined; +} + +/** + * @public + */ +export interface BatchCreateWorkloadEstimateUsageResponse { + /** + *

+ * Returns the list of successful usage line items that were created for the Workload estimate. + *

+ * @public + */ + items?: BatchCreateWorkloadEstimateUsageItem[] | undefined; + + /** + *

+ * Returns the list of errors reason and the usage item keys that cannot be created in the Workload estimate. + *

+ * @public + */ + errors?: BatchCreateWorkloadEstimateUsageError[] | undefined; +} + +/** + * @public + */ +export interface BatchUpdateBillScenarioUsageModificationResponse { + /** + *

+ * Returns the list of successful usage line items that were updated for a Bill Scenario. + *

+ * @public + */ + items?: BillScenarioUsageModificationItem[] | undefined; + + /** + *

+ * Returns the list of error reasons and usage line item IDs that could not be updated for the Bill Scenario. + *

+ * @public + */ + errors?: BatchUpdateBillScenarioUsageModificationError[] | undefined; +} + +/** + * @public + */ +export interface BatchUpdateWorkloadEstimateUsageResponse { + /** + *

+ * Returns the list of successful usage line items that were updated for a Workload estimate. + *

+ * @public + */ + items?: WorkloadEstimateUsageItem[] | undefined; + + /** + *

+ * Returns the list of error reasons and usage line item IDs that could not be updated for the Workload estimate. + *

+ * @public + */ + errors?: BatchUpdateWorkloadEstimateUsageError[] | undefined; +} + +/** + * @public + */ +export interface ListBillEstimateInputUsageModificationsResponse { + /** + *

+ * The list of input usage modifications associated with the bill estimate. + *

+ * @public + */ + items?: BillEstimateInputUsageModificationSummary[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface ListBillScenarioUsageModificationsResponse { + /** + *

+ * The list of usage modifications associated with the bill scenario. + *

+ * @public + */ + items?: BillScenarioUsageModificationItem[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} + +/** + * @public + */ +export interface ListWorkloadEstimateUsageResponse { + /** + *

+ * The list of usage items associated with the workload estimate. + *

+ * @public + */ + items?: WorkloadEstimateUsageItem[] | undefined; + + /** + *

+ * A token to retrieve the next page of results, if any. + *

+ * @public + */ + nextToken?: string | undefined; +} diff --git a/clients/client-bcm-pricing-calculator/src/pagination/Interfaces.ts b/clients/client-bcm-pricing-calculator/src/pagination/Interfaces.ts new file mode 100644 index 0000000000000..1024131047174 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/Interfaces.ts @@ -0,0 +1,11 @@ +// smithy-typescript generated code +import { PaginationConfiguration } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; + +/** + * @public + */ +export interface BCMPricingCalculatorPaginationConfiguration extends PaginationConfiguration { + client: BCMPricingCalculatorClient; +} diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateCommitmentsPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateCommitmentsPaginator.ts new file mode 100644 index 0000000000000..995c4f8fbc854 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateCommitmentsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillEstimateCommitmentsCommand, + ListBillEstimateCommitmentsCommandInput, + ListBillEstimateCommitmentsCommandOutput, +} from "../commands/ListBillEstimateCommitmentsCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillEstimateCommitments: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillEstimateCommitmentsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillEstimateCommitmentsCommandInput, + ListBillEstimateCommitmentsCommandOutput +>(BCMPricingCalculatorClient, ListBillEstimateCommitmentsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputCommitmentModificationsPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputCommitmentModificationsPaginator.ts new file mode 100644 index 0000000000000..f856ae4eab2e1 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputCommitmentModificationsPaginator.ts @@ -0,0 +1,30 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillEstimateInputCommitmentModificationsCommand, + ListBillEstimateInputCommitmentModificationsCommandInput, + ListBillEstimateInputCommitmentModificationsCommandOutput, +} from "../commands/ListBillEstimateInputCommitmentModificationsCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillEstimateInputCommitmentModifications: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillEstimateInputCommitmentModificationsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillEstimateInputCommitmentModificationsCommandInput, + ListBillEstimateInputCommitmentModificationsCommandOutput +>( + BCMPricingCalculatorClient, + ListBillEstimateInputCommitmentModificationsCommand, + "nextToken", + "nextToken", + "maxResults" +); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputUsageModificationsPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputUsageModificationsPaginator.ts new file mode 100644 index 0000000000000..2645cdb4acd7b --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateInputUsageModificationsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillEstimateInputUsageModificationsCommand, + ListBillEstimateInputUsageModificationsCommandInput, + ListBillEstimateInputUsageModificationsCommandOutput, +} from "../commands/ListBillEstimateInputUsageModificationsCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillEstimateInputUsageModifications: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillEstimateInputUsageModificationsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillEstimateInputUsageModificationsCommandInput, + ListBillEstimateInputUsageModificationsCommandOutput +>(BCMPricingCalculatorClient, ListBillEstimateInputUsageModificationsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateLineItemsPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateLineItemsPaginator.ts new file mode 100644 index 0000000000000..ea479eff27829 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimateLineItemsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillEstimateLineItemsCommand, + ListBillEstimateLineItemsCommandInput, + ListBillEstimateLineItemsCommandOutput, +} from "../commands/ListBillEstimateLineItemsCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillEstimateLineItems: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillEstimateLineItemsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillEstimateLineItemsCommandInput, + ListBillEstimateLineItemsCommandOutput +>(BCMPricingCalculatorClient, ListBillEstimateLineItemsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimatesPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimatesPaginator.ts new file mode 100644 index 0000000000000..99d3721980eec --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillEstimatesPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillEstimatesCommand, + ListBillEstimatesCommandInput, + ListBillEstimatesCommandOutput, +} from "../commands/ListBillEstimatesCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillEstimates: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillEstimatesCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillEstimatesCommandInput, + ListBillEstimatesCommandOutput +>(BCMPricingCalculatorClient, ListBillEstimatesCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioCommitmentModificationsPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioCommitmentModificationsPaginator.ts new file mode 100644 index 0000000000000..1759a760e22a9 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioCommitmentModificationsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillScenarioCommitmentModificationsCommand, + ListBillScenarioCommitmentModificationsCommandInput, + ListBillScenarioCommitmentModificationsCommandOutput, +} from "../commands/ListBillScenarioCommitmentModificationsCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillScenarioCommitmentModifications: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillScenarioCommitmentModificationsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillScenarioCommitmentModificationsCommandInput, + ListBillScenarioCommitmentModificationsCommandOutput +>(BCMPricingCalculatorClient, ListBillScenarioCommitmentModificationsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioUsageModificationsPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioUsageModificationsPaginator.ts new file mode 100644 index 0000000000000..367d56cad7a65 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenarioUsageModificationsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillScenarioUsageModificationsCommand, + ListBillScenarioUsageModificationsCommandInput, + ListBillScenarioUsageModificationsCommandOutput, +} from "../commands/ListBillScenarioUsageModificationsCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillScenarioUsageModifications: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillScenarioUsageModificationsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillScenarioUsageModificationsCommandInput, + ListBillScenarioUsageModificationsCommandOutput +>(BCMPricingCalculatorClient, ListBillScenarioUsageModificationsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenariosPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenariosPaginator.ts new file mode 100644 index 0000000000000..61294c65a82dc --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListBillScenariosPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListBillScenariosCommand, + ListBillScenariosCommandInput, + ListBillScenariosCommandOutput, +} from "../commands/ListBillScenariosCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListBillScenarios: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListBillScenariosCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListBillScenariosCommandInput, + ListBillScenariosCommandOutput +>(BCMPricingCalculatorClient, ListBillScenariosCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimateUsagePaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimateUsagePaginator.ts new file mode 100644 index 0000000000000..5ee0deedee0ec --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimateUsagePaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListWorkloadEstimateUsageCommand, + ListWorkloadEstimateUsageCommandInput, + ListWorkloadEstimateUsageCommandOutput, +} from "../commands/ListWorkloadEstimateUsageCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListWorkloadEstimateUsage: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListWorkloadEstimateUsageCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListWorkloadEstimateUsageCommandInput, + ListWorkloadEstimateUsageCommandOutput +>(BCMPricingCalculatorClient, ListWorkloadEstimateUsageCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimatesPaginator.ts b/clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimatesPaginator.ts new file mode 100644 index 0000000000000..7f9f15c8441dc --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/ListWorkloadEstimatesPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { BCMPricingCalculatorClient } from "../BCMPricingCalculatorClient"; +import { + ListWorkloadEstimatesCommand, + ListWorkloadEstimatesCommandInput, + ListWorkloadEstimatesCommandOutput, +} from "../commands/ListWorkloadEstimatesCommand"; +import { BCMPricingCalculatorPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListWorkloadEstimates: ( + config: BCMPricingCalculatorPaginationConfiguration, + input: ListWorkloadEstimatesCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + BCMPricingCalculatorPaginationConfiguration, + ListWorkloadEstimatesCommandInput, + ListWorkloadEstimatesCommandOutput +>(BCMPricingCalculatorClient, ListWorkloadEstimatesCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-bcm-pricing-calculator/src/pagination/index.ts b/clients/client-bcm-pricing-calculator/src/pagination/index.ts new file mode 100644 index 0000000000000..03181f88b95a4 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/pagination/index.ts @@ -0,0 +1,12 @@ +// smithy-typescript generated code +export * from "./Interfaces"; +export * from "./ListBillEstimateCommitmentsPaginator"; +export * from "./ListBillEstimateInputCommitmentModificationsPaginator"; +export * from "./ListBillEstimateInputUsageModificationsPaginator"; +export * from "./ListBillEstimateLineItemsPaginator"; +export * from "./ListBillEstimatesPaginator"; +export * from "./ListBillScenarioCommitmentModificationsPaginator"; +export * from "./ListBillScenarioUsageModificationsPaginator"; +export * from "./ListBillScenariosPaginator"; +export * from "./ListWorkloadEstimateUsagePaginator"; +export * from "./ListWorkloadEstimatesPaginator"; diff --git a/clients/client-bcm-pricing-calculator/src/protocols/Aws_json1_0.ts b/clients/client-bcm-pricing-calculator/src/protocols/Aws_json1_0.ts new file mode 100644 index 0000000000000..cfc25c9297cb8 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/protocols/Aws_json1_0.ts @@ -0,0 +1,3209 @@ +// smithy-typescript generated code +import { + awsExpectUnion as __expectUnion, + loadRestJsonErrorCode, + parseJsonBody as parseBody, + parseJsonErrorBody as parseErrorBody, +} from "@aws-sdk/core"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { + _json, + collectBody, + decorateServiceException as __decorateServiceException, + expectNonNull as __expectNonNull, + expectNumber as __expectNumber, + expectString as __expectString, + limitedParseDouble as __limitedParseDouble, + parseEpochTimestamp as __parseEpochTimestamp, + serializeFloat as __serializeFloat, + take, + withBaseException, +} from "@smithy/smithy-client"; +import { + Endpoint as __Endpoint, + HeaderBag as __HeaderBag, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext, +} from "@smithy/types"; +import { v4 as generateIdempotencyToken } from "uuid"; + +import { + BatchCreateBillScenarioCommitmentModificationCommandInput, + BatchCreateBillScenarioCommitmentModificationCommandOutput, +} from "../commands/BatchCreateBillScenarioCommitmentModificationCommand"; +import { + BatchCreateBillScenarioUsageModificationCommandInput, + BatchCreateBillScenarioUsageModificationCommandOutput, +} from "../commands/BatchCreateBillScenarioUsageModificationCommand"; +import { + BatchCreateWorkloadEstimateUsageCommandInput, + BatchCreateWorkloadEstimateUsageCommandOutput, +} from "../commands/BatchCreateWorkloadEstimateUsageCommand"; +import { + BatchDeleteBillScenarioCommitmentModificationCommandInput, + BatchDeleteBillScenarioCommitmentModificationCommandOutput, +} from "../commands/BatchDeleteBillScenarioCommitmentModificationCommand"; +import { + BatchDeleteBillScenarioUsageModificationCommandInput, + BatchDeleteBillScenarioUsageModificationCommandOutput, +} from "../commands/BatchDeleteBillScenarioUsageModificationCommand"; +import { + BatchDeleteWorkloadEstimateUsageCommandInput, + BatchDeleteWorkloadEstimateUsageCommandOutput, +} from "../commands/BatchDeleteWorkloadEstimateUsageCommand"; +import { + BatchUpdateBillScenarioCommitmentModificationCommandInput, + BatchUpdateBillScenarioCommitmentModificationCommandOutput, +} from "../commands/BatchUpdateBillScenarioCommitmentModificationCommand"; +import { + BatchUpdateBillScenarioUsageModificationCommandInput, + BatchUpdateBillScenarioUsageModificationCommandOutput, +} from "../commands/BatchUpdateBillScenarioUsageModificationCommand"; +import { + BatchUpdateWorkloadEstimateUsageCommandInput, + BatchUpdateWorkloadEstimateUsageCommandOutput, +} from "../commands/BatchUpdateWorkloadEstimateUsageCommand"; +import { CreateBillEstimateCommandInput, CreateBillEstimateCommandOutput } from "../commands/CreateBillEstimateCommand"; +import { CreateBillScenarioCommandInput, CreateBillScenarioCommandOutput } from "../commands/CreateBillScenarioCommand"; +import { + CreateWorkloadEstimateCommandInput, + CreateWorkloadEstimateCommandOutput, +} from "../commands/CreateWorkloadEstimateCommand"; +import { DeleteBillEstimateCommandInput, DeleteBillEstimateCommandOutput } from "../commands/DeleteBillEstimateCommand"; +import { DeleteBillScenarioCommandInput, DeleteBillScenarioCommandOutput } from "../commands/DeleteBillScenarioCommand"; +import { + DeleteWorkloadEstimateCommandInput, + DeleteWorkloadEstimateCommandOutput, +} from "../commands/DeleteWorkloadEstimateCommand"; +import { GetBillEstimateCommandInput, GetBillEstimateCommandOutput } from "../commands/GetBillEstimateCommand"; +import { GetBillScenarioCommandInput, GetBillScenarioCommandOutput } from "../commands/GetBillScenarioCommand"; +import { GetPreferencesCommandInput, GetPreferencesCommandOutput } from "../commands/GetPreferencesCommand"; +import { + GetWorkloadEstimateCommandInput, + GetWorkloadEstimateCommandOutput, +} from "../commands/GetWorkloadEstimateCommand"; +import { + ListBillEstimateCommitmentsCommandInput, + ListBillEstimateCommitmentsCommandOutput, +} from "../commands/ListBillEstimateCommitmentsCommand"; +import { + ListBillEstimateInputCommitmentModificationsCommandInput, + ListBillEstimateInputCommitmentModificationsCommandOutput, +} from "../commands/ListBillEstimateInputCommitmentModificationsCommand"; +import { + ListBillEstimateInputUsageModificationsCommandInput, + ListBillEstimateInputUsageModificationsCommandOutput, +} from "../commands/ListBillEstimateInputUsageModificationsCommand"; +import { + ListBillEstimateLineItemsCommandInput, + ListBillEstimateLineItemsCommandOutput, +} from "../commands/ListBillEstimateLineItemsCommand"; +import { ListBillEstimatesCommandInput, ListBillEstimatesCommandOutput } from "../commands/ListBillEstimatesCommand"; +import { + ListBillScenarioCommitmentModificationsCommandInput, + ListBillScenarioCommitmentModificationsCommandOutput, +} from "../commands/ListBillScenarioCommitmentModificationsCommand"; +import { ListBillScenariosCommandInput, ListBillScenariosCommandOutput } from "../commands/ListBillScenariosCommand"; +import { + ListBillScenarioUsageModificationsCommandInput, + ListBillScenarioUsageModificationsCommandOutput, +} from "../commands/ListBillScenarioUsageModificationsCommand"; +import { + ListTagsForResourceCommandInput, + ListTagsForResourceCommandOutput, +} from "../commands/ListTagsForResourceCommand"; +import { + ListWorkloadEstimatesCommandInput, + ListWorkloadEstimatesCommandOutput, +} from "../commands/ListWorkloadEstimatesCommand"; +import { + ListWorkloadEstimateUsageCommandInput, + ListWorkloadEstimateUsageCommandOutput, +} from "../commands/ListWorkloadEstimateUsageCommand"; +import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; +import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; +import { UpdateBillEstimateCommandInput, UpdateBillEstimateCommandOutput } from "../commands/UpdateBillEstimateCommand"; +import { UpdateBillScenarioCommandInput, UpdateBillScenarioCommandOutput } from "../commands/UpdateBillScenarioCommand"; +import { UpdatePreferencesCommandInput, UpdatePreferencesCommandOutput } from "../commands/UpdatePreferencesCommand"; +import { + UpdateWorkloadEstimateCommandInput, + UpdateWorkloadEstimateCommandOutput, +} from "../commands/UpdateWorkloadEstimateCommand"; +import { BCMPricingCalculatorServiceException as __BaseException } from "../models/BCMPricingCalculatorServiceException"; +import { + AccessDeniedException, + AddReservedInstanceAction, + AddSavingsPlanAction, + BatchCreateBillScenarioCommitmentModificationEntry, + BatchCreateBillScenarioCommitmentModificationItem, + BatchCreateBillScenarioCommitmentModificationRequest, + BatchCreateBillScenarioCommitmentModificationResponse, + BatchCreateBillScenarioUsageModificationEntry, + BatchCreateBillScenarioUsageModificationItem, + BatchCreateBillScenarioUsageModificationRequest, + BatchCreateBillScenarioUsageModificationResponse, + BatchCreateWorkloadEstimateUsageEntry, + BatchCreateWorkloadEstimateUsageItem, + BatchCreateWorkloadEstimateUsageRequest, + BatchCreateWorkloadEstimateUsageResponse, + BatchDeleteBillScenarioCommitmentModificationRequest, + BatchDeleteBillScenarioUsageModificationRequest, + BatchDeleteWorkloadEstimateUsageRequest, + BatchUpdateBillScenarioCommitmentModificationEntry, + BatchUpdateBillScenarioCommitmentModificationRequest, + BatchUpdateBillScenarioCommitmentModificationResponse, + BatchUpdateBillScenarioUsageModificationEntry, + BatchUpdateBillScenarioUsageModificationRequest, + BatchUpdateBillScenarioUsageModificationResponse, + BatchUpdateWorkloadEstimateUsageEntry, + BatchUpdateWorkloadEstimateUsageRequest, + BatchUpdateWorkloadEstimateUsageResponse, + BillEstimateCommitmentSummary, + BillEstimateCostSummary, + BillEstimateInputCommitmentModificationSummary, + BillEstimateInputUsageModificationSummary, + BillEstimateLineItemSummary, + BillEstimateSummary, + BillInterval, + BillScenarioCommitmentModificationAction, + BillScenarioCommitmentModificationItem, + BillScenarioSummary, + BillScenarioUsageModificationItem, + ConflictException, + CostAmount, + CostDifference, + CreateBillEstimateRequest, + CreateBillEstimateResponse, + CreateBillScenarioRequest, + CreateBillScenarioResponse, + CreateWorkloadEstimateRequest, + CreateWorkloadEstimateResponse, + DataUnavailableException, + DeleteBillEstimateRequest, + DeleteBillScenarioRequest, + DeleteWorkloadEstimateRequest, + Expression, + ExpressionFilter, + FilterTimestamp, + GetBillEstimateRequest, + GetBillEstimateResponse, + GetBillScenarioRequest, + GetBillScenarioResponse, + GetPreferencesRequest, + GetWorkloadEstimateRequest, + GetWorkloadEstimateResponse, + HistoricalUsageEntity, + InternalServerException, + ListBillEstimateCommitmentsRequest, + ListBillEstimateCommitmentsResponse, + ListBillEstimateInputCommitmentModificationsRequest, + ListBillEstimateInputCommitmentModificationsResponse, + ListBillEstimateInputUsageModificationsRequest, + ListBillEstimateInputUsageModificationsResponse, + ListBillEstimateLineItemsFilter, + ListBillEstimateLineItemsRequest, + ListBillEstimateLineItemsResponse, + ListBillEstimatesFilter, + ListBillEstimatesRequest, + ListBillEstimatesResponse, + ListBillScenarioCommitmentModificationsRequest, + ListBillScenarioCommitmentModificationsResponse, + ListBillScenariosFilter, + ListBillScenariosRequest, + ListBillScenariosResponse, + ListBillScenarioUsageModificationsRequest, + ListBillScenarioUsageModificationsResponse, + ListTagsForResourceRequest, + ListUsageFilter, + ListWorkloadEstimatesFilter, + ListWorkloadEstimatesRequest, + ListWorkloadEstimatesResponse, + ListWorkloadEstimateUsageRequest, + ListWorkloadEstimateUsageResponse, + NegateReservedInstanceAction, + NegateSavingsPlanAction, + RateType, + ResourceNotFoundException, + ServiceQuotaExceededException, + TagResourceRequest, + ThrottlingException, + UntagResourceRequest, + UpdateBillEstimateRequest, + UpdateBillEstimateResponse, + UpdateBillScenarioRequest, + UpdateBillScenarioResponse, + UpdatePreferencesRequest, + UpdateWorkloadEstimateRequest, + UpdateWorkloadEstimateResponse, + UsageAmount, + UsageQuantity, + UsageQuantityResult, + ValidationException, + WorkloadEstimateSummary, + WorkloadEstimateUsageItem, + WorkloadEstimateUsageQuantity, +} from "../models/models_0"; + +/** + * serializeAws_json1_0BatchCreateBillScenarioCommitmentModificationCommand + */ +export const se_BatchCreateBillScenarioCommitmentModificationCommand = async ( + input: BatchCreateBillScenarioCommitmentModificationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchCreateBillScenarioCommitmentModification"); + let body: any; + body = JSON.stringify(se_BatchCreateBillScenarioCommitmentModificationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioUsageModificationCommand + */ +export const se_BatchCreateBillScenarioUsageModificationCommand = async ( + input: BatchCreateBillScenarioUsageModificationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchCreateBillScenarioUsageModification"); + let body: any; + body = JSON.stringify(se_BatchCreateBillScenarioUsageModificationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchCreateWorkloadEstimateUsageCommand + */ +export const se_BatchCreateWorkloadEstimateUsageCommand = async ( + input: BatchCreateWorkloadEstimateUsageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchCreateWorkloadEstimateUsage"); + let body: any; + body = JSON.stringify(se_BatchCreateWorkloadEstimateUsageRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchDeleteBillScenarioCommitmentModificationCommand + */ +export const se_BatchDeleteBillScenarioCommitmentModificationCommand = async ( + input: BatchDeleteBillScenarioCommitmentModificationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchDeleteBillScenarioCommitmentModification"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchDeleteBillScenarioUsageModificationCommand + */ +export const se_BatchDeleteBillScenarioUsageModificationCommand = async ( + input: BatchDeleteBillScenarioUsageModificationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchDeleteBillScenarioUsageModification"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchDeleteWorkloadEstimateUsageCommand + */ +export const se_BatchDeleteWorkloadEstimateUsageCommand = async ( + input: BatchDeleteWorkloadEstimateUsageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchDeleteWorkloadEstimateUsage"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchUpdateBillScenarioCommitmentModificationCommand + */ +export const se_BatchUpdateBillScenarioCommitmentModificationCommand = async ( + input: BatchUpdateBillScenarioCommitmentModificationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchUpdateBillScenarioCommitmentModification"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchUpdateBillScenarioUsageModificationCommand + */ +export const se_BatchUpdateBillScenarioUsageModificationCommand = async ( + input: BatchUpdateBillScenarioUsageModificationCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchUpdateBillScenarioUsageModification"); + let body: any; + body = JSON.stringify(se_BatchUpdateBillScenarioUsageModificationRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0BatchUpdateWorkloadEstimateUsageCommand + */ +export const se_BatchUpdateWorkloadEstimateUsageCommand = async ( + input: BatchUpdateWorkloadEstimateUsageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("BatchUpdateWorkloadEstimateUsage"); + let body: any; + body = JSON.stringify(se_BatchUpdateWorkloadEstimateUsageRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0CreateBillEstimateCommand + */ +export const se_CreateBillEstimateCommand = async ( + input: CreateBillEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("CreateBillEstimate"); + let body: any; + body = JSON.stringify(se_CreateBillEstimateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0CreateBillScenarioCommand + */ +export const se_CreateBillScenarioCommand = async ( + input: CreateBillScenarioCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("CreateBillScenario"); + let body: any; + body = JSON.stringify(se_CreateBillScenarioRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0CreateWorkloadEstimateCommand + */ +export const se_CreateWorkloadEstimateCommand = async ( + input: CreateWorkloadEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("CreateWorkloadEstimate"); + let body: any; + body = JSON.stringify(se_CreateWorkloadEstimateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0DeleteBillEstimateCommand + */ +export const se_DeleteBillEstimateCommand = async ( + input: DeleteBillEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DeleteBillEstimate"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0DeleteBillScenarioCommand + */ +export const se_DeleteBillScenarioCommand = async ( + input: DeleteBillScenarioCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DeleteBillScenario"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0DeleteWorkloadEstimateCommand + */ +export const se_DeleteWorkloadEstimateCommand = async ( + input: DeleteWorkloadEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DeleteWorkloadEstimate"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0GetBillEstimateCommand + */ +export const se_GetBillEstimateCommand = async ( + input: GetBillEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("GetBillEstimate"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0GetBillScenarioCommand + */ +export const se_GetBillScenarioCommand = async ( + input: GetBillScenarioCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("GetBillScenario"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0GetPreferencesCommand + */ +export const se_GetPreferencesCommand = async ( + input: GetPreferencesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("GetPreferences"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0GetWorkloadEstimateCommand + */ +export const se_GetWorkloadEstimateCommand = async ( + input: GetWorkloadEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("GetWorkloadEstimate"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillEstimateCommitmentsCommand + */ +export const se_ListBillEstimateCommitmentsCommand = async ( + input: ListBillEstimateCommitmentsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillEstimateCommitments"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillEstimateInputCommitmentModificationsCommand + */ +export const se_ListBillEstimateInputCommitmentModificationsCommand = async ( + input: ListBillEstimateInputCommitmentModificationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillEstimateInputCommitmentModifications"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillEstimateInputUsageModificationsCommand + */ +export const se_ListBillEstimateInputUsageModificationsCommand = async ( + input: ListBillEstimateInputUsageModificationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillEstimateInputUsageModifications"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillEstimateLineItemsCommand + */ +export const se_ListBillEstimateLineItemsCommand = async ( + input: ListBillEstimateLineItemsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillEstimateLineItems"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillEstimatesCommand + */ +export const se_ListBillEstimatesCommand = async ( + input: ListBillEstimatesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillEstimates"); + let body: any; + body = JSON.stringify(se_ListBillEstimatesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillScenarioCommitmentModificationsCommand + */ +export const se_ListBillScenarioCommitmentModificationsCommand = async ( + input: ListBillScenarioCommitmentModificationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillScenarioCommitmentModifications"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillScenariosCommand + */ +export const se_ListBillScenariosCommand = async ( + input: ListBillScenariosCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillScenarios"); + let body: any; + body = JSON.stringify(se_ListBillScenariosRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListBillScenarioUsageModificationsCommand + */ +export const se_ListBillScenarioUsageModificationsCommand = async ( + input: ListBillScenarioUsageModificationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListBillScenarioUsageModifications"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListTagsForResourceCommand + */ +export const se_ListTagsForResourceCommand = async ( + input: ListTagsForResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListTagsForResource"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListWorkloadEstimatesCommand + */ +export const se_ListWorkloadEstimatesCommand = async ( + input: ListWorkloadEstimatesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListWorkloadEstimates"); + let body: any; + body = JSON.stringify(se_ListWorkloadEstimatesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0ListWorkloadEstimateUsageCommand + */ +export const se_ListWorkloadEstimateUsageCommand = async ( + input: ListWorkloadEstimateUsageCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListWorkloadEstimateUsage"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0TagResourceCommand + */ +export const se_TagResourceCommand = async ( + input: TagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("TagResource"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0UntagResourceCommand + */ +export const se_UntagResourceCommand = async ( + input: UntagResourceCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UntagResource"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0UpdateBillEstimateCommand + */ +export const se_UpdateBillEstimateCommand = async ( + input: UpdateBillEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdateBillEstimate"); + let body: any; + body = JSON.stringify(se_UpdateBillEstimateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0UpdateBillScenarioCommand + */ +export const se_UpdateBillScenarioCommand = async ( + input: UpdateBillScenarioCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdateBillScenario"); + let body: any; + body = JSON.stringify(se_UpdateBillScenarioRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0UpdatePreferencesCommand + */ +export const se_UpdatePreferencesCommand = async ( + input: UpdatePreferencesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdatePreferences"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_0UpdateWorkloadEstimateCommand + */ +export const se_UpdateWorkloadEstimateCommand = async ( + input: UpdateWorkloadEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdateWorkloadEstimate"); + let body: any; + body = JSON.stringify(se_UpdateWorkloadEstimateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * deserializeAws_json1_0BatchCreateBillScenarioCommitmentModificationCommand + */ +export const de_BatchCreateBillScenarioCommitmentModificationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_BatchCreateBillScenarioCommitmentModificationResponse(data, context); + const response: BatchCreateBillScenarioCommitmentModificationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchCreateBillScenarioUsageModificationCommand + */ +export const de_BatchCreateBillScenarioUsageModificationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_BatchCreateBillScenarioUsageModificationResponse(data, context); + const response: BatchCreateBillScenarioUsageModificationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchCreateWorkloadEstimateUsageCommand + */ +export const de_BatchCreateWorkloadEstimateUsageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_BatchCreateWorkloadEstimateUsageResponse(data, context); + const response: BatchCreateWorkloadEstimateUsageCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchDeleteBillScenarioCommitmentModificationCommand + */ +export const de_BatchDeleteBillScenarioCommitmentModificationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: BatchDeleteBillScenarioCommitmentModificationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchDeleteBillScenarioUsageModificationCommand + */ +export const de_BatchDeleteBillScenarioUsageModificationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: BatchDeleteBillScenarioUsageModificationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchDeleteWorkloadEstimateUsageCommand + */ +export const de_BatchDeleteWorkloadEstimateUsageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: BatchDeleteWorkloadEstimateUsageCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchUpdateBillScenarioCommitmentModificationCommand + */ +export const de_BatchUpdateBillScenarioCommitmentModificationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_BatchUpdateBillScenarioCommitmentModificationResponse(data, context); + const response: BatchUpdateBillScenarioCommitmentModificationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchUpdateBillScenarioUsageModificationCommand + */ +export const de_BatchUpdateBillScenarioUsageModificationCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_BatchUpdateBillScenarioUsageModificationResponse(data, context); + const response: BatchUpdateBillScenarioUsageModificationCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0BatchUpdateWorkloadEstimateUsageCommand + */ +export const de_BatchUpdateWorkloadEstimateUsageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_BatchUpdateWorkloadEstimateUsageResponse(data, context); + const response: BatchUpdateWorkloadEstimateUsageCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0CreateBillEstimateCommand + */ +export const de_CreateBillEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_CreateBillEstimateResponse(data, context); + const response: CreateBillEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0CreateBillScenarioCommand + */ +export const de_CreateBillScenarioCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_CreateBillScenarioResponse(data, context); + const response: CreateBillScenarioCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0CreateWorkloadEstimateCommand + */ +export const de_CreateWorkloadEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_CreateWorkloadEstimateResponse(data, context); + const response: CreateWorkloadEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0DeleteBillEstimateCommand + */ +export const de_DeleteBillEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: DeleteBillEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0DeleteBillScenarioCommand + */ +export const de_DeleteBillScenarioCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: DeleteBillScenarioCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0DeleteWorkloadEstimateCommand + */ +export const de_DeleteWorkloadEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: DeleteWorkloadEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0GetBillEstimateCommand + */ +export const de_GetBillEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_GetBillEstimateResponse(data, context); + const response: GetBillEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0GetBillScenarioCommand + */ +export const de_GetBillScenarioCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_GetBillScenarioResponse(data, context); + const response: GetBillScenarioCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0GetPreferencesCommand + */ +export const de_GetPreferencesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: GetPreferencesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0GetWorkloadEstimateCommand + */ +export const de_GetWorkloadEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_GetWorkloadEstimateResponse(data, context); + const response: GetWorkloadEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillEstimateCommitmentsCommand + */ +export const de_ListBillEstimateCommitmentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillEstimateCommitmentsResponse(data, context); + const response: ListBillEstimateCommitmentsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillEstimateInputCommitmentModificationsCommand + */ +export const de_ListBillEstimateInputCommitmentModificationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillEstimateInputCommitmentModificationsResponse(data, context); + const response: ListBillEstimateInputCommitmentModificationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillEstimateInputUsageModificationsCommand + */ +export const de_ListBillEstimateInputUsageModificationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillEstimateInputUsageModificationsResponse(data, context); + const response: ListBillEstimateInputUsageModificationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillEstimateLineItemsCommand + */ +export const de_ListBillEstimateLineItemsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillEstimateLineItemsResponse(data, context); + const response: ListBillEstimateLineItemsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillEstimatesCommand + */ +export const de_ListBillEstimatesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillEstimatesResponse(data, context); + const response: ListBillEstimatesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillScenarioCommitmentModificationsCommand + */ +export const de_ListBillScenarioCommitmentModificationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillScenarioCommitmentModificationsResponse(data, context); + const response: ListBillScenarioCommitmentModificationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillScenariosCommand + */ +export const de_ListBillScenariosCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillScenariosResponse(data, context); + const response: ListBillScenariosCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListBillScenarioUsageModificationsCommand + */ +export const de_ListBillScenarioUsageModificationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListBillScenarioUsageModificationsResponse(data, context); + const response: ListBillScenarioUsageModificationsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListTagsForResourceCommand + */ +export const de_ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListWorkloadEstimatesCommand + */ +export const de_ListWorkloadEstimatesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListWorkloadEstimatesResponse(data, context); + const response: ListWorkloadEstimatesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0ListWorkloadEstimateUsageCommand + */ +export const de_ListWorkloadEstimateUsageCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListWorkloadEstimateUsageResponse(data, context); + const response: ListWorkloadEstimateUsageCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0TagResourceCommand + */ +export const de_TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: TagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0UntagResourceCommand + */ +export const de_UntagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: UntagResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0UpdateBillEstimateCommand + */ +export const de_UpdateBillEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_UpdateBillEstimateResponse(data, context); + const response: UpdateBillEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0UpdateBillScenarioCommand + */ +export const de_UpdateBillScenarioCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_UpdateBillScenarioResponse(data, context); + const response: UpdateBillScenarioCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0UpdatePreferencesCommand + */ +export const de_UpdatePreferencesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: UpdatePreferencesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_0UpdateWorkloadEstimateCommand + */ +export const de_UpdateWorkloadEstimateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_UpdateWorkloadEstimateResponse(data, context); + const response: UpdateWorkloadEstimateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserialize_Aws_json1_0CommandError + */ +const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.bcmpricingcalculator#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.bcmpricingcalculator#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); + case "DataUnavailableException": + case "com.amazonaws.bcmpricingcalculator#DataUnavailableException": + throw await de_DataUnavailableExceptionRes(parsedOutput, context); + case "InternalServerException": + case "com.amazonaws.bcmpricingcalculator#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.bcmpricingcalculator#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + case "ValidationException": + case "com.amazonaws.bcmpricingcalculator#ValidationException": + throw await de_ValidationExceptionRes(parsedOutput, context); + case "ServiceQuotaExceededException": + case "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException": + throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }) as never; + } +}; + +/** + * deserializeAws_json1_0AccessDeniedExceptionRes + */ +const de_AccessDeniedExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new AccessDeniedException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0ConflictExceptionRes + */ +const de_ConflictExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ConflictException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0DataUnavailableExceptionRes + */ +const de_DataUnavailableExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new DataUnavailableException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0InternalServerExceptionRes + */ +const de_InternalServerExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new InternalServerException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0ResourceNotFoundExceptionRes + */ +const de_ResourceNotFoundExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ResourceNotFoundException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0ServiceQuotaExceededExceptionRes + */ +const de_ServiceQuotaExceededExceptionRes = async ( + parsedOutput: any, + context: __SerdeContext +): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ServiceQuotaExceededException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0ThrottlingExceptionRes + */ +const de_ThrottlingExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ThrottlingException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +/** + * deserializeAws_json1_0ValidationExceptionRes + */ +const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { + const body = parsedOutput.body; + const deserialized: any = _json(body); + const exception = new ValidationException({ + $metadata: deserializeMetadata(parsedOutput), + ...deserialized, + }); + return __decorateServiceException(exception, body); +}; + +// se_AddReservedInstanceAction omitted. + +/** + * serializeAws_json1_0AddSavingsPlanAction + */ +const se_AddSavingsPlanAction = (input: AddSavingsPlanAction, context: __SerdeContext): any => { + return take(input, { + commitment: __serializeFloat, + savingsPlanOfferingId: [], + }); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioCommitmentModificationEntries + */ +const se_BatchCreateBillScenarioCommitmentModificationEntries = ( + input: BatchCreateBillScenarioCommitmentModificationEntry[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_BatchCreateBillScenarioCommitmentModificationEntry(entry, context); + }); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioCommitmentModificationEntry + */ +const se_BatchCreateBillScenarioCommitmentModificationEntry = ( + input: BatchCreateBillScenarioCommitmentModificationEntry, + context: __SerdeContext +): any => { + return take(input, { + commitmentAction: (_) => se_BillScenarioCommitmentModificationAction(_, context), + group: [], + key: [], + usageAccountId: [], + }); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioCommitmentModificationRequest + */ +const se_BatchCreateBillScenarioCommitmentModificationRequest = ( + input: BatchCreateBillScenarioCommitmentModificationRequest, + context: __SerdeContext +): any => { + return take(input, { + billScenarioId: [], + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + commitmentModifications: (_) => se_BatchCreateBillScenarioCommitmentModificationEntries(_, context), + }); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioUsageModificationEntries + */ +const se_BatchCreateBillScenarioUsageModificationEntries = ( + input: BatchCreateBillScenarioUsageModificationEntry[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_BatchCreateBillScenarioUsageModificationEntry(entry, context); + }); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioUsageModificationEntry + */ +const se_BatchCreateBillScenarioUsageModificationEntry = ( + input: BatchCreateBillScenarioUsageModificationEntry, + context: __SerdeContext +): any => { + return take(input, { + amounts: (_) => se_UsageAmounts(_, context), + availabilityZone: [], + group: [], + historicalUsage: (_) => se_HistoricalUsageEntity(_, context), + key: [], + operation: [], + serviceCode: [], + usageAccountId: [], + usageType: [], + }); +}; + +/** + * serializeAws_json1_0BatchCreateBillScenarioUsageModificationRequest + */ +const se_BatchCreateBillScenarioUsageModificationRequest = ( + input: BatchCreateBillScenarioUsageModificationRequest, + context: __SerdeContext +): any => { + return take(input, { + billScenarioId: [], + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + usageModifications: (_) => se_BatchCreateBillScenarioUsageModificationEntries(_, context), + }); +}; + +/** + * serializeAws_json1_0BatchCreateWorkloadEstimateUsageEntries + */ +const se_BatchCreateWorkloadEstimateUsageEntries = ( + input: BatchCreateWorkloadEstimateUsageEntry[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_BatchCreateWorkloadEstimateUsageEntry(entry, context); + }); +}; + +/** + * serializeAws_json1_0BatchCreateWorkloadEstimateUsageEntry + */ +const se_BatchCreateWorkloadEstimateUsageEntry = ( + input: BatchCreateWorkloadEstimateUsageEntry, + context: __SerdeContext +): any => { + return take(input, { + amount: __serializeFloat, + group: [], + historicalUsage: (_) => se_HistoricalUsageEntity(_, context), + key: [], + operation: [], + serviceCode: [], + usageAccountId: [], + usageType: [], + }); +}; + +/** + * serializeAws_json1_0BatchCreateWorkloadEstimateUsageRequest + */ +const se_BatchCreateWorkloadEstimateUsageRequest = ( + input: BatchCreateWorkloadEstimateUsageRequest, + context: __SerdeContext +): any => { + return take(input, { + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + usage: (_) => se_BatchCreateWorkloadEstimateUsageEntries(_, context), + workloadEstimateId: [], + }); +}; + +// se_BatchDeleteBillScenarioCommitmentModificationEntries omitted. + +// se_BatchDeleteBillScenarioCommitmentModificationRequest omitted. + +// se_BatchDeleteBillScenarioUsageModificationEntries omitted. + +// se_BatchDeleteBillScenarioUsageModificationRequest omitted. + +// se_BatchDeleteWorkloadEstimateUsageEntries omitted. + +// se_BatchDeleteWorkloadEstimateUsageRequest omitted. + +// se_BatchUpdateBillScenarioCommitmentModificationEntries omitted. + +// se_BatchUpdateBillScenarioCommitmentModificationEntry omitted. + +// se_BatchUpdateBillScenarioCommitmentModificationRequest omitted. + +/** + * serializeAws_json1_0BatchUpdateBillScenarioUsageModificationEntries + */ +const se_BatchUpdateBillScenarioUsageModificationEntries = ( + input: BatchUpdateBillScenarioUsageModificationEntry[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_BatchUpdateBillScenarioUsageModificationEntry(entry, context); + }); +}; + +/** + * serializeAws_json1_0BatchUpdateBillScenarioUsageModificationEntry + */ +const se_BatchUpdateBillScenarioUsageModificationEntry = ( + input: BatchUpdateBillScenarioUsageModificationEntry, + context: __SerdeContext +): any => { + return take(input, { + amounts: (_) => se_UsageAmounts(_, context), + group: [], + id: [], + }); +}; + +/** + * serializeAws_json1_0BatchUpdateBillScenarioUsageModificationRequest + */ +const se_BatchUpdateBillScenarioUsageModificationRequest = ( + input: BatchUpdateBillScenarioUsageModificationRequest, + context: __SerdeContext +): any => { + return take(input, { + billScenarioId: [], + usageModifications: (_) => se_BatchUpdateBillScenarioUsageModificationEntries(_, context), + }); +}; + +/** + * serializeAws_json1_0BatchUpdateWorkloadEstimateUsageEntries + */ +const se_BatchUpdateWorkloadEstimateUsageEntries = ( + input: BatchUpdateWorkloadEstimateUsageEntry[], + context: __SerdeContext +): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_BatchUpdateWorkloadEstimateUsageEntry(entry, context); + }); +}; + +/** + * serializeAws_json1_0BatchUpdateWorkloadEstimateUsageEntry + */ +const se_BatchUpdateWorkloadEstimateUsageEntry = ( + input: BatchUpdateWorkloadEstimateUsageEntry, + context: __SerdeContext +): any => { + return take(input, { + amount: __serializeFloat, + group: [], + id: [], + }); +}; + +/** + * serializeAws_json1_0BatchUpdateWorkloadEstimateUsageRequest + */ +const se_BatchUpdateWorkloadEstimateUsageRequest = ( + input: BatchUpdateWorkloadEstimateUsageRequest, + context: __SerdeContext +): any => { + return take(input, { + usage: (_) => se_BatchUpdateWorkloadEstimateUsageEntries(_, context), + workloadEstimateId: [], + }); +}; + +/** + * serializeAws_json1_0BillInterval + */ +const se_BillInterval = (input: BillInterval, context: __SerdeContext): any => { + return take(input, { + end: (_) => _.getTime() / 1_000, + start: (_) => _.getTime() / 1_000, + }); +}; + +/** + * serializeAws_json1_0BillScenarioCommitmentModificationAction + */ +const se_BillScenarioCommitmentModificationAction = ( + input: BillScenarioCommitmentModificationAction, + context: __SerdeContext +): any => { + return BillScenarioCommitmentModificationAction.visit(input, { + addReservedInstanceAction: (value) => ({ addReservedInstanceAction: _json(value) }), + addSavingsPlanAction: (value) => ({ addSavingsPlanAction: se_AddSavingsPlanAction(value, context) }), + negateReservedInstanceAction: (value) => ({ negateReservedInstanceAction: _json(value) }), + negateSavingsPlanAction: (value) => ({ negateSavingsPlanAction: _json(value) }), + _: (name, value) => ({ name: value } as any), + }); +}; + +/** + * serializeAws_json1_0CreateBillEstimateRequest + */ +const se_CreateBillEstimateRequest = (input: CreateBillEstimateRequest, context: __SerdeContext): any => { + return take(input, { + billScenarioId: [], + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + name: [], + tags: _json, + }); +}; + +/** + * serializeAws_json1_0CreateBillScenarioRequest + */ +const se_CreateBillScenarioRequest = (input: CreateBillScenarioRequest, context: __SerdeContext): any => { + return take(input, { + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + name: [], + tags: _json, + }); +}; + +/** + * serializeAws_json1_0CreateWorkloadEstimateRequest + */ +const se_CreateWorkloadEstimateRequest = (input: CreateWorkloadEstimateRequest, context: __SerdeContext): any => { + return take(input, { + clientToken: [true, (_) => _ ?? generateIdempotencyToken()], + name: [], + rateType: [], + tags: _json, + }); +}; + +// se_DeleteBillEstimateRequest omitted. + +// se_DeleteBillScenarioRequest omitted. + +// se_DeleteWorkloadEstimateRequest omitted. + +/** + * serializeAws_json1_0Expression + */ +const se_Expression = (input: Expression, context: __SerdeContext): any => { + return take(input, { + and: (_) => se_ExpressionList(_, context), + costCategories: _json, + dimensions: _json, + not: (_) => se_Expression(_, context), + or: (_) => se_ExpressionList(_, context), + tags: _json, + }); +}; + +// se_ExpressionFilter omitted. + +/** + * serializeAws_json1_0ExpressionList + */ +const se_ExpressionList = (input: Expression[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_Expression(entry, context); + }); +}; + +/** + * serializeAws_json1_0FilterTimestamp + */ +const se_FilterTimestamp = (input: FilterTimestamp, context: __SerdeContext): any => { + return take(input, { + afterTimestamp: (_) => _.getTime() / 1_000, + beforeTimestamp: (_) => _.getTime() / 1_000, + }); +}; + +// se_GetBillEstimateRequest omitted. + +// se_GetBillScenarioRequest omitted. + +// se_GetPreferencesRequest omitted. + +// se_GetWorkloadEstimateRequest omitted. + +/** + * serializeAws_json1_0HistoricalUsageEntity + */ +const se_HistoricalUsageEntity = (input: HistoricalUsageEntity, context: __SerdeContext): any => { + return take(input, { + billInterval: (_) => se_BillInterval(_, context), + filterExpression: (_) => se_Expression(_, context), + location: [], + operation: [], + serviceCode: [], + usageAccountId: [], + usageType: [], + }); +}; + +// se_ListBillEstimateCommitmentsRequest omitted. + +// se_ListBillEstimateInputCommitmentModificationsRequest omitted. + +// se_ListBillEstimateInputUsageModificationsRequest omitted. + +// se_ListBillEstimateLineItemsFilter omitted. + +// se_ListBillEstimateLineItemsFilters omitted. + +// se_ListBillEstimateLineItemsFilterValues omitted. + +// se_ListBillEstimateLineItemsRequest omitted. + +// se_ListBillEstimatesFilter omitted. + +// se_ListBillEstimatesFilters omitted. + +// se_ListBillEstimatesFilterValues omitted. + +/** + * serializeAws_json1_0ListBillEstimatesRequest + */ +const se_ListBillEstimatesRequest = (input: ListBillEstimatesRequest, context: __SerdeContext): any => { + return take(input, { + createdAtFilter: (_) => se_FilterTimestamp(_, context), + expiresAtFilter: (_) => se_FilterTimestamp(_, context), + filters: _json, + maxResults: [], + nextToken: [], + }); +}; + +// se_ListBillScenarioCommitmentModificationsRequest omitted. + +// se_ListBillScenariosFilter omitted. + +// se_ListBillScenariosFilters omitted. + +// se_ListBillScenariosFilterValues omitted. + +/** + * serializeAws_json1_0ListBillScenariosRequest + */ +const se_ListBillScenariosRequest = (input: ListBillScenariosRequest, context: __SerdeContext): any => { + return take(input, { + createdAtFilter: (_) => se_FilterTimestamp(_, context), + expiresAtFilter: (_) => se_FilterTimestamp(_, context), + filters: _json, + maxResults: [], + nextToken: [], + }); +}; + +// se_ListBillScenarioUsageModificationsRequest omitted. + +// se_ListTagsForResourceRequest omitted. + +// se_ListUsageFilter omitted. + +// se_ListUsageFilters omitted. + +// se_ListUsageFilterValues omitted. + +// se_ListWorkloadEstimatesFilter omitted. + +// se_ListWorkloadEstimatesFilters omitted. + +// se_ListWorkloadEstimatesFilterValues omitted. + +/** + * serializeAws_json1_0ListWorkloadEstimatesRequest + */ +const se_ListWorkloadEstimatesRequest = (input: ListWorkloadEstimatesRequest, context: __SerdeContext): any => { + return take(input, { + createdAtFilter: (_) => se_FilterTimestamp(_, context), + expiresAtFilter: (_) => se_FilterTimestamp(_, context), + filters: _json, + maxResults: [], + nextToken: [], + }); +}; + +// se_ListWorkloadEstimateUsageRequest omitted. + +// se_NegateReservedInstanceAction omitted. + +// se_NegateSavingsPlanAction omitted. + +// se_RateTypes omitted. + +// se_ResourceTagKeys omitted. + +// se_StringList omitted. + +// se_TagResourceRequest omitted. + +// se_Tags omitted. + +// se_UntagResourceRequest omitted. + +/** + * serializeAws_json1_0UpdateBillEstimateRequest + */ +const se_UpdateBillEstimateRequest = (input: UpdateBillEstimateRequest, context: __SerdeContext): any => { + return take(input, { + expiresAt: (_) => _.getTime() / 1_000, + identifier: [], + name: [], + }); +}; + +/** + * serializeAws_json1_0UpdateBillScenarioRequest + */ +const se_UpdateBillScenarioRequest = (input: UpdateBillScenarioRequest, context: __SerdeContext): any => { + return take(input, { + expiresAt: (_) => _.getTime() / 1_000, + identifier: [], + name: [], + }); +}; + +// se_UpdatePreferencesRequest omitted. + +/** + * serializeAws_json1_0UpdateWorkloadEstimateRequest + */ +const se_UpdateWorkloadEstimateRequest = (input: UpdateWorkloadEstimateRequest, context: __SerdeContext): any => { + return take(input, { + expiresAt: (_) => _.getTime() / 1_000, + identifier: [], + name: [], + }); +}; + +/** + * serializeAws_json1_0UsageAmount + */ +const se_UsageAmount = (input: UsageAmount, context: __SerdeContext): any => { + return take(input, { + amount: __serializeFloat, + startHour: (_) => _.getTime() / 1_000, + }); +}; + +/** + * serializeAws_json1_0UsageAmounts + */ +const se_UsageAmounts = (input: UsageAmount[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_UsageAmount(entry, context); + }); +}; + +// de_AccessDeniedException omitted. + +// de_AddReservedInstanceAction omitted. + +/** + * deserializeAws_json1_0AddSavingsPlanAction + */ +const de_AddSavingsPlanAction = (output: any, context: __SerdeContext): AddSavingsPlanAction => { + return take(output, { + commitment: __limitedParseDouble, + savingsPlanOfferingId: __expectString, + }) as any; +}; + +// de_BatchCreateBillScenarioCommitmentModificationError omitted. + +// de_BatchCreateBillScenarioCommitmentModificationErrors omitted. + +/** + * deserializeAws_json1_0BatchCreateBillScenarioCommitmentModificationItem + */ +const de_BatchCreateBillScenarioCommitmentModificationItem = ( + output: any, + context: __SerdeContext +): BatchCreateBillScenarioCommitmentModificationItem => { + return take(output, { + commitmentAction: (_: any) => de_BillScenarioCommitmentModificationAction(__expectUnion(_), context), + group: __expectString, + id: __expectString, + key: __expectString, + usageAccountId: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BatchCreateBillScenarioCommitmentModificationItems + */ +const de_BatchCreateBillScenarioCommitmentModificationItems = ( + output: any, + context: __SerdeContext +): BatchCreateBillScenarioCommitmentModificationItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BatchCreateBillScenarioCommitmentModificationItem(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BatchCreateBillScenarioCommitmentModificationResponse + */ +const de_BatchCreateBillScenarioCommitmentModificationResponse = ( + output: any, + context: __SerdeContext +): BatchCreateBillScenarioCommitmentModificationResponse => { + return take(output, { + errors: _json, + items: (_: any) => de_BatchCreateBillScenarioCommitmentModificationItems(_, context), + }) as any; +}; + +// de_BatchCreateBillScenarioUsageModificationError omitted. + +// de_BatchCreateBillScenarioUsageModificationErrors omitted. + +/** + * deserializeAws_json1_0BatchCreateBillScenarioUsageModificationItem + */ +const de_BatchCreateBillScenarioUsageModificationItem = ( + output: any, + context: __SerdeContext +): BatchCreateBillScenarioUsageModificationItem => { + return take(output, { + availabilityZone: __expectString, + group: __expectString, + historicalUsage: (_: any) => de_HistoricalUsageEntity(_, context), + id: __expectString, + key: __expectString, + location: __expectString, + operation: __expectString, + quantities: (_: any) => de_UsageQuantities(_, context), + serviceCode: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BatchCreateBillScenarioUsageModificationItems + */ +const de_BatchCreateBillScenarioUsageModificationItems = ( + output: any, + context: __SerdeContext +): BatchCreateBillScenarioUsageModificationItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BatchCreateBillScenarioUsageModificationItem(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BatchCreateBillScenarioUsageModificationResponse + */ +const de_BatchCreateBillScenarioUsageModificationResponse = ( + output: any, + context: __SerdeContext +): BatchCreateBillScenarioUsageModificationResponse => { + return take(output, { + errors: _json, + items: (_: any) => de_BatchCreateBillScenarioUsageModificationItems(_, context), + }) as any; +}; + +// de_BatchCreateWorkloadEstimateUsageError omitted. + +// de_BatchCreateWorkloadEstimateUsageErrors omitted. + +/** + * deserializeAws_json1_0BatchCreateWorkloadEstimateUsageItem + */ +const de_BatchCreateWorkloadEstimateUsageItem = ( + output: any, + context: __SerdeContext +): BatchCreateWorkloadEstimateUsageItem => { + return take(output, { + cost: __limitedParseDouble, + currency: __expectString, + group: __expectString, + historicalUsage: (_: any) => de_HistoricalUsageEntity(_, context), + id: __expectString, + key: __expectString, + location: __expectString, + operation: __expectString, + quantity: (_: any) => de_WorkloadEstimateUsageQuantity(_, context), + serviceCode: __expectString, + status: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BatchCreateWorkloadEstimateUsageItems + */ +const de_BatchCreateWorkloadEstimateUsageItems = ( + output: any, + context: __SerdeContext +): BatchCreateWorkloadEstimateUsageItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BatchCreateWorkloadEstimateUsageItem(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BatchCreateWorkloadEstimateUsageResponse + */ +const de_BatchCreateWorkloadEstimateUsageResponse = ( + output: any, + context: __SerdeContext +): BatchCreateWorkloadEstimateUsageResponse => { + return take(output, { + errors: _json, + items: (_: any) => de_BatchCreateWorkloadEstimateUsageItems(_, context), + }) as any; +}; + +// de_BatchDeleteBillScenarioCommitmentModificationError omitted. + +// de_BatchDeleteBillScenarioCommitmentModificationErrors omitted. + +// de_BatchDeleteBillScenarioCommitmentModificationResponse omitted. + +// de_BatchDeleteBillScenarioUsageModificationError omitted. + +// de_BatchDeleteBillScenarioUsageModificationErrors omitted. + +// de_BatchDeleteBillScenarioUsageModificationResponse omitted. + +// de_BatchDeleteWorkloadEstimateUsageError omitted. + +// de_BatchDeleteWorkloadEstimateUsageErrors omitted. + +// de_BatchDeleteWorkloadEstimateUsageResponse omitted. + +// de_BatchUpdateBillScenarioCommitmentModificationError omitted. + +// de_BatchUpdateBillScenarioCommitmentModificationErrors omitted. + +/** + * deserializeAws_json1_0BatchUpdateBillScenarioCommitmentModificationResponse + */ +const de_BatchUpdateBillScenarioCommitmentModificationResponse = ( + output: any, + context: __SerdeContext +): BatchUpdateBillScenarioCommitmentModificationResponse => { + return take(output, { + errors: _json, + items: (_: any) => de_BillScenarioCommitmentModificationItems(_, context), + }) as any; +}; + +// de_BatchUpdateBillScenarioUsageModificationError omitted. + +// de_BatchUpdateBillScenarioUsageModificationErrors omitted. + +/** + * deserializeAws_json1_0BatchUpdateBillScenarioUsageModificationResponse + */ +const de_BatchUpdateBillScenarioUsageModificationResponse = ( + output: any, + context: __SerdeContext +): BatchUpdateBillScenarioUsageModificationResponse => { + return take(output, { + errors: _json, + items: (_: any) => de_BillScenarioUsageModificationItems(_, context), + }) as any; +}; + +// de_BatchUpdateWorkloadEstimateUsageError omitted. + +// de_BatchUpdateWorkloadEstimateUsageErrors omitted. + +/** + * deserializeAws_json1_0BatchUpdateWorkloadEstimateUsageResponse + */ +const de_BatchUpdateWorkloadEstimateUsageResponse = ( + output: any, + context: __SerdeContext +): BatchUpdateWorkloadEstimateUsageResponse => { + return take(output, { + errors: _json, + items: (_: any) => de_WorkloadEstimateUsageItems(_, context), + }) as any; +}; + +/** + * deserializeAws_json1_0BillEstimateCommitmentSummaries + */ +const de_BillEstimateCommitmentSummaries = (output: any, context: __SerdeContext): BillEstimateCommitmentSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillEstimateCommitmentSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillEstimateCommitmentSummary + */ +const de_BillEstimateCommitmentSummary = (output: any, context: __SerdeContext): BillEstimateCommitmentSummary => { + return take(output, { + id: __expectString, + monthlyPayment: (_: any) => de_CostAmount(_, context), + offeringId: __expectString, + paymentOption: __expectString, + purchaseAgreementType: __expectString, + region: __expectString, + termLength: __expectString, + upfrontPayment: (_: any) => de_CostAmount(_, context), + usageAccountId: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillEstimateCostSummary + */ +const de_BillEstimateCostSummary = (output: any, context: __SerdeContext): BillEstimateCostSummary => { + return take(output, { + serviceCostDifferences: (_: any) => de_ServiceCostDifferenceMap(_, context), + totalCostDifference: (_: any) => de_CostDifference(_, context), + }) as any; +}; + +/** + * deserializeAws_json1_0BillEstimateInputCommitmentModificationSummaries + */ +const de_BillEstimateInputCommitmentModificationSummaries = ( + output: any, + context: __SerdeContext +): BillEstimateInputCommitmentModificationSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillEstimateInputCommitmentModificationSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillEstimateInputCommitmentModificationSummary + */ +const de_BillEstimateInputCommitmentModificationSummary = ( + output: any, + context: __SerdeContext +): BillEstimateInputCommitmentModificationSummary => { + return take(output, { + commitmentAction: (_: any) => de_BillScenarioCommitmentModificationAction(__expectUnion(_), context), + group: __expectString, + id: __expectString, + usageAccountId: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillEstimateInputUsageModificationSummaries + */ +const de_BillEstimateInputUsageModificationSummaries = ( + output: any, + context: __SerdeContext +): BillEstimateInputUsageModificationSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillEstimateInputUsageModificationSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillEstimateInputUsageModificationSummary + */ +const de_BillEstimateInputUsageModificationSummary = ( + output: any, + context: __SerdeContext +): BillEstimateInputUsageModificationSummary => { + return take(output, { + availabilityZone: __expectString, + group: __expectString, + historicalUsage: (_: any) => de_HistoricalUsageEntity(_, context), + id: __expectString, + location: __expectString, + operation: __expectString, + quantities: (_: any) => de_UsageQuantities(_, context), + serviceCode: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillEstimateLineItemSummaries + */ +const de_BillEstimateLineItemSummaries = (output: any, context: __SerdeContext): BillEstimateLineItemSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillEstimateLineItemSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillEstimateLineItemSummary + */ +const de_BillEstimateLineItemSummary = (output: any, context: __SerdeContext): BillEstimateLineItemSummary => { + return take(output, { + availabilityZone: __expectString, + estimatedCost: (_: any) => de_CostAmount(_, context), + estimatedUsageQuantity: (_: any) => de_UsageQuantityResult(_, context), + historicalCost: (_: any) => de_CostAmount(_, context), + historicalUsageQuantity: (_: any) => de_UsageQuantityResult(_, context), + id: __expectString, + lineItemId: __expectString, + lineItemType: __expectString, + location: __expectString, + operation: __expectString, + payerAccountId: __expectString, + savingsPlanArns: _json, + serviceCode: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillEstimateSummaries + */ +const de_BillEstimateSummaries = (output: any, context: __SerdeContext): BillEstimateSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillEstimateSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillEstimateSummary + */ +const de_BillEstimateSummary = (output: any, context: __SerdeContext): BillEstimateSummary => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillInterval + */ +const de_BillInterval = (output: any, context: __SerdeContext): BillInterval => { + return take(output, { + end: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + start: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + }) as any; +}; + +/** + * deserializeAws_json1_0BillScenarioCommitmentModificationAction + */ +const de_BillScenarioCommitmentModificationAction = ( + output: any, + context: __SerdeContext +): BillScenarioCommitmentModificationAction => { + if (output.addReservedInstanceAction != null) { + return { + addReservedInstanceAction: _json(output.addReservedInstanceAction), + }; + } + if (output.addSavingsPlanAction != null) { + return { + addSavingsPlanAction: de_AddSavingsPlanAction(output.addSavingsPlanAction, context), + }; + } + if (output.negateReservedInstanceAction != null) { + return { + negateReservedInstanceAction: _json(output.negateReservedInstanceAction), + }; + } + if (output.negateSavingsPlanAction != null) { + return { + negateSavingsPlanAction: _json(output.negateSavingsPlanAction), + }; + } + return { $unknown: Object.entries(output)[0] }; +}; + +/** + * deserializeAws_json1_0BillScenarioCommitmentModificationItem + */ +const de_BillScenarioCommitmentModificationItem = ( + output: any, + context: __SerdeContext +): BillScenarioCommitmentModificationItem => { + return take(output, { + commitmentAction: (_: any) => de_BillScenarioCommitmentModificationAction(__expectUnion(_), context), + group: __expectString, + id: __expectString, + usageAccountId: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillScenarioCommitmentModificationItems + */ +const de_BillScenarioCommitmentModificationItems = ( + output: any, + context: __SerdeContext +): BillScenarioCommitmentModificationItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillScenarioCommitmentModificationItem(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillScenarioSummaries + */ +const de_BillScenarioSummaries = (output: any, context: __SerdeContext): BillScenarioSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillScenarioSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0BillScenarioSummary + */ +const de_BillScenarioSummary = (output: any, context: __SerdeContext): BillScenarioSummary => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillScenarioUsageModificationItem + */ +const de_BillScenarioUsageModificationItem = ( + output: any, + context: __SerdeContext +): BillScenarioUsageModificationItem => { + return take(output, { + availabilityZone: __expectString, + group: __expectString, + historicalUsage: (_: any) => de_HistoricalUsageEntity(_, context), + id: __expectString, + location: __expectString, + operation: __expectString, + quantities: (_: any) => de_UsageQuantities(_, context), + serviceCode: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0BillScenarioUsageModificationItems + */ +const de_BillScenarioUsageModificationItems = ( + output: any, + context: __SerdeContext +): BillScenarioUsageModificationItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_BillScenarioUsageModificationItem(entry, context); + }); + return retVal; +}; + +// de_ConflictException omitted. + +/** + * deserializeAws_json1_0CostAmount + */ +const de_CostAmount = (output: any, context: __SerdeContext): CostAmount => { + return take(output, { + amount: __limitedParseDouble, + currency: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0CostDifference + */ +const de_CostDifference = (output: any, context: __SerdeContext): CostDifference => { + return take(output, { + estimatedCost: (_: any) => de_CostAmount(_, context), + historicalCost: (_: any) => de_CostAmount(_, context), + }) as any; +}; + +/** + * deserializeAws_json1_0CreateBillEstimateResponse + */ +const de_CreateBillEstimateResponse = (output: any, context: __SerdeContext): CreateBillEstimateResponse => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + costSummary: (_: any) => de_BillEstimateCostSummary(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0CreateBillScenarioResponse + */ +const de_CreateBillScenarioResponse = (output: any, context: __SerdeContext): CreateBillScenarioResponse => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0CreateWorkloadEstimateResponse + */ +const de_CreateWorkloadEstimateResponse = (output: any, context: __SerdeContext): CreateWorkloadEstimateResponse => { + return take(output, { + costCurrency: __expectString, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + rateTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + rateType: __expectString, + status: __expectString, + totalCost: __limitedParseDouble, + }) as any; +}; + +// de_DataUnavailableException omitted. + +// de_DeleteBillEstimateResponse omitted. + +// de_DeleteBillScenarioResponse omitted. + +// de_DeleteWorkloadEstimateResponse omitted. + +/** + * deserializeAws_json1_0Expression + */ +const de_Expression = (output: any, context: __SerdeContext): Expression => { + return take(output, { + and: (_: any) => de_ExpressionList(_, context), + costCategories: _json, + dimensions: _json, + not: (_: any) => de_Expression(_, context), + or: (_: any) => de_ExpressionList(_, context), + tags: _json, + }) as any; +}; + +// de_ExpressionFilter omitted. + +/** + * deserializeAws_json1_0ExpressionList + */ +const de_ExpressionList = (output: any, context: __SerdeContext): Expression[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Expression(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0GetBillEstimateResponse + */ +const de_GetBillEstimateResponse = (output: any, context: __SerdeContext): GetBillEstimateResponse => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + costSummary: (_: any) => de_BillEstimateCostSummary(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0GetBillScenarioResponse + */ +const de_GetBillScenarioResponse = (output: any, context: __SerdeContext): GetBillScenarioResponse => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +// de_GetPreferencesResponse omitted. + +/** + * deserializeAws_json1_0GetWorkloadEstimateResponse + */ +const de_GetWorkloadEstimateResponse = (output: any, context: __SerdeContext): GetWorkloadEstimateResponse => { + return take(output, { + costCurrency: __expectString, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + rateTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + rateType: __expectString, + status: __expectString, + totalCost: __limitedParseDouble, + }) as any; +}; + +/** + * deserializeAws_json1_0HistoricalUsageEntity + */ +const de_HistoricalUsageEntity = (output: any, context: __SerdeContext): HistoricalUsageEntity => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + filterExpression: (_: any) => de_Expression(_, context), + location: __expectString, + operation: __expectString, + serviceCode: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +// de_InternalServerException omitted. + +/** + * deserializeAws_json1_0ListBillEstimateCommitmentsResponse + */ +const de_ListBillEstimateCommitmentsResponse = ( + output: any, + context: __SerdeContext +): ListBillEstimateCommitmentsResponse => { + return take(output, { + items: (_: any) => de_BillEstimateCommitmentSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillEstimateInputCommitmentModificationsResponse + */ +const de_ListBillEstimateInputCommitmentModificationsResponse = ( + output: any, + context: __SerdeContext +): ListBillEstimateInputCommitmentModificationsResponse => { + return take(output, { + items: (_: any) => de_BillEstimateInputCommitmentModificationSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillEstimateInputUsageModificationsResponse + */ +const de_ListBillEstimateInputUsageModificationsResponse = ( + output: any, + context: __SerdeContext +): ListBillEstimateInputUsageModificationsResponse => { + return take(output, { + items: (_: any) => de_BillEstimateInputUsageModificationSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillEstimateLineItemsResponse + */ +const de_ListBillEstimateLineItemsResponse = ( + output: any, + context: __SerdeContext +): ListBillEstimateLineItemsResponse => { + return take(output, { + items: (_: any) => de_BillEstimateLineItemSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillEstimatesResponse + */ +const de_ListBillEstimatesResponse = (output: any, context: __SerdeContext): ListBillEstimatesResponse => { + return take(output, { + items: (_: any) => de_BillEstimateSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillScenarioCommitmentModificationsResponse + */ +const de_ListBillScenarioCommitmentModificationsResponse = ( + output: any, + context: __SerdeContext +): ListBillScenarioCommitmentModificationsResponse => { + return take(output, { + items: (_: any) => de_BillScenarioCommitmentModificationItems(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillScenariosResponse + */ +const de_ListBillScenariosResponse = (output: any, context: __SerdeContext): ListBillScenariosResponse => { + return take(output, { + items: (_: any) => de_BillScenarioSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListBillScenarioUsageModificationsResponse + */ +const de_ListBillScenarioUsageModificationsResponse = ( + output: any, + context: __SerdeContext +): ListBillScenarioUsageModificationsResponse => { + return take(output, { + items: (_: any) => de_BillScenarioUsageModificationItems(_, context), + nextToken: __expectString, + }) as any; +}; + +// de_ListTagsForResourceResponse omitted. + +/** + * deserializeAws_json1_0ListWorkloadEstimatesResponse + */ +const de_ListWorkloadEstimatesResponse = (output: any, context: __SerdeContext): ListWorkloadEstimatesResponse => { + return take(output, { + items: (_: any) => de_WorkloadEstimateSummaries(_, context), + nextToken: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0ListWorkloadEstimateUsageResponse + */ +const de_ListWorkloadEstimateUsageResponse = ( + output: any, + context: __SerdeContext +): ListWorkloadEstimateUsageResponse => { + return take(output, { + items: (_: any) => de_WorkloadEstimateUsageItems(_, context), + nextToken: __expectString, + }) as any; +}; + +// de_NegateReservedInstanceAction omitted. + +// de_NegateSavingsPlanAction omitted. + +// de_RateTypes omitted. + +// de_ResourceNotFoundException omitted. + +// de_SavingsPlanArns omitted. + +/** + * deserializeAws_json1_0ServiceCostDifferenceMap + */ +const de_ServiceCostDifferenceMap = (output: any, context: __SerdeContext): Record => { + return Object.entries(output).reduce((acc: Record, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + acc[key as string] = de_CostDifference(value, context); + return acc; + }, {} as Record); +}; + +// de_ServiceQuotaExceededException omitted. + +// de_StringList omitted. + +// de_TagResourceResponse omitted. + +// de_Tags omitted. + +// de_ThrottlingException omitted. + +// de_UntagResourceResponse omitted. + +/** + * deserializeAws_json1_0UpdateBillEstimateResponse + */ +const de_UpdateBillEstimateResponse = (output: any, context: __SerdeContext): UpdateBillEstimateResponse => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + costSummary: (_: any) => de_BillEstimateCostSummary(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0UpdateBillScenarioResponse + */ +const de_UpdateBillScenarioResponse = (output: any, context: __SerdeContext): UpdateBillScenarioResponse => { + return take(output, { + billInterval: (_: any) => de_BillInterval(_, context), + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + status: __expectString, + }) as any; +}; + +// de_UpdatePreferencesResponse omitted. + +/** + * deserializeAws_json1_0UpdateWorkloadEstimateResponse + */ +const de_UpdateWorkloadEstimateResponse = (output: any, context: __SerdeContext): UpdateWorkloadEstimateResponse => { + return take(output, { + costCurrency: __expectString, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + rateTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + rateType: __expectString, + status: __expectString, + totalCost: __limitedParseDouble, + }) as any; +}; + +/** + * deserializeAws_json1_0UsageQuantities + */ +const de_UsageQuantities = (output: any, context: __SerdeContext): UsageQuantity[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_UsageQuantity(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0UsageQuantity + */ +const de_UsageQuantity = (output: any, context: __SerdeContext): UsageQuantity => { + return take(output, { + amount: __limitedParseDouble, + startHour: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + unit: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0UsageQuantityResult + */ +const de_UsageQuantityResult = (output: any, context: __SerdeContext): UsageQuantityResult => { + return take(output, { + amount: __limitedParseDouble, + unit: __expectString, + }) as any; +}; + +// de_ValidationException omitted. + +// de_ValidationExceptionField omitted. + +// de_ValidationExceptionFieldList omitted. + +/** + * deserializeAws_json1_0WorkloadEstimateSummaries + */ +const de_WorkloadEstimateSummaries = (output: any, context: __SerdeContext): WorkloadEstimateSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_WorkloadEstimateSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0WorkloadEstimateSummary + */ +const de_WorkloadEstimateSummary = (output: any, context: __SerdeContext): WorkloadEstimateSummary => { + return take(output, { + costCurrency: __expectString, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + expiresAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + failureMessage: __expectString, + id: __expectString, + name: __expectString, + rateTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + rateType: __expectString, + status: __expectString, + totalCost: __limitedParseDouble, + }) as any; +}; + +/** + * deserializeAws_json1_0WorkloadEstimateUsageItem + */ +const de_WorkloadEstimateUsageItem = (output: any, context: __SerdeContext): WorkloadEstimateUsageItem => { + return take(output, { + cost: __limitedParseDouble, + currency: __expectString, + group: __expectString, + historicalUsage: (_: any) => de_HistoricalUsageEntity(_, context), + id: __expectString, + location: __expectString, + operation: __expectString, + quantity: (_: any) => de_WorkloadEstimateUsageQuantity(_, context), + serviceCode: __expectString, + status: __expectString, + usageAccountId: __expectString, + usageType: __expectString, + }) as any; +}; + +/** + * deserializeAws_json1_0WorkloadEstimateUsageItems + */ +const de_WorkloadEstimateUsageItems = (output: any, context: __SerdeContext): WorkloadEstimateUsageItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_WorkloadEstimateUsageItem(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_0WorkloadEstimateUsageQuantity + */ +const de_WorkloadEstimateUsageQuantity = (output: any, context: __SerdeContext): WorkloadEstimateUsageQuantity => { + return take(output, { + amount: __limitedParseDouble, + unit: __expectString, + }) as any; +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + requestId: + output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"], +}); + +// Encode Uint8Array data into string with utf-8. +const collectBodyString = (streamBody: any, context: __SerdeContext): Promise => + collectBody(streamBody, context).then((body) => context.utf8Encoder(body)); + +const throwDefaultError = withBaseException(__BaseException); +const buildHttpRpcRequest = async ( + context: __SerdeContext, + headers: __HeaderBag, + path: string, + resolvedHostname: string | undefined, + body: any +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const contents: any = { + protocol, + hostname, + port, + method: "POST", + path: basePath.endsWith("/") ? basePath.slice(0, -1) + path : basePath + path, + headers, + }; + if (resolvedHostname !== undefined) { + contents.hostname = resolvedHostname; + } + if (body !== undefined) { + contents.body = body; + } + return new __HttpRequest(contents); +}; +function sharedHeaders(operation: string): __HeaderBag { + return { + "content-type": "application/x-amz-json-1.0", + "x-amz-target": `AWSBCMPricingCalculator.${operation}`, + }; +} diff --git a/clients/client-bcm-pricing-calculator/src/runtimeConfig.browser.ts b/clients/client-bcm-pricing-calculator/src/runtimeConfig.browser.ts new file mode 100644 index 0000000000000..6da3185e464e5 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/runtimeConfig.browser.ts @@ -0,0 +1,44 @@ +// smithy-typescript generated code +// @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 { createDefaultUserAgentProvider } from "@aws-sdk/util-user-agent-browser"; +import { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from "@smithy/config-resolver"; +import { FetchHttpHandler as RequestHandler, streamCollector } from "@smithy/fetch-http-handler"; +import { invalidProvider } from "@smithy/invalid-dependency"; +import { calculateBodyLength } from "@smithy/util-body-length-browser"; +import { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from "@smithy/util-retry"; +import { BCMPricingCalculatorClientConfig } from "./BCMPricingCalculatorClient"; +import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared"; +import { loadConfigsForDefaultMode } from "@smithy/smithy-client"; +import { resolveDefaultsModeConfig } from "@smithy/util-defaults-mode-browser"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: BCMPricingCalculatorClientConfig) => { + const defaultsMode = resolveDefaultsModeConfig(config); + const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode); + const clientSharedValues = getSharedRuntimeConfig(config); + return { + ...clientSharedValues, + ...config, + runtime: "browser", + defaultsMode, + bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength, + credentialDefaultProvider: + config?.credentialDefaultProvider ?? ((_: unknown) => () => Promise.reject(new Error("Credential is missing"))), + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }), + maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS, + region: config?.region ?? invalidProvider("Region is missing"), + requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider), + retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || 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)), + }; +}; diff --git a/clients/client-bcm-pricing-calculator/src/runtimeConfig.native.ts b/clients/client-bcm-pricing-calculator/src/runtimeConfig.native.ts new file mode 100644 index 0000000000000..2526e31ba856e --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/runtimeConfig.native.ts @@ -0,0 +1,18 @@ +// smithy-typescript generated code +import { Sha256 } from "@aws-crypto/sha256-js"; + +import { BCMPricingCalculatorClientConfig } from "./BCMPricingCalculatorClient"; +import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: BCMPricingCalculatorClientConfig) => { + const browserDefaults = getBrowserRuntimeConfig(config); + return { + ...browserDefaults, + ...config, + runtime: "react-native", + sha256: config?.sha256 ?? Sha256, + }; +}; diff --git a/clients/client-bcm-pricing-calculator/src/runtimeConfig.shared.ts b/clients/client-bcm-pricing-calculator/src/runtimeConfig.shared.ts new file mode 100644 index 0000000000000..136ed226bdede --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/runtimeConfig.shared.ts @@ -0,0 +1,38 @@ +// smithy-typescript generated code +import { AwsSdkSigV4Signer } from "@aws-sdk/core"; +import { NoOpLogger } from "@smithy/smithy-client"; +import { IdentityProviderConfig } from "@smithy/types"; +import { parseUrl } from "@smithy/url-parser"; +import { fromBase64, toBase64 } from "@smithy/util-base64"; +import { fromUtf8, toUtf8 } from "@smithy/util-utf8"; + +import { defaultBCMPricingCalculatorHttpAuthSchemeProvider } from "./auth/httpAuthSchemeProvider"; +import { BCMPricingCalculatorClientConfig } from "./BCMPricingCalculatorClient"; +import { defaultEndpointResolver } from "./endpoint/endpointResolver"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: BCMPricingCalculatorClientConfig) => { + return { + apiVersion: "2024-06-19", + base64Decoder: config?.base64Decoder ?? fromBase64, + base64Encoder: config?.base64Encoder ?? toBase64, + disableHostPrefix: config?.disableHostPrefix ?? false, + endpointProvider: config?.endpointProvider ?? defaultEndpointResolver, + extensions: config?.extensions ?? [], + httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultBCMPricingCalculatorHttpAuthSchemeProvider, + httpAuthSchemes: config?.httpAuthSchemes ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc: IdentityProviderConfig) => ipc.getIdentityProvider("aws.auth#sigv4"), + signer: new AwsSdkSigV4Signer(), + }, + ], + logger: config?.logger ?? new NoOpLogger(), + serviceId: config?.serviceId ?? "BCM Pricing Calculator", + urlParser: config?.urlParser ?? parseUrl, + utf8Decoder: config?.utf8Decoder ?? fromUtf8, + utf8Encoder: config?.utf8Encoder ?? toUtf8, + }; +}; diff --git a/clients/client-bcm-pricing-calculator/src/runtimeConfig.ts b/clients/client-bcm-pricing-calculator/src/runtimeConfig.ts new file mode 100644 index 0000000000000..63007694e885e --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/runtimeConfig.ts @@ -0,0 +1,60 @@ +// smithy-typescript generated code +// @ts-ignore: package.json will be imported from dist folders +import packageInfo from "../package.json"; // eslint-disable-line + +import { emitWarningIfUnsupportedVersion as awsCheckVersion } from "@aws-sdk/core"; +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { NODE_APP_ID_CONFIG_OPTIONS, createDefaultUserAgentProvider } from "@aws-sdk/util-user-agent-node"; +import { + NODE_REGION_CONFIG_FILE_OPTIONS, + NODE_REGION_CONFIG_OPTIONS, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, +} from "@smithy/config-resolver"; +import { Hash } from "@smithy/hash-node"; +import { NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } from "@smithy/middleware-retry"; +import { loadConfig as loadNodeConfig } from "@smithy/node-config-provider"; +import { NodeHttpHandler as RequestHandler, streamCollector } from "@smithy/node-http-handler"; +import { calculateBodyLength } from "@smithy/util-body-length-node"; +import { DEFAULT_RETRY_MODE } from "@smithy/util-retry"; +import { BCMPricingCalculatorClientConfig } from "./BCMPricingCalculatorClient"; +import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared"; +import { loadConfigsForDefaultMode } from "@smithy/smithy-client"; +import { resolveDefaultsModeConfig } from "@smithy/util-defaults-mode-node"; +import { emitWarningIfUnsupportedVersion } from "@smithy/smithy-client"; + +/** + * @internal + */ +export const getRuntimeConfig = (config: BCMPricingCalculatorClientConfig) => { + emitWarningIfUnsupportedVersion(process.version); + const defaultsMode = resolveDefaultsModeConfig(config); + const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode); + const clientSharedValues = getSharedRuntimeConfig(config); + awsCheckVersion(process.version); + return { + ...clientSharedValues, + ...config, + runtime: "node", + defaultsMode, + bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength, + credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider, + defaultUserAgentProvider: + config?.defaultUserAgentProvider ?? + createDefaultUserAgentProvider({ 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: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider), + retryMode: + config?.retryMode ?? + loadNodeConfig({ + ...NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE, + }), + 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), + userAgentAppId: config?.userAgentAppId ?? loadNodeConfig(NODE_APP_ID_CONFIG_OPTIONS), + }; +}; diff --git a/clients/client-bcm-pricing-calculator/src/runtimeExtensions.ts b/clients/client-bcm-pricing-calculator/src/runtimeExtensions.ts new file mode 100644 index 0000000000000..c2892b3076409 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/src/runtimeExtensions.ts @@ -0,0 +1,48 @@ +// smithy-typescript generated code +import { + getAwsRegionExtensionConfiguration, + resolveAwsRegionExtensionConfiguration, +} from "@aws-sdk/region-config-resolver"; +import { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from "@smithy/protocol-http"; +import { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from "@smithy/smithy-client"; + +import { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from "./auth/httpAuthExtensionConfiguration"; +import { BCMPricingCalculatorExtensionConfiguration } from "./extensionConfiguration"; + +/** + * @public + */ +export interface RuntimeExtension { + configure(extensionConfiguration: BCMPricingCalculatorExtensionConfiguration): void; +} + +/** + * @public + */ +export interface RuntimeExtensionsConfig { + extensions: RuntimeExtension[]; +} + +const asPartial = >(t: T) => t; + +/** + * @internal + */ +export const resolveRuntimeExtensions = (runtimeConfig: any, extensions: RuntimeExtension[]) => { + const extensionConfiguration: BCMPricingCalculatorExtensionConfiguration = { + ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)), + ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)), + ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)), + ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)), + }; + + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + + return { + ...runtimeConfig, + ...resolveAwsRegionExtensionConfiguration(extensionConfiguration), + ...resolveDefaultRuntimeConfig(extensionConfiguration), + ...resolveHttpHandlerRuntimeConfig(extensionConfiguration), + ...resolveHttpAuthRuntimeConfig(extensionConfiguration), + }; +}; diff --git a/clients/client-bcm-pricing-calculator/tsconfig.cjs.json b/clients/client-bcm-pricing-calculator/tsconfig.cjs.json new file mode 100644 index 0000000000000..3567d85ba8460 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/tsconfig.cjs.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "outDir": "dist-cjs" + } +} diff --git a/clients/client-bcm-pricing-calculator/tsconfig.es.json b/clients/client-bcm-pricing-calculator/tsconfig.es.json new file mode 100644 index 0000000000000..809f57bde65e6 --- /dev/null +++ b/clients/client-bcm-pricing-calculator/tsconfig.es.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "lib": ["dom"], + "module": "esnext", + "outDir": "dist-es" + } +} diff --git a/clients/client-bcm-pricing-calculator/tsconfig.json b/clients/client-bcm-pricing-calculator/tsconfig.json new file mode 100644 index 0000000000000..e7f5ec56b742b --- /dev/null +++ b/clients/client-bcm-pricing-calculator/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@tsconfig/node16/tsconfig.json", + "compilerOptions": { + "downlevelIteration": true, + "importHelpers": true, + "incremental": true, + "removeComments": true, + "resolveJsonModule": true, + "rootDir": "src", + "useUnknownInCatchVariables": false + }, + "exclude": ["test/"] +} diff --git a/clients/client-bcm-pricing-calculator/tsconfig.types.json b/clients/client-bcm-pricing-calculator/tsconfig.types.json new file mode 100644 index 0000000000000..4c3dfa7b3d25f --- /dev/null +++ b/clients/client-bcm-pricing-calculator/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/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json b/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json new file mode 100644 index 0000000000000..1a34da3e16138 --- /dev/null +++ b/codegen/sdk-codegen/aws-models/bcm-pricing-calculator.json @@ -0,0 +1,7088 @@ +{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.bcmpricingcalculator#AWSBCMPricingCalculator": { + "type": "service", + "version": "2024-06-19", + "operations": [ + { + "target": "com.amazonaws.bcmpricingcalculator#GetPreferences" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ListTagsForResource" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#TagResource" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#UntagResource" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#UpdatePreferences" + } + ], + "resources": [ + { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimate" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BillScenario" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimate" + } + ], + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#AccessDeniedException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#InternalServerException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ThrottlingException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ValidationException" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "BCM Pricing Calculator", + "arnNamespace": "bcm-pricing-calculator" + }, + "aws.api#tagEnabled": {}, + "aws.auth#sigv4": { + "name": "bcm-pricing-calculator" + }, + "aws.endpoints#dualStackOnlyEndpoints": {}, + "aws.endpoints#standardPartitionalEndpoints": { + "endpointPatternType": "service_region_dnsSuffix" + }, + "aws.iam#defineConditionKeys": { + "aws:RequestTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the tags that are passed in the request", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag" + }, + "aws:ResourceTag/${TagKey}": { + "type": "String", + "documentation": "Filters access by the tags associated with the resource", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag" + }, + "aws:TagKeys": { + "type": "ArrayOfString", + "documentation": "Filters access by the tag keys that are passed in the request", + "externalDocumentation": "${DocHomeURL}IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys" + } + }, + "aws.iam#supportedPrincipalTypes": ["Root", "IAMUser", "IAMRole", "FederatedUser"], + "aws.protocols#awsJson1_0": {}, + "smithy.api#documentation": "

\n You can use the Pricing Calculator API to programmatically create estimates for your planned cloud use. You can model usage and commitments such as Savings Plans and \n Reserved Instances, and generate estimated costs using your discounts and benefit sharing preferences.\n

\n

The Pricing Calculator API provides the following endpoint:

\n
    \n
  • \n

    \n https://bcm-pricing-calculator.us-east-1.api.aws\n

    \n
  • \n
", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#title": "AWS Billing and Cost Management Pricing Calculator", + "smithy.rules#endpointRuleSet": { + "version": "1.0", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://bcm-pricing-calculator-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://bcm-pricing-calculator.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{PartitionResult#implicitGlobalRegion}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] + }, + "smithy.rules#endpointTests": { + "testCases": [ + { + "documentation": "For custom endpoint with region not set and fips disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Endpoint": "https://example.com", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-isoe-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "params": { + "Region": "eu-isoe-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://bcm-pricing-calculator-fips.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isof-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isof-south-1" + } + ] + }, + "url": "https://bcm-pricing-calculator.us-isof-south-1.csp.hci.ic.gov" + } + }, + "params": { + "Region": "us-isof-south-1", + "UseFIPS": false + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" + } + } + }, + "com.amazonaws.bcmpricingcalculator#AccessDeniedException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "AccessDeniedCode", + "httpResponseCode": 403 + }, + "smithy.api#documentation": "

\n You do not have sufficient access to perform this action.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 403 + } + }, + "com.amazonaws.bcmpricingcalculator#AccountId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^\\d{12}$" + } + }, + "com.amazonaws.bcmpricingcalculator#AddReservedInstanceAction": { + "type": "structure", + "members": { + "reservedInstancesOfferingId": { + "target": "com.amazonaws.bcmpricingcalculator#Uuid", + "traits": { + "smithy.api#documentation": "

\n The ID of the Reserved Instance offering to add. For more information, see \n \n DescribeReservedInstancesOfferings.\n

" + } + }, + "instanceCount": { + "target": "com.amazonaws.bcmpricingcalculator#ReservedInstanceInstanceCount", + "traits": { + "smithy.api#documentation": "

\n The number of instances to add for this Reserved Instance offering.\n

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

\n Represents an action to add a Reserved Instance to a bill scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#AddSavingsPlanAction": { + "type": "structure", + "members": { + "savingsPlanOfferingId": { + "target": "com.amazonaws.bcmpricingcalculator#Uuid", + "traits": { + "smithy.api#documentation": "

\n The ID of the Savings Plan offering to add. For more information, see \n \n DescribeSavingsPlansOfferings.\n

" + } + }, + "commitment": { + "target": "com.amazonaws.bcmpricingcalculator#SavingsPlanCommitment", + "traits": { + "smithy.api#documentation": "

\n The hourly commitment, in the same currency of the savingsPlanOfferingId. \n This is a value between 0.001 and 1 million. You cannot specify more than five digits\n after the decimal point.\n

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

\n Represents an action to add a Savings Plan to a bill scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#Arn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "service": "com.amazonaws.bcmpricingcalculator#AWSBCMPricingCalculator" + }, + "smithy.api#length": { + "min": 20, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[-a-z0-9]*:bcm-pricing-calculator:[-a-z0-9]*:[0-9]{12}:[-a-z0-9/:_]+$" + } + }, + "com.amazonaws.bcmpricingcalculator#AvailabilityZone": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 32 + }, + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:,]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModification": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "CreateBillScenarioCommitmentModification", + "documentation": "Grants permission to create new commitments or remove existing commitment from a specified bill scenario" + }, + "smithy.api#documentation": "

\n Create Compute Savings Plans, EC2 Instance Savings Plans, or EC2 Reserved Instances commitments that you want to model in a Bill Scenario.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationEntry": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for this entry in the batch operation. This can be any valid string. \n This key is useful to identify errors associated with any commitment entry as any error is \n returned with this key.\n

", + "smithy.api#required": {} + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n An optional group identifier for the commitment modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID to which this commitment will be applied to.\n

", + "smithy.api#required": {} + } + }, + "commitmentAction": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationAction", + "traits": { + "smithy.api#documentation": "

\n The specific commitment action to be taken (e.g., adding a Reserved Instance or Savings Plan).\n

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

\n Represents an entry object in the batch operation to create bill scenario commitment modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationError": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n The key of the entry that caused the error.\n

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

\n A descriptive message for the error that occurred.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationErrorCode", + "traits": { + "smithy.api#documentation": "

\n The error code associated with the failed operation.\n

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

\n Represents an error that occurred during a batch create operation for bill scenario commitment modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationErrorCode": { + "type": "enum", + "members": { + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + }, + "INVALID_ACCOUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_ACCOUNT" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationItem": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n The key of the successfully created entry. This can be any valid string. This key is useful to \n identify errors associated with any commitment entry as any error is returned with this key.\n

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

\n The unique identifier assigned to the created commitment modification.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the created commitment modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with the created commitment modification.\n

" + } + }, + "commitmentAction": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationAction", + "traits": { + "smithy.api#documentation": "

\n The specific commitment action that was taken.\n

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

\n Represents a successfully created item in a batch operation for bill scenario commitment modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationItem" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to create the modeled commitment.\n

", + "smithy.api#required": {} + } + }, + "commitmentModifications": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationEntries", + "traits": { + "smithy.api#documentation": "

\n List of commitments that you want to model in the Bill Scenario.\n

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bcmpricingcalculator#ClientToken", + "traits": { + "smithy.api#documentation": "

\n A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {}, + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationItems", + "traits": { + "smithy.api#documentation": "

\n Returns the list of successful commitment line items that were created for the Bill Scenario.\n

" + } + }, + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModificationErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of errors reason and the commitment item keys that cannot be created in the Bill Scenario.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModification": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "CreateBillScenarioUsageModification", + "documentation": "Grants permission to create usage in the specified bill scenario" + }, + "smithy.api#documentation": "

\n Create Amazon Web Services service usage that you want to model in a Bill Scenario.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationEntry": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code for this usage modification.\n This identifies the specific Amazon Web Services service to the customer as \n a unique short abbreviation. For example, AmazonEC2 \n and AWSKMS.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n Describes the usage details of the usage line item.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage modification.\n Describes the specific Amazon Web Services operation that this usage line models. \n For example, RunInstances indicates the operation of an Amazon EC2 instance.\n

", + "smithy.api#required": {} + } + }, + "availabilityZone": { + "target": "com.amazonaws.bcmpricingcalculator#AvailabilityZone", + "traits": { + "smithy.api#documentation": "

\n The Availability Zone that this usage line uses.\n

" + } + }, + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for this entry in the batch operation.\n This can be any valid string. This key is useful to identify errors \n associated with any usage entry as any error is returned with this key.\n

", + "smithy.api#required": {} + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n An optional group identifier for the usage modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID to which this usage will be applied to.\n

", + "smithy.api#required": {} + } + }, + "amounts": { + "target": "com.amazonaws.bcmpricingcalculator#UsageAmounts", + "traits": { + "smithy.api#documentation": "

\n The amount of usage you want to create for the service use you are modeling.\n

" + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this modification, if available.\n

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

\n Represents an entry in a batch operation to create bill scenario usage modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationError": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n The key of the entry that caused the error.\n

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

\n A descriptive message for the error that occurred.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationErrorCode", + "traits": { + "smithy.api#documentation": "

\n The error code associated with the failed operation.\n

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

\n Represents an error that occurred during a batch create operation for bill scenario usage modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationErrorCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_FOUND" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationItem": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code for this usage modification.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage that was modified.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage modification.\n

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

\n The location associated with this usage modification.\n

" + } + }, + "availabilityZone": { + "target": "com.amazonaws.bcmpricingcalculator#AvailabilityZone", + "traits": { + "smithy.api#documentation": "

\n The availability zone associated with this usage modification, if applicable.\n

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

\n The unique identifier assigned to the created usage modification.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the created usage modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with the created usage modification.\n

" + } + }, + "quantities": { + "target": "com.amazonaws.bcmpricingcalculator#UsageQuantities", + "traits": { + "smithy.api#documentation": "

\n The modified usage quantities.\n

" + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this modification, if available.\n

" + } + }, + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n The key of the successfully created entry.\n

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

\n Represents a successfully created item in a batch operation for bill scenario usage modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationItem" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to create the modeled usage.\n

", + "smithy.api#required": {} + } + }, + "usageModifications": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationEntries", + "traits": { + "smithy.api#documentation": "

\n List of usage that you want to model in the Bill Scenario.\n

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bcmpricingcalculator#ClientToken", + "traits": { + "smithy.api#documentation": "

\n A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {}, + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationItems", + "traits": { + "smithy.api#documentation": "

\n Returns the list of successful usage line items that were created for the Bill Scenario.\n

" + } + }, + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModificationErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of errors reason and the usage item keys that cannot be created in the Bill Scenario.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "CreateWorkloadEstimateUsage", + "documentation": "Grants permission to create usage in the specified workload estimate" + }, + "smithy.api#documentation": "

\n Create Amazon Web Services service usage that you want to model in a Workload Estimate.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_FOUND" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageEntry": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code for this usage estimate.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage being estimated.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage estimate.\n

", + "smithy.api#required": {} + } + }, + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n A unique identifier for this entry in the batch operation.\n

", + "smithy.api#required": {} + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n An optional group identifier for the usage estimate.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this usage estimate.\n

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

\n The estimated usage amount.\n

", + "smithy.api#required": {} + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this estimate, if available.\n

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

\n Represents an entry in a batch operation to create workload estimate usage.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageError": { + "type": "structure", + "members": { + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n The key of the entry that caused the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageCode", + "traits": { + "smithy.api#documentation": "

\n The error code associated with the failed operation.\n

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

\n A descriptive message for the error that occurred.\n

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

\n Represents an error that occurred during a batch create operation for workload estimate usage.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageItem": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code for this usage estimate.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage that was estimated.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage estimate.\n

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

\n The location associated with this usage estimate.\n

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

\n The unique identifier assigned to the created usage estimate.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with the created usage estimate.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the created usage estimate.\n

" + } + }, + "quantity": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageQuantity", + "traits": { + "smithy.api#documentation": "

\n The estimated usage quantity.\n

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

\n The estimated cost associated with this usage.\n

" + } + }, + "currency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency of the estimated cost.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateCostStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the created usage estimate.\n

" + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this estimate, if available.\n

" + } + }, + "key": { + "target": "com.amazonaws.bcmpricingcalculator#Key", + "traits": { + "smithy.api#documentation": "

\n The key of the successfully created entry.\n

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

\n Represents a successfully created item in a batch operation for workload estimate usage.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageItem" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageRequest": { + "type": "structure", + "members": { + "workloadEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Workload estimate for which you want to create the modeled usage.\n

", + "smithy.api#required": {} + } + }, + "usage": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageEntries", + "traits": { + "smithy.api#documentation": "

\n List of usage that you want to model in the Workload estimate.\n

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bcmpricingcalculator#ClientToken", + "traits": { + "smithy.api#documentation": "

\n A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {}, + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageItems", + "traits": { + "smithy.api#documentation": "

\n Returns the list of successful usage line items that were created for the Workload estimate.\n

" + } + }, + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsageErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of errors reason and the usage item keys that cannot be created in the Workload estimate.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModification": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "DeleteBillScenarioCommitmentModification", + "documentation": "Grants permission to delete newly added commitments from the specified bill scenario" + }, + "smithy.api#documentation": "

\n Delete commitment that you have created in a Bill Scenario. You can only delete a commitment that you had \n added and cannot model deletion (or removal) of a existing commitment. If you want model deletion of an existing \n commitment, see the negate \n BillScenarioCommitmentModificationAction of \n \n BatchCreateBillScenarioCommitmentModification operation.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationError": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationErrorCode", + "traits": { + "smithy.api#documentation": "

\n The code associated with the error.\n

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

\n The message that describes the error.\n

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

\n Represents an error that occurred when deleting a commitment in a Bill Scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationErrorCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to delete the modeled commitment.\n

", + "smithy.api#required": {} + } + }, + "ids": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationEntries", + "traits": { + "smithy.api#documentation": "

\n List of commitments that you want to delete from the Bill Scenario.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationResponse": { + "type": "structure", + "members": { + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModificationErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of errors reason and the commitment item keys that cannot be deleted from the Bill Scenario.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModification": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "DeleteBillScenarioUsageModification", + "documentation": "Grants permission to delete newly added usage from the specified bill scenario" + }, + "smithy.api#documentation": "

\n Delete usage that you have created in a Bill Scenario. You can only delete usage that you had added and cannot model \n deletion (or removal) of a existing usage. If you want model removal of an existing usage, see \n \n BatchUpdateBillScenarioUsageModification.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationError": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the error.\n

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

\n The message that describes the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationErrorCode", + "traits": { + "smithy.api#documentation": "

\n The code associated with the error.\n

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

\n Represents an error that occurred when deleting usage in a Bill Scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationErrorCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to delete the modeled usage.\n

", + "smithy.api#required": {} + } + }, + "ids": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationEntries", + "traits": { + "smithy.api#documentation": "

\n List of usage that you want to delete from the Bill Scenario.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationResponse": { + "type": "structure", + "members": { + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModificationErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of errors reason and the usage item keys that cannot be deleted from the Bill Scenario.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "DeleteWorkloadEstimateUsage", + "documentation": "Grants permission to delete newly added usage from the specified workload estimate" + }, + "smithy.api#documentation": "

\n Delete usage that you have created in a Workload estimate. You can only delete usage that you had added and cannot model deletion \n (or removal) of a existing usage. If you want model removal of an existing usage, see \n \n BatchUpdateWorkloadEstimateUsage.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageError": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the error.\n

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

\n The message that describes the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUpdateUsageErrorCode", + "traits": { + "smithy.api#documentation": "

\n The code associated with the error.\n

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

\n Represents an error that occurred when deleting usage in a workload estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageRequest": { + "type": "structure", + "members": { + "workloadEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Workload estimate for which you want to delete the modeled usage.\n

", + "smithy.api#required": {} + } + }, + "ids": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageEntries", + "traits": { + "smithy.api#documentation": "

\n List of usage that you want to delete from the Workload estimate.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageResponse": { + "type": "structure", + "members": { + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsageErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of errors reason and the usage item keys that cannot be deleted from the Workload estimate.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModification": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "UpdateBillScenarioCommitmentModification", + "documentation": "Grants permission to update commitment group of commitments in the specified bill scenario" + }, + "smithy.api#documentation": "

\n Update a newly added or existing commitment. You can update the commitment group based on a commitment ID and a Bill scenario ID.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationEntry": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the commitment modification to update.\n

", + "smithy.api#required": {} + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The updated group identifier for the commitment modification.\n

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

\n Represents an entry in a batch operation to update bill scenario commitment modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationError": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationErrorCode", + "traits": { + "smithy.api#documentation": "

\n The code associated with the error.\n

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

\n The message that describes the error.\n

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

\n Represents an error that occurred when updating a commitment in a Bill Scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationErrorCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_FOUND" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to modify the commitment group of a modeled commitment.\n

", + "smithy.api#required": {} + } + }, + "commitmentModifications": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationEntries", + "traits": { + "smithy.api#documentation": "

\n List of commitments that you want to update in a Bill Scenario.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationItems", + "traits": { + "smithy.api#documentation": "

\n Returns the list of successful commitment line items that were updated for a Bill Scenario.\n

" + } + }, + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModificationErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of error reasons and commitment line item IDs that could not be updated for the Bill Scenario.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModification": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "UpdateBillScenarioUsageModification", + "documentation": "Grants permission to update usage amount, usage hour, and usage group in the specified bill scenario" + }, + "smithy.api#documentation": "

\n Update a newly added or existing usage lines. You can update the usage amounts, usage hour, and usage group based on a usage ID and a Bill scenario ID.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationEntry": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the usage modification to update.\n

", + "smithy.api#required": {} + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The updated group identifier for the usage modification.\n

" + } + }, + "amounts": { + "target": "com.amazonaws.bcmpricingcalculator#UsageAmounts", + "traits": { + "smithy.api#documentation": "

\n The updated usage amounts for the modification.\n

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

\n Represents an entry in a batch operation to update bill scenario usage modifications.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationError": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the error.\n

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

\n The message that describes the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationErrorCode", + "traits": { + "smithy.api#documentation": "

\n The code associated with the error.\n

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

\n Represents an error that occurred when updating usage in a Bill Scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationErrorCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_FOUND" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to modify the usage lines.\n

", + "smithy.api#required": {} + } + }, + "usageModifications": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationEntries", + "traits": { + "smithy.api#documentation": "

\n List of usage lines that you want to update in a Bill Scenario identified by the usage ID.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModificationItems", + "traits": { + "smithy.api#documentation": "

\n Returns the list of successful usage line items that were updated for a Bill Scenario.\n

" + } + }, + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModificationErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of error reasons and usage line item IDs that could not be updated for the Bill Scenario.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "name": "UpdateWorkloadEstimateUsage", + "documentation": "Grants permission to update usage amount and usage group in the specified workload estimate based on the usage id" + }, + "smithy.api#documentation": "

\n Update a newly added or existing usage lines. You can update the usage amounts and usage group based on a usage ID and a Workload estimate ID.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageEntry": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the usage estimate to update.\n

", + "smithy.api#required": {} + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The updated group identifier for the usage estimate.\n

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

\n The updated estimated usage amount.\n

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

\n Represents an entry in a batch operation to update workload estimate usage.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageError": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the error.\n

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

\n The message that describes the error.\n

" + } + }, + "errorCode": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUpdateUsageErrorCode", + "traits": { + "smithy.api#documentation": "

\n The code associated with the error.\n

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

\n Represents an error that occurred when updating usage in a workload estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageErrors": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageError" + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageRequest": { + "type": "structure", + "members": { + "workloadEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Workload estimate for which you want to modify the usage lines.\n

", + "smithy.api#required": {} + } + }, + "usage": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageEntries", + "traits": { + "smithy.api#documentation": "

\n List of usage line amounts and usage group that you want to update in a Workload estimate identified by the usage ID.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageItems", + "traits": { + "smithy.api#documentation": "

\n Returns the list of successful usage line items that were updated for a Workload estimate.\n

" + } + }, + "errors": { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsageErrors", + "traits": { + "smithy.api#documentation": "

\n Returns the list of error reasons and usage line item IDs that could not be updated for the Workload estimate.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimate": { + "type": "resource", + "identifiers": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "properties": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName" + }, + "costSummary": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCostSummary" + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateStatus" + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval" + }, + "failureMessage": { + "target": "smithy.api#String" + }, + "createdAt": { + "target": "smithy.api#Timestamp" + }, + "expiresAt": { + "target": "smithy.api#Timestamp" + } + }, + "create": { + "target": "com.amazonaws.bcmpricingcalculator#CreateBillEstimate" + }, + "read": { + "target": "com.amazonaws.bcmpricingcalculator#GetBillEstimate" + }, + "update": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateBillEstimate" + }, + "delete": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteBillEstimate" + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimates" + }, + "resources": [ + { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCommitment" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateInputCommitmentModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateInputUsageModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateLineItem" + } + ], + "traits": { + "aws.api#arn": { + "template": "bill-estimate/{billEstimateId}" + }, + "aws.api#taggable": {}, + "aws.iam#iamResource": { + "name": "bill-estimate" + }, + "smithy.api#documentation": "Represents a bill estimate that is created from a bill scenario" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateCommitment": { + "type": "resource", + "identifiers": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "resultCommitmentId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateCommitments" + }, + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateCommitmentSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCommitmentSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateCommitmentSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the commitment.\n

" + } + }, + "purchaseAgreementType": { + "target": "com.amazonaws.bcmpricingcalculator#PurchaseAgreementType", + "traits": { + "smithy.api#documentation": "

\n The type of purchase agreement (e.g., Reserved Instance, Savings Plan).\n

" + } + }, + "offeringId": { + "target": "com.amazonaws.bcmpricingcalculator#Uuid", + "traits": { + "smithy.api#documentation": "

\n The identifier of the specific offering associated with this commitment.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this commitment.\n

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

\n The Amazon Web Services region associated with this commitment.\n

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

\n The length of the commitment term.\n

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

\n The payment option chosen for this commitment (e.g., All Upfront, Partial Upfront, No Upfront).\n

" + } + }, + "upfrontPayment": { + "target": "com.amazonaws.bcmpricingcalculator#CostAmount", + "traits": { + "smithy.api#documentation": "

\n The upfront payment amount for this commitment, if applicable.\n

" + } + }, + "monthlyPayment": { + "target": "com.amazonaws.bcmpricingcalculator#CostAmount", + "traits": { + "smithy.api#documentation": "

\n The monthly payment amount for this commitment, if applicable.\n

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

\n Provides a summary of commitment-related information for a bill estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateCostSummary": { + "type": "structure", + "members": { + "totalCostDifference": { + "target": "com.amazonaws.bcmpricingcalculator#CostDifference", + "traits": { + "smithy.api#documentation": "

\n The total difference in cost between the estimated and historical costs.\n

" + } + }, + "serviceCostDifferences": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCostDifferenceMap", + "traits": { + "smithy.api#documentation": "

\n A breakdown of cost differences by Amazon Web Services service.\n

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

\n Provides a summary of cost-related information for a bill estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateInputCommitmentModification": { + "type": "resource", + "identifiers": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputCommitmentModifications" + }, + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateInputCommitmentModificationSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateInputCommitmentModificationSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateInputCommitmentModificationSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the commitment modification.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the commitment modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this commitment modification.\n

" + } + }, + "commitmentAction": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationAction", + "traits": { + "smithy.api#documentation": "

\n The specific commitment action taken in this modification.\n

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

\n Summarizes an input commitment modification for a bill estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateInputUsageModification": { + "type": "resource", + "identifiers": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputUsageModifications" + }, + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateInputUsageModificationSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateInputUsageModificationSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateInputUsageModificationSummary": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code for this usage modification.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage being modified.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage modification.\n

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

\n The location associated with this usage modification.\n

" + } + }, + "availabilityZone": { + "target": "com.amazonaws.bcmpricingcalculator#AvailabilityZone", + "traits": { + "smithy.api#documentation": "

\n The availability zone associated with this usage modification, if applicable.\n

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

\n The unique identifier of the usage modification.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the usage modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this usage modification.\n

" + } + }, + "quantities": { + "target": "com.amazonaws.bcmpricingcalculator#UsageQuantities", + "traits": { + "smithy.api#documentation": "

\n The modified usage quantities.\n

" + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this modification, if available.\n

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

\n Summarizes an input usage modification for a bill estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateLineItem": { + "type": "resource", + "identifiers": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItems" + }, + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateLineItemSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateLineItemSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateLineItemSummary": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code associated with this line item.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage for this line item.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this line item.\n

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

\n The location associated with this line item.\n

" + } + }, + "availabilityZone": { + "target": "com.amazonaws.bcmpricingcalculator#AvailabilityZone", + "traits": { + "smithy.api#documentation": "

\n The availability zone associated with this line item, if applicable.\n

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

\n The unique identifier of this line item.\n

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

\n The line item identifier from the original bill.\n

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

\n The type of this line item (e.g., Usage, Tax, Credit).\n

" + } + }, + "payerAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID of the payer for this line item.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with the usage for this line item.\n

" + } + }, + "estimatedUsageQuantity": { + "target": "com.amazonaws.bcmpricingcalculator#UsageQuantityResult", + "traits": { + "smithy.api#documentation": "

\n The estimated usage quantity for this line item.\n

" + } + }, + "estimatedCost": { + "target": "com.amazonaws.bcmpricingcalculator#CostAmount", + "traits": { + "smithy.api#documentation": "

\n The estimated cost for this line item.\n

" + } + }, + "historicalUsageQuantity": { + "target": "com.amazonaws.bcmpricingcalculator#UsageQuantityResult", + "traits": { + "smithy.api#documentation": "

\n The historical usage quantity for this line item.\n

" + } + }, + "historicalCost": { + "target": "com.amazonaws.bcmpricingcalculator#CostAmount", + "traits": { + "smithy.api#documentation": "

\n The historical cost for this line item.\n

" + } + }, + "savingsPlanArns": { + "target": "com.amazonaws.bcmpricingcalculator#SavingsPlanArns", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Names (ARNs) of any Savings Plans applied to this line item.\n

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

\n Provides a summary of a line item in a bill estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateStatus": { + "type": "enum", + "members": { + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETE" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#BillEstimateSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName", + "traits": { + "smithy.api#documentation": "

\n The name of the bill estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the bill estimate.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the bill estimate.\n

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

\n The timestamp when the bill estimate was created.\n

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

\n The timestamp when the bill estimate will expire.\n

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

\n Provides a summary of a bill estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillInterval": { + "type": "structure", + "members": { + "start": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

\n The start date and time of the interval.\n

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

\n The end date and time of the interval.\n

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

\n Represents a time interval for a bill or estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenario": { + "type": "resource", + "identifiers": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "properties": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName" + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval" + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioStatus" + }, + "createdAt": { + "target": "smithy.api#Timestamp" + }, + "expiresAt": { + "target": "smithy.api#Timestamp" + }, + "failureMessage": { + "target": "smithy.api#String" + } + }, + "create": { + "target": "com.amazonaws.bcmpricingcalculator#CreateBillScenario" + }, + "read": { + "target": "com.amazonaws.bcmpricingcalculator#GetBillScenario" + }, + "update": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateBillScenario" + }, + "delete": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteBillScenario" + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarios" + }, + "resources": [ + { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModification" + } + ], + "traits": { + "aws.api#arn": { + "template": "bill-scenario/{billScenarioId}" + }, + "aws.api#taggable": {}, + "aws.iam#iamResource": { + "name": "bill-scenario" + }, + "smithy.api#documentation": "Represents a bill scenario that allows usage and commitment modeling" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModification": { + "type": "resource", + "identifiers": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarioCommitmentModifications" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioCommitmentModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioCommitmentModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioCommitmentModification" + } + ], + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationAction": { + "type": "union", + "members": { + "addReservedInstanceAction": { + "target": "com.amazonaws.bcmpricingcalculator#AddReservedInstanceAction", + "traits": { + "smithy.api#documentation": "

\n Action to add a Reserved Instance to the scenario.\n

" + } + }, + "addSavingsPlanAction": { + "target": "com.amazonaws.bcmpricingcalculator#AddSavingsPlanAction", + "traits": { + "smithy.api#documentation": "

\n Action to add a Savings Plan to the scenario.\n

" + } + }, + "negateReservedInstanceAction": { + "target": "com.amazonaws.bcmpricingcalculator#NegateReservedInstanceAction", + "traits": { + "smithy.api#documentation": "

\n Action to remove a Reserved Instance from the scenario.\n

" + } + }, + "negateSavingsPlanAction": { + "target": "com.amazonaws.bcmpricingcalculator#NegateSavingsPlanAction", + "traits": { + "smithy.api#documentation": "

\n Action to remove a Savings Plan from the scenario.\n

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

\n Represents an action to modify commitments in a bill scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationItem": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the commitment modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this commitment modification.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the commitment modification.\n

" + } + }, + "commitmentAction": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationAction", + "traits": { + "smithy.api#documentation": "

\n The specific commitment action taken in this modification.\n

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

\n Represents a commitment modification item in a bill scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationItem" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioStatus": { + "type": "enum", + "members": { + "READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "READY" + } + }, + "LOCKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOCKED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill scenario.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName", + "traits": { + "smithy.api#documentation": "

\n The name of the bill scenario.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the bill scenario.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the bill scenario.\n

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

\n The timestamp when the bill scenario was created.\n

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

\n The timestamp when the bill scenario will expire.\n

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

\n An error message if the bill scenario creation or processing failed.\n

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

\n Provides a summary of a bill scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModification": { + "type": "resource", + "identifiers": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarioUsageModifications" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateBillScenarioUsageModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteBillScenarioUsageModification" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateBillScenarioUsageModification" + } + ], + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModificationItem": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code for this usage modification.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage being modified.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage modification.\n

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

\n The location associated with this usage modification.\n

" + } + }, + "availabilityZone": { + "target": "com.amazonaws.bcmpricingcalculator#AvailabilityZone", + "traits": { + "smithy.api#documentation": "

\n The availability zone associated with this usage modification, if applicable.\n

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

\n The unique identifier of the usage modification.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for the usage modification.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this usage modification.\n

" + } + }, + "quantities": { + "target": "com.amazonaws.bcmpricingcalculator#UsageQuantities", + "traits": { + "smithy.api#documentation": "

\n The modified usage quantities.\n

" + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this modification, if available.\n

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

\n Represents a usage modification item in a bill scenario.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModificationItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModificationItem" + } + }, + "com.amazonaws.bcmpricingcalculator#ClientToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\u0021-\\u007E]+$" + } + }, + "com.amazonaws.bcmpricingcalculator#ConflictException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource that was not found.\n

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

\n The type of the resource that was not found.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ConflictCode", + "httpResponseCode": 409 + }, + "smithy.api#documentation": "

\n The request could not be processed because of conflict in the current state of the resource.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 409 + } + }, + "com.amazonaws.bcmpricingcalculator#CostAmount": { + "type": "structure", + "members": { + "amount": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

\n The numeric value of the cost.\n

" + } + }, + "currency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency code for the cost amount.\n

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

\n Represents a monetary amount with associated currency.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#CostDifference": { + "type": "structure", + "members": { + "historicalCost": { + "target": "com.amazonaws.bcmpricingcalculator#CostAmount", + "traits": { + "smithy.api#documentation": "

\n The historical cost amount.\n

" + } + }, + "estimatedCost": { + "target": "com.amazonaws.bcmpricingcalculator#CostAmount", + "traits": { + "smithy.api#documentation": "

\n The estimated cost amount.\n

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

\n Represents the difference between historical and estimated costs.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#CreateBillEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#CreateBillEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#CreateBillEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to create a new bill estimate. Charge is incurred for successful bill estimates" + }, + "smithy.api#documentation": "

\n Create a Bill estimate from a Bill scenario. In the Bill scenario you can model usage addition, usage changes, and usage removal. You can also model commitment addition and commitment removal. After all changes in a Bill scenario is made satisfactorily, you can call this API with a Bill scenario ID to generate the Bill estimate. Bill estimate calculates the pre-tax cost for your consolidated billing family, incorporating all modeled usage and commitments alongside existing usage and commitments from your most recent completed anniversary bill, with any applicable discounts applied.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateBillEstimateRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The ID of the Bill Scenario for which you want to create a Bill estimate.\n

", + "smithy.api#notProperty": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName", + "traits": { + "smithy.api#documentation": "

\n The name of the Bill estimate that will be created. Names must be unique for an account.\n

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bcmpricingcalculator#ClientToken", + "traits": { + "smithy.api#documentation": "

\n A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {}, + "smithy.api#notProperty": {} + } + }, + "tags": { + "target": "com.amazonaws.bcmpricingcalculator#Tags", + "traits": { + "smithy.api#documentation": "

\n An optional list of tags to associate with the specified BillEstimate. You can use resource tags to control access to your \n BillEstimate using IAM policies. Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:\n

\n
    \n
  • \n

    Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. \n The remaining are reserved for Amazon Web Services.

    \n
  • \n
  • \n

    The maximum length of a key is 128 characters.

    \n
  • \n
  • \n

    The maximum length of a value is 256 characters.

    \n
  • \n
  • \n

    Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-.

    \n
  • \n
  • \n

    Keys and values are case sensitive.

    \n
  • \n
  • \n

    Keys and values are trimmed for any leading or trailing whitespaces.

    \n
  • \n
  • \n

    Don't use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services.

    \n
  • \n
", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#input": {}, + "smithy.api#references": [ + { + "resource": "com.amazonaws.bcmpricingcalculator#BillScenario" + } + ] + } + }, + "com.amazonaws.bcmpricingcalculator#CreateBillEstimateResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of your newly created Bill estimate.

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName", + "traits": { + "smithy.api#documentation": "

The name of your newly created Bill estimate.

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateStatus", + "traits": { + "smithy.api#documentation": "

The status of your newly created Bill estimate. Bill estimate creation can take anywhere between 8 to 12 hours. \n The status will allow you to identify when the Bill estimate is complete or has failed.

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

This attribute provides the reason if a Bill estimate result generation fails.

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

The bill month start and end \n timestamp that was used to create the Bill estimate. This is set to the last complete anniversary bill month start and end timestamp.

" + } + }, + "costSummary": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCostSummary", + "traits": { + "smithy.api#documentation": "

Returns summary-level cost information once a Bill estimate is \n successfully generated. This summary includes: 1) the total cost difference, showing the pre-tax cost change for the consolidated \n billing family between the completed anniversary bill and the estimated bill, and 2) total cost differences per service, detailing \n the pre-tax cost of each service, comparing the completed anniversary bill to the estimated bill on a per-service basis.

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

The timestamp of when the Bill estimate create process \n was started (not when it successfully completed or failed).

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

The timestamp of when the Bill estimate will \n expire. A Bill estimate becomes inaccessible after expiration.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateBillScenario": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#CreateBillScenarioRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#CreateBillScenarioResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to create a new bill scenario" + }, + "smithy.api#documentation": "

\n Creates a new bill scenario to model potential changes to Amazon Web Services usage and costs.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateBillScenarioRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName", + "traits": { + "smithy.api#documentation": "

\n A descriptive name for the bill scenario.\n

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bcmpricingcalculator#ClientToken", + "traits": { + "smithy.api#documentation": "

\n A unique, case-sensitive identifier to ensure idempotency of the request.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {}, + "smithy.api#notProperty": {} + } + }, + "tags": { + "target": "com.amazonaws.bcmpricingcalculator#Tags", + "traits": { + "smithy.api#documentation": "

\n The tags to apply to the bill scenario.\n

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateBillScenarioResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the created bill scenario.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName", + "traits": { + "smithy.api#documentation": "

\n The name of the created bill scenario.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the bill scenario.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the bill scenario.\n

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

\n The timestamp when the bill scenario was created.\n

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

\n The timestamp when the bill scenario will expire.\n

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

\n An error message if the bill scenario creation failed.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateWorkloadEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#CreateWorkloadEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#CreateWorkloadEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to create a new Workload estimate" + }, + "smithy.api#documentation": "

\n Creates a new workload estimate to model costs for a specific workload.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateWorkloadEstimateRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName", + "traits": { + "smithy.api#documentation": "

\n A descriptive name for the workload estimate.\n

", + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.bcmpricingcalculator#ClientToken", + "traits": { + "smithy.api#documentation": "

\n A unique, case-sensitive identifier to ensure idempotency of the request.\n

", + "smithy.api#httpHeader": "X-Amzn-Client-Token", + "smithy.api#idempotencyToken": {}, + "smithy.api#notProperty": {} + } + }, + "rateType": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType", + "traits": { + "smithy.api#documentation": "

\n The type of pricing rates to use for the estimate.\n

", + "smithy.api#notProperty": {} + } + }, + "tags": { + "target": "com.amazonaws.bcmpricingcalculator#Tags", + "traits": { + "smithy.api#documentation": "

\n The tags to apply to the workload estimate.\n

", + "smithy.api#notProperty": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CreateWorkloadEstimateResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier for the created workload estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName", + "traits": { + "smithy.api#documentation": "

\n The name of the created workload estimate.\n

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

\n The timestamp when the workload estimate was created.\n

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

\n The timestamp when the workload estimate will expire.\n

" + } + }, + "rateType": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType", + "traits": { + "smithy.api#documentation": "

\n The type of pricing rates used for the estimate.\n

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

\n The timestamp of the pricing rates used for the estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the workload estimate.\n

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

\n The total estimated cost for the workload.\n

" + } + }, + "costCurrency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency of the estimated cost.\n

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

\n An error message if the workload estimate creation failed.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "Mixin for common fields returned by CRUD APIs", + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#CurrencyCode": { + "type": "enum", + "members": { + "USD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USD" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#DataUnavailableException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

\n The requested data is currently unavailable.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteBillEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteBillEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteBillEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete bill estimate" + }, + "smithy.api#documentation": "

\n Deletes an existing bill estimate.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteBillEstimateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to delete.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteBillEstimateResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteBillScenario": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteBillScenarioRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteBillScenarioResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete a bill scenario" + }, + "smithy.api#documentation": "

\n Deletes an existing bill scenario.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteBillScenarioRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill scenario to delete.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteBillScenarioResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteWorkloadEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteWorkloadEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteWorkloadEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to delete the specified workload estimate" + }, + "smithy.api#documentation": "

\n Deletes an existing workload estimate.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteWorkloadEstimateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the workload estimate to delete.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#DeleteWorkloadEstimateResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#Expression": { + "type": "structure", + "members": { + "and": { + "target": "com.amazonaws.bcmpricingcalculator#ExpressionList", + "traits": { + "smithy.api#documentation": "

\n A list of expressions to be combined with AND logic.\n

" + } + }, + "or": { + "target": "com.amazonaws.bcmpricingcalculator#ExpressionList", + "traits": { + "smithy.api#documentation": "

\n A list of expressions to be combined with OR logic.\n

" + } + }, + "not": { + "target": "com.amazonaws.bcmpricingcalculator#Expression", + "traits": { + "smithy.api#documentation": "

\n An expression to be negated.\n

" + } + }, + "costCategories": { + "target": "com.amazonaws.bcmpricingcalculator#ExpressionFilter", + "traits": { + "smithy.api#documentation": "

\n Filters based on cost categories.\n

" + } + }, + "dimensions": { + "target": "com.amazonaws.bcmpricingcalculator#ExpressionFilter", + "traits": { + "smithy.api#documentation": "

\n Filters based on dimensions (e.g., service, operation).\n

" + } + }, + "tags": { + "target": "com.amazonaws.bcmpricingcalculator#ExpressionFilter", + "traits": { + "smithy.api#documentation": "

\n Filters based on resource tags.\n

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

\n Represents a complex filtering expression for cost and usage data.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ExpressionFilter": { + "type": "structure", + "members": { + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The key or attribute to filter on.\n

" + } + }, + "matchOptions": { + "target": "com.amazonaws.bcmpricingcalculator#StringList", + "traits": { + "smithy.api#documentation": "

\n The match options for the filter (e.g., equals, contains).\n

" + } + }, + "values": { + "target": "com.amazonaws.bcmpricingcalculator#StringList", + "traits": { + "smithy.api#documentation": "

\n The values to match against.\n

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

\n Represents a filter used within an expression.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ExpressionList": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#Expression" + } + }, + "com.amazonaws.bcmpricingcalculator#FilterTimestamp": { + "type": "structure", + "members": { + "afterTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

\n Include results after this timestamp.\n

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

\n Include results before this timestamp.\n

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

\n Represents a time-based filter.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#GetBillEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#GetBillEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#GetBillEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve details of a bill estimate including estimated cost" + }, + "smithy.api#documentation": "

\n Retrieves details of a specific bill estimate.\n

", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetBillEstimateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to retrieve.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetBillEstimateResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the retrieved bill estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName", + "traits": { + "smithy.api#documentation": "

\n The name of the retrieved bill estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the bill estimate.\n

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

\n An error message if the bill estimate retrieval failed.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the bill estimate.\n

" + } + }, + "costSummary": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCostSummary", + "traits": { + "smithy.api#documentation": "

\n A summary of the estimated costs.\n

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

\n The timestamp when the bill estimate was created.\n

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

\n The timestamp when the bill estimate will expire.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetBillScenario": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#GetBillScenarioRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#GetBillScenarioResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve information associated with a bill scenario" + }, + "smithy.api#documentation": "

\n Retrieves details of a specific bill scenario.\n

", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetBillScenarioRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill scenario to retrieve.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetBillScenarioResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the retrieved bill scenario.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName", + "traits": { + "smithy.api#documentation": "

\n The name of the retrieved bill scenario.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the bill scenario.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the bill scenario.\n

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

\n The timestamp when the bill scenario was created.\n

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

\n The timestamp when the bill scenario will expire.\n

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

\n An error message if the bill scenario retrieval failed.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetPreferences": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#GetPreferencesRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#GetPreferencesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve applicable rate type preferences for the account" + }, + "smithy.api#documentation": "

\n Retrieves the current preferences for the Amazon Web Services Cost Explorer service.\n

", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetPreferencesRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetPreferencesResponse": { + "type": "structure", + "members": { + "managementAccountRateTypeSelections": { + "target": "com.amazonaws.bcmpricingcalculator#RateTypes", + "traits": { + "smithy.api#documentation": "

\n The preferred rate types for the management account.\n

" + } + }, + "memberAccountRateTypeSelections": { + "target": "com.amazonaws.bcmpricingcalculator#RateTypes", + "traits": { + "smithy.api#documentation": "

\n The preferred rate types for member accounts.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetWorkloadEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#GetWorkloadEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#GetWorkloadEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to retrieve information associated with a workload estimate" + }, + "smithy.api#documentation": "

\n Retrieves details of a specific workload estimate.\n

", + "smithy.api#readonly": {}, + "smithy.test#smokeTests": [ + { + "id": "GetWorkloadEstimate", + "params": { + "identifier": "9bb1df8b-5978-4fcb-9c5c-99f5b2670076" + }, + "expect": { + "failure": {} + }, + "vendorParamsShape": "aws.test#AwsVendorParams" + } + ] + } + }, + "com.amazonaws.bcmpricingcalculator#GetWorkloadEstimateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the workload estimate to retrieve.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#GetWorkloadEstimateResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the retrieved workload estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName", + "traits": { + "smithy.api#documentation": "

\n The name of the retrieved workload estimate.\n

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

\n The timestamp when the workload estimate was created.\n

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

\n The timestamp when the workload estimate will expire.\n

" + } + }, + "rateType": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType", + "traits": { + "smithy.api#documentation": "

\n The type of pricing rates used for the estimate.\n

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

\n The timestamp of the pricing rates used for the estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the workload estimate.\n

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

\n The total estimated cost for the workload.\n

" + } + }, + "costCurrency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency of the estimated cost.\n

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

\n An error message if the workload estimate retrieval failed.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "Mixin for common fields returned by CRUD APIs", + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code associated with the usage.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with the usage.\n

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

\n The location associated with the usage.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with the usage.\n

", + "smithy.api#required": {} + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time interval for the historical usage data.\n

", + "smithy.api#required": {} + } + }, + "filterExpression": { + "target": "com.amazonaws.bcmpricingcalculator#Expression", + "traits": { + "smithy.api#documentation": "

\n An optional filter expression to apply to the historical usage data.\n

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

\n Represents historical usage data for a specific entity.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "retryAfterSeconds": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

\n An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support.\n

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

\n An internal error has occurred. Retry your request, but if the problem persists, contact Amazon Web Services support.\n

", + "smithy.api#error": "server", + "smithy.api#httpError": 500 + } + }, + "com.amazonaws.bcmpricingcalculator#Key": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 10 + }, + "smithy.api#pattern": "^[a-zA-Z0-9]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateCommitments": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateCommitmentsRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateCommitmentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list commitments associated with the specified bill estimate" + }, + "smithy.api#documentation": "

\n Lists the commitments associated with a bill estimate.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateCommitmentsRequest": { + "type": "structure", + "members": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to list commitments for.\n

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bcmpricingcalculator#NextPageToken", + "traits": { + "smithy.api#documentation": "

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateCommitmentsResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCommitmentSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of commitments associated with the bill estimate.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputCommitmentModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputCommitmentModificationsRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputCommitmentModificationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list added or removed commitments for a specified bill estimate" + }, + "smithy.api#documentation": "

\n Lists the input commitment modifications associated with a bill estimate.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputCommitmentModificationsRequest": { + "type": "structure", + "members": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to list input commitment modifications for.\n

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bcmpricingcalculator#NextPageToken", + "traits": { + "smithy.api#documentation": "

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputCommitmentModificationsResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateInputCommitmentModificationSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of input commitment modifications associated with the bill estimate.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputUsageModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputUsageModificationsRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputUsageModificationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list added or modified usage for a specified bill estimate" + }, + "smithy.api#documentation": "

\n Lists the input usage modifications associated with a bill estimate.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputUsageModificationsRequest": { + "type": "structure", + "members": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to list input usage modifications for.\n

", + "smithy.api#required": {} + } + }, + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListUsageFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of input usage modifications.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateInputUsageModificationsResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateInputUsageModificationSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of input usage modifications associated with the bill estimate.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItems": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list result line items for a specified bill estimate" + }, + "smithy.api#documentation": "

\n Lists the line items associated with a bill estimate.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilterName", + "traits": { + "smithy.api#documentation": "

\n The name of the filter attribute.\n

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilterValues", + "traits": { + "smithy.api#documentation": "

\n The values to filter by.\n

", + "smithy.api#required": {} + } + }, + "matchOption": { + "target": "com.amazonaws.bcmpricingcalculator#MatchOption", + "traits": { + "smithy.api#documentation": "

\n The match option for the filter (e.g., equals, contains).\n

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

\n Represents a filter for listing bill estimate line items.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilterName": { + "type": "enum", + "members": { + "USAGE_ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USAGE_ACCOUNT_ID" + } + }, + "SERVICE_CODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_CODE" + } + }, + "USAGE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USAGE_TYPE" + } + }, + "OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPERATION" + } + }, + "LOCATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOCATION" + } + }, + "LINE_ITEM_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINE_ITEM_TYPE" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilterValues": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilter" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsRequest": { + "type": "structure", + "members": { + "billEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to list line items for.\n

", + "smithy.api#required": {} + } + }, + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of line items.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimateLineItemsResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateLineItemSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of line items associated with the bill estimate.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimates": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimatesRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list bill estimates" + }, + "smithy.api#documentation": "

\n Lists all bill estimates for the account.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilterName", + "traits": { + "smithy.api#documentation": "

\n The name of the filter attribute.\n

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilterValues", + "traits": { + "smithy.api#documentation": "

\n The values to filter by.\n

", + "smithy.api#required": {} + } + }, + "matchOption": { + "target": "com.amazonaws.bcmpricingcalculator#MatchOption", + "traits": { + "smithy.api#documentation": "

\n The match option for the filter (e.g., equals, contains).\n

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

\n Represents a filter for listing bill estimates.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilterName": { + "type": "enum", + "members": { + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STATUS" + } + }, + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NAME" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilterValues": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilter" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimatesRequest": { + "type": "structure", + "members": { + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillEstimatesFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of bill estimates.\n

" + } + }, + "createdAtFilter": { + "target": "com.amazonaws.bcmpricingcalculator#FilterTimestamp", + "traits": { + "smithy.api#documentation": "

\n Filter bill estimates based on their creation date.\n

" + } + }, + "expiresAtFilter": { + "target": "com.amazonaws.bcmpricingcalculator#FilterTimestamp", + "traits": { + "smithy.api#documentation": "

\n Filter bill estimates based on their expiration date.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillEstimatesResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of bill estimates for the account.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarioCommitmentModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarioCommitmentModificationsRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarioCommitmentModificationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list commitments included in a bill scenario" + }, + "smithy.api#documentation": "

\n Lists the commitment modifications associated with a bill scenario.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarioCommitmentModificationsRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill scenario to list commitment modifications for.\n

", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.bcmpricingcalculator#NextPageToken", + "traits": { + "smithy.api#documentation": "

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarioCommitmentModificationsResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioCommitmentModificationItems", + "traits": { + "smithy.api#documentation": "

\n The list of commitment modifications associated with the bill scenario.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarioUsageModifications": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarioUsageModificationsRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenarioUsageModificationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list usage lines of a specified bill scenario" + }, + "smithy.api#documentation": "

\n Lists the usage modifications associated with a bill scenario.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarioUsageModificationsRequest": { + "type": "structure", + "members": { + "billScenarioId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill scenario to list usage modifications for.\n

", + "smithy.api#required": {} + } + }, + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListUsageFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of usage modifications.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarioUsageModificationsResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioUsageModificationItems", + "traits": { + "smithy.api#documentation": "

\n The list of usage modifications associated with the bill scenario.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenarios": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenariosRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenariosResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list bill scenarios" + }, + "smithy.api#documentation": "

\n Lists all bill scenarios for the account.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilterName", + "traits": { + "smithy.api#documentation": "

\n The name of the filter attribute.\n

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilterValues", + "traits": { + "smithy.api#documentation": "

\n The values to filter by.\n

", + "smithy.api#required": {} + } + }, + "matchOption": { + "target": "com.amazonaws.bcmpricingcalculator#MatchOption", + "traits": { + "smithy.api#documentation": "

\n The match option for the filter (e.g., equals, contains).\n

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

\n Represents a filter for listing bill scenarios.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilterName": { + "type": "enum", + "members": { + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STATUS" + } + }, + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NAME" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilterValues": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilter" + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenariosRequest": { + "type": "structure", + "members": { + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListBillScenariosFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of bill scenarios.\n

" + } + }, + "createdAtFilter": { + "target": "com.amazonaws.bcmpricingcalculator#FilterTimestamp", + "traits": { + "smithy.api#documentation": "

\n Filter bill scenarios based on their creation date.\n

" + } + }, + "expiresAtFilter": { + "target": "com.amazonaws.bcmpricingcalculator#FilterTimestamp", + "traits": { + "smithy.api#documentation": "

\n Filter bill scenarios based on their expiration date.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListBillScenariosResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of bill scenarios for the account.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListTagsForResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListTagsForResourceRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListTagsForResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to return a list of tags for a resource" + }, + "smithy.api#documentation": "

\n Lists all tags associated with a specified resource.\n

", + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListTagsForResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.bcmpricingcalculator#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the resource to list tags for.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListTagsForResourceResponse": { + "type": "structure", + "members": { + "tags": { + "target": "com.amazonaws.bcmpricingcalculator#Tags", + "traits": { + "smithy.api#documentation": "

\n The list of tags associated with the specified resource.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListUsageFilter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#ListUsageFilterName", + "traits": { + "smithy.api#documentation": "

\n The name of the filter attribute.\n

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.bcmpricingcalculator#ListUsageFilterValues", + "traits": { + "smithy.api#documentation": "

\n The values to filter by.\n

", + "smithy.api#required": {} + } + }, + "matchOption": { + "target": "com.amazonaws.bcmpricingcalculator#MatchOption", + "traits": { + "smithy.api#documentation": "

\n The match option for the filter (e.g., equals, contains).\n

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

\n Represents a filter for listing usage data.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ListUsageFilterName": { + "type": "enum", + "members": { + "USAGE_ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USAGE_ACCOUNT_ID" + } + }, + "SERVICE_CODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SERVICE_CODE" + } + }, + "USAGE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USAGE_TYPE" + } + }, + "OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OPERATION" + } + }, + "LOCATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOCATION" + } + }, + "USAGE_GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "USAGE_GROUP" + } + }, + "HISTORICAL_USAGE_ACCOUNT_ID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HISTORICAL_USAGE_ACCOUNT_ID" + } + }, + "HISTORICAL_SERVICE_CODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HISTORICAL_SERVICE_CODE" + } + }, + "HISTORICAL_USAGE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HISTORICAL_USAGE_TYPE" + } + }, + "HISTORICAL_OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HISTORICAL_OPERATION" + } + }, + "HISTORICAL_LOCATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HISTORICAL_LOCATION" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#ListUsageFilterValues": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#ListUsageFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ListUsageFilter" + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimateUsage": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimateUsageRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimateUsageResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list usage lines for the specified workload estimate" + }, + "smithy.api#documentation": "

\n Lists the usage associated with a workload estimate.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimateUsageRequest": { + "type": "structure", + "members": { + "workloadEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the workload estimate to list usage for.\n

", + "smithy.api#required": {} + } + }, + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListUsageFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of usage items.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimateUsageResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageItems", + "traits": { + "smithy.api#documentation": "

\n The list of usage items associated with the workload estimate.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimates": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to list workload estimates" + }, + "smithy.api#documentation": "

\n Lists all workload estimates for the account.\n

", + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "items" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilter": { + "type": "structure", + "members": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilterName", + "traits": { + "smithy.api#documentation": "

\n The name of the filter attribute.\n

", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilterValues", + "traits": { + "smithy.api#documentation": "

\n The values to filter by.\n

", + "smithy.api#required": {} + } + }, + "matchOption": { + "target": "com.amazonaws.bcmpricingcalculator#MatchOption", + "traits": { + "smithy.api#documentation": "

\n The match option for the filter (e.g., equals, contains).\n

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

\n Represents a filter for listing workload estimates.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilterName": { + "type": "enum", + "members": { + "STATUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STATUS" + } + }, + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NAME" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilterValues": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilters": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilter" + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesRequest": { + "type": "structure", + "members": { + "createdAtFilter": { + "target": "com.amazonaws.bcmpricingcalculator#FilterTimestamp", + "traits": { + "smithy.api#documentation": "

\n Filter workload estimates based on their creation date.\n

" + } + }, + "expiresAtFilter": { + "target": "com.amazonaws.bcmpricingcalculator#FilterTimestamp", + "traits": { + "smithy.api#documentation": "

\n Filter workload estimates based on their expiration date.\n

" + } + }, + "filters": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesFilters", + "traits": { + "smithy.api#documentation": "

\n Filters to apply to the list of workload estimates.\n

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

\n A token to retrieve the next page of results.\n

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

\n The maximum number of results to return per page.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimatesResponse": { + "type": "structure", + "members": { + "items": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateSummaries", + "traits": { + "smithy.api#documentation": "

\n The list of workload estimates for the account.\n

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

\n A token to retrieve the next page of results, if any.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#MatchOption": { + "type": "enum", + "members": { + "EQUALS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EQUALS" + } + }, + "STARTS_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STARTS_WITH" + } + }, + "CONTAINS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINS" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "max": 25 + } + } + }, + "com.amazonaws.bcmpricingcalculator#NegateReservedInstanceAction": { + "type": "structure", + "members": { + "reservedInstancesId": { + "target": "com.amazonaws.bcmpricingcalculator#Uuid", + "traits": { + "smithy.api#documentation": "

\n The ID of the Reserved Instance to remove.\n

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

\n Represents an action to remove a Reserved Instance from a bill scenario.\n

\n

\n This is the ID of an existing Reserved Instance in your account.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#NegateSavingsPlanAction": { + "type": "structure", + "members": { + "savingsPlanId": { + "target": "com.amazonaws.bcmpricingcalculator#Uuid", + "traits": { + "smithy.api#documentation": "

\n The ID of the Savings Plan to remove.\n

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

\n Represents an action to remove a Savings Plan from a bill scenario.\n

\n

\n This is the ID of an existing Savings Plan in your account.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#NextPageToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^[\\S\\s]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#Operation": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 32 + }, + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:,]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#PurchaseAgreementType": { + "type": "enum", + "members": { + "SAVINGS_PLANS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SAVINGS_PLANS" + } + }, + "RESERVED_INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RESERVED_INSTANCE" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#RateType": { + "type": "enum", + "members": { + "BEFORE_DISCOUNTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEFORE_DISCOUNTS" + } + }, + "AFTER_DISCOUNTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFTER_DISCOUNTS" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#RateTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#RateType" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, + "com.amazonaws.bcmpricingcalculator#ReservedInstanceInstanceCount": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.bcmpricingcalculator#ResourceId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource that was not found.\n

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

\n The type of the resource that was not found.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ResourceNotFoundCode", + "httpResponseCode": 404 + }, + "smithy.api#documentation": "

\n The specified resource was not found.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.bcmpricingcalculator#ResourceTagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\w\\s:+=@/-]+$" + } + }, + "com.amazonaws.bcmpricingcalculator#ResourceTagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceTagKey" + }, + "traits": { + "aws.api#data": "tagging", + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.bcmpricingcalculator#ResourceTagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[\\w\\s:+=@/-]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#SavingsPlanArns": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#SavingsPlanCommitment": { + "type": "double", + "traits": { + "smithy.api#range": { + "min": 0.001, + "max": 1000000 + } + } + }, + "com.amazonaws.bcmpricingcalculator#ServiceCode": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 32 + }, + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:, \\/()]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#ServiceCostDifferenceMap": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "com.amazonaws.bcmpricingcalculator#CostDifference" + } + }, + "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The identifier of the resource that exceeded quota.\n

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

\n The type of the resource that exceeded quota.\n

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

\n The service code that exceeded quota.\n

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

\n The quota code that was exceeded.\n

" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ServiceQuotaCode", + "httpResponseCode": 402 + }, + "smithy.api#documentation": "

\n The request would cause you to exceed your service quota.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 402 + } + }, + "com.amazonaws.bcmpricingcalculator#StringList": { + "type": "list", + "member": { + "target": "smithy.api#String" + } + }, + "com.amazonaws.bcmpricingcalculator#TagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#TagResourceRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#TagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to add a tag to a resource" + }, + "smithy.api#documentation": "

\n Adds one or more tags to a specified resource.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#TagResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.bcmpricingcalculator#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the resource to add tags to.\n

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

\n The tags to add to the resource.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#TagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#Tags": { + "type": "map", + "key": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceTagKey" + }, + "value": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceTagValue" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 200 + } + } + }, + "com.amazonaws.bcmpricingcalculator#ThrottlingException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The service code that exceeded the throttling limit.

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

The quota code that exceeded the throttling limit.

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

The service code that exceeded the throttling limit. Retry your \n request, but if the problem persists, contact Amazon Web Services support.

", + "smithy.api#httpHeader": "Retry-After" + } + } + }, + "traits": { + "aws.protocols#awsQueryError": { + "code": "ThrottlingCode", + "httpResponseCode": 429 + }, + "smithy.api#documentation": "

\n The request was denied due to request throttling.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 429 + } + }, + "com.amazonaws.bcmpricingcalculator#UntagResource": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#UntagResourceRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#UntagResourceResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to remove a tag from a resource" + }, + "smithy.api#documentation": "

\n Removes one or more tags from a specified resource.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#UntagResourceRequest": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.bcmpricingcalculator#Arn", + "traits": { + "smithy.api#documentation": "

\n The Amazon Resource Name (ARN) of the resource to remove tags from.\n

", + "smithy.api#required": {} + } + }, + "tagKeys": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceTagKeys", + "traits": { + "smithy.api#documentation": "

\n The keys of the tags to remove from the resource.\n

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UntagResourceResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateBillEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateBillEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateBillEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update bill estimate name and expiration date time" + }, + "smithy.api#documentation": "

\n Updates an existing bill estimate.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateBillEstimateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill estimate to update.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName", + "traits": { + "smithy.api#documentation": "

\n The new name for the bill estimate.\n

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

\n The new expiration date for the bill estimate.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateBillEstimateResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the updated bill estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateName", + "traits": { + "smithy.api#documentation": "

\n The updated name of the bill estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the updated bill estimate.\n

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

\n An error message if the bill estimate update failed.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the updated bill estimate.\n

" + } + }, + "costSummary": { + "target": "com.amazonaws.bcmpricingcalculator#BillEstimateCostSummary", + "traits": { + "smithy.api#documentation": "

\n A summary of the updated estimated costs.\n

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

\n The timestamp when the bill estimate was originally created.\n

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

\n The updated expiration timestamp for the bill estimate.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateBillScenario": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateBillScenarioRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateBillScenarioResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update name and expiration date time of the specified bill scenario" + }, + "smithy.api#documentation": "

\n Updates an existing bill scenario.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateBillScenarioRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the bill scenario to update.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName", + "traits": { + "smithy.api#documentation": "

\n The new name for the bill scenario.\n

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

\n The new expiration date for the bill scenario.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateBillScenarioResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the updated bill scenario.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "billScenarioId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioName", + "traits": { + "smithy.api#documentation": "

\n The updated name of the bill scenario.\n

" + } + }, + "billInterval": { + "target": "com.amazonaws.bcmpricingcalculator#BillInterval", + "traits": { + "smithy.api#documentation": "

\n The time period covered by the updated bill scenario.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#BillScenarioStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the updated bill scenario.\n

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

\n The timestamp when the bill scenario was originally created.\n

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

\n The updated expiration timestamp for the bill scenario.\n

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

\n An error message if the bill scenario update failed.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdatePreferences": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#UpdatePreferencesRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#UpdatePreferencesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ServiceQuotaExceededException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update rate type preferences for the account" + }, + "smithy.api#documentation": "

\n Updates the preferences for the Amazon Web Services Cost Explorer service.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdatePreferencesRequest": { + "type": "structure", + "members": { + "managementAccountRateTypeSelections": { + "target": "com.amazonaws.bcmpricingcalculator#RateTypes", + "traits": { + "smithy.api#documentation": "

\n The updated preferred rate types for the management account.\n

" + } + }, + "memberAccountRateTypeSelections": { + "target": "com.amazonaws.bcmpricingcalculator#RateTypes", + "traits": { + "smithy.api#documentation": "

\n The updated preferred rate types for member accounts.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdatePreferencesResponse": { + "type": "structure", + "members": { + "managementAccountRateTypeSelections": { + "target": "com.amazonaws.bcmpricingcalculator#RateTypes", + "traits": { + "smithy.api#documentation": "

\n The updated preferred rate types for the management account.\n

" + } + }, + "memberAccountRateTypeSelections": { + "target": "com.amazonaws.bcmpricingcalculator#RateTypes", + "traits": { + "smithy.api#documentation": "

\n The updated preferred rate types for member accounts.\n

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateWorkloadEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateWorkloadEstimateRequest" + }, + "output": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateWorkloadEstimateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.bcmpricingcalculator#ConflictException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#DataUnavailableException" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#ResourceNotFoundException" + } + ], + "traits": { + "aws.iam#iamAction": { + "documentation": "Grants permission to update name and expiration date time of the specified workload estimate" + }, + "smithy.api#documentation": "

\n Updates an existing workload estimate.\n

", + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateWorkloadEstimateRequest": { + "type": "structure", + "members": { + "identifier": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the workload estimate to update.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName", + "traits": { + "smithy.api#documentation": "

\n The new name for the workload estimate.\n

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

\n The new expiration date for the workload estimate.\n

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UpdateWorkloadEstimateResponse": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the updated workload estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName", + "traits": { + "smithy.api#documentation": "

\n The updated name of the workload estimate.\n

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

\n The timestamp when the workload estimate was originally created.\n

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

\n The updated expiration timestamp for the workload estimate.\n

" + } + }, + "rateType": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType", + "traits": { + "smithy.api#documentation": "

\n The type of pricing rates used for the updated estimate.\n

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

\n The timestamp of the pricing rates used for the updated estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the updated workload estimate.\n

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

\n The updated total estimated cost for the workload.\n

" + } + }, + "costCurrency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency of the updated estimated cost.\n

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

\n An error message if the workload estimate update failed.\n

" + } + } + }, + "traits": { + "smithy.api#documentation": "Mixin for common fields returned by CRUD APIs", + "smithy.api#output": {} + } + }, + "com.amazonaws.bcmpricingcalculator#UsageAmount": { + "type": "structure", + "members": { + "startHour": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

\n The start hour of the usage period.\n

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

\n The usage amount for the period.\n

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

\n Represents a usage amount for a specific time period.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#UsageAmounts": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#UsageAmount" + } + }, + "com.amazonaws.bcmpricingcalculator#UsageGroup": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 30 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#UsageQuantities": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#UsageQuantity" + } + }, + "com.amazonaws.bcmpricingcalculator#UsageQuantity": { + "type": "structure", + "members": { + "startHour": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

\n The start hour of the usage period.\n

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

\n The unit of measurement for the usage quantity.\n

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

\n The numeric value of the usage quantity.\n

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

\n Represents a usage quantity with associated unit and time period.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#UsageQuantityResult": { + "type": "structure", + "members": { + "amount": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "

\n The numeric value of the usage quantity result.\n

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

\n The unit of measurement for the usage quantity result.\n

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

\n Represents the result of a usage quantity calculation.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#UsageType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 128 + }, + "smithy.api#pattern": "^[-a-zA-Z0-9\\.\\-_:,]*$" + } + }, + "com.amazonaws.bcmpricingcalculator#Uuid": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 36, + "max": 36 + }, + "smithy.api#pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + } + }, + "com.amazonaws.bcmpricingcalculator#ValidationException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.amazonaws.bcmpricingcalculator#ValidationExceptionReason", + "traits": { + "smithy.api#documentation": "

\n The reason for the validation exception.\n

" + } + }, + "fieldList": { + "target": "com.amazonaws.bcmpricingcalculator#ValidationExceptionFieldList", + "traits": { + "smithy.api#documentation": "

\n The list of fields that are invalid.\n

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

\n The input provided fails to satisfy the constraints specified by an Amazon Web Services service.\n

", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.bcmpricingcalculator#ValidationExceptionField": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The name of the field that failed validation.\n

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

\n The error message describing why the field failed validation.\n

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

\n Represents a field that failed validation in a request.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#ValidationExceptionFieldList": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#ValidationExceptionField" + } + }, + "com.amazonaws.bcmpricingcalculator#ValidationExceptionReason": { + "type": "enum", + "members": { + "UNKNOWN_OPERATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknownOperation" + } + }, + "CANNOT_PARSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cannotParse" + } + }, + "FIELD_VALIDATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "fieldValidationFailed" + } + }, + "INVALID_REQUEST_FROM_MEMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "invalidRequestFromMember" + } + }, + "DISALLOWED_RATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disallowedRate" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "other" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimate": { + "type": "resource", + "identifiers": { + "workloadEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "properties": { + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName" + }, + "createdAt": { + "target": "smithy.api#Timestamp" + }, + "expiresAt": { + "target": "smithy.api#Timestamp" + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateStatus" + }, + "failureMessage": { + "target": "smithy.api#String" + }, + "rateType": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType" + }, + "rateTimestamp": { + "target": "smithy.api#Timestamp" + }, + "totalCost": { + "target": "smithy.api#Double" + }, + "costCurrency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode" + } + }, + "create": { + "target": "com.amazonaws.bcmpricingcalculator#CreateWorkloadEstimate" + }, + "read": { + "target": "com.amazonaws.bcmpricingcalculator#GetWorkloadEstimate" + }, + "update": { + "target": "com.amazonaws.bcmpricingcalculator#UpdateWorkloadEstimate" + }, + "delete": { + "target": "com.amazonaws.bcmpricingcalculator#DeleteWorkloadEstimate" + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimates" + }, + "resources": [ + { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsage" + } + ], + "traits": { + "aws.api#arn": { + "template": "workload-estimate/{workloadEstimateId}" + }, + "aws.api#taggable": {}, + "aws.iam#iamResource": { + "name": "workload-estimate" + }, + "smithy.api#documentation": "Represents a workload estimate that allows usage modeling" + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateCostStatus": { + "type": "enum", + "members": { + "VALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALID" + } + }, + "INVALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID" + } + }, + "STALE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STALE" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName": { + "type": "string", + "traits": { + "smithy.api#length": { + "max": 64 + }, + "smithy.api#pattern": "^[a-zA-Z0-9-]+$" + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType": { + "type": "enum", + "members": { + "BEFORE_DISCOUNTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEFORE_DISCOUNTS" + } + }, + "AFTER_DISCOUNTS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFTER_DISCOUNTS" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateStatus": { + "type": "enum", + "members": { + "UPDATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPDATING" + } + }, + "VALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VALID" + } + }, + "INVALID": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID" + } + }, + "ACTION_NEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTION_NEEDED" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateSummary" + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateSummary": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId", + "traits": { + "smithy.api#documentation": "

\n The unique identifier of the workload estimate.\n

", + "smithy.api#required": {}, + "smithy.api#resourceIdentifier": "workloadEstimateId" + } + }, + "name": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateName", + "traits": { + "smithy.api#documentation": "

\n The name of the workload estimate.\n

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

\n The timestamp when the workload estimate was created.\n

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

\n The timestamp when the workload estimate will expire.\n

" + } + }, + "rateType": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateRateType", + "traits": { + "smithy.api#documentation": "

\n The type of pricing rates used for the estimate.\n

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

\n The timestamp of the pricing rates used for the estimate.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of the workload estimate.\n

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

\n The total estimated cost for the workload.\n

" + } + }, + "costCurrency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency of the estimated cost.\n

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

\n An error message if the workload estimate creation or processing failed.\n

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

\n Provides a summary of a workload estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUpdateUsageErrorCode": { + "type": "enum", + "members": { + "BAD_REQUEST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BAD_REQUEST" + } + }, + "NOT_FOUND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_FOUND" + } + }, + "CONFLICT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONFLICT" + } + }, + "INTERNAL_SERVER_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTERNAL_SERVER_ERROR" + } + } + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsage": { + "type": "resource", + "identifiers": { + "workloadEstimateId": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + }, + "id": { + "target": "com.amazonaws.bcmpricingcalculator#ResourceId" + } + }, + "list": { + "target": "com.amazonaws.bcmpricingcalculator#ListWorkloadEstimateUsage" + }, + "collectionOperations": [ + { + "target": "com.amazonaws.bcmpricingcalculator#BatchCreateWorkloadEstimateUsage" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BatchDeleteWorkloadEstimateUsage" + }, + { + "target": "com.amazonaws.bcmpricingcalculator#BatchUpdateWorkloadEstimateUsage" + } + ], + "traits": { + "aws.iam#disableConditionKeyInference": {} + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageItem": { + "type": "structure", + "members": { + "serviceCode": { + "target": "com.amazonaws.bcmpricingcalculator#ServiceCode", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services service code associated with this usage item.\n

", + "smithy.api#required": {} + } + }, + "usageType": { + "target": "com.amazonaws.bcmpricingcalculator#UsageType", + "traits": { + "smithy.api#documentation": "

\n The type of usage for this item.\n

", + "smithy.api#required": {} + } + }, + "operation": { + "target": "com.amazonaws.bcmpricingcalculator#Operation", + "traits": { + "smithy.api#documentation": "

\n The specific operation associated with this usage item.\n

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

\n The location associated with this usage item.\n

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

\n The unique identifier of this usage item.\n

" + } + }, + "usageAccountId": { + "target": "com.amazonaws.bcmpricingcalculator#AccountId", + "traits": { + "smithy.api#documentation": "

\n The Amazon Web Services account ID associated with this usage item.\n

" + } + }, + "group": { + "target": "com.amazonaws.bcmpricingcalculator#UsageGroup", + "traits": { + "smithy.api#documentation": "

\n The group identifier for this usage item.\n

" + } + }, + "quantity": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageQuantity", + "traits": { + "smithy.api#documentation": "

\n The estimated usage quantity for this item.\n

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

\n The estimated cost for this usage item.\n

" + } + }, + "currency": { + "target": "com.amazonaws.bcmpricingcalculator#CurrencyCode", + "traits": { + "smithy.api#documentation": "

\n The currency of the estimated cost.\n

" + } + }, + "status": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateCostStatus", + "traits": { + "smithy.api#documentation": "

\n The current status of this usage item.\n

" + } + }, + "historicalUsage": { + "target": "com.amazonaws.bcmpricingcalculator#HistoricalUsageEntity", + "traits": { + "smithy.api#documentation": "

\n Historical usage data associated with this item, if available.\n

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

\n Represents a usage item in a workload estimate.\n

" + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageItems": { + "type": "list", + "member": { + "target": "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageItem" + } + }, + "com.amazonaws.bcmpricingcalculator#WorkloadEstimateUsageQuantity": { + "type": "structure", + "members": { + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

\n The unit of measurement for the usage quantity.\n

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

\n The numeric value of the usage quantity.\n

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

\n Represents a usage quantity for a workload estimate.\n

" + } + } + } +}