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