/** * 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 namespace Aws { namespace CloudWatchEvidently { namespace Model { /** */ class CreateLaunchRequest : public CloudWatchEvidentlyRequest { public: AWS_CLOUDWATCHEVIDENTLY_API CreateLaunchRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateLaunch"; } AWS_CLOUDWATCHEVIDENTLY_API Aws::String SerializePayload() const override; /** *

An optional description for the launch.

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

An optional description for the launch.

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

An optional description for the launch.

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

An optional description for the launch.

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

An optional description for the launch.

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

An optional description for the launch.

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

An optional description for the launch.

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

An optional description for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that contains the feature and variations that are to * be used for the launch.

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

An array of structures that define the metrics that will be used to monitor * the launch performance.

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

An array of structures that define the metrics that will be used to monitor * the launch performance.

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

An array of structures that define the metrics that will be 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 will be 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 will be used to monitor * the launch performance.

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

An array of structures that define the metrics that will be used to monitor * the launch performance.

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

An array of structures that define the metrics that will be used to monitor * the launch performance.

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

An array of structures that define the metrics that will be used to monitor * the launch performance.

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

The name for the new launch.

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

The name for the new launch.

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

The name for the new launch.

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

The name for the new launch.

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

The name for the new launch.

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

The name for the new launch.

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

The name for the new launch.

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

The name for the new launch.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

The name or ARN of the project that you want to create the launch in.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

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

When Evidently assigns a particular user session to a launch, it must use a * randomization ID to determine which variation the user session is served. This * randomization ID is a combination of the entity ID and * randomizationSalt. If you omit randomizationSalt, * Evidently uses the launch name as the randomizationSalt.

*/ inline CreateLaunchRequest& 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 ScheduledSplitsLaunchConfig& GetScheduledSplitsConfig() const{ return m_scheduledSplitsConfig; } /** *

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

*/ inline bool ScheduledSplitsConfigHasBeenSet() const { return m_scheduledSplitsConfigHasBeenSet; } /** *

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

*/ inline void SetScheduledSplitsConfig(const ScheduledSplitsLaunchConfig& value) { m_scheduledSplitsConfigHasBeenSet = true; m_scheduledSplitsConfig = value; } /** *

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

*/ inline void SetScheduledSplitsConfig(ScheduledSplitsLaunchConfig&& value) { m_scheduledSplitsConfigHasBeenSet = true; m_scheduledSplitsConfig = std::move(value); } /** *

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

*/ inline CreateLaunchRequest& WithScheduledSplitsConfig(const ScheduledSplitsLaunchConfig& value) { SetScheduledSplitsConfig(value); return *this;} /** *

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

*/ inline CreateLaunchRequest& WithScheduledSplitsConfig(ScheduledSplitsLaunchConfig&& value) { SetScheduledSplitsConfig(std::move(value)); return *this;} /** *

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

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

Assigns one or more tags (key-value pairs) to the launch.

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 associate as many as 50 tags with a launch.

*

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

*/ inline CreateLaunchRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_groups; bool m_groupsHasBeenSet = 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; ScheduledSplitsLaunchConfig m_scheduledSplitsConfig; bool m_scheduledSplitsConfigHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace CloudWatchEvidently } // namespace Aws