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

This section provides documentation for the Amazon CodeGuru Profiler API * operations.

Amazon CodeGuru Profiler collects runtime performance data * from your live applications, and provides recommendations that can help you * fine-tune your application performance. Using machine learning algorithms, * CodeGuru Profiler can help you find your most expensive lines of code and * suggest ways you can improve efficiency and remove CPU bottlenecks.

* Amazon CodeGuru Profiler provides different visualizations of profiling data to * help you identify what code is running on the CPU, see how much time is * consumed, and suggest ways to reduce CPU utilization.

Amazon * CodeGuru Profiler currently supports applications written in all Java virtual * machine (JVM) languages and Python. While CodeGuru Profiler supports both * visualizations and recommendations for applications written in Java, it can also * generate visualizations and a subset of recommendations for applications written * in other JVM languages and Python.

For more information, see What * is Amazon CodeGuru Profiler in the Amazon CodeGuru Profiler User * Guide.

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

Add up to 2 anomaly notifications channels for a profiling * group.

See Also:

AWS * API Reference

*/ virtual Model::AddNotificationChannelsOutcome AddNotificationChannels(const Model::AddNotificationChannelsRequest& request) const; /** * A Callable wrapper for AddNotificationChannels that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AddNotificationChannelsOutcomeCallable AddNotificationChannelsCallable(const AddNotificationChannelsRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::AddNotificationChannels, request); } /** * An Async wrapper for AddNotificationChannels that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AddNotificationChannelsAsync(const AddNotificationChannelsRequestT& request, const AddNotificationChannelsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::AddNotificationChannels, request, handler, context); } /** *

Returns the time series of values for a requested list of frame metrics from * a time period.

See Also:

AWS * API Reference

*/ virtual Model::BatchGetFrameMetricDataOutcome BatchGetFrameMetricData(const Model::BatchGetFrameMetricDataRequest& request) const; /** * A Callable wrapper for BatchGetFrameMetricData that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetFrameMetricDataOutcomeCallable BatchGetFrameMetricDataCallable(const BatchGetFrameMetricDataRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::BatchGetFrameMetricData, request); } /** * An Async wrapper for BatchGetFrameMetricData that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetFrameMetricDataAsync(const BatchGetFrameMetricDataRequestT& request, const BatchGetFrameMetricDataResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::BatchGetFrameMetricData, request, handler, context); } /** *

Used by profiler agents to report their current state and to receive remote * configuration updates. For example, ConfigureAgent can be used to * tell an agent whether to profile or not and for how long to return profiling * data.

See Also:

AWS * API Reference

*/ virtual Model::ConfigureAgentOutcome ConfigureAgent(const Model::ConfigureAgentRequest& request) const; /** * A Callable wrapper for ConfigureAgent that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ConfigureAgentOutcomeCallable ConfigureAgentCallable(const ConfigureAgentRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::ConfigureAgent, request); } /** * An Async wrapper for ConfigureAgent that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ConfigureAgentAsync(const ConfigureAgentRequestT& request, const ConfigureAgentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::ConfigureAgent, request, handler, context); } /** *

Creates a profiling group.

See Also:

AWS * API Reference

*/ virtual Model::CreateProfilingGroupOutcome CreateProfilingGroup(const Model::CreateProfilingGroupRequest& request) const; /** * A Callable wrapper for CreateProfilingGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateProfilingGroupOutcomeCallable CreateProfilingGroupCallable(const CreateProfilingGroupRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::CreateProfilingGroup, request); } /** * An Async wrapper for CreateProfilingGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateProfilingGroupAsync(const CreateProfilingGroupRequestT& request, const CreateProfilingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::CreateProfilingGroup, request, handler, context); } /** *

Deletes a profiling group.

See Also:

AWS * API Reference

*/ virtual Model::DeleteProfilingGroupOutcome DeleteProfilingGroup(const Model::DeleteProfilingGroupRequest& request) const; /** * A Callable wrapper for DeleteProfilingGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteProfilingGroupOutcomeCallable DeleteProfilingGroupCallable(const DeleteProfilingGroupRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::DeleteProfilingGroup, request); } /** * An Async wrapper for DeleteProfilingGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteProfilingGroupAsync(const DeleteProfilingGroupRequestT& request, const DeleteProfilingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::DeleteProfilingGroup, request, handler, context); } /** *

Returns a * ProfilingGroupDescription object that contains information * about the requested profiling group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeProfilingGroupOutcome DescribeProfilingGroup(const Model::DescribeProfilingGroupRequest& request) const; /** * A Callable wrapper for DescribeProfilingGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeProfilingGroupOutcomeCallable DescribeProfilingGroupCallable(const DescribeProfilingGroupRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::DescribeProfilingGroup, request); } /** * An Async wrapper for DescribeProfilingGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeProfilingGroupAsync(const DescribeProfilingGroupRequestT& request, const DescribeProfilingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::DescribeProfilingGroup, request, handler, context); } /** *

Returns a list of * FindingsReportSummary objects that contain analysis results * for all profiling groups in your AWS account.

See Also:

AWS * API Reference

*/ virtual Model::GetFindingsReportAccountSummaryOutcome GetFindingsReportAccountSummary(const Model::GetFindingsReportAccountSummaryRequest& request) const; /** * A Callable wrapper for GetFindingsReportAccountSummary that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetFindingsReportAccountSummaryOutcomeCallable GetFindingsReportAccountSummaryCallable(const GetFindingsReportAccountSummaryRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::GetFindingsReportAccountSummary, request); } /** * An Async wrapper for GetFindingsReportAccountSummary that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetFindingsReportAccountSummaryAsync(const GetFindingsReportAccountSummaryRequestT& request, const GetFindingsReportAccountSummaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::GetFindingsReportAccountSummary, request, handler, context); } /** *

Get the current configuration for anomaly notifications for a profiling * group.

See Also:

AWS * API Reference

*/ virtual Model::GetNotificationConfigurationOutcome GetNotificationConfiguration(const Model::GetNotificationConfigurationRequest& request) const; /** * A Callable wrapper for GetNotificationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetNotificationConfigurationOutcomeCallable GetNotificationConfigurationCallable(const GetNotificationConfigurationRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::GetNotificationConfiguration, request); } /** * An Async wrapper for GetNotificationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetNotificationConfigurationAsync(const GetNotificationConfigurationRequestT& request, const GetNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::GetNotificationConfiguration, request, handler, context); } /** *

Returns the JSON-formatted resource-based policy on a profiling group. *

See Also:

AWS * API Reference

*/ virtual Model::GetPolicyOutcome GetPolicy(const Model::GetPolicyRequest& request) const; /** * A Callable wrapper for GetPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetPolicyOutcomeCallable GetPolicyCallable(const GetPolicyRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::GetPolicy, request); } /** * An Async wrapper for GetPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetPolicyAsync(const GetPolicyRequestT& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::GetPolicy, request, handler, context); } /** *

Gets the aggregated profile of a profiling group for a specified time range. * Amazon CodeGuru Profiler collects posted agent profiles for a profiling group * into aggregated profiles.

 <note> <p> Because
         * aggregated profiles expire over time <code>GetProfile</code> is not
         * idempotent. </p> </note> <p> Specify the time range for the
         * requested aggregated profile using 1 or 2 of the following parameters:
         * <code>startTime</code>, <code>endTime</code>,
         * <code>period</code>. The maximum time range allowed is 7 days. If
         * you specify all 3 parameters, an exception is thrown. If you specify only
         * <code>period</code>, the latest aggregated profile is returned.
         * </p> <p> Aggregated profiles are available with aggregation periods
         * of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an
         * aggregated profile determines how long it is retained. For more information, see
         * <a
         * href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html">
         * <code>AggregatedProfileTime</code> </a>. The aggregated
         * profile's aggregation period determines how long it is retained by CodeGuru
         * Profiler. </p> <ul> <li> <p> If the aggregation period
         * is 5 minutes, the aggregated profile is retained for 15 days. </p>
         * </li> <li> <p> If the aggregation period is 1 hour, the
         * aggregated profile is retained for 60 days. </p> </li> <li>
         * <p> If the aggregation period is 1 day, the aggregated profile is retained
         * for 3 years. </p> </li> </ul> <p>There are two use cases
         * for calling <code>GetProfile</code>.</p> <ol> <li>
         * <p> If you want to return an aggregated profile that already exists, use
         * <a
         * href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html">
         * <code>ListProfileTimes</code> </a> to view the time ranges of
         * existing aggregated profiles. Use them in a <code>GetProfile</code>
         * request to return a specific, existing aggregated profile. </p>
         * </li> <li> <p> If you want to return an aggregated profile for
         * a time range that doesn't align with an existing aggregated profile, then
         * CodeGuru Profiler makes a best effort to combine existing aggregated profiles
         * from the requested time range and return them as one aggregated profile.
         * </p> <p> If aggregated profiles do not exist for the full time range
         * requested, then aggregated profiles for a smaller time range are returned. For
         * example, if the requested time range is from 00:00 to 00:20, and the existing
         * aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from
         * 00:15 to 00:20 are returned. </p> </li> </ol>
         * 

See Also:

AWS * API Reference

*/ virtual Model::GetProfileOutcome GetProfile(const Model::GetProfileRequest& request) const; /** * A Callable wrapper for GetProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetProfileOutcomeCallable GetProfileCallable(const GetProfileRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::GetProfile, request); } /** * An Async wrapper for GetProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetProfileAsync(const GetProfileRequestT& request, const GetProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::GetProfile, request, handler, context); } /** *

Returns a list of * Recommendation objects that contain recommendations for a * profiling group for a given time period. A list of * Anomaly objects that contains details about anomalies detected * in the profiling group for the same time period is also returned.

See * Also:

AWS * API Reference

*/ virtual Model::GetRecommendationsOutcome GetRecommendations(const Model::GetRecommendationsRequest& request) const; /** * A Callable wrapper for GetRecommendations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRecommendationsOutcomeCallable GetRecommendationsCallable(const GetRecommendationsRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::GetRecommendations, request); } /** * An Async wrapper for GetRecommendations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRecommendationsAsync(const GetRecommendationsRequestT& request, const GetRecommendationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::GetRecommendations, request, handler, context); } /** *

List the available reports for a given profiling group and time * range.

See Also:

AWS * API Reference

*/ virtual Model::ListFindingsReportsOutcome ListFindingsReports(const Model::ListFindingsReportsRequest& request) const; /** * A Callable wrapper for ListFindingsReports that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListFindingsReportsOutcomeCallable ListFindingsReportsCallable(const ListFindingsReportsRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::ListFindingsReports, request); } /** * An Async wrapper for ListFindingsReports that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListFindingsReportsAsync(const ListFindingsReportsRequestT& request, const ListFindingsReportsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::ListFindingsReports, request, handler, context); } /** *

Lists the start times of the available aggregated profiles of a profiling * group for an aggregation period within the specified time range.

See * Also:

AWS * API Reference

*/ virtual Model::ListProfileTimesOutcome ListProfileTimes(const Model::ListProfileTimesRequest& request) const; /** * A Callable wrapper for ListProfileTimes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListProfileTimesOutcomeCallable ListProfileTimesCallable(const ListProfileTimesRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::ListProfileTimes, request); } /** * An Async wrapper for ListProfileTimes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListProfileTimesAsync(const ListProfileTimesRequestT& request, const ListProfileTimesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::ListProfileTimes, request, handler, context); } /** *

Returns a list of profiling groups. The profiling groups are returned as * ProfilingGroupDescription objects.

See Also:

* AWS * API Reference

*/ virtual Model::ListProfilingGroupsOutcome ListProfilingGroups(const Model::ListProfilingGroupsRequest& request) const; /** * A Callable wrapper for ListProfilingGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListProfilingGroupsOutcomeCallable ListProfilingGroupsCallable(const ListProfilingGroupsRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::ListProfilingGroups, request); } /** * An Async wrapper for ListProfilingGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListProfilingGroupsAsync(const ListProfilingGroupsRequestT& request, const ListProfilingGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::ListProfilingGroups, request, handler, context); } /** *

Returns a list of the tags that are assigned to a specified resource. *

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

Submits profiling data to an aggregated profile of a profiling group. To get * an aggregated profile that is created with this profiling data, use * GetProfile .

See Also:

AWS * API Reference

*/ virtual Model::PostAgentProfileOutcome PostAgentProfile(const Model::PostAgentProfileRequest& request) const; /** * A Callable wrapper for PostAgentProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PostAgentProfileOutcomeCallable PostAgentProfileCallable(const PostAgentProfileRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::PostAgentProfile, request); } /** * An Async wrapper for PostAgentProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PostAgentProfileAsync(const PostAgentProfileRequestT& request, const PostAgentProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::PostAgentProfile, request, handler, context); } /** *

Adds permissions to a profiling group's resource-based policy that are * provided using an action group. If a profiling group doesn't have a * resource-based policy, one is created for it using the permissions in the action * group and the roles and users in the principals parameter.

*
 <p> The one supported action group that can be added is
         * <code>agentPermission</code> which grants
         * <code>ConfigureAgent</code> and <code>PostAgent</code>
         * permissions. For more information, see <a
         * href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based
         * policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler
         * User Guide</i>, <a
         * href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html">
         * <code>ConfigureAgent</code> </a>, and <a
         * href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html">
         * <code>PostAgentProfile</code> </a>. </p> <p> The
         * first time you call <code>PutPermission</code> on a profiling group,
         * do not specify a <code>revisionId</code> because it doesn't have a
         * resource-based policy. Subsequent calls must provide a
         * <code>revisionId</code> to specify which revision of the
         * resource-based policy to add the permissions to. </p> <p> The
         * response contains the profiling group's JSON-formatted resource policy.
         * </p> 

See Also:

AWS * API Reference

*/ virtual Model::PutPermissionOutcome PutPermission(const Model::PutPermissionRequest& request) const; /** * A Callable wrapper for PutPermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutPermissionOutcomeCallable PutPermissionCallable(const PutPermissionRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::PutPermission, request); } /** * An Async wrapper for PutPermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutPermissionAsync(const PutPermissionRequestT& request, const PutPermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::PutPermission, request, handler, context); } /** *

Remove one anomaly notifications channel for a profiling group.

See * Also:

AWS * API Reference

*/ virtual Model::RemoveNotificationChannelOutcome RemoveNotificationChannel(const Model::RemoveNotificationChannelRequest& request) const; /** * A Callable wrapper for RemoveNotificationChannel that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RemoveNotificationChannelOutcomeCallable RemoveNotificationChannelCallable(const RemoveNotificationChannelRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::RemoveNotificationChannel, request); } /** * An Async wrapper for RemoveNotificationChannel that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RemoveNotificationChannelAsync(const RemoveNotificationChannelRequestT& request, const RemoveNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::RemoveNotificationChannel, request, handler, context); } /** *

Removes permissions from a profiling group's resource-based policy that are * provided using an action group. The one supported action group that can be * removed is agentPermission which grants ConfigureAgent * and PostAgent permissions. For more information, see Resource-based * policies in CodeGuru Profiler in the Amazon CodeGuru Profiler User * Guide, * ConfigureAgent , and * PostAgentProfile .

See Also:

AWS * API Reference

*/ virtual Model::RemovePermissionOutcome RemovePermission(const Model::RemovePermissionRequest& request) const; /** * A Callable wrapper for RemovePermission that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RemovePermissionOutcomeCallable RemovePermissionCallable(const RemovePermissionRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::RemovePermission, request); } /** * An Async wrapper for RemovePermission that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RemovePermissionAsync(const RemovePermissionRequestT& request, const RemovePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::RemovePermission, request, handler, context); } /** *

Sends feedback to CodeGuru Profiler about whether the anomaly detected by the * analysis is useful or not.

See Also:

AWS * API Reference

*/ virtual Model::SubmitFeedbackOutcome SubmitFeedback(const Model::SubmitFeedbackRequest& request) const; /** * A Callable wrapper for SubmitFeedback that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SubmitFeedbackOutcomeCallable SubmitFeedbackCallable(const SubmitFeedbackRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::SubmitFeedback, request); } /** * An Async wrapper for SubmitFeedback that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SubmitFeedbackAsync(const SubmitFeedbackRequestT& request, const SubmitFeedbackResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::SubmitFeedback, request, handler, context); } /** *

Use to assign one or more tags to a resource.

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

Use to remove one or more tags from 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(&CodeGuruProfilerClient::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(&CodeGuruProfilerClient::UntagResource, request, handler, context); } /** *

Updates a profiling group.

See Also:

AWS * API Reference

*/ virtual Model::UpdateProfilingGroupOutcome UpdateProfilingGroup(const Model::UpdateProfilingGroupRequest& request) const; /** * A Callable wrapper for UpdateProfilingGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateProfilingGroupOutcomeCallable UpdateProfilingGroupCallable(const UpdateProfilingGroupRequestT& request) const { return SubmitCallable(&CodeGuruProfilerClient::UpdateProfilingGroup, request); } /** * An Async wrapper for UpdateProfilingGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateProfilingGroupAsync(const UpdateProfilingGroupRequestT& request, const UpdateProfilingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CodeGuruProfilerClient::UpdateProfilingGroup, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const CodeGuruProfilerClientConfiguration& clientConfiguration); CodeGuruProfilerClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace CodeGuruProfiler } // namespace Aws