From 0cb953f30ebf18707242938aff5231f138ee3aa2 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Mon, 6 Jan 2020 11:05:41 -0800 Subject: [PATCH] feat: add client-marketplace-catalog (#643) --- clients/client-marketplace-catalog/.gitignore | 14 + clients/client-marketplace-catalog/.npmignore | 4 + clients/client-marketplace-catalog/LICENSE | 201 +++ .../MarketplaceCatalog.ts | 277 ++++ .../MarketplaceCatalogClient.ts | 224 +++ clients/client-marketplace-catalog/README.md | 6 + .../commands/CancelChangeSetCommand.ts | 84 ++ .../commands/DescribeChangeSetCommand.ts | 84 ++ .../commands/DescribeEntityCommand.ts | 81 ++ .../commands/ListChangeSetsCommand.ts | 81 ++ .../commands/ListEntitiesCommand.ts | 81 ++ .../commands/StartChangeSetCommand.ts | 81 ++ .../client-marketplace-catalog/endpoints.ts | 78 ++ clients/client-marketplace-catalog/index.ts | 8 + .../models/index.ts | 970 +++++++++++++ .../client-marketplace-catalog/package.json | 75 + .../protocols/Aws_restJson1_1.ts | 1233 +++++++++++++++++ .../runtimeConfig.browser.ts | 30 + .../runtimeConfig.shared.ts | 7 + .../runtimeConfig.ts | 31 + .../tsconfig.es.json | 19 + .../client-marketplace-catalog/tsconfig.json | 27 + 22 files changed, 3696 insertions(+) create mode 100644 clients/client-marketplace-catalog/.gitignore create mode 100644 clients/client-marketplace-catalog/.npmignore create mode 100644 clients/client-marketplace-catalog/LICENSE create mode 100644 clients/client-marketplace-catalog/MarketplaceCatalog.ts create mode 100644 clients/client-marketplace-catalog/MarketplaceCatalogClient.ts create mode 100644 clients/client-marketplace-catalog/README.md create mode 100644 clients/client-marketplace-catalog/commands/CancelChangeSetCommand.ts create mode 100644 clients/client-marketplace-catalog/commands/DescribeChangeSetCommand.ts create mode 100644 clients/client-marketplace-catalog/commands/DescribeEntityCommand.ts create mode 100644 clients/client-marketplace-catalog/commands/ListChangeSetsCommand.ts create mode 100644 clients/client-marketplace-catalog/commands/ListEntitiesCommand.ts create mode 100644 clients/client-marketplace-catalog/commands/StartChangeSetCommand.ts create mode 100644 clients/client-marketplace-catalog/endpoints.ts create mode 100644 clients/client-marketplace-catalog/index.ts create mode 100644 clients/client-marketplace-catalog/models/index.ts create mode 100644 clients/client-marketplace-catalog/package.json create mode 100644 clients/client-marketplace-catalog/protocols/Aws_restJson1_1.ts create mode 100644 clients/client-marketplace-catalog/runtimeConfig.browser.ts create mode 100644 clients/client-marketplace-catalog/runtimeConfig.shared.ts create mode 100644 clients/client-marketplace-catalog/runtimeConfig.ts create mode 100644 clients/client-marketplace-catalog/tsconfig.es.json create mode 100644 clients/client-marketplace-catalog/tsconfig.json diff --git a/clients/client-marketplace-catalog/.gitignore b/clients/client-marketplace-catalog/.gitignore new file mode 100644 index 000000000000..b41c05b597c4 --- /dev/null +++ b/clients/client-marketplace-catalog/.gitignore @@ -0,0 +1,14 @@ +/node_modules/ +/build/ +/coverage/ +/docs/ +/types/ +/dist/ +*.tsbuildinfo +*.tgz +*.log +package-lock.json + +*.d.ts +*.js +*.js.map diff --git a/clients/client-marketplace-catalog/.npmignore b/clients/client-marketplace-catalog/.npmignore new file mode 100644 index 000000000000..b7ff81137c4a --- /dev/null +++ b/clients/client-marketplace-catalog/.npmignore @@ -0,0 +1,4 @@ +/coverage/ +/docs/ +tsconfig.test.json +*.tsbuildinfo diff --git a/clients/client-marketplace-catalog/LICENSE b/clients/client-marketplace-catalog/LICENSE new file mode 100644 index 000000000000..b7d2463d8cc0 --- /dev/null +++ b/clients/client-marketplace-catalog/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 2020 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-marketplace-catalog/MarketplaceCatalog.ts b/clients/client-marketplace-catalog/MarketplaceCatalog.ts new file mode 100644 index 000000000000..1290c027e26e --- /dev/null +++ b/clients/client-marketplace-catalog/MarketplaceCatalog.ts @@ -0,0 +1,277 @@ +import { MarketplaceCatalogClient } from "./MarketplaceCatalogClient"; +import { + CancelChangeSetCommand, + CancelChangeSetCommandInput, + CancelChangeSetCommandOutput +} from "./commands/CancelChangeSetCommand"; +import { + DescribeChangeSetCommand, + DescribeChangeSetCommandInput, + DescribeChangeSetCommandOutput +} from "./commands/DescribeChangeSetCommand"; +import { + DescribeEntityCommand, + DescribeEntityCommandInput, + DescribeEntityCommandOutput +} from "./commands/DescribeEntityCommand"; +import { + ListChangeSetsCommand, + ListChangeSetsCommandInput, + ListChangeSetsCommandOutput +} from "./commands/ListChangeSetsCommand"; +import { + ListEntitiesCommand, + ListEntitiesCommandInput, + ListEntitiesCommandOutput +} from "./commands/ListEntitiesCommand"; +import { + StartChangeSetCommand, + StartChangeSetCommandInput, + StartChangeSetCommandOutput +} from "./commands/StartChangeSetCommand"; +import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types"; + +/** + * + *

Catalog API actions allow you to create, describe, list, and delete changes to your + * published entities. An entity is a product or an offer on AWS Marketplace.

+ * + *

You can automate your entity update process by integrating the AWS Marketplace Catalog + * API with your AWS Marketplace product build or deployment pipelines. You can also create + * your own applications on top of the Catalog API to manage your products on AWS + * Marketplace.

+ * + */ +export class MarketplaceCatalog extends MarketplaceCatalogClient { + /** + * + *

Provides the list of entities of a given type.

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

Returns the list of change sets owned by the account being used to make the call. You + * can filter this list by providing any combination of entityId, + * ChangeSetName, and status. If you provide more than one filter, the API + * operation applies a logical AND between the filters.

+ * + *

You can describe a change during the 60-day request history retention period for API + * calls.

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

Provides information about a given change set.

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

This operation allows you to request changes in your entities.

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

Returns the metadata and content of the entity.

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

Used to cancel an open change request. Must be sent before the status of the request + * changes to APPLYING, the final stage of completing your change request. You + * can describe a change during the 60-day request history retention period for API + * calls.

+ * + */ + public cancelChangeSet( + args: CancelChangeSetCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public cancelChangeSet( + args: CancelChangeSetCommandInput, + cb: (err: any, data?: CancelChangeSetCommandOutput) => void + ): void; + public cancelChangeSet( + args: CancelChangeSetCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CancelChangeSetCommandOutput) => void + ): void; + public cancelChangeSet( + args: CancelChangeSetCommandInput, + optionsOrCb?: + | __HttpHandlerOptions + | ((err: any, data?: CancelChangeSetCommandOutput) => void), + cb?: (err: any, data?: CancelChangeSetCommandOutput) => void + ): Promise | void { + const command = new CancelChangeSetCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") + throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } +} diff --git a/clients/client-marketplace-catalog/MarketplaceCatalogClient.ts b/clients/client-marketplace-catalog/MarketplaceCatalogClient.ts new file mode 100644 index 000000000000..66ed30d8305f --- /dev/null +++ b/clients/client-marketplace-catalog/MarketplaceCatalogClient.ts @@ -0,0 +1,224 @@ +import { + CancelChangeSetRequest, + CancelChangeSetResponse, + DescribeChangeSetRequest, + DescribeChangeSetResponse, + DescribeEntityRequest, + DescribeEntityResponse, + ListChangeSetsRequest, + ListChangeSetsResponse, + ListEntitiesRequest, + ListEntitiesResponse, + StartChangeSetRequest, + StartChangeSetResponse +} from "./models/index"; +import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig"; +import { + EndpointsInputConfig, + EndpointsResolvedConfig, + RegionInputConfig, + RegionResolvedConfig, + resolveEndpointsConfig, + resolveRegionConfig +} from "@aws-sdk/config-resolver"; +import { getContentLengthPlugin } from "@aws-sdk/middleware-content-length"; +import { + HostHeaderInputConfig, + HostHeaderResolvedConfig, + getHostHeaderPlugin, + resolveHostHeaderConfig +} from "@aws-sdk/middleware-host-header"; +import { + RetryInputConfig, + RetryResolvedConfig, + getRetryPlugin, + resolveRetryConfig +} from "@aws-sdk/middleware-retry"; +import { + AwsAuthInputConfig, + AwsAuthResolvedConfig, + getAwsAuthPlugin, + resolveAwsAuthConfig +} from "@aws-sdk/middleware-signing"; +import { + UserAgentInputConfig, + UserAgentResolvedConfig, + getUserAgentPlugin, + resolveUserAgentConfig +} from "@aws-sdk/middleware-user-agent"; +import { HttpHandler as __HttpHandler } from "@aws-sdk/protocol-http"; +import { + Client as __Client, + SmithyConfiguration as __SmithyConfiguration, + SmithyResolvedConfiguration as __SmithyResolvedConfiguration +} from "@aws-sdk/smithy-client"; +import { + RegionInfoProvider, + Credentials as __Credentials, + Decoder as __Decoder, + Encoder as __Encoder, + HashConstructor as __HashConstructor, + HttpHandlerOptions as __HttpHandlerOptions, + Provider as __Provider, + StreamCollector as __StreamCollector, + UrlParser as __UrlParser +} from "@aws-sdk/types"; + +export type ServiceInputTypes = + | CancelChangeSetRequest + | DescribeChangeSetRequest + | DescribeEntityRequest + | ListChangeSetsRequest + | ListEntitiesRequest + | StartChangeSetRequest; + +export type ServiceOutputTypes = + | CancelChangeSetResponse + | DescribeChangeSetResponse + | DescribeEntityResponse + | ListChangeSetsResponse + | ListEntitiesResponse + | StartChangeSetResponse; + +export interface ClientDefaults + extends Partial<__SmithyResolvedConfiguration<__HttpHandlerOptions>> { + /** + * The HTTP handler to use. Fetch in browser and Https in Nodejs. + */ + requestHandler?: __HttpHandler; + + /** + * A constructor for a class implementing the @aws-sdk/types.Hash interface + * that computes the SHA-256 HMAC or checksum of a string or binary buffer. + */ + sha256?: __HashConstructor; + + /** + * The function that will be used to convert strings into HTTP endpoints. + */ + urlParser?: __UrlParser; + + /** + * A function that can calculate the length of a request body. + */ + bodyLengthChecker?: (body: any) => number | undefined; + + /** + * A function that converts a stream into an array of bytes. + */ + streamCollector?: __StreamCollector; + + /** + * The function that will be used to convert a base64-encoded string to a byte array + */ + base64Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a base64-encoded string + */ + base64Encoder?: __Encoder; + + /** + * The function that will be used to convert a UTF8-encoded string to a byte array + */ + utf8Decoder?: __Decoder; + + /** + * The function that will be used to convert binary data to a UTF-8 encoded string + */ + utf8Encoder?: __Encoder; + + /** + * The string that will be used to populate default value in 'User-Agent' header + */ + defaultUserAgent?: string; + + /** + * The runtime environment + */ + runtime?: string; + + /** + * The service name with which to sign requests. + */ + signingName?: string; + + /** + * Default credentials provider; Not available in browser runtime + */ + credentialDefaultProvider?: (input: any) => __Provider<__Credentials>; + + /** + * Provider function that return promise of a region string + */ + regionDefaultProvider?: (input: any) => __Provider; + + /** + * Fetch related hostname, signing name or signing region with given region. + */ + regionInfoProvider?: RegionInfoProvider; +} + +export type MarketplaceCatalogClientConfig = Partial< + __SmithyConfiguration<__HttpHandlerOptions> +> & + ClientDefaults & + RegionInputConfig & + EndpointsInputConfig & + AwsAuthInputConfig & + RetryInputConfig & + UserAgentInputConfig & + HostHeaderInputConfig; + +export type MarketplaceCatalogClientResolvedConfig = __SmithyResolvedConfiguration< + __HttpHandlerOptions +> & + Required & + RegionResolvedConfig & + EndpointsResolvedConfig & + AwsAuthResolvedConfig & + RetryResolvedConfig & + UserAgentResolvedConfig & + HostHeaderResolvedConfig; + +/** + * + *

Catalog API actions allow you to create, describe, list, and delete changes to your + * published entities. An entity is a product or an offer on AWS Marketplace.

+ * + *

You can automate your entity update process by integrating the AWS Marketplace Catalog + * API with your AWS Marketplace product build or deployment pipelines. You can also create + * your own applications on top of the Catalog API to manage your products on AWS + * Marketplace.

+ * + */ +export class MarketplaceCatalogClient extends __Client< + __HttpHandlerOptions, + ServiceInputTypes, + ServiceOutputTypes, + MarketplaceCatalogClientResolvedConfig +> { + readonly config: MarketplaceCatalogClientResolvedConfig; + + constructor(configuration: MarketplaceCatalogClientConfig) { + let _config_0 = { + ...__ClientDefaultValues, + ...configuration + }; + let _config_1 = resolveRegionConfig(_config_0); + let _config_2 = resolveEndpointsConfig(_config_1); + let _config_3 = resolveAwsAuthConfig(_config_2); + let _config_4 = resolveRetryConfig(_config_3); + let _config_5 = resolveUserAgentConfig(_config_4); + let _config_6 = resolveHostHeaderConfig(_config_5); + super(_config_6); + this.config = _config_6; + this.middlewareStack.use(getAwsAuthPlugin(this.config)); + this.middlewareStack.use(getRetryPlugin(this.config)); + this.middlewareStack.use(getUserAgentPlugin(this.config)); + this.middlewareStack.use(getContentLengthPlugin(this.config)); + this.middlewareStack.use(getHostHeaderPlugin(this.config)); + } + + destroy(): void {} +} diff --git a/clients/client-marketplace-catalog/README.md b/clients/client-marketplace-catalog/README.md new file mode 100644 index 000000000000..ebdae7ef4a48 --- /dev/null +++ b/clients/client-marketplace-catalog/README.md @@ -0,0 +1,6 @@ +@aws-sdk/client-marketplace-catalog + +[![NPM version](https://img.shields.io/npm/v/@aws-sdk/client-marketplace-catalog/preview.svg)](https://www.npmjs.com/package/@aws-sdk/client-marketplace-catalog) +[![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/client-marketplace-catalog.svg)](https://www.npmjs.com/package/@aws-sdk/client-marketplace-catalog) + +For SDK usage, please step to [SDK reademe](https://github.com/aws/aws-sdk-js-v3). diff --git a/clients/client-marketplace-catalog/commands/CancelChangeSetCommand.ts b/clients/client-marketplace-catalog/commands/CancelChangeSetCommand.ts new file mode 100644 index 000000000000..775d65843db9 --- /dev/null +++ b/clients/client-marketplace-catalog/commands/CancelChangeSetCommand.ts @@ -0,0 +1,84 @@ +import { + MarketplaceCatalogClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes +} from "../MarketplaceCatalogClient"; +import { + CancelChangeSetRequest, + CancelChangeSetResponse +} from "../models/index"; +import { + deserializeAws_restJson1_1CancelChangeSetCommand, + serializeAws_restJson1_1CancelChangeSetCommand +} from "../protocols/Aws_restJson1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + SerdeContext, + HttpHandlerOptions as __HttpHandlerOptions +} from "@aws-sdk/types"; + +export type CancelChangeSetCommandInput = CancelChangeSetRequest; +export type CancelChangeSetCommandOutput = CancelChangeSetResponse; + +export class CancelChangeSetCommand extends $Command< + CancelChangeSetCommandInput, + CancelChangeSetCommandOutput, + MarketplaceCatalogClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CancelChangeSetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: MarketplaceCatalogClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use( + getSerdePlugin(configuration, this.serialize, this.deserialize) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const handlerExecutionContext: HandlerExecutionContext = { + logger: {} as any + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: CancelChangeSetCommandInput, + context: SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1_1CancelChangeSetCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: SerdeContext + ): Promise { + return deserializeAws_restJson1_1CancelChangeSetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-marketplace-catalog/commands/DescribeChangeSetCommand.ts b/clients/client-marketplace-catalog/commands/DescribeChangeSetCommand.ts new file mode 100644 index 000000000000..3d8ea1a3a833 --- /dev/null +++ b/clients/client-marketplace-catalog/commands/DescribeChangeSetCommand.ts @@ -0,0 +1,84 @@ +import { + MarketplaceCatalogClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes +} from "../MarketplaceCatalogClient"; +import { + DescribeChangeSetRequest, + DescribeChangeSetResponse +} from "../models/index"; +import { + deserializeAws_restJson1_1DescribeChangeSetCommand, + serializeAws_restJson1_1DescribeChangeSetCommand +} from "../protocols/Aws_restJson1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + SerdeContext, + HttpHandlerOptions as __HttpHandlerOptions +} from "@aws-sdk/types"; + +export type DescribeChangeSetCommandInput = DescribeChangeSetRequest; +export type DescribeChangeSetCommandOutput = DescribeChangeSetResponse; + +export class DescribeChangeSetCommand extends $Command< + DescribeChangeSetCommandInput, + DescribeChangeSetCommandOutput, + MarketplaceCatalogClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeChangeSetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: MarketplaceCatalogClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use( + getSerdePlugin(configuration, this.serialize, this.deserialize) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const handlerExecutionContext: HandlerExecutionContext = { + logger: {} as any + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeChangeSetCommandInput, + context: SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1_1DescribeChangeSetCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: SerdeContext + ): Promise { + return deserializeAws_restJson1_1DescribeChangeSetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-marketplace-catalog/commands/DescribeEntityCommand.ts b/clients/client-marketplace-catalog/commands/DescribeEntityCommand.ts new file mode 100644 index 000000000000..c432cac0f82f --- /dev/null +++ b/clients/client-marketplace-catalog/commands/DescribeEntityCommand.ts @@ -0,0 +1,81 @@ +import { + MarketplaceCatalogClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes +} from "../MarketplaceCatalogClient"; +import { DescribeEntityRequest, DescribeEntityResponse } from "../models/index"; +import { + deserializeAws_restJson1_1DescribeEntityCommand, + serializeAws_restJson1_1DescribeEntityCommand +} from "../protocols/Aws_restJson1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + SerdeContext, + HttpHandlerOptions as __HttpHandlerOptions +} from "@aws-sdk/types"; + +export type DescribeEntityCommandInput = DescribeEntityRequest; +export type DescribeEntityCommandOutput = DescribeEntityResponse; + +export class DescribeEntityCommand extends $Command< + DescribeEntityCommandInput, + DescribeEntityCommandOutput, + MarketplaceCatalogClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeEntityCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: MarketplaceCatalogClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use( + getSerdePlugin(configuration, this.serialize, this.deserialize) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const handlerExecutionContext: HandlerExecutionContext = { + logger: {} as any + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: DescribeEntityCommandInput, + context: SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1_1DescribeEntityCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: SerdeContext + ): Promise { + return deserializeAws_restJson1_1DescribeEntityCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-marketplace-catalog/commands/ListChangeSetsCommand.ts b/clients/client-marketplace-catalog/commands/ListChangeSetsCommand.ts new file mode 100644 index 000000000000..8b938430540d --- /dev/null +++ b/clients/client-marketplace-catalog/commands/ListChangeSetsCommand.ts @@ -0,0 +1,81 @@ +import { + MarketplaceCatalogClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes +} from "../MarketplaceCatalogClient"; +import { ListChangeSetsRequest, ListChangeSetsResponse } from "../models/index"; +import { + deserializeAws_restJson1_1ListChangeSetsCommand, + serializeAws_restJson1_1ListChangeSetsCommand +} from "../protocols/Aws_restJson1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + SerdeContext, + HttpHandlerOptions as __HttpHandlerOptions +} from "@aws-sdk/types"; + +export type ListChangeSetsCommandInput = ListChangeSetsRequest; +export type ListChangeSetsCommandOutput = ListChangeSetsResponse; + +export class ListChangeSetsCommand extends $Command< + ListChangeSetsCommandInput, + ListChangeSetsCommandOutput, + MarketplaceCatalogClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListChangeSetsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: MarketplaceCatalogClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use( + getSerdePlugin(configuration, this.serialize, this.deserialize) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const handlerExecutionContext: HandlerExecutionContext = { + logger: {} as any + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListChangeSetsCommandInput, + context: SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1_1ListChangeSetsCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: SerdeContext + ): Promise { + return deserializeAws_restJson1_1ListChangeSetsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-marketplace-catalog/commands/ListEntitiesCommand.ts b/clients/client-marketplace-catalog/commands/ListEntitiesCommand.ts new file mode 100644 index 000000000000..c8e12c522038 --- /dev/null +++ b/clients/client-marketplace-catalog/commands/ListEntitiesCommand.ts @@ -0,0 +1,81 @@ +import { + MarketplaceCatalogClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes +} from "../MarketplaceCatalogClient"; +import { ListEntitiesRequest, ListEntitiesResponse } from "../models/index"; +import { + deserializeAws_restJson1_1ListEntitiesCommand, + serializeAws_restJson1_1ListEntitiesCommand +} from "../protocols/Aws_restJson1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + SerdeContext, + HttpHandlerOptions as __HttpHandlerOptions +} from "@aws-sdk/types"; + +export type ListEntitiesCommandInput = ListEntitiesRequest; +export type ListEntitiesCommandOutput = ListEntitiesResponse; + +export class ListEntitiesCommand extends $Command< + ListEntitiesCommandInput, + ListEntitiesCommandOutput, + MarketplaceCatalogClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListEntitiesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: MarketplaceCatalogClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use( + getSerdePlugin(configuration, this.serialize, this.deserialize) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const handlerExecutionContext: HandlerExecutionContext = { + logger: {} as any + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: ListEntitiesCommandInput, + context: SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1_1ListEntitiesCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: SerdeContext + ): Promise { + return deserializeAws_restJson1_1ListEntitiesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-marketplace-catalog/commands/StartChangeSetCommand.ts b/clients/client-marketplace-catalog/commands/StartChangeSetCommand.ts new file mode 100644 index 000000000000..d4e30f7b0b7f --- /dev/null +++ b/clients/client-marketplace-catalog/commands/StartChangeSetCommand.ts @@ -0,0 +1,81 @@ +import { + MarketplaceCatalogClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes +} from "../MarketplaceCatalogClient"; +import { StartChangeSetRequest, StartChangeSetResponse } from "../models/index"; +import { + deserializeAws_restJson1_1StartChangeSetCommand, + serializeAws_restJson1_1StartChangeSetCommand +} from "../protocols/Aws_restJson1_1"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + MiddlewareStack, + SerdeContext, + HttpHandlerOptions as __HttpHandlerOptions +} from "@aws-sdk/types"; + +export type StartChangeSetCommandInput = StartChangeSetRequest; +export type StartChangeSetCommandOutput = StartChangeSetResponse; + +export class StartChangeSetCommand extends $Command< + StartChangeSetCommandInput, + StartChangeSetCommandOutput, + MarketplaceCatalogClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartChangeSetCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: MarketplaceCatalogClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use( + getSerdePlugin(configuration, this.serialize, this.deserialize) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const handlerExecutionContext: HandlerExecutionContext = { + logger: {} as any + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize( + input: StartChangeSetCommandInput, + context: SerdeContext + ): Promise<__HttpRequest> { + return serializeAws_restJson1_1StartChangeSetCommand(input, context); + } + + private deserialize( + output: __HttpResponse, + context: SerdeContext + ): Promise { + return deserializeAws_restJson1_1StartChangeSetCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-marketplace-catalog/endpoints.ts b/clients/client-marketplace-catalog/endpoints.ts new file mode 100644 index 000000000000..c1a45237a59c --- /dev/null +++ b/clients/client-marketplace-catalog/endpoints.ts @@ -0,0 +1,78 @@ +import { RegionInfo, RegionInfoProvider } from "@aws-sdk/types"; + +// Partition default templates +const AWS_TEMPLATE = "aws-marketplace.{region}.amazonaws.com"; +const AWS_CN_TEMPLATE = "aws-marketplace.{region}.amazonaws.com.cn"; +const AWS_ISO_TEMPLATE = "aws-marketplace.{region}.c2s.ic.gov"; +const AWS_ISO_B_TEMPLATE = "aws-marketplace.{region}.sc2s.sgov.gov"; +const AWS_US_GOV_TEMPLATE = "aws-marketplace.{region}.amazonaws.com"; + +// Partition regions +const AWS_REGIONS = new Set([ + "ap-south-1", + "eu-north-1", + "eu-west-3", + "eu-west-2", + "eu-west-1", + "ap-northeast-2", + "ap-northeast-1", + "me-south-1", + "ca-central-1", + "sa-east-1", + "ap-east-1", + "ap-southeast-1", + "ap-southeast-2", + "eu-central-1", + "us-east-1", + "us-east-2", + "us-west-1", + "us-west-2" +]); +const AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); +const AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); +const AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); +const AWS_US_GOV_REGIONS = new Set(["us-gov-west-1", "us-gov-east-1"]); + +export const defaultRegionInfoProvider: RegionInfoProvider = ( + region: string, + options?: any +) => { + let regionInfo: RegionInfo | undefined = undefined; + switch (region) { + // First, try to match exact region names. + // Next, try to match partition endpoints. + default: + if (AWS_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region) + }; + } + if (AWS_CN_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_CN_TEMPLATE.replace("{region}", region) + }; + } + if (AWS_ISO_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_TEMPLATE.replace("{region}", region) + }; + } + if (AWS_ISO_B_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region) + }; + } + if (AWS_US_GOV_REGIONS.has(region)) { + regionInfo = { + hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region) + }; + } + // Finally, assume it's an AWS partition endpoint. + if (regionInfo === undefined) { + regionInfo = { + hostname: AWS_TEMPLATE.replace("{region}", region) + }; + } + } + return Promise.resolve(regionInfo); +}; diff --git a/clients/client-marketplace-catalog/index.ts b/clients/client-marketplace-catalog/index.ts new file mode 100644 index 000000000000..1cf0b6f28dfa --- /dev/null +++ b/clients/client-marketplace-catalog/index.ts @@ -0,0 +1,8 @@ +export * from "./MarketplaceCatalogClient"; +export * from "./MarketplaceCatalog"; +export * from "./commands/ListEntitiesCommand"; +export * from "./commands/ListChangeSetsCommand"; +export * from "./commands/DescribeChangeSetCommand"; +export * from "./commands/StartChangeSetCommand"; +export * from "./commands/DescribeEntityCommand"; +export * from "./commands/CancelChangeSetCommand"; diff --git a/clients/client-marketplace-catalog/models/index.ts b/clients/client-marketplace-catalog/models/index.ts new file mode 100644 index 000000000000..90e9ec626cd9 --- /dev/null +++ b/clients/client-marketplace-catalog/models/index.ts @@ -0,0 +1,970 @@ +import * as _smithy from "@aws-sdk/smithy-client"; +import { MetadataBearer as $MetadataBearer } from "@aws-sdk/types"; + +/** + * + *

Access is denied.

+ * + */ +export interface AccessDeniedException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "AccessDeniedException"; + $fault: "client"; + Message?: string; +} + +export namespace AccessDeniedException { + export function isa(o: any): o is AccessDeniedException { + return _smithy.isa(o, "AccessDeniedException"); + } +} + +export interface CancelChangeSetRequest { + __type?: "CancelChangeSetRequest"; + /** + * + *

Required. The catalog related to the request. Fixed value: + * AWSMarketplace.

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

Required. The unique identifier of the StartChangeSet request that you + * want to cancel.

+ * + */ + ChangeSetId: string | undefined; +} + +export namespace CancelChangeSetRequest { + export function isa(o: any): o is CancelChangeSetRequest { + return _smithy.isa(o, "CancelChangeSetRequest"); + } +} + +export interface CancelChangeSetResponse extends $MetadataBearer { + __type?: "CancelChangeSetResponse"; + /** + * + *

The ARN associated with the change set referenced in this request.

+ * + */ + ChangeSetArn?: string; + + /** + * + *

The unique identifier for the change set referenced in this request.

+ * + */ + ChangeSetId?: string; +} + +export namespace CancelChangeSetResponse { + export function isa(o: any): o is CancelChangeSetResponse { + return _smithy.isa(o, "CancelChangeSetResponse"); + } +} + +/** + * + *

An object that contains the ChangeType, Details, and + * Entity.

+ * + */ +export interface Change { + __type?: "Change"; + /** + * + *

Change types are single string values that describe your intention for the change. + * Each change type is unique for each EntityType provided in the change's + * scope.

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

This object contains details specific to the change type of the requested + * change.

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

The entity to be changed.

+ * + */ + Entity: Entity | undefined; +} + +export namespace Change { + export function isa(o: any): o is Change { + return _smithy.isa(o, "Change"); + } +} + +/** + * + *

A summary of a change set returned in a list of change sets when the + * ListChangeSets action is called.

+ * + */ +export interface ChangeSetSummaryListItem { + __type?: "ChangeSetSummaryListItem"; + /** + * + *

The ARN associated with the unique identifier for the change set referenced in this + * request.

+ * + */ + ChangeSetArn?: string; + + /** + * + *

The unique identifier for a change set.

+ * + */ + ChangeSetId?: string; + + /** + * + *

The non-unique name for the change set.

+ * + */ + ChangeSetName?: string; + + /** + * + *

The time, in ISO 8601 format (2018-02-27T13:45:22Z), when the change set was + * finished.

+ * + */ + EndTime?: string; + + /** + * + *

This object is a list of entity IDs (string) that are a part of a change set. The + * entity ID list is a maximum of 20 entities. It must contain at least one entity.

+ * + */ + EntityIdList?: Array; + + /** + * + *

The time, in ISO 8601 format (2018-02-27T13:45:22Z), when the change set was + * started.

+ * + */ + StartTime?: string; + + /** + * + *

The current status of the change set.

+ * + */ + Status?: ChangeStatus | string; +} + +export namespace ChangeSetSummaryListItem { + export function isa(o: any): o is ChangeSetSummaryListItem { + return _smithy.isa(o, "ChangeSetSummaryListItem"); + } +} + +export enum ChangeStatus { + APPLYING = "APPLYING", + CANCELLED = "CANCELLED", + FAILED = "FAILED", + PREPARING = "PREPARING", + SUCCEEDED = "SUCCEEDED" +} + +/** + * + *

This object is a container for common summary information about the change. The + * summary doesn't contain the whole change structure.

+ * + */ +export interface ChangeSummary { + __type?: "ChangeSummary"; + /** + * + *

The type of the change.

+ * + */ + ChangeType?: string; + + /** + * + *

The entity to be changed.

+ * + */ + Entity?: Entity; + + /** + * + *

An array of ErrorDetail objects associated with the change.

+ * + */ + ErrorDetailList?: Array; +} + +export namespace ChangeSummary { + export function isa(o: any): o is ChangeSummary { + return _smithy.isa(o, "ChangeSummary"); + } +} + +export interface DescribeChangeSetRequest { + __type?: "DescribeChangeSetRequest"; + /** + * + *

Required. The catalog related to the request. Fixed value: + * AWSMarketplace + *

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

Required. The unique identifier for the StartChangeSet request that you + * want to describe the details for.

+ * + */ + ChangeSetId: string | undefined; +} + +export namespace DescribeChangeSetRequest { + export function isa(o: any): o is DescribeChangeSetRequest { + return _smithy.isa(o, "DescribeChangeSetRequest"); + } +} + +export interface DescribeChangeSetResponse extends $MetadataBearer { + __type?: "DescribeChangeSetResponse"; + /** + * + *

An array of ChangeSummary objects.

+ * + */ + ChangeSet?: Array; + + /** + * + *

The ARN associated with the unique identifier for the change set referenced in this + * request.

+ * + */ + ChangeSetArn?: string; + + /** + * + *

Required. The unique identifier for the change set referenced in this request.

+ * + */ + ChangeSetId?: string; + + /** + * + *

The optional name provided in the StartChangeSet request. If you do not + * provide a name, one is set by default.

+ * + */ + ChangeSetName?: string; + + /** + * + *

The date and time, in ISO 8601 format (2018-02-27T13:45:22Z), the request transitioned + * to a terminal state. The change cannot transition to a different state. Null if the + * request is not in a terminal state.

+ * + */ + EndTime?: string; + + /** + * + *

Returned if there is a failure on the change set, but that failure is not related to + * any of the changes in the request.

+ * + */ + FailureDescription?: string; + + /** + * + *

The date and time, in ISO 8601 format (2018-02-27T13:45:22Z), the request started. + *

+ * + */ + StartTime?: string; + + /** + * + *

The status of the change request.

+ * + */ + Status?: ChangeStatus | string; +} + +export namespace DescribeChangeSetResponse { + export function isa(o: any): o is DescribeChangeSetResponse { + return _smithy.isa(o, "DescribeChangeSetResponse"); + } +} + +export interface DescribeEntityRequest { + __type?: "DescribeEntityRequest"; + /** + * + *

Required. The catalog related to the request. Fixed value: + * AWSMarketplace + *

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

Required. The unique ID of the entity to describe.

+ * + * + */ + EntityId: string | undefined; +} + +export namespace DescribeEntityRequest { + export function isa(o: any): o is DescribeEntityRequest { + return _smithy.isa(o, "DescribeEntityRequest"); + } +} + +export interface DescribeEntityResponse extends $MetadataBearer { + __type?: "DescribeEntityResponse"; + /** + * + *

This stringified JSON object includes the details of the entity.

+ * + */ + Details?: string; + + /** + * + *

The ARN associated to the unique identifier for the change set referenced in this + * request.

+ * + */ + EntityArn?: string; + + /** + * + *

The identifier of the entity, in the format of + * EntityId@RevisionId.

+ * + */ + EntityIdentifier?: string; + + /** + * + *

The named type of the entity, in the format of EntityType@Version.

+ * + */ + EntityType?: string; + + /** + * + *

The last modified date of the entity, in ISO 8601 format + * (2018-02-27T13:45:22Z).

+ * + */ + LastModifiedDate?: string; +} + +export namespace DescribeEntityResponse { + export function isa(o: any): o is DescribeEntityResponse { + return _smithy.isa(o, "DescribeEntityResponse"); + } +} + +/** + * + *

A product entity contains data that describes your product, its supported features, + * and how it can be used or launched by your customer.

+ * + */ +export interface Entity { + __type?: "Entity"; + /** + * + *

The identifier for the entity.

+ * + */ + Identifier?: string; + + /** + * + *

The type of entity.

+ * + */ + Type: string | undefined; +} + +export namespace Entity { + export function isa(o: any): o is Entity { + return _smithy.isa(o, "Entity"); + } +} + +/** + * + *

This object is a container for common summary information about the entity. The + * summary doesn't contain the whole entity structure, but it does contain information + * common across all entities.

+ * + */ +export interface EntitySummary { + __type?: "EntitySummary"; + /** + * + *

The ARN associated with the unique identifier for the entity.

+ * + */ + EntityArn?: string; + + /** + * + *

The unique identifier for the entity.

+ * + */ + EntityId?: string; + + /** + * + *

The type of the entity.

+ * + */ + EntityType?: string; + + /** + * + *

The last time the entity was published, using ISO 8601 format + * (2018-02-27T13:45:22Z).

+ * + */ + LastModifiedDate?: string; + + /** + * + *

The name for the entity. This value is not unique. It is defined by the + * provider.

+ * + */ + Name?: string; + + /** + * + *

The visibility status of the entity to subscribers. This value can be + * Public (everyone can view the entity), Limited (the entity + * is visible to limited accounts only), or Restricted (the entity was + * published and then unpublished and only existing subscribers can view it).

+ * + */ + Visibility?: string; +} + +export namespace EntitySummary { + export function isa(o: any): o is EntitySummary { + return _smithy.isa(o, "EntitySummary"); + } +} + +/** + * + *

Details about the error.

+ * + */ +export interface ErrorDetail { + __type?: "ErrorDetail"; + /** + * + *

The error code that identifies the type of error.

+ * + */ + ErrorCode?: string; + + /** + * + *

The message for the error.

+ * + */ + ErrorMessage?: string; +} + +export namespace ErrorDetail { + export function isa(o: any): o is ErrorDetail { + return _smithy.isa(o, "ErrorDetail"); + } +} + +/** + * + *

A filter object, used to optionally filter results from calls to the + * ListEntities and ListChangeSets actions.

+ * + */ +export interface Filter { + __type?: "Filter"; + /** + * + *

For ListEntities, the supported value for this is an + * EntityId.

+ *

For ListChangeSets, the supported values are as follows:

+ * + */ + Name?: string; + + /** + * + *

+ * ListEntities - This is a list of unique EntityIds.

+ * + *

+ * ListChangeSets - The supported filter names and associated + * ValueLists is as follows:

+ *
    + *
  • + *

    + * ChangeSetName - The supported ValueList is a list of + * non-unique ChangeSetNames. These are defined when you call the + * StartChangeSet action.

    + *
  • + *
  • + *

    + * Status - The supported ValueList is a list of + * statuses for all change set requests.

    + *
  • + *
  • + *

    + * EntityId - The supported ValueList is a list of + * unique EntityIds.

    + *
  • + *
  • + *

    + * BeforeStartTime - The supported ValueList is a list + * of all change sets that started before the filter value.

    + *
  • + *
  • + *

    + * AfterStartTime - The supported ValueList is a list + * of all change sets that started after the filter value.

    + *
  • + *
  • + *

    + * BeforeEndTime - The supported ValueList is a list of + * all change sets that ended before the filter value.

    + *
  • + *
  • + *

    + * AfterEndTime - The supported ValueList is a list of + * all change sets that ended after the filter value.

    + *
  • + *
+ * + */ + ValueList?: Array; +} + +export namespace Filter { + export function isa(o: any): o is Filter { + return _smithy.isa(o, "Filter"); + } +} + +/** + * + *

There was an internal service exception.

+ * + */ +export interface InternalServiceException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "InternalServiceException"; + $fault: "server"; + Message?: string; +} + +export namespace InternalServiceException { + export function isa(o: any): o is InternalServiceException { + return _smithy.isa(o, "InternalServiceException"); + } +} + +export interface ListChangeSetsRequest { + __type?: "ListChangeSetsRequest"; + /** + * + *

The catalog related to the request. Fixed value: AWSMarketplace + *

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

An array of filter objects.

+ * + */ + FilterList?: Array; + + /** + * + *

The maximum number of results returned by a single call. This value must be provided + * in the next call to retrieve the next set of results. By default, this value is + * 20.

+ * + */ + MaxResults?: number; + + /** + * + *

The token value retrieved from a previous call to access the next page of + * results.

+ * + */ + NextToken?: string; + + /** + * + *

An object that contains two attributes, sortBy and + * sortOrder.

+ * + */ + Sort?: Sort; +} + +export namespace ListChangeSetsRequest { + export function isa(o: any): o is ListChangeSetsRequest { + return _smithy.isa(o, "ListChangeSetsRequest"); + } +} + +export interface ListChangeSetsResponse extends $MetadataBearer { + __type?: "ListChangeSetsResponse"; + /** + * + *

Array of ChangeSetSummaryListItem objects.

+ * + */ + ChangeSetSummaryList?: Array; + + /** + * + *

The value of the next token, if it exists. Null if there are no more results.

+ * + */ + NextToken?: string; +} + +export namespace ListChangeSetsResponse { + export function isa(o: any): o is ListChangeSetsResponse { + return _smithy.isa(o, "ListChangeSetsResponse"); + } +} + +export interface ListEntitiesRequest { + __type?: "ListEntitiesRequest"; + /** + * + *

The catalog related to the request. Fixed value: AWSMarketplace + *

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

The type of entities to retrieve.

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

An array of filter objects. Each filter object contains two attributes, + * filterName and filterValues.

+ * + */ + FilterList?: Array; + + /** + * + * + *

Specifies the upper limit of the elements on a single page. If a value isn't provided, + * the default value is 20.

+ * + */ + MaxResults?: number; + + /** + * + *

The value of the next token, if it exists. Null if there are no more results.

+ * + */ + NextToken?: string; + + /** + * + *

An object that contains two attributes, sortBy and + * sortOrder.

+ * + */ + Sort?: Sort; +} + +export namespace ListEntitiesRequest { + export function isa(o: any): o is ListEntitiesRequest { + return _smithy.isa(o, "ListEntitiesRequest"); + } +} + +export interface ListEntitiesResponse extends $MetadataBearer { + __type?: "ListEntitiesResponse"; + /** + * + *

Array of EntitySummary object.

+ * + */ + EntitySummaryList?: Array; + + /** + * + *

The value of the next token if it exists. Null if there is no more result.

+ * + */ + NextToken?: string; +} + +export namespace ListEntitiesResponse { + export function isa(o: any): o is ListEntitiesResponse { + return _smithy.isa(o, "ListEntitiesResponse"); + } +} + +/** + * + *

The resource is currently in use.

+ * + */ +export interface ResourceInUseException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "ResourceInUseException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceInUseException { + export function isa(o: any): o is ResourceInUseException { + return _smithy.isa(o, "ResourceInUseException"); + } +} + +/** + * + *

The specified resource wasn't found.

+ * + */ +export interface ResourceNotFoundException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "ResourceNotFoundException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceNotFoundException { + export function isa(o: any): o is ResourceNotFoundException { + return _smithy.isa(o, "ResourceNotFoundException"); + } +} + +/** + * + *

Currently, the specified resource is not supported.

+ * + */ +export interface ResourceNotSupportedException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "ResourceNotSupportedException"; + $fault: "client"; + Message?: string; +} + +export namespace ResourceNotSupportedException { + export function isa(o: any): o is ResourceNotSupportedException { + return _smithy.isa(o, "ResourceNotSupportedException"); + } +} + +/** + * + *

The maximum number of open requests per account has been exceeded.

+ * + */ +export interface ServiceQuotaExceededException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "ServiceQuotaExceededException"; + $fault: "client"; + Message?: string; +} + +export namespace ServiceQuotaExceededException { + export function isa(o: any): o is ServiceQuotaExceededException { + return _smithy.isa(o, "ServiceQuotaExceededException"); + } +} + +/** + * + *

An object that contains two attributes, sortBy and + * sortOrder.

+ * + */ +export interface Sort { + __type?: "Sort"; + /** + * + *

For ListEntities, supported attributes include + * LastModifiedDate (default), Visibility, + * EntityId, and Name.

+ * + *

For ListChangeSets, supported attributes include StartTime + * and EndTime.

+ * + */ + SortBy?: string; + + /** + * + *

The sorting order. Can be ASCENDING or DESCENDING. The + * default value is DESCENDING.

+ * + */ + SortOrder?: SortOrder | string; +} + +export namespace Sort { + export function isa(o: any): o is Sort { + return _smithy.isa(o, "Sort"); + } +} + +export enum SortOrder { + ASCENDING = "ASCENDING", + DESCENDING = "DESCENDING" +} + +export interface StartChangeSetRequest { + __type?: "StartChangeSetRequest"; + /** + * + *

The catalog related to the request. Fixed value: AWSMarketplace + *

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

Array of change object.

+ * + */ + ChangeSet: Array | undefined; + + /** + * + *

Optional case sensitive string of up to 100 ASCII characters. The change set name can + * be used to filter the list of change sets.

+ * + */ + ChangeSetName?: string; + + /** + * + *

A unique token to identify the request to ensure idempotency.

+ * + */ + ClientRequestToken?: string; +} + +export namespace StartChangeSetRequest { + export function isa(o: any): o is StartChangeSetRequest { + return _smithy.isa(o, "StartChangeSetRequest"); + } +} + +export interface StartChangeSetResponse extends $MetadataBearer { + __type?: "StartChangeSetResponse"; + /** + * + *

The ARN associated to the unique identifier generated for the request.

+ * + */ + ChangeSetArn?: string; + + /** + * + *

Unique identifier generated for the request.

+ * + */ + ChangeSetId?: string; +} + +export namespace StartChangeSetResponse { + export function isa(o: any): o is StartChangeSetResponse { + return _smithy.isa(o, "StartChangeSetResponse"); + } +} + +/** + * + *

Too many requests.

+ * + */ +export interface ThrottlingException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "ThrottlingException"; + $fault: "client"; + Message?: string; +} + +export namespace ThrottlingException { + export function isa(o: any): o is ThrottlingException { + return _smithy.isa(o, "ThrottlingException"); + } +} + +/** + * + *

An error occurred during validation.

+ * + */ +export interface ValidationException + extends _smithy.SmithyException, + $MetadataBearer { + __type: "ValidationException"; + $fault: "client"; + Message?: string; +} + +export namespace ValidationException { + export function isa(o: any): o is ValidationException { + return _smithy.isa(o, "ValidationException"); + } +} diff --git a/clients/client-marketplace-catalog/package.json b/clients/client-marketplace-catalog/package.json new file mode 100644 index 000000000000..6b9856650b55 --- /dev/null +++ b/clients/client-marketplace-catalog/package.json @@ -0,0 +1,75 @@ +{ + "name": "@aws-sdk/client-marketplace-catalog", + "description": "@aws-sdk/client-marketplace-catalog client", + "version": "0.1.0-preview.1", + "scripts": { + "clean": "npm run remove-definitions && npm run remove-dist && npm run remove-js && npm run remove-maps", + "build-documentation": "npm run clean && typedoc ./", + "prepublishOnly": "yarn build", + "pretest": "tsc", + "remove-definitions": "rimraf ./types", + "remove-dist": "rimraf ./dist", + "remove-documentation": "rimraf ./docs", + "remove-js": "rimraf *.js && rimraf ./commands/*.js && rimraf ./models/*.js && rimraf ./protocols/*.js", + "remove-maps": "rimraf *.js.map && rimraf ./commands/*.js.map && rimraf ./models/*.js.map && rimraf ./protocols/*.js.map", + "test": "exit 0", + "smoke-test": "npm run pretest && node ./test/smoke/index.spec.js", + "build:es": "tsc -p tsconfig.es.json", + "build": "yarn pretest && yarn build:es" + }, + "main": "./dist/cjs/index.js", + "types": "./types/index.d.ts", + "module": "./dist/es/index.js", + "browser": { + "./runtimeConfig": "./runtimeConfig.browser" + }, + "sideEffects": false, + "dependencies": { + "tslib": "^1.8.0", + "@aws-crypto/sha256-browser": "^0.1.0-preview.1", + "@aws-sdk/config-resolver": "^0.1.0-preview.5", + "@aws-sdk/credential-provider-node": "^0.1.0-preview.7", + "@aws-sdk/fetch-http-handler": "^0.1.0-preview.5", + "@aws-sdk/hash-node": "^0.1.0-preview.5", + "@aws-sdk/invalid-dependency": "^0.1.0-preview.1", + "@aws-sdk/middleware-content-length": "^0.1.0-preview.5", + "@aws-sdk/middleware-host-header": "^0.1.0-preview.1", + "@aws-sdk/middleware-retry": "^0.1.0-preview.5", + "@aws-sdk/middleware-serde": "^0.1.0-preview.1", + "@aws-sdk/middleware-signing": "^0.1.0-preview.7", + "@aws-sdk/middleware-stack": "^0.1.0-preview.6", + "@aws-sdk/middleware-user-agent": "^0.1.0-preview.1", + "@aws-sdk/node-http-handler": "^0.1.0-preview.6", + "@aws-sdk/protocol-http": "^0.1.0-preview.1", + "@aws-sdk/region-provider": "^0.1.0-preview.5", + "@aws-sdk/smithy-client": "^0.1.0-preview.1", + "@aws-sdk/stream-collector-browser": "^0.1.0-preview.5", + "@aws-sdk/stream-collector-node": "^0.1.0-preview.6", + "@aws-sdk/types": "^0.1.0-preview.5", + "@aws-sdk/url-parser-browser": "^0.1.0-preview.5", + "@aws-sdk/url-parser-node": "^0.1.0-preview.5", + "@aws-sdk/util-base64-browser": "^0.1.0-preview.3", + "@aws-sdk/util-base64-node": "^0.1.0-preview.3", + "@aws-sdk/util-body-length-browser": "^0.1.0-preview.3", + "@aws-sdk/util-body-length-node": "^0.1.0-preview.4", + "@aws-sdk/util-user-agent-browser": "^0.1.0-preview.6", + "@aws-sdk/util-user-agent-node": "^0.1.0-preview.6", + "@aws-sdk/util-utf8-browser": "^0.1.0-preview.3", + "@aws-sdk/util-utf8-node": "^0.1.0-preview.3" + }, + "devDependencies": { + "rimraf": "^3.0.0", + "typedoc": "^0.15.0", + "typescript": "^3.6.3", + "@types/node": "^12.7.5", + "tslib": "^1.8.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "author": { + "name": "AWS SDK for JavaScript Team", + "url": "https://aws.amazon.com/javascript/" + }, + "license": "Apache-2.0" +} diff --git a/clients/client-marketplace-catalog/protocols/Aws_restJson1_1.ts b/clients/client-marketplace-catalog/protocols/Aws_restJson1_1.ts new file mode 100644 index 000000000000..fac7f82d9cec --- /dev/null +++ b/clients/client-marketplace-catalog/protocols/Aws_restJson1_1.ts @@ -0,0 +1,1233 @@ +import { + CancelChangeSetCommandInput, + CancelChangeSetCommandOutput +} from "../commands/CancelChangeSetCommand"; +import { + DescribeChangeSetCommandInput, + DescribeChangeSetCommandOutput +} from "../commands/DescribeChangeSetCommand"; +import { + DescribeEntityCommandInput, + DescribeEntityCommandOutput +} from "../commands/DescribeEntityCommand"; +import { + ListChangeSetsCommandInput, + ListChangeSetsCommandOutput +} from "../commands/ListChangeSetsCommand"; +import { + ListEntitiesCommandInput, + ListEntitiesCommandOutput +} from "../commands/ListEntitiesCommand"; +import { + StartChangeSetCommandInput, + StartChangeSetCommandOutput +} from "../commands/StartChangeSetCommand"; +import { + AccessDeniedException, + Change, + ChangeSetSummaryListItem, + ChangeSummary, + Entity, + EntitySummary, + ErrorDetail, + Filter, + InternalServiceException, + ResourceInUseException, + ResourceNotFoundException, + ResourceNotSupportedException, + ServiceQuotaExceededException, + Sort, + ThrottlingException, + ValidationException +} from "../models/index"; +import { + HttpRequest as __HttpRequest, + HttpResponse as __HttpResponse +} from "@aws-sdk/protocol-http"; +import { SmithyException as __SmithyException } from "@aws-sdk/smithy-client"; +import { + Endpoint as __Endpoint, + MetadataBearer as __MetadataBearer, + ResponseMetadata as __ResponseMetadata, + SerdeContext as __SerdeContext +} from "@aws-sdk/types"; + +export async function serializeAws_restJson1_1CancelChangeSetCommand( + input: CancelChangeSetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> { + const headers: any = {}; + headers["Content-Type"] = ""; + let resolvedPath = "/CancelChangeSet"; + const query: any = {}; + if (input.Catalog !== undefined) { + query["catalog"] = input.Catalog.toString(); + } + if (input.ChangeSetId !== undefined) { + query["changeSetId"] = input.ChangeSetId.toString(); + } + return new __HttpRequest({ + ...context.endpoint, + protocol: "https", + method: "PATCH", + headers: headers, + path: resolvedPath, + query: query + }); +} + +export async function serializeAws_restJson1_1DescribeChangeSetCommand( + input: DescribeChangeSetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> { + const headers: any = {}; + headers["Content-Type"] = ""; + let resolvedPath = "/DescribeChangeSet"; + const query: any = {}; + if (input.Catalog !== undefined) { + query["catalog"] = input.Catalog.toString(); + } + if (input.ChangeSetId !== undefined) { + query["changeSetId"] = input.ChangeSetId.toString(); + } + return new __HttpRequest({ + ...context.endpoint, + protocol: "https", + method: "GET", + headers: headers, + path: resolvedPath, + query: query + }); +} + +export async function serializeAws_restJson1_1DescribeEntityCommand( + input: DescribeEntityCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> { + const headers: any = {}; + headers["Content-Type"] = ""; + let resolvedPath = "/DescribeEntity"; + const query: any = {}; + if (input.Catalog !== undefined) { + query["catalog"] = input.Catalog.toString(); + } + if (input.EntityId !== undefined) { + query["entityId"] = input.EntityId.toString(); + } + return new __HttpRequest({ + ...context.endpoint, + protocol: "https", + method: "GET", + headers: headers, + path: resolvedPath, + query: query + }); +} + +export async function serializeAws_restJson1_1ListChangeSetsCommand( + input: ListChangeSetsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> { + const headers: any = {}; + headers["Content-Type"] = "application/json"; + let resolvedPath = "/ListChangeSets"; + let body: any = {}; + const bodyParams: any = {}; + if (input.Catalog !== undefined) { + bodyParams["Catalog"] = input.Catalog; + } + if (input.FilterList !== undefined) { + bodyParams["FilterList"] = serializeAws_restJson1_1FilterList( + input.FilterList, + context + ); + } + if (input.MaxResults !== undefined) { + bodyParams["MaxResults"] = input.MaxResults; + } + if (input.NextToken !== undefined) { + bodyParams["NextToken"] = input.NextToken; + } + if (input.Sort !== undefined) { + bodyParams["Sort"] = serializeAws_restJson1_1Sort(input.Sort, context); + } + body = JSON.stringify(bodyParams); + return new __HttpRequest({ + ...context.endpoint, + protocol: "https", + method: "POST", + headers: headers, + path: resolvedPath, + body: body + }); +} + +export async function serializeAws_restJson1_1ListEntitiesCommand( + input: ListEntitiesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> { + const headers: any = {}; + headers["Content-Type"] = "application/json"; + let resolvedPath = "/ListEntities"; + let body: any = {}; + const bodyParams: any = {}; + if (input.Catalog !== undefined) { + bodyParams["Catalog"] = input.Catalog; + } + if (input.EntityType !== undefined) { + bodyParams["EntityType"] = input.EntityType; + } + if (input.FilterList !== undefined) { + bodyParams["FilterList"] = serializeAws_restJson1_1FilterList( + input.FilterList, + context + ); + } + if (input.MaxResults !== undefined) { + bodyParams["MaxResults"] = input.MaxResults; + } + if (input.NextToken !== undefined) { + bodyParams["NextToken"] = input.NextToken; + } + if (input.Sort !== undefined) { + bodyParams["Sort"] = serializeAws_restJson1_1Sort(input.Sort, context); + } + body = JSON.stringify(bodyParams); + return new __HttpRequest({ + ...context.endpoint, + protocol: "https", + method: "POST", + headers: headers, + path: resolvedPath, + body: body + }); +} + +export async function serializeAws_restJson1_1StartChangeSetCommand( + input: StartChangeSetCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> { + const headers: any = {}; + headers["Content-Type"] = "application/json"; + let resolvedPath = "/StartChangeSet"; + let body: any = {}; + const bodyParams: any = {}; + if (input.Catalog !== undefined) { + bodyParams["Catalog"] = input.Catalog; + } + if (input.ChangeSet !== undefined) { + bodyParams["ChangeSet"] = serializeAws_restJson1_1RequestedChangeList( + input.ChangeSet, + context + ); + } + if (input.ChangeSetName !== undefined) { + bodyParams["ChangeSetName"] = input.ChangeSetName; + } + if (input.ClientRequestToken !== undefined) { + bodyParams["ClientRequestToken"] = input.ClientRequestToken; + } + body = JSON.stringify(bodyParams); + return new __HttpRequest({ + ...context.endpoint, + protocol: "https", + method: "POST", + headers: headers, + path: resolvedPath, + body: body + }); +} + +export async function deserializeAws_restJson1_1CancelChangeSetCommand( + output: __HttpResponse, + context: __SerdeContext +): Promise { + if (output.statusCode !== 200) { + return deserializeAws_restJson1_1CancelChangeSetCommandError( + output, + context + ); + } + const contents: CancelChangeSetCommandOutput = { + $metadata: deserializeMetadata(output), + __type: "CancelChangeSetResponse", + ChangeSetArn: undefined, + ChangeSetId: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.ChangeSetArn !== undefined) { + contents.ChangeSetArn = data.ChangeSetArn; + } + if (data.ChangeSetId !== undefined) { + contents.ChangeSetId = data.ChangeSetId; + } + return Promise.resolve(contents); +} + +async function deserializeAws_restJson1_1CancelChangeSetCommandError( + output: __HttpResponse, + context: __SerdeContext +): Promise { + const data: any = await parseBody(output.body, context); + const parsedOutput: any = { + ...output, + body: data + }; + let response: __SmithyException & __MetadataBearer; + let errorCode: String; + errorCode = output.headers["x-amzn-errortype"].split(":")[0]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.marketplace.seymour.model#AccessDeniedException": + response = await deserializeAws_restJson1_1AccessDeniedExceptionResponse( + parsedOutput, + context + ); + break; + case "InternalServiceException": + case "com.amazonaws.marketplace.seymour.model#InternalServiceException": + response = await deserializeAws_restJson1_1InternalServiceExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceInUseException": + case "com.amazonaws.marketplace.seymour.model#ResourceInUseException": + response = await deserializeAws_restJson1_1ResourceInUseExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceNotFoundException": + case "com.amazonaws.marketplace.seymour.model#ResourceNotFoundException": + response = await deserializeAws_restJson1_1ResourceNotFoundExceptionResponse( + parsedOutput, + context + ); + break; + case "ThrottlingException": + case "com.amazonaws.marketplace.seymour.model#ThrottlingException": + response = await deserializeAws_restJson1_1ThrottlingExceptionResponse( + parsedOutput, + context + ); + break; + case "ValidationException": + case "com.amazonaws.marketplace.seymour.model#ValidationException": + response = await deserializeAws_restJson1_1ValidationExceptionResponse( + parsedOutput, + context + ); + break; + default: + errorCode = errorCode || "UnknownError"; + response = { + __type: `com.amazonaws.marketplace.seymour.model#${errorCode}`, + $fault: "client", + $metadata: deserializeMetadata(output) + }; + } + return Promise.reject(Object.assign(new Error(response.__type), response)); +} + +export async function deserializeAws_restJson1_1DescribeChangeSetCommand( + output: __HttpResponse, + context: __SerdeContext +): Promise { + if (output.statusCode !== 200) { + return deserializeAws_restJson1_1DescribeChangeSetCommandError( + output, + context + ); + } + const contents: DescribeChangeSetCommandOutput = { + $metadata: deserializeMetadata(output), + __type: "DescribeChangeSetResponse", + ChangeSet: undefined, + ChangeSetArn: undefined, + ChangeSetId: undefined, + ChangeSetName: undefined, + EndTime: undefined, + FailureDescription: undefined, + StartTime: undefined, + Status: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.ChangeSet !== undefined) { + contents.ChangeSet = deserializeAws_restJson1_1ChangeSetDescription( + data.ChangeSet, + context + ); + } + if (data.ChangeSetArn !== undefined) { + contents.ChangeSetArn = data.ChangeSetArn; + } + if (data.ChangeSetId !== undefined) { + contents.ChangeSetId = data.ChangeSetId; + } + if (data.ChangeSetName !== undefined) { + contents.ChangeSetName = data.ChangeSetName; + } + if (data.EndTime !== undefined) { + contents.EndTime = data.EndTime; + } + if (data.FailureDescription !== undefined) { + contents.FailureDescription = data.FailureDescription; + } + if (data.StartTime !== undefined) { + contents.StartTime = data.StartTime; + } + if (data.Status !== undefined) { + contents.Status = data.Status; + } + return Promise.resolve(contents); +} + +async function deserializeAws_restJson1_1DescribeChangeSetCommandError( + output: __HttpResponse, + context: __SerdeContext +): Promise { + const data: any = await parseBody(output.body, context); + const parsedOutput: any = { + ...output, + body: data + }; + let response: __SmithyException & __MetadataBearer; + let errorCode: String; + errorCode = output.headers["x-amzn-errortype"].split(":")[0]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.marketplace.seymour.model#AccessDeniedException": + response = await deserializeAws_restJson1_1AccessDeniedExceptionResponse( + parsedOutput, + context + ); + break; + case "InternalServiceException": + case "com.amazonaws.marketplace.seymour.model#InternalServiceException": + response = await deserializeAws_restJson1_1InternalServiceExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceNotFoundException": + case "com.amazonaws.marketplace.seymour.model#ResourceNotFoundException": + response = await deserializeAws_restJson1_1ResourceNotFoundExceptionResponse( + parsedOutput, + context + ); + break; + case "ThrottlingException": + case "com.amazonaws.marketplace.seymour.model#ThrottlingException": + response = await deserializeAws_restJson1_1ThrottlingExceptionResponse( + parsedOutput, + context + ); + break; + case "ValidationException": + case "com.amazonaws.marketplace.seymour.model#ValidationException": + response = await deserializeAws_restJson1_1ValidationExceptionResponse( + parsedOutput, + context + ); + break; + default: + errorCode = errorCode || "UnknownError"; + response = { + __type: `com.amazonaws.marketplace.seymour.model#${errorCode}`, + $fault: "client", + $metadata: deserializeMetadata(output) + }; + } + return Promise.reject(Object.assign(new Error(response.__type), response)); +} + +export async function deserializeAws_restJson1_1DescribeEntityCommand( + output: __HttpResponse, + context: __SerdeContext +): Promise { + if (output.statusCode !== 200) { + return deserializeAws_restJson1_1DescribeEntityCommandError( + output, + context + ); + } + const contents: DescribeEntityCommandOutput = { + $metadata: deserializeMetadata(output), + __type: "DescribeEntityResponse", + Details: undefined, + EntityArn: undefined, + EntityIdentifier: undefined, + EntityType: undefined, + LastModifiedDate: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Details !== undefined) { + contents.Details = data.Details; + } + if (data.EntityArn !== undefined) { + contents.EntityArn = data.EntityArn; + } + if (data.EntityIdentifier !== undefined) { + contents.EntityIdentifier = data.EntityIdentifier; + } + if (data.EntityType !== undefined) { + contents.EntityType = data.EntityType; + } + if (data.LastModifiedDate !== undefined) { + contents.LastModifiedDate = data.LastModifiedDate; + } + return Promise.resolve(contents); +} + +async function deserializeAws_restJson1_1DescribeEntityCommandError( + output: __HttpResponse, + context: __SerdeContext +): Promise { + const data: any = await parseBody(output.body, context); + const parsedOutput: any = { + ...output, + body: data + }; + let response: __SmithyException & __MetadataBearer; + let errorCode: String; + errorCode = output.headers["x-amzn-errortype"].split(":")[0]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.marketplace.seymour.model#AccessDeniedException": + response = await deserializeAws_restJson1_1AccessDeniedExceptionResponse( + parsedOutput, + context + ); + break; + case "InternalServiceException": + case "com.amazonaws.marketplace.seymour.model#InternalServiceException": + response = await deserializeAws_restJson1_1InternalServiceExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceNotFoundException": + case "com.amazonaws.marketplace.seymour.model#ResourceNotFoundException": + response = await deserializeAws_restJson1_1ResourceNotFoundExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceNotSupportedException": + case "com.amazonaws.marketplace.seymour.model#ResourceNotSupportedException": + response = await deserializeAws_restJson1_1ResourceNotSupportedExceptionResponse( + parsedOutput, + context + ); + break; + case "ThrottlingException": + case "com.amazonaws.marketplace.seymour.model#ThrottlingException": + response = await deserializeAws_restJson1_1ThrottlingExceptionResponse( + parsedOutput, + context + ); + break; + case "ValidationException": + case "com.amazonaws.marketplace.seymour.model#ValidationException": + response = await deserializeAws_restJson1_1ValidationExceptionResponse( + parsedOutput, + context + ); + break; + default: + errorCode = errorCode || "UnknownError"; + response = { + __type: `com.amazonaws.marketplace.seymour.model#${errorCode}`, + $fault: "client", + $metadata: deserializeMetadata(output) + }; + } + return Promise.reject(Object.assign(new Error(response.__type), response)); +} + +export async function deserializeAws_restJson1_1ListChangeSetsCommand( + output: __HttpResponse, + context: __SerdeContext +): Promise { + if (output.statusCode !== 200) { + return deserializeAws_restJson1_1ListChangeSetsCommandError( + output, + context + ); + } + const contents: ListChangeSetsCommandOutput = { + $metadata: deserializeMetadata(output), + __type: "ListChangeSetsResponse", + ChangeSetSummaryList: undefined, + NextToken: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.ChangeSetSummaryList !== undefined) { + contents.ChangeSetSummaryList = deserializeAws_restJson1_1ChangeSetSummaryList( + data.ChangeSetSummaryList, + context + ); + } + if (data.NextToken !== undefined) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +} + +async function deserializeAws_restJson1_1ListChangeSetsCommandError( + output: __HttpResponse, + context: __SerdeContext +): Promise { + const data: any = await parseBody(output.body, context); + const parsedOutput: any = { + ...output, + body: data + }; + let response: __SmithyException & __MetadataBearer; + let errorCode: String; + errorCode = output.headers["x-amzn-errortype"].split(":")[0]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.marketplace.seymour.model#AccessDeniedException": + response = await deserializeAws_restJson1_1AccessDeniedExceptionResponse( + parsedOutput, + context + ); + break; + case "InternalServiceException": + case "com.amazonaws.marketplace.seymour.model#InternalServiceException": + response = await deserializeAws_restJson1_1InternalServiceExceptionResponse( + parsedOutput, + context + ); + break; + case "ThrottlingException": + case "com.amazonaws.marketplace.seymour.model#ThrottlingException": + response = await deserializeAws_restJson1_1ThrottlingExceptionResponse( + parsedOutput, + context + ); + break; + case "ValidationException": + case "com.amazonaws.marketplace.seymour.model#ValidationException": + response = await deserializeAws_restJson1_1ValidationExceptionResponse( + parsedOutput, + context + ); + break; + default: + errorCode = errorCode || "UnknownError"; + response = { + __type: `com.amazonaws.marketplace.seymour.model#${errorCode}`, + $fault: "client", + $metadata: deserializeMetadata(output) + }; + } + return Promise.reject(Object.assign(new Error(response.__type), response)); +} + +export async function deserializeAws_restJson1_1ListEntitiesCommand( + output: __HttpResponse, + context: __SerdeContext +): Promise { + if (output.statusCode !== 200) { + return deserializeAws_restJson1_1ListEntitiesCommandError(output, context); + } + const contents: ListEntitiesCommandOutput = { + $metadata: deserializeMetadata(output), + __type: "ListEntitiesResponse", + EntitySummaryList: undefined, + NextToken: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.EntitySummaryList !== undefined) { + contents.EntitySummaryList = deserializeAws_restJson1_1EntitySummaryList( + data.EntitySummaryList, + context + ); + } + if (data.NextToken !== undefined) { + contents.NextToken = data.NextToken; + } + return Promise.resolve(contents); +} + +async function deserializeAws_restJson1_1ListEntitiesCommandError( + output: __HttpResponse, + context: __SerdeContext +): Promise { + const data: any = await parseBody(output.body, context); + const parsedOutput: any = { + ...output, + body: data + }; + let response: __SmithyException & __MetadataBearer; + let errorCode: String; + errorCode = output.headers["x-amzn-errortype"].split(":")[0]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.marketplace.seymour.model#AccessDeniedException": + response = await deserializeAws_restJson1_1AccessDeniedExceptionResponse( + parsedOutput, + context + ); + break; + case "InternalServiceException": + case "com.amazonaws.marketplace.seymour.model#InternalServiceException": + response = await deserializeAws_restJson1_1InternalServiceExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceNotFoundException": + case "com.amazonaws.marketplace.seymour.model#ResourceNotFoundException": + response = await deserializeAws_restJson1_1ResourceNotFoundExceptionResponse( + parsedOutput, + context + ); + break; + case "ThrottlingException": + case "com.amazonaws.marketplace.seymour.model#ThrottlingException": + response = await deserializeAws_restJson1_1ThrottlingExceptionResponse( + parsedOutput, + context + ); + break; + case "ValidationException": + case "com.amazonaws.marketplace.seymour.model#ValidationException": + response = await deserializeAws_restJson1_1ValidationExceptionResponse( + parsedOutput, + context + ); + break; + default: + errorCode = errorCode || "UnknownError"; + response = { + __type: `com.amazonaws.marketplace.seymour.model#${errorCode}`, + $fault: "client", + $metadata: deserializeMetadata(output) + }; + } + return Promise.reject(Object.assign(new Error(response.__type), response)); +} + +export async function deserializeAws_restJson1_1StartChangeSetCommand( + output: __HttpResponse, + context: __SerdeContext +): Promise { + if (output.statusCode !== 200) { + return deserializeAws_restJson1_1StartChangeSetCommandError( + output, + context + ); + } + const contents: StartChangeSetCommandOutput = { + $metadata: deserializeMetadata(output), + __type: "StartChangeSetResponse", + ChangeSetArn: undefined, + ChangeSetId: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.ChangeSetArn !== undefined) { + contents.ChangeSetArn = data.ChangeSetArn; + } + if (data.ChangeSetId !== undefined) { + contents.ChangeSetId = data.ChangeSetId; + } + return Promise.resolve(contents); +} + +async function deserializeAws_restJson1_1StartChangeSetCommandError( + output: __HttpResponse, + context: __SerdeContext +): Promise { + const data: any = await parseBody(output.body, context); + const parsedOutput: any = { + ...output, + body: data + }; + let response: __SmithyException & __MetadataBearer; + let errorCode: String; + errorCode = output.headers["x-amzn-errortype"].split(":")[0]; + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.marketplace.seymour.model#AccessDeniedException": + response = await deserializeAws_restJson1_1AccessDeniedExceptionResponse( + parsedOutput, + context + ); + break; + case "InternalServiceException": + case "com.amazonaws.marketplace.seymour.model#InternalServiceException": + response = await deserializeAws_restJson1_1InternalServiceExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceInUseException": + case "com.amazonaws.marketplace.seymour.model#ResourceInUseException": + response = await deserializeAws_restJson1_1ResourceInUseExceptionResponse( + parsedOutput, + context + ); + break; + case "ResourceNotFoundException": + case "com.amazonaws.marketplace.seymour.model#ResourceNotFoundException": + response = await deserializeAws_restJson1_1ResourceNotFoundExceptionResponse( + parsedOutput, + context + ); + break; + case "ServiceQuotaExceededException": + case "com.amazonaws.marketplace.seymour.model#ServiceQuotaExceededException": + response = await deserializeAws_restJson1_1ServiceQuotaExceededExceptionResponse( + parsedOutput, + context + ); + break; + case "ThrottlingException": + case "com.amazonaws.marketplace.seymour.model#ThrottlingException": + response = await deserializeAws_restJson1_1ThrottlingExceptionResponse( + parsedOutput, + context + ); + break; + case "ValidationException": + case "com.amazonaws.marketplace.seymour.model#ValidationException": + response = await deserializeAws_restJson1_1ValidationExceptionResponse( + parsedOutput, + context + ); + break; + default: + errorCode = errorCode || "UnknownError"; + response = { + __type: `com.amazonaws.marketplace.seymour.model#${errorCode}`, + $fault: "client", + $metadata: deserializeMetadata(output) + }; + } + return Promise.reject(Object.assign(new Error(response.__type), response)); +} + +const deserializeAws_restJson1_1AccessDeniedExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: AccessDeniedException = { + __type: "AccessDeniedException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1InternalServiceExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: InternalServiceException = { + __type: "InternalServiceException", + $fault: "server", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1ResourceInUseExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: ResourceInUseException = { + __type: "ResourceInUseException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1ResourceNotFoundExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotFoundException = { + __type: "ResourceNotFoundException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1ResourceNotSupportedExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: ResourceNotSupportedException = { + __type: "ResourceNotSupportedException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1ServiceQuotaExceededExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: ServiceQuotaExceededException = { + __type: "ServiceQuotaExceededException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1ThrottlingExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: ThrottlingException = { + __type: "ThrottlingException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const deserializeAws_restJson1_1ValidationExceptionResponse = async ( + output: any, + context: __SerdeContext +): Promise => { + const contents: ValidationException = { + __type: "ValidationException", + $fault: "client", + $metadata: deserializeMetadata(output), + Message: undefined + }; + const data: any = await parseBody(output.body, context); + if (data.Message !== undefined) { + contents.Message = data.Message; + } + return contents; +}; + +const serializeAws_restJson1_1Change = ( + input: Change, + context: __SerdeContext +): any => { + let bodyParams: any = {}; + if (input.ChangeType !== undefined) { + bodyParams["ChangeType"] = input.ChangeType; + } + if (input.Details !== undefined) { + bodyParams["Details"] = input.Details; + } + if (input.Entity !== undefined) { + bodyParams["Entity"] = serializeAws_restJson1_1Entity( + input.Entity, + context + ); + } + return bodyParams; +}; + +const serializeAws_restJson1_1Entity = ( + input: Entity, + context: __SerdeContext +): any => { + let bodyParams: any = {}; + if (input.Identifier !== undefined) { + bodyParams["Identifier"] = input.Identifier; + } + if (input.Type !== undefined) { + bodyParams["Type"] = input.Type; + } + return bodyParams; +}; + +const serializeAws_restJson1_1Filter = ( + input: Filter, + context: __SerdeContext +): any => { + let bodyParams: any = {}; + if (input.Name !== undefined) { + bodyParams["Name"] = input.Name; + } + if (input.ValueList !== undefined) { + bodyParams["ValueList"] = serializeAws_restJson1_1ValueList( + input.ValueList, + context + ); + } + return bodyParams; +}; + +const serializeAws_restJson1_1FilterList = ( + input: Array, + context: __SerdeContext +): any => { + return (input || []).map(entry => + serializeAws_restJson1_1Filter(entry, context) + ); +}; + +const serializeAws_restJson1_1RequestedChangeList = ( + input: Array, + context: __SerdeContext +): any => { + return (input || []).map(entry => + serializeAws_restJson1_1Change(entry, context) + ); +}; + +const serializeAws_restJson1_1Sort = ( + input: Sort, + context: __SerdeContext +): any => { + let bodyParams: any = {}; + if (input.SortBy !== undefined) { + bodyParams["SortBy"] = input.SortBy; + } + if (input.SortOrder !== undefined) { + bodyParams["SortOrder"] = input.SortOrder; + } + return bodyParams; +}; + +const serializeAws_restJson1_1ValueList = ( + input: Array, + context: __SerdeContext +): any => { + return (input || []).map(entry => entry); +}; + +const deserializeAws_restJson1_1ChangeSetDescription = ( + output: any, + context: __SerdeContext +): Array => { + return (output || []).map((entry: any) => + deserializeAws_restJson1_1ChangeSummary(entry, context) + ); +}; + +const deserializeAws_restJson1_1ChangeSetSummaryList = ( + output: any, + context: __SerdeContext +): Array => { + return (output || []).map((entry: any) => + deserializeAws_restJson1_1ChangeSetSummaryListItem(entry, context) + ); +}; + +const deserializeAws_restJson1_1ChangeSetSummaryListItem = ( + output: any, + context: __SerdeContext +): ChangeSetSummaryListItem => { + let contents: any = { + __type: "ChangeSetSummaryListItem", + ChangeSetArn: undefined, + ChangeSetId: undefined, + ChangeSetName: undefined, + EndTime: undefined, + EntityIdList: undefined, + StartTime: undefined, + Status: undefined + }; + if (output.ChangeSetArn !== undefined) { + contents.ChangeSetArn = output.ChangeSetArn; + } + if (output.ChangeSetId !== undefined) { + contents.ChangeSetId = output.ChangeSetId; + } + if (output.ChangeSetName !== undefined) { + contents.ChangeSetName = output.ChangeSetName; + } + if (output.EndTime !== undefined) { + contents.EndTime = output.EndTime; + } + if (output.EntityIdList !== undefined) { + contents.EntityIdList = deserializeAws_restJson1_1ResourceIdList( + output.EntityIdList, + context + ); + } + if (output.StartTime !== undefined) { + contents.StartTime = output.StartTime; + } + if (output.Status !== undefined) { + contents.Status = output.Status; + } + return contents; +}; + +const deserializeAws_restJson1_1ChangeSummary = ( + output: any, + context: __SerdeContext +): ChangeSummary => { + let contents: any = { + __type: "ChangeSummary", + ChangeType: undefined, + Entity: undefined, + ErrorDetailList: undefined + }; + if (output.ChangeType !== undefined) { + contents.ChangeType = output.ChangeType; + } + if (output.Entity !== undefined) { + contents.Entity = deserializeAws_restJson1_1Entity(output.Entity, context); + } + if (output.ErrorDetailList !== undefined) { + contents.ErrorDetailList = deserializeAws_restJson1_1ErrorDetailList( + output.ErrorDetailList, + context + ); + } + return contents; +}; + +const deserializeAws_restJson1_1Entity = ( + output: any, + context: __SerdeContext +): Entity => { + let contents: any = { + __type: "Entity", + Identifier: undefined, + Type: undefined + }; + if (output.Identifier !== undefined) { + contents.Identifier = output.Identifier; + } + if (output.Type !== undefined) { + contents.Type = output.Type; + } + return contents; +}; + +const deserializeAws_restJson1_1EntitySummary = ( + output: any, + context: __SerdeContext +): EntitySummary => { + let contents: any = { + __type: "EntitySummary", + EntityArn: undefined, + EntityId: undefined, + EntityType: undefined, + LastModifiedDate: undefined, + Name: undefined, + Visibility: undefined + }; + if (output.EntityArn !== undefined) { + contents.EntityArn = output.EntityArn; + } + if (output.EntityId !== undefined) { + contents.EntityId = output.EntityId; + } + if (output.EntityType !== undefined) { + contents.EntityType = output.EntityType; + } + if (output.LastModifiedDate !== undefined) { + contents.LastModifiedDate = output.LastModifiedDate; + } + if (output.Name !== undefined) { + contents.Name = output.Name; + } + if (output.Visibility !== undefined) { + contents.Visibility = output.Visibility; + } + return contents; +}; + +const deserializeAws_restJson1_1EntitySummaryList = ( + output: any, + context: __SerdeContext +): Array => { + return (output || []).map((entry: any) => + deserializeAws_restJson1_1EntitySummary(entry, context) + ); +}; + +const deserializeAws_restJson1_1ErrorDetail = ( + output: any, + context: __SerdeContext +): ErrorDetail => { + let contents: any = { + __type: "ErrorDetail", + ErrorCode: undefined, + ErrorMessage: undefined + }; + if (output.ErrorCode !== undefined) { + contents.ErrorCode = output.ErrorCode; + } + if (output.ErrorMessage !== undefined) { + contents.ErrorMessage = output.ErrorMessage; + } + return contents; +}; + +const deserializeAws_restJson1_1ErrorDetailList = ( + output: any, + context: __SerdeContext +): Array => { + return (output || []).map((entry: any) => + deserializeAws_restJson1_1ErrorDetail(entry, context) + ); +}; + +const deserializeAws_restJson1_1ResourceIdList = ( + output: any, + context: __SerdeContext +): Array => { + return (output || []).map((entry: any) => entry); +}; + +const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ + httpStatusCode: output.statusCode, + httpHeaders: output.headers, + requestId: output.headers["x-amzn-requestid"] +}); + +const parseBody = (streamBody: any, context: __SerdeContext): any => { + return context.streamCollector(streamBody).then((body: any) => { + const encoded = context.utf8Encoder(body); + if (encoded.length) { + return JSON.parse(encoded); + } + return {}; + }); +}; diff --git a/clients/client-marketplace-catalog/runtimeConfig.browser.ts b/clients/client-marketplace-catalog/runtimeConfig.browser.ts new file mode 100644 index 000000000000..43fc10f59927 --- /dev/null +++ b/clients/client-marketplace-catalog/runtimeConfig.browser.ts @@ -0,0 +1,30 @@ +import { invalidFunction } from "@aws-sdk/invalid-dependency"; +import { Sha256 } from "@aws-crypto/sha256-browser"; +import { FetchHttpHandler } from "@aws-sdk/fetch-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-browser"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-browser"; +import { streamCollector } from "@aws-sdk/stream-collector-browser"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser"; +import { name, version } from "./package.json"; +import { ClientDefaults } from "./MarketplaceCatalogClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + requestHandler: new FetchHttpHandler(), + sha256: Sha256, + urlParser: parseUrl, + bodyLengthChecker: calculateBodyLength, + streamCollector, + base64Decoder: fromBase64, + base64Encoder: toBase64, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, + defaultUserAgent: defaultUserAgent(name, version), + runtime: "browser", + signingName: "aws-marketplace", + credentialDefaultProvider: invalidFunction("Credential is missing") as any, + regionDefaultProvider: invalidFunction("Region is missing") as any +}; diff --git a/clients/client-marketplace-catalog/runtimeConfig.shared.ts b/clients/client-marketplace-catalog/runtimeConfig.shared.ts new file mode 100644 index 000000000000..d56847bac86c --- /dev/null +++ b/clients/client-marketplace-catalog/runtimeConfig.shared.ts @@ -0,0 +1,7 @@ +import { defaultRegionInfoProvider } from "./endpoints"; + +export const ClientSharedValues = { + apiVersion: "2018-09-17", + signingName: "aws-marketplace", + regionInfoProvider: defaultRegionInfoProvider +}; diff --git a/clients/client-marketplace-catalog/runtimeConfig.ts b/clients/client-marketplace-catalog/runtimeConfig.ts new file mode 100644 index 000000000000..39dc274bf95b --- /dev/null +++ b/clients/client-marketplace-catalog/runtimeConfig.ts @@ -0,0 +1,31 @@ +import { defaultProvider as credentialDefaultProvider } from "@aws-sdk/credential-provider-node"; +import { defaultProvider as regionDefaultProvider } from "@aws-sdk/region-provider"; +import { Hash } from "@aws-sdk/hash-node"; +import { NodeHttpHandler } from "@aws-sdk/node-http-handler"; +import { parseUrl } from "@aws-sdk/url-parser-node"; +import { calculateBodyLength } from "@aws-sdk/util-body-length-node"; +import { streamCollector } from "@aws-sdk/stream-collector-node"; +import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node"; +import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node"; +import { defaultUserAgent } from "@aws-sdk/util-user-agent-node"; +import { name, version } from "./package.json"; +import { ClientDefaults } from "./MarketplaceCatalogClient"; +import { ClientSharedValues } from "./runtimeConfig.shared"; + +export const ClientDefaultValues: Required = { + ...ClientSharedValues, + requestHandler: new NodeHttpHandler(), + sha256: Hash.bind(null, "sha256"), + urlParser: parseUrl, + bodyLengthChecker: calculateBodyLength, + streamCollector, + base64Decoder: fromBase64, + base64Encoder: toBase64, + utf8Decoder: fromUtf8, + utf8Encoder: toUtf8, + defaultUserAgent: defaultUserAgent(name, version), + runtime: "node", + signingName: "aws-marketplace", + credentialDefaultProvider, + regionDefaultProvider +}; diff --git a/clients/client-marketplace-catalog/tsconfig.es.json b/clients/client-marketplace-catalog/tsconfig.es.json new file mode 100644 index 000000000000..9add6a7c2445 --- /dev/null +++ b/clients/client-marketplace-catalog/tsconfig.es.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "target": "es5", + "module": "esnext", + "moduleResolution": "node", + "declaration": false, + "declarationDir": null, + "lib": [ + "dom", + "es5", + "es2015.promise", + "es2015.collection", + "es2015.iterable", + "es2015.symbol.wellknown" + ], + "outDir": "dist/es" + } +} diff --git a/clients/client-marketplace-catalog/tsconfig.json b/clients/client-marketplace-catalog/tsconfig.json new file mode 100644 index 000000000000..ca2fadc08187 --- /dev/null +++ b/clients/client-marketplace-catalog/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "alwaysStrict": true, + "target": "es2017", + "module": "commonjs", + "declaration": true, + "strict": true, + "sourceMap": true, + "downlevelIteration": true, + "importHelpers": true, + "noEmitHelpers": true, + "incremental": true, + "resolveJsonModule": true, + "declarationDir": "./types", + "outDir": "dist/cjs" + }, + "typedocOptions": { + "exclude": "**/node_modules/**", + "excludedNotExported": true, + "excludePrivate": true, + "hideGenerator": true, + "ignoreCompilerErrors": true, + "mode": "file", + "out": "./docs", + "plugin": "@aws-sdk/client-documentation-generator" + } +}