/**
* 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 LicenseManagerUserSubscriptions
{
/**
* With License Manager, you can create user-based subscriptions to utilize
* licensed software with a per user subscription fee on Amazon EC2 instances.
*/
class AWS_LICENSEMANAGERUSERSUBSCRIPTIONS_API LicenseManagerUserSubscriptionsClient : 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 LicenseManagerUserSubscriptionsClientConfiguration ClientConfigurationType;
typedef LicenseManagerUserSubscriptionsEndpointProvider 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.
*/
LicenseManagerUserSubscriptionsClient(const Aws::LicenseManagerUserSubscriptions::LicenseManagerUserSubscriptionsClientConfiguration& clientConfiguration = Aws::LicenseManagerUserSubscriptions::LicenseManagerUserSubscriptionsClientConfiguration(),
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.
*/
LicenseManagerUserSubscriptionsClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::LicenseManagerUserSubscriptions::LicenseManagerUserSubscriptionsClientConfiguration& clientConfiguration = Aws::LicenseManagerUserSubscriptions::LicenseManagerUserSubscriptionsClientConfiguration());
/**
* 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
*/
LicenseManagerUserSubscriptionsClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::LicenseManagerUserSubscriptions::LicenseManagerUserSubscriptionsClientConfiguration& clientConfiguration = Aws::LicenseManagerUserSubscriptions::LicenseManagerUserSubscriptionsClientConfiguration());
/* 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.
*/
LicenseManagerUserSubscriptionsClient(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.
*/
LicenseManagerUserSubscriptionsClient(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
*/
LicenseManagerUserSubscriptionsClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~LicenseManagerUserSubscriptionsClient();
/**
* Associates the user to an EC2 instance to utilize user-based
* subscriptions.
Your estimated bill for charges on the number of
* users and related costs will take 48 hours to appear for billing periods that
* haven't closed (marked as Pending billing status) in Amazon Web Services
* Billing. For more information, see Viewing
* your monthly charges in the Amazon Web Services Billing User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateUserOutcome AssociateUser(const Model::AssociateUserRequest& request) const;
/**
* A Callable wrapper for AssociateUser that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateUserOutcomeCallable AssociateUserCallable(const AssociateUserRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::AssociateUser, request);
}
/**
* An Async wrapper for AssociateUser that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateUserAsync(const AssociateUserRequestT& request, const AssociateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::AssociateUser, request, handler, context);
}
/**
* Deregisters the identity provider from providing user-based
* subscriptions.
See Also:
AWS
* API Reference
*/
virtual Model::DeregisterIdentityProviderOutcome DeregisterIdentityProvider(const Model::DeregisterIdentityProviderRequest& request) const;
/**
* A Callable wrapper for DeregisterIdentityProvider that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeregisterIdentityProviderOutcomeCallable DeregisterIdentityProviderCallable(const DeregisterIdentityProviderRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::DeregisterIdentityProvider, request);
}
/**
* An Async wrapper for DeregisterIdentityProvider that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeregisterIdentityProviderAsync(const DeregisterIdentityProviderRequestT& request, const DeregisterIdentityProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::DeregisterIdentityProvider, request, handler, context);
}
/**
* Disassociates the user from an EC2 instance providing user-based
* subscriptions.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateUserOutcome DisassociateUser(const Model::DisassociateUserRequest& request) const;
/**
* A Callable wrapper for DisassociateUser that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateUserOutcomeCallable DisassociateUserCallable(const DisassociateUserRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::DisassociateUser, request);
}
/**
* An Async wrapper for DisassociateUser that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateUserAsync(const DisassociateUserRequestT& request, const DisassociateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::DisassociateUser, request, handler, context);
}
/**
* Lists the identity providers for user-based subscriptions.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListIdentityProvidersOutcome ListIdentityProviders(const Model::ListIdentityProvidersRequest& request) const;
/**
* A Callable wrapper for ListIdentityProviders that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListIdentityProvidersOutcomeCallable ListIdentityProvidersCallable(const ListIdentityProvidersRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::ListIdentityProviders, request);
}
/**
* An Async wrapper for ListIdentityProviders that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListIdentityProvidersAsync(const ListIdentityProvidersRequestT& request, const ListIdentityProvidersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::ListIdentityProviders, request, handler, context);
}
/**
* Lists the EC2 instances providing user-based subscriptions.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListInstancesOutcome ListInstances(const Model::ListInstancesRequest& request) const;
/**
* A Callable wrapper for ListInstances that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListInstancesOutcomeCallable ListInstancesCallable(const ListInstancesRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::ListInstances, request);
}
/**
* An Async wrapper for ListInstances that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListInstancesAsync(const ListInstancesRequestT& request, const ListInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::ListInstances, request, handler, context);
}
/**
* Lists the user-based subscription products available from an identity
* provider.
See Also:
AWS
* API Reference
*/
virtual Model::ListProductSubscriptionsOutcome ListProductSubscriptions(const Model::ListProductSubscriptionsRequest& request) const;
/**
* A Callable wrapper for ListProductSubscriptions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListProductSubscriptionsOutcomeCallable ListProductSubscriptionsCallable(const ListProductSubscriptionsRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::ListProductSubscriptions, request);
}
/**
* An Async wrapper for ListProductSubscriptions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListProductSubscriptionsAsync(const ListProductSubscriptionsRequestT& request, const ListProductSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::ListProductSubscriptions, request, handler, context);
}
/**
* Lists user associations for an identity provider.
See Also:
* AWS
* API Reference
*/
virtual Model::ListUserAssociationsOutcome ListUserAssociations(const Model::ListUserAssociationsRequest& request) const;
/**
* A Callable wrapper for ListUserAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListUserAssociationsOutcomeCallable ListUserAssociationsCallable(const ListUserAssociationsRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::ListUserAssociations, request);
}
/**
* An Async wrapper for ListUserAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListUserAssociationsAsync(const ListUserAssociationsRequestT& request, const ListUserAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::ListUserAssociations, request, handler, context);
}
/**
* Registers an identity provider for user-based subscriptions.
See
* Also:
AWS
* API Reference
*/
virtual Model::RegisterIdentityProviderOutcome RegisterIdentityProvider(const Model::RegisterIdentityProviderRequest& request) const;
/**
* A Callable wrapper for RegisterIdentityProvider that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RegisterIdentityProviderOutcomeCallable RegisterIdentityProviderCallable(const RegisterIdentityProviderRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::RegisterIdentityProvider, request);
}
/**
* An Async wrapper for RegisterIdentityProvider that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RegisterIdentityProviderAsync(const RegisterIdentityProviderRequestT& request, const RegisterIdentityProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::RegisterIdentityProvider, request, handler, context);
}
/**
* Starts a product subscription for a user with the specified identity
* provider.
Your estimated bill for charges on the number of users
* and related costs will take 48 hours to appear for billing periods that haven't
* closed (marked as Pending billing status) in Amazon Web Services Billing.
* For more information, see Viewing
* your monthly charges in the Amazon Web Services Billing User
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::StartProductSubscriptionOutcome StartProductSubscription(const Model::StartProductSubscriptionRequest& request) const;
/**
* A Callable wrapper for StartProductSubscription that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StartProductSubscriptionOutcomeCallable StartProductSubscriptionCallable(const StartProductSubscriptionRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::StartProductSubscription, request);
}
/**
* An Async wrapper for StartProductSubscription that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StartProductSubscriptionAsync(const StartProductSubscriptionRequestT& request, const StartProductSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::StartProductSubscription, request, handler, context);
}
/**
* Stops a product subscription for a user with the specified identity
* provider.
See Also:
AWS
* API Reference
*/
virtual Model::StopProductSubscriptionOutcome StopProductSubscription(const Model::StopProductSubscriptionRequest& request) const;
/**
* A Callable wrapper for StopProductSubscription that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StopProductSubscriptionOutcomeCallable StopProductSubscriptionCallable(const StopProductSubscriptionRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::StopProductSubscription, request);
}
/**
* An Async wrapper for StopProductSubscription that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StopProductSubscriptionAsync(const StopProductSubscriptionRequestT& request, const StopProductSubscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::StopProductSubscription, request, handler, context);
}
/**
* Updates additional product configuration settings for the registered identity
* provider.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateIdentityProviderSettingsOutcome UpdateIdentityProviderSettings(const Model::UpdateIdentityProviderSettingsRequest& request) const;
/**
* A Callable wrapper for UpdateIdentityProviderSettings that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateIdentityProviderSettingsOutcomeCallable UpdateIdentityProviderSettingsCallable(const UpdateIdentityProviderSettingsRequestT& request) const
{
return SubmitCallable(&LicenseManagerUserSubscriptionsClient::UpdateIdentityProviderSettings, request);
}
/**
* An Async wrapper for UpdateIdentityProviderSettings that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateIdentityProviderSettingsAsync(const UpdateIdentityProviderSettingsRequestT& request, const UpdateIdentityProviderSettingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&LicenseManagerUserSubscriptionsClient::UpdateIdentityProviderSettings, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const LicenseManagerUserSubscriptionsClientConfiguration& clientConfiguration);
LicenseManagerUserSubscriptionsClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace LicenseManagerUserSubscriptions
} // namespace Aws