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