/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CloudWatchEvidently { namespace Model { /** *

This structure contains the configuration details of one Evidently * launch.

See Also:

AWS * API Reference

*/ class Launch { public: AWS_CLOUDWATCHEVIDENTLY_API Launch(); AWS_CLOUDWATCHEVIDENTLY_API Launch(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVIDENTLY_API Launch& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVIDENTLY_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ARN of the launch.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The ARN of the launch.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The ARN of the launch.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The ARN of the launch.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The ARN of the launch.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The ARN of the launch.

*/ inline Launch& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The ARN of the launch.

*/ inline Launch& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The ARN of the launch.

*/ inline Launch& WithArn(const char* value) { SetArn(value); return *this;} /** *

The date and time that the launch is created.

*/ inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; } /** *

The date and time that the launch is created.

*/ inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; } /** *

The date and time that the launch is created.

*/ inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; } /** *

The date and time that the launch is created.

*/ inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); } /** *

The date and time that the launch is created.

*/ inline Launch& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;} /** *

The date and time that the launch is created.

*/ inline Launch& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;} /** *

The description of the launch.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the launch.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the launch.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the launch.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the launch.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the launch.

*/ inline Launch& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the launch.

*/ inline Launch& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the launch.

*/ inline Launch& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

A structure that contains information about the start and end times of the * launch.

*/ inline const LaunchExecution& GetExecution() const{ return m_execution; } /** *

A structure that contains information about the start and end times of the * launch.

*/ inline bool ExecutionHasBeenSet() const { return m_executionHasBeenSet; } /** *

A structure that contains information about the start and end times of the * launch.

*/ inline void SetExecution(const LaunchExecution& value) { m_executionHasBeenSet = true; m_execution = value; } /** *

A structure that contains information about the start and end times of the * launch.

*/ inline void SetExecution(LaunchExecution&& value) { m_executionHasBeenSet = true; m_execution = std::move(value); } /** *

A structure that contains information about the start and end times of the * launch.

*/ inline Launch& WithExecution(const LaunchExecution& value) { SetExecution(value); return *this;} /** *

A structure that contains information about the start and end times of the * launch.

*/ inline Launch& WithExecution(LaunchExecution&& value) { SetExecution(std::move(value)); return *this;} /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline const Aws::Vector& GetGroups() const{ return m_groups; } /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline bool GroupsHasBeenSet() const { return m_groupsHasBeenSet; } /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline void SetGroups(const Aws::Vector& value) { m_groupsHasBeenSet = true; m_groups = value; } /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline void SetGroups(Aws::Vector&& value) { m_groupsHasBeenSet = true; m_groups = std::move(value); } /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline Launch& WithGroups(const Aws::Vector& value) { SetGroups(value); return *this;} /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline Launch& WithGroups(Aws::Vector&& value) { SetGroups(std::move(value)); return *this;} /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline Launch& AddGroups(const LaunchGroup& value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } /** *

An array of structures that define the feature variations that are being used * in the launch.

*/ inline Launch& AddGroups(LaunchGroup&& value) { m_groupsHasBeenSet = true; m_groups.push_back(std::move(value)); return *this; } /** *

The date and time that the launch was most recently updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; } /** *

The date and time that the launch was most recently updated.

*/ inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; } /** *

The date and time that the launch was most recently updated.

*/ inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; } /** *

The date and time that the launch was most recently updated.

*/ inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); } /** *

The date and time that the launch was most recently updated.

*/ inline Launch& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;} /** *

The date and time that the launch was most recently updated.

*/ inline Launch& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(value)); return *this;} /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline const Aws::Vector& GetMetricMonitors() const{ return m_metricMonitors; } /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline bool MetricMonitorsHasBeenSet() const { return m_metricMonitorsHasBeenSet; } /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline void SetMetricMonitors(const Aws::Vector& value) { m_metricMonitorsHasBeenSet = true; m_metricMonitors = value; } /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline void SetMetricMonitors(Aws::Vector&& value) { m_metricMonitorsHasBeenSet = true; m_metricMonitors = std::move(value); } /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline Launch& WithMetricMonitors(const Aws::Vector& value) { SetMetricMonitors(value); return *this;} /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline Launch& WithMetricMonitors(Aws::Vector&& value) { SetMetricMonitors(std::move(value)); return *this;} /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline Launch& AddMetricMonitors(const MetricMonitor& value) { m_metricMonitorsHasBeenSet = true; m_metricMonitors.push_back(value); return *this; } /** *

An array of structures that define the metrics that are being used to monitor * the launch performance.

*/ inline Launch& AddMetricMonitors(MetricMonitor&& value) { m_metricMonitorsHasBeenSet = true; m_metricMonitors.push_back(std::move(value)); return *this; } /** *

The name of the launch.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the launch.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the launch.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the launch.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the launch.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the launch.

*/ inline Launch& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the launch.

*/ inline Launch& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the launch.

*/ inline Launch& WithName(const char* value) { SetName(value); return *this;} /** *

The name or ARN of the project that contains the launch.

*/ inline const Aws::String& GetProject() const{ return m_project; } /** *

The name or ARN of the project that contains the launch.

*/ inline bool ProjectHasBeenSet() const { return m_projectHasBeenSet; } /** *

The name or ARN of the project that contains the launch.

*/ inline void SetProject(const Aws::String& value) { m_projectHasBeenSet = true; m_project = value; } /** *

The name or ARN of the project that contains the launch.

*/ inline void SetProject(Aws::String&& value) { m_projectHasBeenSet = true; m_project = std::move(value); } /** *

The name or ARN of the project that contains the launch.

*/ inline void SetProject(const char* value) { m_projectHasBeenSet = true; m_project.assign(value); } /** *

The name or ARN of the project that contains the launch.

*/ inline Launch& WithProject(const Aws::String& value) { SetProject(value); return *this;} /** *

The name or ARN of the project that contains the launch.

*/ inline Launch& WithProject(Aws::String&& value) { SetProject(std::move(value)); return *this;} /** *

The name or ARN of the project that contains the launch.

*/ inline Launch& WithProject(const char* value) { SetProject(value); return *this;} /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline const Aws::String& GetRandomizationSalt() const{ return m_randomizationSalt; } /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline bool RandomizationSaltHasBeenSet() const { return m_randomizationSaltHasBeenSet; } /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline void SetRandomizationSalt(const Aws::String& value) { m_randomizationSaltHasBeenSet = true; m_randomizationSalt = value; } /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline void SetRandomizationSalt(Aws::String&& value) { m_randomizationSaltHasBeenSet = true; m_randomizationSalt = std::move(value); } /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline void SetRandomizationSalt(const char* value) { m_randomizationSaltHasBeenSet = true; m_randomizationSalt.assign(value); } /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline Launch& WithRandomizationSalt(const Aws::String& value) { SetRandomizationSalt(value); return *this;} /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline Launch& WithRandomizationSalt(Aws::String&& value) { SetRandomizationSalt(std::move(value)); return *this;} /** *

This value is used when Evidently assigns a particular user session to the * launch, to help create a randomization ID to determine which variation the user * session is served. This randomization ID is a combination of the entity ID and * randomizationSalt.

*/ inline Launch& WithRandomizationSalt(const char* value) { SetRandomizationSalt(value); return *this;} /** *

An array of structures that define the traffic allocation percentages among * the feature variations during each step of the launch.

*/ inline const ScheduledSplitsLaunchDefinition& GetScheduledSplitsDefinition() const{ return m_scheduledSplitsDefinition; } /** *

An array of structures that define the traffic allocation percentages among * the feature variations during each step of the launch.

*/ inline bool ScheduledSplitsDefinitionHasBeenSet() const { return m_scheduledSplitsDefinitionHasBeenSet; } /** *

An array of structures that define the traffic allocation percentages among * the feature variations during each step of the launch.

*/ inline void SetScheduledSplitsDefinition(const ScheduledSplitsLaunchDefinition& value) { m_scheduledSplitsDefinitionHasBeenSet = true; m_scheduledSplitsDefinition = value; } /** *

An array of structures that define the traffic allocation percentages among * the feature variations during each step of the launch.

*/ inline void SetScheduledSplitsDefinition(ScheduledSplitsLaunchDefinition&& value) { m_scheduledSplitsDefinitionHasBeenSet = true; m_scheduledSplitsDefinition = std::move(value); } /** *

An array of structures that define the traffic allocation percentages among * the feature variations during each step of the launch.

*/ inline Launch& WithScheduledSplitsDefinition(const ScheduledSplitsLaunchDefinition& value) { SetScheduledSplitsDefinition(value); return *this;} /** *

An array of structures that define the traffic allocation percentages among * the feature variations during each step of the launch.

*/ inline Launch& WithScheduledSplitsDefinition(ScheduledSplitsLaunchDefinition&& value) { SetScheduledSplitsDefinition(std::move(value)); return *this;} /** *

The current state of the launch.

*/ inline const LaunchStatus& GetStatus() const{ return m_status; } /** *

The current state of the launch.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current state of the launch.

*/ inline void SetStatus(const LaunchStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current state of the launch.

*/ inline void SetStatus(LaunchStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current state of the launch.

*/ inline Launch& WithStatus(const LaunchStatus& value) { SetStatus(value); return *this;} /** *

The current state of the launch.

*/ inline Launch& WithStatus(LaunchStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline const Aws::String& GetStatusReason() const{ return m_statusReason; } /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline bool StatusReasonHasBeenSet() const { return m_statusReasonHasBeenSet; } /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline void SetStatusReason(const Aws::String& value) { m_statusReasonHasBeenSet = true; m_statusReason = value; } /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline void SetStatusReason(Aws::String&& value) { m_statusReasonHasBeenSet = true; m_statusReason = std::move(value); } /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline void SetStatusReason(const char* value) { m_statusReasonHasBeenSet = true; m_statusReason.assign(value); } /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline Launch& WithStatusReason(const Aws::String& value) { SetStatusReason(value); return *this;} /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline Launch& WithStatusReason(Aws::String&& value) { SetStatusReason(std::move(value)); return *this;} /** *

If the launch was stopped, this is the string that was entered by the person * who stopped the launch, to explain why it was stopped.

*/ inline Launch& WithStatusReason(const char* value) { SetStatusReason(value); return *this;} /** *

The list of tag keys and values associated with this launch.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The list of tag keys and values associated with this launch.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The list of tag keys and values associated with this launch.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The list of tag keys and values associated with this launch.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The list of tag keys and values associated with this launch.

*/ inline Launch& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The type of launch.

*/ inline const LaunchType& GetType() const{ return m_type; } /** *

The type of launch.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of launch.

*/ inline void SetType(const LaunchType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of launch.

*/ inline void SetType(LaunchType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of launch.

*/ inline Launch& WithType(const LaunchType& value) { SetType(value); return *this;} /** *

The type of launch.

*/ inline Launch& WithType(LaunchType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::Utils::DateTime m_createdTime; bool m_createdTimeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; LaunchExecution m_execution; bool m_executionHasBeenSet = false; Aws::Vector m_groups; bool m_groupsHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; Aws::Vector m_metricMonitors; bool m_metricMonitorsHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_project; bool m_projectHasBeenSet = false; Aws::String m_randomizationSalt; bool m_randomizationSaltHasBeenSet = false; ScheduledSplitsLaunchDefinition m_scheduledSplitsDefinition; bool m_scheduledSplitsDefinitionHasBeenSet = false; LaunchStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_statusReason; bool m_statusReasonHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; LaunchType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace CloudWatchEvidently } // namespace Aws