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

You can use Amazon CloudWatch Evidently to safely validate new features by * serving them to a specified percentage of your users while you roll out the * feature. You can monitor the performance of the new feature to help you decide * when to ramp up traffic to your users. This helps you reduce risk and identify * unintended consequences before you fully launch the feature.

You can also * conduct A/B experiments to make feature design decisions based on evidence and * data. An experiment can test as many as five variations at once. Evidently * collects experiment data and analyzes it using statistical methods. It also * provides clear recommendations about which variations perform better. You can * test both user-facing features and backend features.

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

This operation assigns feature variation to user sessions. For each user * session, you pass in an entityID that represents the user. * Evidently then checks the evaluation rules and assigns the variation.

The * first rules that are evaluated are the override rules. If the user's * entityID matches an override rule, the user is served the variation * specified by that rule.

Next, if there is a launch of the feature, the * user might be assigned to a variation in the launch. The chance of this depends * on the percentage of users that are allocated to that launch. If the user is * enrolled in the launch, the variation they are served depends on the allocation * of the various feature variations used for the launch.

If the user is not * assigned to a launch, and there is an ongoing experiment for this feature, the * user might be assigned to a variation in the experiment. The chance of this * depends on the percentage of users that are allocated to that experiment. If the * user is enrolled in the experiment, the variation they are served depends on the * allocation of the various feature variations used for the experiment.

If * the user is not assigned to a launch or experiment, they are served the default * variation.

See Also:

AWS * API Reference

*/ virtual Model::BatchEvaluateFeatureOutcome BatchEvaluateFeature(const Model::BatchEvaluateFeatureRequest& request) const; /** * A Callable wrapper for BatchEvaluateFeature that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchEvaluateFeatureOutcomeCallable BatchEvaluateFeatureCallable(const BatchEvaluateFeatureRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::BatchEvaluateFeature, request); } /** * An Async wrapper for BatchEvaluateFeature that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchEvaluateFeatureAsync(const BatchEvaluateFeatureRequestT& request, const BatchEvaluateFeatureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::BatchEvaluateFeature, request, handler, context); } /** *

Creates an Evidently experiment. Before you create an experiment, you * must create the feature to use for the experiment.

An experiment helps * you make feature design decisions based on evidence and data. An experiment can * test as many as five variations at once. Evidently collects experiment data and * analyzes it by statistical methods, and provides clear recommendations about * which variations perform better.

You can optionally specify a * segment to have the experiment consider only certain audience types * in the experiment, such as using only user sessions from a certain location or * who use a certain internet browser.

Don't use this operation to update an * existing experiment. Instead, use UpdateExperiment. *

See Also:

AWS * API Reference

*/ virtual Model::CreateExperimentOutcome CreateExperiment(const Model::CreateExperimentRequest& request) const; /** * A Callable wrapper for CreateExperiment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateExperimentOutcomeCallable CreateExperimentCallable(const CreateExperimentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::CreateExperiment, request); } /** * An Async wrapper for CreateExperiment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateExperimentAsync(const CreateExperimentRequestT& request, const CreateExperimentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::CreateExperiment, request, handler, context); } /** *

Creates an Evidently feature that you want to launch or test. You can * define up to five variations of a feature, and use these variations in your * launches and experiments. A feature must be created in a project. For * information about creating a project, see CreateProject.

*

Don't use this operation to update an existing feature. Instead, use UpdateFeature. *

See Also:

AWS * API Reference

*/ virtual Model::CreateFeatureOutcome CreateFeature(const Model::CreateFeatureRequest& request) const; /** * A Callable wrapper for CreateFeature that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateFeatureOutcomeCallable CreateFeatureCallable(const CreateFeatureRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::CreateFeature, request); } /** * An Async wrapper for CreateFeature that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateFeatureAsync(const CreateFeatureRequestT& request, const CreateFeatureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::CreateFeature, request, handler, context); } /** *

Creates a launch of a given feature. Before you create a launch, you * must create the feature to use for the launch.

You can use a launch to * safely validate new features by serving them to a specified percentage of your * users while you roll out the feature. You can monitor the performance of the new * feature to help you decide when to ramp up traffic to more users. This helps you * reduce risk and identify unintended consequences before you fully launch the * feature.

Don't use this operation to update an existing launch. Instead, * use UpdateLaunch. *

See Also:

AWS * API Reference

*/ virtual Model::CreateLaunchOutcome CreateLaunch(const Model::CreateLaunchRequest& request) const; /** * A Callable wrapper for CreateLaunch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateLaunchOutcomeCallable CreateLaunchCallable(const CreateLaunchRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::CreateLaunch, request); } /** * An Async wrapper for CreateLaunch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateLaunchAsync(const CreateLaunchRequestT& request, const CreateLaunchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::CreateLaunch, request, handler, context); } /** *

Creates a project, which is the logical object in Evidently that can contain * features, launches, and experiments. Use projects to group similar features * together.

To update an existing project, use UpdateProject.

See * Also:

AWS * API Reference

*/ virtual Model::CreateProjectOutcome CreateProject(const Model::CreateProjectRequest& request) const; /** * A Callable wrapper for CreateProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateProjectOutcomeCallable CreateProjectCallable(const CreateProjectRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::CreateProject, request); } /** * An Async wrapper for CreateProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateProjectAsync(const CreateProjectRequestT& request, const CreateProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::CreateProject, request, handler, context); } /** *

Use this operation to define a segment of your audience. A segment is * a portion of your audience that share one or more characteristics. Examples * could be Chrome browser users, users in Europe, or Firefox browser users in * Europe who also fit other criteria that your application collects, such as * age.

Using a segment in an experiment limits that experiment to evaluate * only the users who match the segment criteria. Using one or more segments in a * launch allows you to define different traffic splits for the different audience * segments.

For more information about segment pattern syntax, see * Segment rule pattern syntax.

The pattern that you define for a * segment is matched against the value of evaluationContext, which is * passed into Evidently in the EvaluateFeature * operation, when Evidently assigns a feature variation to a user.

See * Also:

AWS * API Reference

*/ virtual Model::CreateSegmentOutcome CreateSegment(const Model::CreateSegmentRequest& request) const; /** * A Callable wrapper for CreateSegment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateSegmentOutcomeCallable CreateSegmentCallable(const CreateSegmentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::CreateSegment, request); } /** * An Async wrapper for CreateSegment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateSegmentAsync(const CreateSegmentRequestT& request, const CreateSegmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::CreateSegment, request, handler, context); } /** *

Deletes an Evidently experiment. The feature used for the experiment is not * deleted.

To stop an experiment without deleting it, use StopExperiment. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteExperimentOutcome DeleteExperiment(const Model::DeleteExperimentRequest& request) const; /** * A Callable wrapper for DeleteExperiment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteExperimentOutcomeCallable DeleteExperimentCallable(const DeleteExperimentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::DeleteExperiment, request); } /** * An Async wrapper for DeleteExperiment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteExperimentAsync(const DeleteExperimentRequestT& request, const DeleteExperimentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::DeleteExperiment, request, handler, context); } /** *

Deletes an Evidently feature.

See Also:

AWS * API Reference

*/ virtual Model::DeleteFeatureOutcome DeleteFeature(const Model::DeleteFeatureRequest& request) const; /** * A Callable wrapper for DeleteFeature that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteFeatureOutcomeCallable DeleteFeatureCallable(const DeleteFeatureRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::DeleteFeature, request); } /** * An Async wrapper for DeleteFeature that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteFeatureAsync(const DeleteFeatureRequestT& request, const DeleteFeatureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::DeleteFeature, request, handler, context); } /** *

Deletes an Evidently launch. The feature used for the launch is not * deleted.

To stop a launch without deleting it, use StopLaunch. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteLaunchOutcome DeleteLaunch(const Model::DeleteLaunchRequest& request) const; /** * A Callable wrapper for DeleteLaunch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteLaunchOutcomeCallable DeleteLaunchCallable(const DeleteLaunchRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::DeleteLaunch, request); } /** * An Async wrapper for DeleteLaunch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteLaunchAsync(const DeleteLaunchRequestT& request, const DeleteLaunchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::DeleteLaunch, request, handler, context); } /** *

Deletes an Evidently project. Before you can delete a project, you must * delete all the features that the project contains. To delete a feature, use DeleteFeature.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteProjectOutcome DeleteProject(const Model::DeleteProjectRequest& request) const; /** * A Callable wrapper for DeleteProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteProjectOutcomeCallable DeleteProjectCallable(const DeleteProjectRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::DeleteProject, request); } /** * An Async wrapper for DeleteProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteProjectAsync(const DeleteProjectRequestT& request, const DeleteProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::DeleteProject, request, handler, context); } /** *

Deletes a segment. You can't delete a segment that is being used in a launch * or experiment, even if that launch or experiment is not currently * running.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSegmentOutcome DeleteSegment(const Model::DeleteSegmentRequest& request) const; /** * A Callable wrapper for DeleteSegment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteSegmentOutcomeCallable DeleteSegmentCallable(const DeleteSegmentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::DeleteSegment, request); } /** * An Async wrapper for DeleteSegment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteSegmentAsync(const DeleteSegmentRequestT& request, const DeleteSegmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::DeleteSegment, request, handler, context); } /** *

This operation assigns a feature variation to one given user session. You * pass in an entityID that represents the user. Evidently then checks * the evaluation rules and assigns the variation.

The first rules that are * evaluated are the override rules. If the user's entityID matches an * override rule, the user is served the variation specified by that rule.

*

If there is a current launch with this feature that uses segment overrides, * and if the user session's evaluationContext matches a segment rule * defined in a segment override, the configuration in the segment overrides is * used. For more information about segments, see CreateSegment * and Use * segments to focus your audience.

If there is a launch with no segment * overrides, the user might be assigned to a variation in the launch. The chance * of this depends on the percentage of users that are allocated to that launch. If * the user is enrolled in the launch, the variation they are served depends on the * allocation of the various feature variations used for the launch.

If the * user is not assigned to a launch, and there is an ongoing experiment for this * feature, the user might be assigned to a variation in the experiment. The chance * of this depends on the percentage of users that are allocated to that * experiment.

If the experiment uses a segment, then only user sessions * with evaluationContext values that match the segment rule are used * in the experiment.

If the user is enrolled in the experiment, the * variation they are served depends on the allocation of the various feature * variations used for the experiment.

If the user is not assigned to a * launch or experiment, they are served the default variation.

See * Also:

AWS * API Reference

*/ virtual Model::EvaluateFeatureOutcome EvaluateFeature(const Model::EvaluateFeatureRequest& request) const; /** * A Callable wrapper for EvaluateFeature that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::EvaluateFeatureOutcomeCallable EvaluateFeatureCallable(const EvaluateFeatureRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::EvaluateFeature, request); } /** * An Async wrapper for EvaluateFeature that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void EvaluateFeatureAsync(const EvaluateFeatureRequestT& request, const EvaluateFeatureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::EvaluateFeature, request, handler, context); } /** *

Returns the details about one experiment. You must already know the * experiment name. To retrieve a list of experiments in your account, use ListExperiments.

See * Also:

AWS * API Reference

*/ virtual Model::GetExperimentOutcome GetExperiment(const Model::GetExperimentRequest& request) const; /** * A Callable wrapper for GetExperiment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetExperimentOutcomeCallable GetExperimentCallable(const GetExperimentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::GetExperiment, request); } /** * An Async wrapper for GetExperiment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetExperimentAsync(const GetExperimentRequestT& request, const GetExperimentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::GetExperiment, request, handler, context); } /** *

Retrieves the results of a running or completed experiment. No results are * available until there have been 100 events for each variation and at least 10 * minutes have passed since the start of the experiment. To increase the * statistical power, Evidently performs an additional offline p-value analysis at * the end of the experiment. Offline p-value analysis can detect statistical * significance in some cases where the anytime p-values used during the experiment * do not find statistical significance.

Experiment results are available up * to 63 days after the start of the experiment. They are not available after that * because of CloudWatch data retention policies.

See Also:

AWS * API Reference

*/ virtual Model::GetExperimentResultsOutcome GetExperimentResults(const Model::GetExperimentResultsRequest& request) const; /** * A Callable wrapper for GetExperimentResults that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetExperimentResultsOutcomeCallable GetExperimentResultsCallable(const GetExperimentResultsRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::GetExperimentResults, request); } /** * An Async wrapper for GetExperimentResults that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetExperimentResultsAsync(const GetExperimentResultsRequestT& request, const GetExperimentResultsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::GetExperimentResults, request, handler, context); } /** *

Returns the details about one feature. You must already know the feature * name. To retrieve a list of features in your account, use ListFeatures.

See * Also:

AWS * API Reference

*/ virtual Model::GetFeatureOutcome GetFeature(const Model::GetFeatureRequest& request) const; /** * A Callable wrapper for GetFeature that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetFeatureOutcomeCallable GetFeatureCallable(const GetFeatureRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::GetFeature, request); } /** * An Async wrapper for GetFeature that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetFeatureAsync(const GetFeatureRequestT& request, const GetFeatureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::GetFeature, request, handler, context); } /** *

Returns the details about one launch. You must already know the launch name. * To retrieve a list of launches in your account, use ListLaunches.

See * Also:

AWS * API Reference

*/ virtual Model::GetLaunchOutcome GetLaunch(const Model::GetLaunchRequest& request) const; /** * A Callable wrapper for GetLaunch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetLaunchOutcomeCallable GetLaunchCallable(const GetLaunchRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::GetLaunch, request); } /** * An Async wrapper for GetLaunch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetLaunchAsync(const GetLaunchRequestT& request, const GetLaunchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::GetLaunch, request, handler, context); } /** *

Returns the details about one launch. You must already know the project name. * To retrieve a list of projects in your account, use ListProjects.

See * Also:

AWS * API Reference

*/ virtual Model::GetProjectOutcome GetProject(const Model::GetProjectRequest& request) const; /** * A Callable wrapper for GetProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetProjectOutcomeCallable GetProjectCallable(const GetProjectRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::GetProject, request); } /** * An Async wrapper for GetProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetProjectAsync(const GetProjectRequestT& request, const GetProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::GetProject, request, handler, context); } /** *

Returns information about the specified segment. Specify the segment you want * to view by specifying its ARN.

See Also:

AWS * API Reference

*/ virtual Model::GetSegmentOutcome GetSegment(const Model::GetSegmentRequest& request) const; /** * A Callable wrapper for GetSegment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSegmentOutcomeCallable GetSegmentCallable(const GetSegmentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::GetSegment, request); } /** * An Async wrapper for GetSegment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSegmentAsync(const GetSegmentRequestT& request, const GetSegmentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::GetSegment, request, handler, context); } /** *

Returns configuration details about all the experiments in the specified * project.

See Also:

AWS * API Reference

*/ virtual Model::ListExperimentsOutcome ListExperiments(const Model::ListExperimentsRequest& request) const; /** * A Callable wrapper for ListExperiments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListExperimentsOutcomeCallable ListExperimentsCallable(const ListExperimentsRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::ListExperiments, request); } /** * An Async wrapper for ListExperiments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListExperimentsAsync(const ListExperimentsRequestT& request, const ListExperimentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::ListExperiments, request, handler, context); } /** *

Returns configuration details about all the features in the specified * project.

See Also:

AWS * API Reference

*/ virtual Model::ListFeaturesOutcome ListFeatures(const Model::ListFeaturesRequest& request) const; /** * A Callable wrapper for ListFeatures that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListFeaturesOutcomeCallable ListFeaturesCallable(const ListFeaturesRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::ListFeatures, request); } /** * An Async wrapper for ListFeatures that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListFeaturesAsync(const ListFeaturesRequestT& request, const ListFeaturesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::ListFeatures, request, handler, context); } /** *

Returns configuration details about all the launches in the specified * project.

See Also:

AWS * API Reference

*/ virtual Model::ListLaunchesOutcome ListLaunches(const Model::ListLaunchesRequest& request) const; /** * A Callable wrapper for ListLaunches that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListLaunchesOutcomeCallable ListLaunchesCallable(const ListLaunchesRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::ListLaunches, request); } /** * An Async wrapper for ListLaunches that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListLaunchesAsync(const ListLaunchesRequestT& request, const ListLaunchesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::ListLaunches, request, handler, context); } /** *

Returns configuration details about all the projects in the current Region in * your account.

See Also:

AWS * API Reference

*/ virtual Model::ListProjectsOutcome ListProjects(const Model::ListProjectsRequest& request) const; /** * A Callable wrapper for ListProjects that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListProjectsOutcomeCallable ListProjectsCallable(const ListProjectsRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::ListProjects, request); } /** * An Async wrapper for ListProjects that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListProjectsAsync(const ListProjectsRequestT& request, const ListProjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::ListProjects, request, handler, context); } /** *

Use this operation to find which experiments or launches are using a * specified segment.

See Also:

AWS * API Reference

*/ virtual Model::ListSegmentReferencesOutcome ListSegmentReferences(const Model::ListSegmentReferencesRequest& request) const; /** * A Callable wrapper for ListSegmentReferences that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSegmentReferencesOutcomeCallable ListSegmentReferencesCallable(const ListSegmentReferencesRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::ListSegmentReferences, request); } /** * An Async wrapper for ListSegmentReferences that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSegmentReferencesAsync(const ListSegmentReferencesRequestT& request, const ListSegmentReferencesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::ListSegmentReferences, request, handler, context); } /** *

Returns a list of audience segments that you have created in your account in * this Region.

See Also:

AWS * API Reference

*/ virtual Model::ListSegmentsOutcome ListSegments(const Model::ListSegmentsRequest& request) const; /** * A Callable wrapper for ListSegments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSegmentsOutcomeCallable ListSegmentsCallable(const ListSegmentsRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::ListSegments, request); } /** * An Async wrapper for ListSegments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSegmentsAsync(const ListSegmentsRequestT& request, const ListSegmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::ListSegments, request, handler, context); } /** *

Displays the tags associated with an Evidently 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(&CloudWatchEvidentlyClient::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(&CloudWatchEvidentlyClient::ListTagsForResource, request, handler, context); } /** *

Sends performance events to Evidently. These events can be used to evaluate a * launch or an experiment.

See Also:

AWS * API Reference

*/ virtual Model::PutProjectEventsOutcome PutProjectEvents(const Model::PutProjectEventsRequest& request) const; /** * A Callable wrapper for PutProjectEvents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutProjectEventsOutcomeCallable PutProjectEventsCallable(const PutProjectEventsRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::PutProjectEvents, request); } /** * An Async wrapper for PutProjectEvents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutProjectEventsAsync(const PutProjectEventsRequestT& request, const PutProjectEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::PutProjectEvents, request, handler, context); } /** *

Starts an existing experiment. To create an experiment, use CreateExperiment.

See * Also:

AWS * API Reference

*/ virtual Model::StartExperimentOutcome StartExperiment(const Model::StartExperimentRequest& request) const; /** * A Callable wrapper for StartExperiment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartExperimentOutcomeCallable StartExperimentCallable(const StartExperimentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::StartExperiment, request); } /** * An Async wrapper for StartExperiment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartExperimentAsync(const StartExperimentRequestT& request, const StartExperimentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::StartExperiment, request, handler, context); } /** *

Starts an existing launch. To create a launch, use CreateLaunch.

See * Also:

AWS * API Reference

*/ virtual Model::StartLaunchOutcome StartLaunch(const Model::StartLaunchRequest& request) const; /** * A Callable wrapper for StartLaunch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartLaunchOutcomeCallable StartLaunchCallable(const StartLaunchRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::StartLaunch, request); } /** * An Async wrapper for StartLaunch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartLaunchAsync(const StartLaunchRequestT& request, const StartLaunchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::StartLaunch, request, handler, context); } /** *

Stops an experiment that is currently running. If you stop an experiment, you * can't resume it or restart it.

See Also:

AWS * API Reference

*/ virtual Model::StopExperimentOutcome StopExperiment(const Model::StopExperimentRequest& request) const; /** * A Callable wrapper for StopExperiment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopExperimentOutcomeCallable StopExperimentCallable(const StopExperimentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::StopExperiment, request); } /** * An Async wrapper for StopExperiment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopExperimentAsync(const StopExperimentRequestT& request, const StopExperimentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::StopExperiment, request, handler, context); } /** *

Stops a launch that is currently running. After you stop a launch, you will * not be able to resume it or restart it. Also, it will not be evaluated as a rule * for traffic allocation, and the traffic that was allocated to the launch will * instead be available to the feature's experiment, if there is one. Otherwise, * all traffic will be served the default variation after the launch is * stopped.

See Also:

AWS * API Reference

*/ virtual Model::StopLaunchOutcome StopLaunch(const Model::StopLaunchRequest& request) const; /** * A Callable wrapper for StopLaunch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopLaunchOutcomeCallable StopLaunchCallable(const StopLaunchRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::StopLaunch, request); } /** * An Async wrapper for StopLaunch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopLaunchAsync(const StopLaunchRequestT& request, const StopLaunchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::StopLaunch, request, handler, context); } /** *

Assigns one or more tags (key-value pairs) to the specified CloudWatch * Evidently resource. Projects, features, launches, and experiments can be * tagged.

Tags can help you organize and categorize your resources. You can * also use them to scope user permissions by granting a user permission to access * or change only resources with certain tag values.

Tags don't have any * semantic meaning to Amazon Web Services and are interpreted strictly as strings * of characters.

You can use the TagResource action with a * resource that already has tags. If you specify a new tag key for the resource, * this tag is appended to the list of tags associated with the alarm. If you * specify a tag key that is already associated with the resource, the new tag * value that you specify replaces the previous value for that tag.

You can * associate as many as 50 tags with a resource.

For more information, see * Tagging * Amazon Web Services resources.

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

Use this operation to test a rules pattern that you plan to use to create an * audience segment. For more information about segments, see CreateSegment.

See * Also:

AWS * API Reference

*/ virtual Model::TestSegmentPatternOutcome TestSegmentPattern(const Model::TestSegmentPatternRequest& request) const; /** * A Callable wrapper for TestSegmentPattern that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TestSegmentPatternOutcomeCallable TestSegmentPatternCallable(const TestSegmentPatternRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::TestSegmentPattern, request); } /** * An Async wrapper for TestSegmentPattern that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TestSegmentPatternAsync(const TestSegmentPatternRequestT& request, const TestSegmentPatternResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::TestSegmentPattern, request, handler, context); } /** *

Removes one or more tags from the specified 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(&CloudWatchEvidentlyClient::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(&CloudWatchEvidentlyClient::UntagResource, request, handler, context); } /** *

Updates an Evidently experiment.

Don't use this operation to update * an experiment's tag. Instead, use TagResource. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateExperimentOutcome UpdateExperiment(const Model::UpdateExperimentRequest& request) const; /** * A Callable wrapper for UpdateExperiment that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateExperimentOutcomeCallable UpdateExperimentCallable(const UpdateExperimentRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::UpdateExperiment, request); } /** * An Async wrapper for UpdateExperiment that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateExperimentAsync(const UpdateExperimentRequestT& request, const UpdateExperimentResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::UpdateExperiment, request, handler, context); } /** *

Updates an existing feature.

You can't use this operation to update * the tags of an existing feature. Instead, use TagResource. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateFeatureOutcome UpdateFeature(const Model::UpdateFeatureRequest& request) const; /** * A Callable wrapper for UpdateFeature that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateFeatureOutcomeCallable UpdateFeatureCallable(const UpdateFeatureRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::UpdateFeature, request); } /** * An Async wrapper for UpdateFeature that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateFeatureAsync(const UpdateFeatureRequestT& request, const UpdateFeatureResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::UpdateFeature, request, handler, context); } /** *

Updates a launch of a given feature.

Don't use this operation to * update the tags of an existing launch. Instead, use TagResource. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateLaunchOutcome UpdateLaunch(const Model::UpdateLaunchRequest& request) const; /** * A Callable wrapper for UpdateLaunch that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateLaunchOutcomeCallable UpdateLaunchCallable(const UpdateLaunchRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::UpdateLaunch, request); } /** * An Async wrapper for UpdateLaunch that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateLaunchAsync(const UpdateLaunchRequestT& request, const UpdateLaunchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::UpdateLaunch, request, handler, context); } /** *

Updates the description of an existing project.

To create a new * project, use CreateProject.

*

Don't use this operation to update the data storage options of a project. * Instead, use UpdateProjectDataDelivery. *

Don't use this operation to update the tags of a project. Instead, use * TagResource. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateProjectOutcome UpdateProject(const Model::UpdateProjectRequest& request) const; /** * A Callable wrapper for UpdateProject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateProjectOutcomeCallable UpdateProjectCallable(const UpdateProjectRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::UpdateProject, request); } /** * An Async wrapper for UpdateProject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateProjectAsync(const UpdateProjectRequestT& request, const UpdateProjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::UpdateProject, request, handler, context); } /** *

Updates the data storage options for this project. If you store evaluation * events, you an keep them and analyze them on your own. If you choose not to * store evaluation events, Evidently deletes them after using them to produce * metrics and other experiment results that you can view.

You can't specify * both cloudWatchLogs and s3Destination in the same * operation.

See Also:

AWS * API Reference

*/ virtual Model::UpdateProjectDataDeliveryOutcome UpdateProjectDataDelivery(const Model::UpdateProjectDataDeliveryRequest& request) const; /** * A Callable wrapper for UpdateProjectDataDelivery that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateProjectDataDeliveryOutcomeCallable UpdateProjectDataDeliveryCallable(const UpdateProjectDataDeliveryRequestT& request) const { return SubmitCallable(&CloudWatchEvidentlyClient::UpdateProjectDataDelivery, request); } /** * An Async wrapper for UpdateProjectDataDelivery that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateProjectDataDeliveryAsync(const UpdateProjectDataDeliveryRequestT& request, const UpdateProjectDataDeliveryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudWatchEvidentlyClient::UpdateProjectDataDelivery, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const CloudWatchEvidentlyClientConfiguration& clientConfiguration); CloudWatchEvidentlyClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace CloudWatchEvidently } // namespace Aws