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

Amazon Managed Grafana is a fully managed and secure data visualization * service that you can use to instantly query, correlate, and visualize * operational metrics, logs, and traces from multiple sources. Amazon Managed * Grafana makes it easy to deploy, operate, and scale Grafana, a widely deployed * data visualization tool that is popular for its extensible data support.

*

With Amazon Managed Grafana, you create logically isolated Grafana servers * called workspaces. In a workspace, you can create Grafana dashboards and * visualizations to analyze your metrics, logs, and traces without having to * build, package, or deploy any hardware to run Grafana servers.

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

Assigns a Grafana Enterprise license to a workspace. Upgrading to Grafana * Enterprise incurs additional fees. For more information, see Upgrade * a workspace to Grafana Enterprise.

See Also:

AWS * API Reference

*/ virtual Model::AssociateLicenseOutcome AssociateLicense(const Model::AssociateLicenseRequest& request) const; /** * A Callable wrapper for AssociateLicense that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AssociateLicenseOutcomeCallable AssociateLicenseCallable(const AssociateLicenseRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::AssociateLicense, request); } /** * An Async wrapper for AssociateLicense that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AssociateLicenseAsync(const AssociateLicenseRequestT& request, const AssociateLicenseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::AssociateLicense, request, handler, context); } /** *

Creates a workspace. In a workspace, you can create Grafana dashboards * and visualizations to analyze your metrics, logs, and traces. You don't have to * build, package, or deploy any hardware to run the Grafana server.

Don't * use CreateWorkspace to modify an existing workspace. Instead, use * UpdateWorkspace.

See * Also:

AWS * API Reference

*/ virtual Model::CreateWorkspaceOutcome CreateWorkspace(const Model::CreateWorkspaceRequest& request) const; /** * A Callable wrapper for CreateWorkspace that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateWorkspaceOutcomeCallable CreateWorkspaceCallable(const CreateWorkspaceRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::CreateWorkspace, request); } /** * An Async wrapper for CreateWorkspace that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateWorkspaceAsync(const CreateWorkspaceRequestT& request, const CreateWorkspaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::CreateWorkspace, request, handler, context); } /** *

Creates a Grafana API key for the workspace. This key can be used to * authenticate requests sent to the workspace's HTTP API. See https://docs.aws.amazon.com/grafana/latest/userguide/Using-Grafana-APIs.html * for available APIs and example requests.

See Also:

AWS * API Reference

*/ virtual Model::CreateWorkspaceApiKeyOutcome CreateWorkspaceApiKey(const Model::CreateWorkspaceApiKeyRequest& request) const; /** * A Callable wrapper for CreateWorkspaceApiKey that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateWorkspaceApiKeyOutcomeCallable CreateWorkspaceApiKeyCallable(const CreateWorkspaceApiKeyRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::CreateWorkspaceApiKey, request); } /** * An Async wrapper for CreateWorkspaceApiKey that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateWorkspaceApiKeyAsync(const CreateWorkspaceApiKeyRequestT& request, const CreateWorkspaceApiKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::CreateWorkspaceApiKey, request, handler, context); } /** *

Deletes an Amazon Managed Grafana workspace.

See Also:

AWS * API Reference

*/ virtual Model::DeleteWorkspaceOutcome DeleteWorkspace(const Model::DeleteWorkspaceRequest& request) const; /** * A Callable wrapper for DeleteWorkspace that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteWorkspaceOutcomeCallable DeleteWorkspaceCallable(const DeleteWorkspaceRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::DeleteWorkspace, request); } /** * An Async wrapper for DeleteWorkspace that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteWorkspaceAsync(const DeleteWorkspaceRequestT& request, const DeleteWorkspaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::DeleteWorkspace, request, handler, context); } /** *

Deletes a Grafana API key for the workspace.

See Also:

AWS * API Reference

*/ virtual Model::DeleteWorkspaceApiKeyOutcome DeleteWorkspaceApiKey(const Model::DeleteWorkspaceApiKeyRequest& request) const; /** * A Callable wrapper for DeleteWorkspaceApiKey that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteWorkspaceApiKeyOutcomeCallable DeleteWorkspaceApiKeyCallable(const DeleteWorkspaceApiKeyRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::DeleteWorkspaceApiKey, request); } /** * An Async wrapper for DeleteWorkspaceApiKey that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteWorkspaceApiKeyAsync(const DeleteWorkspaceApiKeyRequestT& request, const DeleteWorkspaceApiKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::DeleteWorkspaceApiKey, request, handler, context); } /** *

Displays information about one Amazon Managed Grafana * workspace.

See Also:

AWS * API Reference

*/ virtual Model::DescribeWorkspaceOutcome DescribeWorkspace(const Model::DescribeWorkspaceRequest& request) const; /** * A Callable wrapper for DescribeWorkspace that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeWorkspaceOutcomeCallable DescribeWorkspaceCallable(const DescribeWorkspaceRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::DescribeWorkspace, request); } /** * An Async wrapper for DescribeWorkspace that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeWorkspaceAsync(const DescribeWorkspaceRequestT& request, const DescribeWorkspaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::DescribeWorkspace, request, handler, context); } /** *

Displays information about the authentication methods used in one Amazon * Managed Grafana workspace.

See Also:

AWS * API Reference

*/ virtual Model::DescribeWorkspaceAuthenticationOutcome DescribeWorkspaceAuthentication(const Model::DescribeWorkspaceAuthenticationRequest& request) const; /** * A Callable wrapper for DescribeWorkspaceAuthentication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeWorkspaceAuthenticationOutcomeCallable DescribeWorkspaceAuthenticationCallable(const DescribeWorkspaceAuthenticationRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::DescribeWorkspaceAuthentication, request); } /** * An Async wrapper for DescribeWorkspaceAuthentication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeWorkspaceAuthenticationAsync(const DescribeWorkspaceAuthenticationRequestT& request, const DescribeWorkspaceAuthenticationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::DescribeWorkspaceAuthentication, request, handler, context); } /** *

Gets the current configuration string for the given workspace.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeWorkspaceConfigurationOutcome DescribeWorkspaceConfiguration(const Model::DescribeWorkspaceConfigurationRequest& request) const; /** * A Callable wrapper for DescribeWorkspaceConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeWorkspaceConfigurationOutcomeCallable DescribeWorkspaceConfigurationCallable(const DescribeWorkspaceConfigurationRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::DescribeWorkspaceConfiguration, request); } /** * An Async wrapper for DescribeWorkspaceConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeWorkspaceConfigurationAsync(const DescribeWorkspaceConfigurationRequestT& request, const DescribeWorkspaceConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::DescribeWorkspaceConfiguration, request, handler, context); } /** *

Removes the Grafana Enterprise license from a workspace.

See * Also:

AWS * API Reference

*/ virtual Model::DisassociateLicenseOutcome DisassociateLicense(const Model::DisassociateLicenseRequest& request) const; /** * A Callable wrapper for DisassociateLicense that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateLicenseOutcomeCallable DisassociateLicenseCallable(const DisassociateLicenseRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::DisassociateLicense, request); } /** * An Async wrapper for DisassociateLicense that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateLicenseAsync(const DisassociateLicenseRequestT& request, const DisassociateLicenseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::DisassociateLicense, request, handler, context); } /** *

Lists the users and groups who have the Grafana Admin and * Editor roles in this workspace. If you use this operation without * specifying userId or groupId, the operation returns * the roles of all users and groups. If you specify a userId or a * groupId, only the roles for that user or group are returned. If you * do this, you can specify only one userId or one * groupId.

See Also:

AWS * API Reference

*/ virtual Model::ListPermissionsOutcome ListPermissions(const Model::ListPermissionsRequest& request) const; /** * A Callable wrapper for ListPermissions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListPermissionsOutcomeCallable ListPermissionsCallable(const ListPermissionsRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::ListPermissions, request); } /** * An Async wrapper for ListPermissions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListPermissionsAsync(const ListPermissionsRequestT& request, const ListPermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::ListPermissions, request, handler, context); } /** *

The ListTagsForResource operation returns the tags that are * associated with the Amazon Managed Service for Grafana resource specified by the * resourceArn. Currently, the only resource that can be tagged is a * workspace.

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

Lists available versions of Grafana. These are available when calling * CreateWorkspace. Optionally, include a workspace to list the * versions to which it can be upgraded.

See Also:

AWS * API Reference

*/ virtual Model::ListVersionsOutcome ListVersions(const Model::ListVersionsRequest& request) const; /** * A Callable wrapper for ListVersions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListVersionsOutcomeCallable ListVersionsCallable(const ListVersionsRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::ListVersions, request); } /** * An Async wrapper for ListVersions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListVersionsAsync(const ListVersionsRequestT& request, const ListVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::ListVersions, request, handler, context); } /** *

Returns a list of Amazon Managed Grafana workspaces in the account, with some * information about each workspace. For more complete information about one * workspace, use DescribeWorkspace.

See * Also:

AWS * API Reference

*/ virtual Model::ListWorkspacesOutcome ListWorkspaces(const Model::ListWorkspacesRequest& request) const; /** * A Callable wrapper for ListWorkspaces that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListWorkspacesOutcomeCallable ListWorkspacesCallable(const ListWorkspacesRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::ListWorkspaces, request); } /** * An Async wrapper for ListWorkspaces that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListWorkspacesAsync(const ListWorkspacesRequestT& request, const ListWorkspacesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::ListWorkspaces, request, handler, context); } /** *

The TagResource operation associates tags with an Amazon Managed * Grafana resource. Currently, the only resource that can be tagged is workspaces. *

If you specify a new tag key for the resource, this tag is appended to * the list of tags associated with the resource. If you specify a tag key that is * already associated with the resource, the new tag value that you specify * replaces the previous value for that tag.

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

The UntagResource operation removes the association of the tag * with the Amazon Managed Grafana 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(&ManagedGrafanaClient::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(&ManagedGrafanaClient::UntagResource, request, handler, context); } /** *

Updates which users in a workspace have the Grafana Admin or * Editor roles.

See Also:

AWS * API Reference

*/ virtual Model::UpdatePermissionsOutcome UpdatePermissions(const Model::UpdatePermissionsRequest& request) const; /** * A Callable wrapper for UpdatePermissions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdatePermissionsOutcomeCallable UpdatePermissionsCallable(const UpdatePermissionsRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::UpdatePermissions, request); } /** * An Async wrapper for UpdatePermissions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdatePermissionsAsync(const UpdatePermissionsRequestT& request, const UpdatePermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::UpdatePermissions, request, handler, context); } /** *

Modifies an existing Amazon Managed Grafana workspace. If you use this * operation and omit any optional parameters, the existing values of those * parameters are not changed.

To modify the user authentication methods * that the workspace uses, such as SAML or IAM Identity Center, use UpdateWorkspaceAuthentication.

*

To modify which users in the workspace have the Admin and * Editor Grafana roles, use UpdatePermissions.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateWorkspaceOutcome UpdateWorkspace(const Model::UpdateWorkspaceRequest& request) const; /** * A Callable wrapper for UpdateWorkspace that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateWorkspaceOutcomeCallable UpdateWorkspaceCallable(const UpdateWorkspaceRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::UpdateWorkspace, request); } /** * An Async wrapper for UpdateWorkspace that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateWorkspaceAsync(const UpdateWorkspaceRequestT& request, const UpdateWorkspaceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::UpdateWorkspace, request, handler, context); } /** *

Use this operation to define the identity provider (IdP) that this workspace * authenticates users from, using SAML. You can also map SAML assertion attributes * to workspace user information and define which groups in the assertion attribute * are to have the Admin and Editor roles in the * workspace.

Changes to the authentication method for a workspace * may take a few minutes to take effect.

See Also:

AWS * API Reference

*/ virtual Model::UpdateWorkspaceAuthenticationOutcome UpdateWorkspaceAuthentication(const Model::UpdateWorkspaceAuthenticationRequest& request) const; /** * A Callable wrapper for UpdateWorkspaceAuthentication that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateWorkspaceAuthenticationOutcomeCallable UpdateWorkspaceAuthenticationCallable(const UpdateWorkspaceAuthenticationRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::UpdateWorkspaceAuthentication, request); } /** * An Async wrapper for UpdateWorkspaceAuthentication that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateWorkspaceAuthenticationAsync(const UpdateWorkspaceAuthenticationRequestT& request, const UpdateWorkspaceAuthenticationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::UpdateWorkspaceAuthentication, request, handler, context); } /** *

Updates the configuration string for the given workspace

See * Also:

AWS * API Reference

*/ virtual Model::UpdateWorkspaceConfigurationOutcome UpdateWorkspaceConfiguration(const Model::UpdateWorkspaceConfigurationRequest& request) const; /** * A Callable wrapper for UpdateWorkspaceConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateWorkspaceConfigurationOutcomeCallable UpdateWorkspaceConfigurationCallable(const UpdateWorkspaceConfigurationRequestT& request) const { return SubmitCallable(&ManagedGrafanaClient::UpdateWorkspaceConfiguration, request); } /** * An Async wrapper for UpdateWorkspaceConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateWorkspaceConfigurationAsync(const UpdateWorkspaceConfigurationRequestT& request, const UpdateWorkspaceConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ManagedGrafanaClient::UpdateWorkspaceConfiguration, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const ManagedGrafanaClientConfiguration& clientConfiguration); ManagedGrafanaClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace ManagedGrafana } // namespace Aws