/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include 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
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