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

In addition to your infrastructure configuration, these settings provide an * extra layer of control over your build instances. You can also specify commands * to run on launch for all of your build instances.

Image Builder does not * automatically install the Systems Manager agent on Windows instances. If your * base image includes the Systems Manager agent, then the AMI that you create will * also include the agent. For Linux instances, if the base image does not already * include the Systems Manager agent, Image Builder installs it. For Linux * instances where Image Builder installs the Systems Manager agent, you can choose * whether to keep it for the AMI that you create.

See Also:

AWS * API Reference

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

Contains settings for the Systems Manager agent on your build instance.

*/ inline const SystemsManagerAgent& GetSystemsManagerAgent() const{ return m_systemsManagerAgent; } /** *

Contains settings for the Systems Manager agent on your build instance.

*/ inline bool SystemsManagerAgentHasBeenSet() const { return m_systemsManagerAgentHasBeenSet; } /** *

Contains settings for the Systems Manager agent on your build instance.

*/ inline void SetSystemsManagerAgent(const SystemsManagerAgent& value) { m_systemsManagerAgentHasBeenSet = true; m_systemsManagerAgent = value; } /** *

Contains settings for the Systems Manager agent on your build instance.

*/ inline void SetSystemsManagerAgent(SystemsManagerAgent&& value) { m_systemsManagerAgentHasBeenSet = true; m_systemsManagerAgent = std::move(value); } /** *

Contains settings for the Systems Manager agent on your build instance.

*/ inline AdditionalInstanceConfiguration& WithSystemsManagerAgent(const SystemsManagerAgent& value) { SetSystemsManagerAgent(value); return *this;} /** *

Contains settings for the Systems Manager agent on your build instance.

*/ inline AdditionalInstanceConfiguration& WithSystemsManagerAgent(SystemsManagerAgent&& value) { SetSystemsManagerAgent(std::move(value)); return *this;} /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline const Aws::String& GetUserDataOverride() const{ return m_userDataOverride; } /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline bool UserDataOverrideHasBeenSet() const { return m_userDataOverrideHasBeenSet; } /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline void SetUserDataOverride(const Aws::String& value) { m_userDataOverrideHasBeenSet = true; m_userDataOverride = value; } /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline void SetUserDataOverride(Aws::String&& value) { m_userDataOverrideHasBeenSet = true; m_userDataOverride = std::move(value); } /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline void SetUserDataOverride(const char* value) { m_userDataOverrideHasBeenSet = true; m_userDataOverride.assign(value); } /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline AdditionalInstanceConfiguration& WithUserDataOverride(const Aws::String& value) { SetUserDataOverride(value); return *this;} /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline AdditionalInstanceConfiguration& WithUserDataOverride(Aws::String&& value) { SetUserDataOverride(std::move(value)); return *this;} /** *

Use this property to provide commands or a command script to run when you * launch your build instance.

The userDataOverride property replaces any * commands that Image Builder might have added to ensure that Systems Manager is * installed on your Linux build instance. If you override the user data, make sure * that you add commands to install Systems Manager, if it is not pre-installed on * your base image.

The user data is always base 64 encoded. For * example, the following commands are encoded as * IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhci$:

* #!/bin/bash

mkdir -p /var/bb/

touch /var

*/ inline AdditionalInstanceConfiguration& WithUserDataOverride(const char* value) { SetUserDataOverride(value); return *this;} private: SystemsManagerAgent m_systemsManagerAgent; bool m_systemsManagerAgentHasBeenSet = false; Aws::String m_userDataOverride; bool m_userDataOverrideHasBeenSet = false; }; } // namespace Model } // namespace imagebuilder } // namespace Aws