/**
* 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 XRay
{
/**
* Amazon Web Services X-Ray provides APIs for managing debug traces and
* retrieving service maps and other data created by processing those traces.
*/
class AWS_XRAY_API XRayClient : 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 XRayClientConfiguration ClientConfigurationType;
typedef XRayEndpointProvider 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.
*/
XRayClient(const Aws::XRay::XRayClientConfiguration& clientConfiguration = Aws::XRay::XRayClientConfiguration(),
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.
*/
XRayClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::XRay::XRayClientConfiguration& clientConfiguration = Aws::XRay::XRayClientConfiguration());
/**
* 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
*/
XRayClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::XRay::XRayClientConfiguration& clientConfiguration = Aws::XRay::XRayClientConfiguration());
/* 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.
*/
XRayClient(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.
*/
XRayClient(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
*/
XRayClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~XRayClient();
/**
* Retrieves a list of traces specified by ID. Each trace is a collection of
* segment documents that originates from a single request. Use
* GetTraceSummaries
to get a list of trace IDs.
See
* Also:
AWS
* API Reference
*/
virtual Model::BatchGetTracesOutcome BatchGetTraces(const Model::BatchGetTracesRequest& request) const;
/**
* A Callable wrapper for BatchGetTraces that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BatchGetTracesOutcomeCallable BatchGetTracesCallable(const BatchGetTracesRequestT& request) const
{
return SubmitCallable(&XRayClient::BatchGetTraces, request);
}
/**
* An Async wrapper for BatchGetTraces that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BatchGetTracesAsync(const BatchGetTracesRequestT& request, const BatchGetTracesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::BatchGetTraces, request, handler, context);
}
/**
* Creates a group resource with a name and a filter expression.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateGroupOutcome CreateGroup(const Model::CreateGroupRequest& request) const;
/**
* A Callable wrapper for CreateGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateGroupOutcomeCallable CreateGroupCallable(const CreateGroupRequestT& request) const
{
return SubmitCallable(&XRayClient::CreateGroup, request);
}
/**
* An Async wrapper for CreateGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateGroupAsync(const CreateGroupRequestT& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::CreateGroup, request, handler, context);
}
/**
* Creates a rule to control sampling behavior for instrumented applications.
* Services retrieve rules with GetSamplingRules,
* and evaluate each rule in ascending order of priority for each request.
* If a rule matches, the service records a trace, borrowing it from the reservoir
* size. After 10 seconds, the service reports back to X-Ray with GetSamplingTargets
* to get updated versions of each in-use rule. The updated rule contains a trace
* quota that the service can use instead of borrowing from the
* reservoir.
See Also:
AWS
* API Reference
*/
virtual Model::CreateSamplingRuleOutcome CreateSamplingRule(const Model::CreateSamplingRuleRequest& request) const;
/**
* A Callable wrapper for CreateSamplingRule that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateSamplingRuleOutcomeCallable CreateSamplingRuleCallable(const CreateSamplingRuleRequestT& request) const
{
return SubmitCallable(&XRayClient::CreateSamplingRule, request);
}
/**
* An Async wrapper for CreateSamplingRule that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateSamplingRuleAsync(const CreateSamplingRuleRequestT& request, const CreateSamplingRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::CreateSamplingRule, request, handler, context);
}
/**
* Deletes a group resource.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteGroupOutcome DeleteGroup(const Model::DeleteGroupRequest& request) const;
/**
* A Callable wrapper for DeleteGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteGroupOutcomeCallable DeleteGroupCallable(const DeleteGroupRequestT& request) const
{
return SubmitCallable(&XRayClient::DeleteGroup, request);
}
/**
* An Async wrapper for DeleteGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteGroupAsync(const DeleteGroupRequestT& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::DeleteGroup, request, handler, context);
}
/**
* Deletes a resource policy from the target Amazon Web Services
* account.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteResourcePolicyOutcome DeleteResourcePolicy(const Model::DeleteResourcePolicyRequest& request) const;
/**
* A Callable wrapper for DeleteResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteResourcePolicyOutcomeCallable DeleteResourcePolicyCallable(const DeleteResourcePolicyRequestT& request) const
{
return SubmitCallable(&XRayClient::DeleteResourcePolicy, request);
}
/**
* An Async wrapper for DeleteResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteResourcePolicyAsync(const DeleteResourcePolicyRequestT& request, const DeleteResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::DeleteResourcePolicy, request, handler, context);
}
/**
* Deletes a sampling rule.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteSamplingRuleOutcome DeleteSamplingRule(const Model::DeleteSamplingRuleRequest& request) const;
/**
* A Callable wrapper for DeleteSamplingRule that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteSamplingRuleOutcomeCallable DeleteSamplingRuleCallable(const DeleteSamplingRuleRequestT& request) const
{
return SubmitCallable(&XRayClient::DeleteSamplingRule, request);
}
/**
* An Async wrapper for DeleteSamplingRule that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteSamplingRuleAsync(const DeleteSamplingRuleRequestT& request, const DeleteSamplingRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::DeleteSamplingRule, request, handler, context);
}
/**
* Retrieves the current encryption configuration for X-Ray data.
See
* Also:
AWS
* API Reference
*/
virtual Model::GetEncryptionConfigOutcome GetEncryptionConfig(const Model::GetEncryptionConfigRequest& request) const;
/**
* A Callable wrapper for GetEncryptionConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEncryptionConfigOutcomeCallable GetEncryptionConfigCallable(const GetEncryptionConfigRequestT& request) const
{
return SubmitCallable(&XRayClient::GetEncryptionConfig, request);
}
/**
* An Async wrapper for GetEncryptionConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEncryptionConfigAsync(const GetEncryptionConfigRequestT& request, const GetEncryptionConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetEncryptionConfig, request, handler, context);
}
/**
* Retrieves group resource details.
See Also:
AWS API
* Reference
*/
virtual Model::GetGroupOutcome GetGroup(const Model::GetGroupRequest& request) const;
/**
* A Callable wrapper for GetGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetGroupOutcomeCallable GetGroupCallable(const GetGroupRequestT& request) const
{
return SubmitCallable(&XRayClient::GetGroup, request);
}
/**
* An Async wrapper for GetGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetGroupAsync(const GetGroupRequestT& request, const GetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetGroup, request, handler, context);
}
/**
* Retrieves all active group details.
See Also:
AWS API
* Reference
*/
virtual Model::GetGroupsOutcome GetGroups(const Model::GetGroupsRequest& request) const;
/**
* A Callable wrapper for GetGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetGroupsOutcomeCallable GetGroupsCallable(const GetGroupsRequestT& request) const
{
return SubmitCallable(&XRayClient::GetGroups, request);
}
/**
* An Async wrapper for GetGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetGroupsAsync(const GetGroupsRequestT& request, const GetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetGroups, request, handler, context);
}
/**
* Retrieves the summary information of an insight. This includes impact to
* clients and root cause services, the top anomalous services, the category, the
* state of the insight, and the start and end time of the insight.
See
* Also:
AWS API
* Reference
*/
virtual Model::GetInsightOutcome GetInsight(const Model::GetInsightRequest& request) const;
/**
* A Callable wrapper for GetInsight that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetInsightOutcomeCallable GetInsightCallable(const GetInsightRequestT& request) const
{
return SubmitCallable(&XRayClient::GetInsight, request);
}
/**
* An Async wrapper for GetInsight that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetInsightAsync(const GetInsightRequestT& request, const GetInsightResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetInsight, request, handler, context);
}
/**
* X-Ray reevaluates insights periodically until they're resolved, and records
* each intermediate state as an event. You can review an insight's events in the
* Impact Timeline on the Inspect page in the X-Ray console.
See
* Also:
AWS
* API Reference
*/
virtual Model::GetInsightEventsOutcome GetInsightEvents(const Model::GetInsightEventsRequest& request) const;
/**
* A Callable wrapper for GetInsightEvents that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetInsightEventsOutcomeCallable GetInsightEventsCallable(const GetInsightEventsRequestT& request) const
{
return SubmitCallable(&XRayClient::GetInsightEvents, request);
}
/**
* An Async wrapper for GetInsightEvents that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetInsightEventsAsync(const GetInsightEventsRequestT& request, const GetInsightEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetInsightEvents, request, handler, context);
}
/**
* Retrieves a service graph structure filtered by the specified insight. The
* service graph is limited to only structural information. For a complete service
* graph, use this API with the GetServiceGraph API.
See Also:
AWS
* API Reference
*/
virtual Model::GetInsightImpactGraphOutcome GetInsightImpactGraph(const Model::GetInsightImpactGraphRequest& request) const;
/**
* A Callable wrapper for GetInsightImpactGraph that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetInsightImpactGraphOutcomeCallable GetInsightImpactGraphCallable(const GetInsightImpactGraphRequestT& request) const
{
return SubmitCallable(&XRayClient::GetInsightImpactGraph, request);
}
/**
* An Async wrapper for GetInsightImpactGraph that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetInsightImpactGraphAsync(const GetInsightImpactGraphRequestT& request, const GetInsightImpactGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetInsightImpactGraph, request, handler, context);
}
/**
* Retrieves the summaries of all insights in the specified group matching the
* provided filter values.
See Also:
AWS
* API Reference
*/
virtual Model::GetInsightSummariesOutcome GetInsightSummaries(const Model::GetInsightSummariesRequest& request) const;
/**
* A Callable wrapper for GetInsightSummaries that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetInsightSummariesOutcomeCallable GetInsightSummariesCallable(const GetInsightSummariesRequestT& request) const
{
return SubmitCallable(&XRayClient::GetInsightSummaries, request);
}
/**
* An Async wrapper for GetInsightSummaries that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetInsightSummariesAsync(const GetInsightSummariesRequestT& request, const GetInsightSummariesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetInsightSummaries, request, handler, context);
}
/**
* Retrieves all sampling rules.
See Also:
AWS
* API Reference
*/
virtual Model::GetSamplingRulesOutcome GetSamplingRules(const Model::GetSamplingRulesRequest& request) const;
/**
* A Callable wrapper for GetSamplingRules that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSamplingRulesOutcomeCallable GetSamplingRulesCallable(const GetSamplingRulesRequestT& request) const
{
return SubmitCallable(&XRayClient::GetSamplingRules, request);
}
/**
* An Async wrapper for GetSamplingRules that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSamplingRulesAsync(const GetSamplingRulesRequestT& request, const GetSamplingRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetSamplingRules, request, handler, context);
}
/**
* Retrieves information about recent sampling results for all sampling
* rules.
See Also:
AWS
* API Reference
*/
virtual Model::GetSamplingStatisticSummariesOutcome GetSamplingStatisticSummaries(const Model::GetSamplingStatisticSummariesRequest& request) const;
/**
* A Callable wrapper for GetSamplingStatisticSummaries that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSamplingStatisticSummariesOutcomeCallable GetSamplingStatisticSummariesCallable(const GetSamplingStatisticSummariesRequestT& request) const
{
return SubmitCallable(&XRayClient::GetSamplingStatisticSummaries, request);
}
/**
* An Async wrapper for GetSamplingStatisticSummaries that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSamplingStatisticSummariesAsync(const GetSamplingStatisticSummariesRequestT& request, const GetSamplingStatisticSummariesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetSamplingStatisticSummaries, request, handler, context);
}
/**
* Requests a sampling quota for rules that the service is using to sample
* requests.
See Also:
AWS
* API Reference
*/
virtual Model::GetSamplingTargetsOutcome GetSamplingTargets(const Model::GetSamplingTargetsRequest& request) const;
/**
* A Callable wrapper for GetSamplingTargets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSamplingTargetsOutcomeCallable GetSamplingTargetsCallable(const GetSamplingTargetsRequestT& request) const
{
return SubmitCallable(&XRayClient::GetSamplingTargets, request);
}
/**
* An Async wrapper for GetSamplingTargets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSamplingTargetsAsync(const GetSamplingTargetsRequestT& request, const GetSamplingTargetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetSamplingTargets, request, handler, context);
}
/**
* Retrieves a document that describes services that process incoming requests,
* and downstream services that they call as a result. Root services process
* incoming requests and make calls to downstream services. Root services are
* applications that use the Amazon Web Services X-Ray
* SDK. Downstream services can be other applications, Amazon Web Services
* resources, HTTP web APIs, or SQL databases.
See Also:
AWS
* API Reference
*/
virtual Model::GetServiceGraphOutcome GetServiceGraph(const Model::GetServiceGraphRequest& request) const;
/**
* A Callable wrapper for GetServiceGraph that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetServiceGraphOutcomeCallable GetServiceGraphCallable(const GetServiceGraphRequestT& request) const
{
return SubmitCallable(&XRayClient::GetServiceGraph, request);
}
/**
* An Async wrapper for GetServiceGraph that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetServiceGraphAsync(const GetServiceGraphRequestT& request, const GetServiceGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetServiceGraph, request, handler, context);
}
/**
* Get an aggregation of service statistics defined by a specific time
* range.
See Also:
AWS
* API Reference
*/
virtual Model::GetTimeSeriesServiceStatisticsOutcome GetTimeSeriesServiceStatistics(const Model::GetTimeSeriesServiceStatisticsRequest& request) const;
/**
* A Callable wrapper for GetTimeSeriesServiceStatistics that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetTimeSeriesServiceStatisticsOutcomeCallable GetTimeSeriesServiceStatisticsCallable(const GetTimeSeriesServiceStatisticsRequestT& request) const
{
return SubmitCallable(&XRayClient::GetTimeSeriesServiceStatistics, request);
}
/**
* An Async wrapper for GetTimeSeriesServiceStatistics that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetTimeSeriesServiceStatisticsAsync(const GetTimeSeriesServiceStatisticsRequestT& request, const GetTimeSeriesServiceStatisticsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetTimeSeriesServiceStatistics, request, handler, context);
}
/**
* Retrieves a service graph for one or more specific trace IDs.
See
* Also:
AWS
* API Reference
*/
virtual Model::GetTraceGraphOutcome GetTraceGraph(const Model::GetTraceGraphRequest& request) const;
/**
* A Callable wrapper for GetTraceGraph that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetTraceGraphOutcomeCallable GetTraceGraphCallable(const GetTraceGraphRequestT& request) const
{
return SubmitCallable(&XRayClient::GetTraceGraph, request);
}
/**
* An Async wrapper for GetTraceGraph that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetTraceGraphAsync(const GetTraceGraphRequestT& request, const GetTraceGraphResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetTraceGraph, request, handler, context);
}
/**
* Retrieves IDs and annotations for traces available for a specified time frame
* using an optional filter. To get the full traces, pass the trace IDs to
* BatchGetTraces
.
A filter expression can target traced
* requests that hit specific service nodes or edges, have errors, or come from a
* known user. For example, the following filter expression targets traces that
* pass through api.example.com
:
* service("api.example.com")
This filter expression finds
* traces that have an annotation named account
with the value
* 12345
:
annotation.account = "12345"
* For a full list of indexed fields and keywords that you can use in filter
* expressions, see Using
* Filter Expressions in the Amazon Web Services X-Ray Developer
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::GetTraceSummariesOutcome GetTraceSummaries(const Model::GetTraceSummariesRequest& request) const;
/**
* A Callable wrapper for GetTraceSummaries that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetTraceSummariesOutcomeCallable GetTraceSummariesCallable(const GetTraceSummariesRequestT& request) const
{
return SubmitCallable(&XRayClient::GetTraceSummaries, request);
}
/**
* An Async wrapper for GetTraceSummaries that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetTraceSummariesAsync(const GetTraceSummariesRequestT& request, const GetTraceSummariesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::GetTraceSummaries, request, handler, context);
}
/**
* Returns the list of resource policies in the target Amazon Web Services
* account.
See Also:
AWS
* API Reference
*/
virtual Model::ListResourcePoliciesOutcome ListResourcePolicies(const Model::ListResourcePoliciesRequest& request) const;
/**
* A Callable wrapper for ListResourcePolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListResourcePoliciesOutcomeCallable ListResourcePoliciesCallable(const ListResourcePoliciesRequestT& request) const
{
return SubmitCallable(&XRayClient::ListResourcePolicies, request);
}
/**
* An Async wrapper for ListResourcePolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListResourcePoliciesAsync(const ListResourcePoliciesRequestT& request, const ListResourcePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::ListResourcePolicies, request, handler, context);
}
/**
* Returns a list of tags that are applied to the specified Amazon Web Services
* X-Ray group or sampling rule.
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(&XRayClient::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(&XRayClient::ListTagsForResource, request, handler, context);
}
/**
* Updates the encryption configuration for X-Ray data.
See Also:
* AWS
* API Reference
*/
virtual Model::PutEncryptionConfigOutcome PutEncryptionConfig(const Model::PutEncryptionConfigRequest& request) const;
/**
* A Callable wrapper for PutEncryptionConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutEncryptionConfigOutcomeCallable PutEncryptionConfigCallable(const PutEncryptionConfigRequestT& request) const
{
return SubmitCallable(&XRayClient::PutEncryptionConfig, request);
}
/**
* An Async wrapper for PutEncryptionConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutEncryptionConfigAsync(const PutEncryptionConfigRequestT& request, const PutEncryptionConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::PutEncryptionConfig, request, handler, context);
}
/**
* Sets the resource policy to grant one or more Amazon Web Services services
* and accounts permissions to access X-Ray. Each resource policy will be
* associated with a specific Amazon Web Services account. Each Amazon Web Services
* account can have a maximum of 5 resource policies, and each policy name must be
* unique within that account. The maximum size of each resource policy is 5KB.
*
See Also:
AWS
* API Reference
*/
virtual Model::PutResourcePolicyOutcome PutResourcePolicy(const Model::PutResourcePolicyRequest& request) const;
/**
* A Callable wrapper for PutResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutResourcePolicyOutcomeCallable PutResourcePolicyCallable(const PutResourcePolicyRequestT& request) const
{
return SubmitCallable(&XRayClient::PutResourcePolicy, request);
}
/**
* An Async wrapper for PutResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutResourcePolicyAsync(const PutResourcePolicyRequestT& request, const PutResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::PutResourcePolicy, request, handler, context);
}
/**
* Used by the Amazon Web Services X-Ray daemon to upload
* telemetry.
See Also:
AWS
* API Reference
*/
virtual Model::PutTelemetryRecordsOutcome PutTelemetryRecords(const Model::PutTelemetryRecordsRequest& request) const;
/**
* A Callable wrapper for PutTelemetryRecords that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutTelemetryRecordsOutcomeCallable PutTelemetryRecordsCallable(const PutTelemetryRecordsRequestT& request) const
{
return SubmitCallable(&XRayClient::PutTelemetryRecords, request);
}
/**
* An Async wrapper for PutTelemetryRecords that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutTelemetryRecordsAsync(const PutTelemetryRecordsRequestT& request, const PutTelemetryRecordsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::PutTelemetryRecords, request, handler, context);
}
/**
* Uploads segment documents to Amazon Web Services X-Ray. The X-Ray SDK generates
* segment documents and sends them to the X-Ray daemon, which uploads them in
* batches. A segment document can be a completed segment, an in-progress segment,
* or an array of subsegments.
Segments must include the following fields.
* For the full segment document schema, see Amazon
* Web Services X-Ray Segment Documents in the Amazon Web Services X-Ray
* Developer Guide.
Required segment document
* fields
-
name
- The name of the service that
* handled the request.
-
id
- A 64-bit identifier
* for the segment, unique among segments in the same trace, in 16 hexadecimal
* digits.
-
trace_id
- A unique identifier that
* connects all segments and subsegments originating from a single client
* request.
-
start_time
- Time the segment or
* subsegment was created, in floating point seconds in epoch time, accurate to
* milliseconds. For example, 1480615200.010
or
* 1.480615200010E9
.
-
end_time
- Time
* the segment or subsegment was closed. For example, 1480615200.090
* or 1.480615200090E9
. Specify either an end_time
or
* in_progress
.
-
in_progress
- Set to
* true
instead of specifying an end_time
to record that
* a segment has been started, but is not complete. Send an in-progress segment
* when your application receives a request that will take a long time to serve, to
* trace that the request was received. When the response is sent, send the
* complete segment to overwrite the in-progress segment.
A
* trace_id
consists of three numbers separated by hyphens. For
* example, 1-58406520-a006649127e371903a2de979. This includes:
Trace ID Format
-
The version number, for
* instance, 1
.
-
The time of the original request, in
* Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd,
* 2016 PST in epoch time is 1480615200
seconds, or
* 58406520
in hexadecimal.
-
A 96-bit identifier for
* the trace, globally unique, in 24 hexadecimal digits.
See
* Also:
AWS
* API Reference
*/
virtual Model::PutTraceSegmentsOutcome PutTraceSegments(const Model::PutTraceSegmentsRequest& request) const;
/**
* A Callable wrapper for PutTraceSegments that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutTraceSegmentsOutcomeCallable PutTraceSegmentsCallable(const PutTraceSegmentsRequestT& request) const
{
return SubmitCallable(&XRayClient::PutTraceSegments, request);
}
/**
* An Async wrapper for PutTraceSegments that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutTraceSegmentsAsync(const PutTraceSegmentsRequestT& request, const PutTraceSegmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::PutTraceSegments, request, handler, context);
}
/**
* Applies tags to an existing Amazon Web Services X-Ray group or sampling
* rule.
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(&XRayClient::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(&XRayClient::TagResource, request, handler, context);
}
/**
* Removes tags from an Amazon Web Services X-Ray group or sampling rule. You
* cannot edit or delete system tags (those with an aws:
* prefix).
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(&XRayClient::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(&XRayClient::UntagResource, request, handler, context);
}
/**
* Updates a group resource.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateGroupOutcome UpdateGroup(const Model::UpdateGroupRequest& request) const;
/**
* A Callable wrapper for UpdateGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateGroupOutcomeCallable UpdateGroupCallable(const UpdateGroupRequestT& request) const
{
return SubmitCallable(&XRayClient::UpdateGroup, request);
}
/**
* An Async wrapper for UpdateGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateGroupAsync(const UpdateGroupRequestT& request, const UpdateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::UpdateGroup, request, handler, context);
}
/**
* Modifies a sampling rule's configuration.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateSamplingRuleOutcome UpdateSamplingRule(const Model::UpdateSamplingRuleRequest& request) const;
/**
* A Callable wrapper for UpdateSamplingRule that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateSamplingRuleOutcomeCallable UpdateSamplingRuleCallable(const UpdateSamplingRuleRequestT& request) const
{
return SubmitCallable(&XRayClient::UpdateSamplingRule, request);
}
/**
* An Async wrapper for UpdateSamplingRule that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateSamplingRuleAsync(const UpdateSamplingRuleRequestT& request, const UpdateSamplingRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&XRayClient::UpdateSamplingRule, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const XRayClientConfiguration& clientConfiguration);
XRayClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace XRay
} // namespace Aws