/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace MarketplaceCatalog { /** *

Catalog API actions allow you to manage your entities through list, describe, * and update capabilities. An entity can be 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.

*/ class AWS_MARKETPLACECATALOG_API MarketplaceCatalogClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef MarketplaceCatalogClientConfiguration ClientConfigurationType; typedef MarketplaceCatalogEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ MarketplaceCatalogClient(const Aws::MarketplaceCatalog::MarketplaceCatalogClientConfiguration& clientConfiguration = Aws::MarketplaceCatalog::MarketplaceCatalogClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ MarketplaceCatalogClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::MarketplaceCatalog::MarketplaceCatalogClientConfiguration& clientConfiguration = Aws::MarketplaceCatalog::MarketplaceCatalogClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ MarketplaceCatalogClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::MarketplaceCatalog::MarketplaceCatalogClientConfiguration& clientConfiguration = Aws::MarketplaceCatalog::MarketplaceCatalogClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ MarketplaceCatalogClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ MarketplaceCatalogClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ MarketplaceCatalogClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~MarketplaceCatalogClient(); /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::CancelChangeSetOutcome CancelChangeSet(const Model::CancelChangeSetRequest& request) const; /** * A Callable wrapper for CancelChangeSet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CancelChangeSetOutcomeCallable CancelChangeSetCallable(const CancelChangeSetRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::CancelChangeSet, request); } /** * An Async wrapper for CancelChangeSet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CancelChangeSetAsync(const CancelChangeSetRequestT& request, const CancelChangeSetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::CancelChangeSet, request, handler, context); } /** *

Deletes a resource-based policy on an Entity that is identified by its * resource ARN.

See Also:

AWS * API Reference

*/ virtual Model::DeleteResourcePolicyOutcome DeleteResourcePolicy(const Model::DeleteResourcePolicyRequest& request) const; /** * A Callable wrapper for DeleteResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteResourcePolicyOutcomeCallable DeleteResourcePolicyCallable(const DeleteResourcePolicyRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::DeleteResourcePolicy, request); } /** * An Async wrapper for DeleteResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteResourcePolicyAsync(const DeleteResourcePolicyRequestT& request, const DeleteResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::DeleteResourcePolicy, request, handler, context); } /** *

Provides information about a given change set.

See Also:

AWS * API Reference

*/ virtual Model::DescribeChangeSetOutcome DescribeChangeSet(const Model::DescribeChangeSetRequest& request) const; /** * A Callable wrapper for DescribeChangeSet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeChangeSetOutcomeCallable DescribeChangeSetCallable(const DescribeChangeSetRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::DescribeChangeSet, request); } /** * An Async wrapper for DescribeChangeSet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeChangeSetAsync(const DescribeChangeSetRequestT& request, const DescribeChangeSetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::DescribeChangeSet, request, handler, context); } /** *

Returns the metadata and content of the entity.

See Also:

AWS * API Reference

*/ virtual Model::DescribeEntityOutcome DescribeEntity(const Model::DescribeEntityRequest& request) const; /** * A Callable wrapper for DescribeEntity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEntityOutcomeCallable DescribeEntityCallable(const DescribeEntityRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::DescribeEntity, request); } /** * An Async wrapper for DescribeEntity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEntityAsync(const DescribeEntityRequestT& request, const DescribeEntityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::DescribeEntity, request, handler, context); } /** *

Gets a resource-based policy of an Entity that is identified by its resource * ARN.

See Also:

AWS * API Reference

*/ virtual Model::GetResourcePolicyOutcome GetResourcePolicy(const Model::GetResourcePolicyRequest& request) const; /** * A Callable wrapper for GetResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetResourcePolicyOutcomeCallable GetResourcePolicyCallable(const GetResourcePolicyRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::GetResourcePolicy, request); } /** * An Async wrapper for GetResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetResourcePolicyAsync(const GetResourcePolicyRequestT& request, const GetResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::GetResourcePolicy, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListChangeSetsOutcome ListChangeSets(const Model::ListChangeSetsRequest& request) const; /** * A Callable wrapper for ListChangeSets that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListChangeSetsOutcomeCallable ListChangeSetsCallable(const ListChangeSetsRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::ListChangeSets, request); } /** * An Async wrapper for ListChangeSets that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListChangeSetsAsync(const ListChangeSetsRequestT& request, const ListChangeSetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::ListChangeSets, request, handler, context); } /** *

Provides the list of entities of a given type.

See Also:

AWS * API Reference

*/ virtual Model::ListEntitiesOutcome ListEntities(const Model::ListEntitiesRequest& request) const; /** * A Callable wrapper for ListEntities that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEntitiesOutcomeCallable ListEntitiesCallable(const ListEntitiesRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::ListEntities, request); } /** * An Async wrapper for ListEntities that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEntitiesAsync(const ListEntitiesRequestT& request, const ListEntitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::ListEntities, request, handler, context); } /** *

Lists all tags that have been added to a resource (either an entity * or change * set).

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::ListTagsForResource, request, handler, context); } /** *

Attaches a resource-based policy to an Entity. Examples of an entity include: * AmiProduct and ContainerProduct.

See * Also:

AWS * API Reference

*/ virtual Model::PutResourcePolicyOutcome PutResourcePolicy(const Model::PutResourcePolicyRequest& request) const; /** * A Callable wrapper for PutResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutResourcePolicyOutcomeCallable PutResourcePolicyCallable(const PutResourcePolicyRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::PutResourcePolicy, request); } /** * An Async wrapper for PutResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutResourcePolicyAsync(const PutResourcePolicyRequestT& request, const PutResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::PutResourcePolicy, request, handler, context); } /** *

Allows you to request changes for your entities. Within a single * ChangeSet, you can't start the same change type against the same * entity multiple times. Additionally, when a ChangeSet is running, * all the entities targeted by the different changes are locked until the change * set has completed (either succeeded, cancelled, or failed). If you try to start * a change set containing a change against an entity that is already locked, you * will receive a ResourceInUseException error.

For example, * you can't start the ChangeSet described in the example * later in this topic because it contains two changes to run the same change type * (AddRevisions) against the same entity * (entity-id@1).

For more information about working with * change sets, see * Working with change sets. For information on change types for single-AMI * products, see Working * with single-AMI products. Als, for more information on change types * available for container-based products, see Working * with container products.

See Also:

AWS * API Reference

*/ virtual Model::StartChangeSetOutcome StartChangeSet(const Model::StartChangeSetRequest& request) const; /** * A Callable wrapper for StartChangeSet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartChangeSetOutcomeCallable StartChangeSetCallable(const StartChangeSetRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::StartChangeSet, request); } /** * An Async wrapper for StartChangeSet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartChangeSetAsync(const StartChangeSetRequestT& request, const StartChangeSetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::StartChangeSet, request, handler, context); } /** *

Tags a resource (either an entity * or change * set).

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::TagResource, request, handler, context); } /** *

Removes a tag or list of tags from a resource (either an entity * or change * set).

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&MarketplaceCatalogClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&MarketplaceCatalogClient::UntagResource, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const MarketplaceCatalogClientConfiguration& clientConfiguration); MarketplaceCatalogClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace MarketplaceCatalog } // namespace Aws