/** * 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 RoboMaker { namespace Model { /** */ class CreateRobotApplicationRequest : public RoboMakerRequest { public: AWS_ROBOMAKER_API CreateRobotApplicationRequest(); // 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 "CreateRobotApplication"; } AWS_ROBOMAKER_API Aws::String SerializePayload() const override; /** *

The name of the robot application.

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

The name of the robot application.

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

The name of the robot application.

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

The name of the robot application.

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

The name of the robot application.

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

The name of the robot application.

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

The name of the robot application.

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

The name of the robot application.

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

The sources of the robot application.

*/ inline const Aws::Vector& GetSources() const{ return m_sources; } /** *

The sources of the robot application.

*/ inline bool SourcesHasBeenSet() const { return m_sourcesHasBeenSet; } /** *

The sources of the robot application.

*/ inline void SetSources(const Aws::Vector& value) { m_sourcesHasBeenSet = true; m_sources = value; } /** *

The sources of the robot application.

*/ inline void SetSources(Aws::Vector&& value) { m_sourcesHasBeenSet = true; m_sources = std::move(value); } /** *

The sources of the robot application.

*/ inline CreateRobotApplicationRequest& WithSources(const Aws::Vector& value) { SetSources(value); return *this;} /** *

The sources of the robot application.

*/ inline CreateRobotApplicationRequest& WithSources(Aws::Vector&& value) { SetSources(std::move(value)); return *this;} /** *

The sources of the robot application.

*/ inline CreateRobotApplicationRequest& AddSources(const SourceConfig& value) { m_sourcesHasBeenSet = true; m_sources.push_back(value); return *this; } /** *

The sources of the robot application.

*/ inline CreateRobotApplicationRequest& AddSources(SourceConfig&& value) { m_sourcesHasBeenSet = true; m_sources.push_back(std::move(value)); return *this; } /** *

The robot software suite (ROS distribuition) used by the robot * application.

*/ inline const RobotSoftwareSuite& GetRobotSoftwareSuite() const{ return m_robotSoftwareSuite; } /** *

The robot software suite (ROS distribuition) used by the robot * application.

*/ inline bool RobotSoftwareSuiteHasBeenSet() const { return m_robotSoftwareSuiteHasBeenSet; } /** *

The robot software suite (ROS distribuition) used by the robot * application.

*/ inline void SetRobotSoftwareSuite(const RobotSoftwareSuite& value) { m_robotSoftwareSuiteHasBeenSet = true; m_robotSoftwareSuite = value; } /** *

The robot software suite (ROS distribuition) used by the robot * application.

*/ inline void SetRobotSoftwareSuite(RobotSoftwareSuite&& value) { m_robotSoftwareSuiteHasBeenSet = true; m_robotSoftwareSuite = std::move(value); } /** *

The robot software suite (ROS distribuition) used by the robot * application.

*/ inline CreateRobotApplicationRequest& WithRobotSoftwareSuite(const RobotSoftwareSuite& value) { SetRobotSoftwareSuite(value); return *this;} /** *

The robot software suite (ROS distribuition) used by the robot * application.

*/ inline CreateRobotApplicationRequest& WithRobotSoftwareSuite(RobotSoftwareSuite&& value) { SetRobotSoftwareSuite(std::move(value)); return *this;} /** *

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

A map that contains tag keys and tag values that are attached to the robot * application.

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

The object that contains that URI of the Docker image that you use for your * robot application.

*/ inline const Environment& GetEnvironment() const{ return m_environment; } /** *

The object that contains that URI of the Docker image that you use for your * robot application.

*/ inline bool EnvironmentHasBeenSet() const { return m_environmentHasBeenSet; } /** *

The object that contains that URI of the Docker image that you use for your * robot application.

*/ inline void SetEnvironment(const Environment& value) { m_environmentHasBeenSet = true; m_environment = value; } /** *

The object that contains that URI of the Docker image that you use for your * robot application.

*/ inline void SetEnvironment(Environment&& value) { m_environmentHasBeenSet = true; m_environment = std::move(value); } /** *

The object that contains that URI of the Docker image that you use for your * robot application.

*/ inline CreateRobotApplicationRequest& WithEnvironment(const Environment& value) { SetEnvironment(value); return *this;} /** *

The object that contains that URI of the Docker image that you use for your * robot application.

*/ inline CreateRobotApplicationRequest& WithEnvironment(Environment&& value) { SetEnvironment(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::Vector m_sources; bool m_sourcesHasBeenSet = false; RobotSoftwareSuite m_robotSoftwareSuite; bool m_robotSoftwareSuiteHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Environment m_environment; bool m_environmentHasBeenSet = false; }; } // namespace Model } // namespace RoboMaker } // namespace Aws