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

This API reference provides descriptions, syntax, and other details about * each of the actions and data types for AWS Systems Manager for SAP. The topic * for each action shows the API request parameters and responses.

*/ class AWS_SSMSAP_API SsmSapClient : 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 SsmSapClientConfiguration ClientConfigurationType; typedef SsmSapEndpointProvider 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. */ SsmSapClient(const Aws::SsmSap::SsmSapClientConfiguration& clientConfiguration = Aws::SsmSap::SsmSapClientConfiguration(), 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. */ SsmSapClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SsmSap::SsmSapClientConfiguration& clientConfiguration = Aws::SsmSap::SsmSapClientConfiguration()); /** * 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 */ SsmSapClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SsmSap::SsmSapClientConfiguration& clientConfiguration = Aws::SsmSap::SsmSapClientConfiguration()); /* 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. */ SsmSapClient(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. */ SsmSapClient(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 */ SsmSapClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~SsmSapClient(); /** *

Removes permissions associated with the target database.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteResourcePermissionOutcome DeleteResourcePermission(const Model::DeleteResourcePermissionRequest& request) const; /** * A Callable wrapper for DeleteResourcePermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteResourcePermissionOutcomeCallable DeleteResourcePermissionCallable(const DeleteResourcePermissionRequestT& request) const { return SubmitCallable(&SsmSapClient::DeleteResourcePermission, request); } /** * An Async wrapper for DeleteResourcePermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteResourcePermissionAsync(const DeleteResourcePermissionRequestT& request, const DeleteResourcePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::DeleteResourcePermission, request, handler, context); } /** *

Deregister an SAP application with AWS Systems Manager for SAP. This action * does not affect the existing setup of your SAP workloads on Amazon * EC2.

See Also:

AWS * API Reference

*/ virtual Model::DeregisterApplicationOutcome DeregisterApplication(const Model::DeregisterApplicationRequest& request) const; /** * A Callable wrapper for DeregisterApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeregisterApplicationOutcomeCallable DeregisterApplicationCallable(const DeregisterApplicationRequestT& request) const { return SubmitCallable(&SsmSapClient::DeregisterApplication, request); } /** * An Async wrapper for DeregisterApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeregisterApplicationAsync(const DeregisterApplicationRequestT& request, const DeregisterApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::DeregisterApplication, request, handler, context); } /** *

Gets an application registered with AWS Systems Manager for SAP. It also * returns the components of the application.

See Also:

AWS * API Reference

*/ virtual Model::GetApplicationOutcome GetApplication(const Model::GetApplicationRequest& request) const; /** * A Callable wrapper for GetApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetApplicationOutcomeCallable GetApplicationCallable(const GetApplicationRequestT& request) const { return SubmitCallable(&SsmSapClient::GetApplication, request); } /** * An Async wrapper for GetApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetApplicationAsync(const GetApplicationRequestT& request, const GetApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::GetApplication, request, handler, context); } /** *

Gets the component of an application registered with AWS Systems Manager for * SAP.

See Also:

AWS * API Reference

*/ virtual Model::GetComponentOutcome GetComponent(const Model::GetComponentRequest& request) const; /** * A Callable wrapper for GetComponent that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetComponentOutcomeCallable GetComponentCallable(const GetComponentRequestT& request) const { return SubmitCallable(&SsmSapClient::GetComponent, request); } /** * An Async wrapper for GetComponent that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetComponentAsync(const GetComponentRequestT& request, const GetComponentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::GetComponent, request, handler, context); } /** *

Gets the SAP HANA database of an application registered with AWS Systems * Manager for SAP.

See Also:

AWS * API Reference

*/ virtual Model::GetDatabaseOutcome GetDatabase(const Model::GetDatabaseRequest& request) const; /** * A Callable wrapper for GetDatabase that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDatabaseOutcomeCallable GetDatabaseCallable(const GetDatabaseRequestT& request) const { return SubmitCallable(&SsmSapClient::GetDatabase, request); } /** * An Async wrapper for GetDatabase that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDatabaseAsync(const GetDatabaseRequestT& request, const GetDatabaseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::GetDatabase, request, handler, context); } /** *

Gets the details of an operation by specifying the operation * ID.

See Also:

AWS * API Reference

*/ virtual Model::GetOperationOutcome GetOperation(const Model::GetOperationRequest& request) const; /** * A Callable wrapper for GetOperation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetOperationOutcomeCallable GetOperationCallable(const GetOperationRequestT& request) const { return SubmitCallable(&SsmSapClient::GetOperation, request); } /** * An Async wrapper for GetOperation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetOperationAsync(const GetOperationRequestT& request, const GetOperationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::GetOperation, request, handler, context); } /** *

Gets permissions associated with the target database.

See * Also:

AWS * API Reference

*/ virtual Model::GetResourcePermissionOutcome GetResourcePermission(const Model::GetResourcePermissionRequest& request) const; /** * A Callable wrapper for GetResourcePermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetResourcePermissionOutcomeCallable GetResourcePermissionCallable(const GetResourcePermissionRequestT& request) const { return SubmitCallable(&SsmSapClient::GetResourcePermission, request); } /** * An Async wrapper for GetResourcePermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetResourcePermissionAsync(const GetResourcePermissionRequestT& request, const GetResourcePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::GetResourcePermission, request, handler, context); } /** *

Lists all the applications registered with AWS Systems Manager for * SAP.

See Also:

AWS * API Reference

*/ virtual Model::ListApplicationsOutcome ListApplications(const Model::ListApplicationsRequest& request) const; /** * A Callable wrapper for ListApplications that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListApplicationsOutcomeCallable ListApplicationsCallable(const ListApplicationsRequestT& request) const { return SubmitCallable(&SsmSapClient::ListApplications, request); } /** * An Async wrapper for ListApplications that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListApplicationsAsync(const ListApplicationsRequestT& request, const ListApplicationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::ListApplications, request, handler, context); } /** *

Lists all the components registered with AWS Systems Manager for * SAP.

See Also:

AWS * API Reference

*/ virtual Model::ListComponentsOutcome ListComponents(const Model::ListComponentsRequest& request) const; /** * A Callable wrapper for ListComponents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListComponentsOutcomeCallable ListComponentsCallable(const ListComponentsRequestT& request) const { return SubmitCallable(&SsmSapClient::ListComponents, request); } /** * An Async wrapper for ListComponents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListComponentsAsync(const ListComponentsRequestT& request, const ListComponentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::ListComponents, request, handler, context); } /** *

Lists the SAP HANA databases of an application registered with AWS Systems * Manager for SAP.

See Also:

AWS * API Reference

*/ virtual Model::ListDatabasesOutcome ListDatabases(const Model::ListDatabasesRequest& request) const; /** * A Callable wrapper for ListDatabases that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDatabasesOutcomeCallable ListDatabasesCallable(const ListDatabasesRequestT& request) const { return SubmitCallable(&SsmSapClient::ListDatabases, request); } /** * An Async wrapper for ListDatabases that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDatabasesAsync(const ListDatabasesRequestT& request, const ListDatabasesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::ListDatabases, request, handler, context); } /** *

Lists the operations performed by AWS Systems Manager for SAP.

See * Also:

AWS * API Reference

*/ virtual Model::ListOperationsOutcome ListOperations(const Model::ListOperationsRequest& request) const; /** * A Callable wrapper for ListOperations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOperationsOutcomeCallable ListOperationsCallable(const ListOperationsRequestT& request) const { return SubmitCallable(&SsmSapClient::ListOperations, request); } /** * An Async wrapper for ListOperations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOperationsAsync(const ListOperationsRequestT& request, const ListOperationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::ListOperations, request, handler, context); } /** *

Lists all tags on an SAP HANA application and/or database registered with AWS * Systems Manager for SAP.

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(&SsmSapClient::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(&SsmSapClient::ListTagsForResource, request, handler, context); } /** *

Adds permissions to the target database.

See Also:

AWS * API Reference

*/ virtual Model::PutResourcePermissionOutcome PutResourcePermission(const Model::PutResourcePermissionRequest& request) const; /** * A Callable wrapper for PutResourcePermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutResourcePermissionOutcomeCallable PutResourcePermissionCallable(const PutResourcePermissionRequestT& request) const { return SubmitCallable(&SsmSapClient::PutResourcePermission, request); } /** * An Async wrapper for PutResourcePermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutResourcePermissionAsync(const PutResourcePermissionRequestT& request, const PutResourcePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::PutResourcePermission, request, handler, context); } /** *

Register an SAP application with AWS Systems Manager for SAP. You must meet * the following requirements before registering.

The SAP application you * want to register with AWS Systems Manager for SAP is running on Amazon EC2.

*

AWS Systems Manager Agent must be setup on an Amazon EC2 instance along with * the required IAM permissions.

Amazon EC2 instance(s) must have access to * the secrets created in AWS Secrets Manager to manage SAP applications and * components.

See Also:

AWS * API Reference

*/ virtual Model::RegisterApplicationOutcome RegisterApplication(const Model::RegisterApplicationRequest& request) const; /** * A Callable wrapper for RegisterApplication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RegisterApplicationOutcomeCallable RegisterApplicationCallable(const RegisterApplicationRequestT& request) const { return SubmitCallable(&SsmSapClient::RegisterApplication, request); } /** * An Async wrapper for RegisterApplication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RegisterApplicationAsync(const RegisterApplicationRequestT& request, const RegisterApplicationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::RegisterApplication, request, handler, context); } /** *

Refreshes a registered application.

See Also:

AWS * API Reference

*/ virtual Model::StartApplicationRefreshOutcome StartApplicationRefresh(const Model::StartApplicationRefreshRequest& request) const; /** * A Callable wrapper for StartApplicationRefresh that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartApplicationRefreshOutcomeCallable StartApplicationRefreshCallable(const StartApplicationRefreshRequestT& request) const { return SubmitCallable(&SsmSapClient::StartApplicationRefresh, request); } /** * An Async wrapper for StartApplicationRefresh that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartApplicationRefreshAsync(const StartApplicationRefreshRequestT& request, const StartApplicationRefreshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::StartApplicationRefresh, request, handler, context); } /** *

Creates tag for a resource by specifying the ARN.

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(&SsmSapClient::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(&SsmSapClient::TagResource, request, handler, context); } /** *

Delete the tags for a resource.

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(&SsmSapClient::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(&SsmSapClient::UntagResource, request, handler, context); } /** *

Updates the settings of an application registered with AWS Systems Manager * for SAP.

See Also:

AWS * API Reference

*/ virtual Model::UpdateApplicationSettingsOutcome UpdateApplicationSettings(const Model::UpdateApplicationSettingsRequest& request) const; /** * A Callable wrapper for UpdateApplicationSettings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateApplicationSettingsOutcomeCallable UpdateApplicationSettingsCallable(const UpdateApplicationSettingsRequestT& request) const { return SubmitCallable(&SsmSapClient::UpdateApplicationSettings, request); } /** * An Async wrapper for UpdateApplicationSettings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateApplicationSettingsAsync(const UpdateApplicationSettingsRequestT& request, const UpdateApplicationSettingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SsmSapClient::UpdateApplicationSettings, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const SsmSapClientConfiguration& clientConfiguration); SsmSapClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace SsmSap } // namespace Aws