/**
* 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