/** * 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 AppStream { namespace Model { /** */ class CreateImageBuilderRequest : public AppStreamRequest { public: AWS_APPSTREAM_API CreateImageBuilderRequest(); // 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 "CreateImageBuilder"; } AWS_APPSTREAM_API Aws::String SerializePayload() const override; AWS_APPSTREAM_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

A unique name for the image builder.

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

A unique name for the image builder.

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

A unique name for the image builder.

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

A unique name for the image builder.

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

A unique name for the image builder.

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

A unique name for the image builder.

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

A unique name for the image builder.

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

A unique name for the image builder.

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

The name of the image used to create the image builder.

*/ inline const Aws::String& GetImageName() const{ return m_imageName; } /** *

The name of the image used to create the image builder.

*/ inline bool ImageNameHasBeenSet() const { return m_imageNameHasBeenSet; } /** *

The name of the image used to create the image builder.

*/ inline void SetImageName(const Aws::String& value) { m_imageNameHasBeenSet = true; m_imageName = value; } /** *

The name of the image used to create the image builder.

*/ inline void SetImageName(Aws::String&& value) { m_imageNameHasBeenSet = true; m_imageName = std::move(value); } /** *

The name of the image used to create the image builder.

*/ inline void SetImageName(const char* value) { m_imageNameHasBeenSet = true; m_imageName.assign(value); } /** *

The name of the image used to create the image builder.

*/ inline CreateImageBuilderRequest& WithImageName(const Aws::String& value) { SetImageName(value); return *this;} /** *

The name of the image used to create the image builder.

*/ inline CreateImageBuilderRequest& WithImageName(Aws::String&& value) { SetImageName(std::move(value)); return *this;} /** *

The name of the image used to create the image builder.

*/ inline CreateImageBuilderRequest& WithImageName(const char* value) { SetImageName(value); return *this;} /** *

The ARN of the public, private, or shared image to use.

*/ inline const Aws::String& GetImageArn() const{ return m_imageArn; } /** *

The ARN of the public, private, or shared image to use.

*/ inline bool ImageArnHasBeenSet() const { return m_imageArnHasBeenSet; } /** *

The ARN of the public, private, or shared image to use.

*/ inline void SetImageArn(const Aws::String& value) { m_imageArnHasBeenSet = true; m_imageArn = value; } /** *

The ARN of the public, private, or shared image to use.

*/ inline void SetImageArn(Aws::String&& value) { m_imageArnHasBeenSet = true; m_imageArn = std::move(value); } /** *

The ARN of the public, private, or shared image to use.

*/ inline void SetImageArn(const char* value) { m_imageArnHasBeenSet = true; m_imageArn.assign(value); } /** *

The ARN of the public, private, or shared image to use.

*/ inline CreateImageBuilderRequest& WithImageArn(const Aws::String& value) { SetImageArn(value); return *this;} /** *

The ARN of the public, private, or shared image to use.

*/ inline CreateImageBuilderRequest& WithImageArn(Aws::String&& value) { SetImageArn(std::move(value)); return *this;} /** *

The ARN of the public, private, or shared image to use.

*/ inline CreateImageBuilderRequest& WithImageArn(const char* value) { SetImageArn(value); return *this;} /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline CreateImageBuilderRequest& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline CreateImageBuilderRequest& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *

The instance type to use when launching the image builder. The following * instance types are available:

  • stream.standard.small

  • *
  • stream.standard.medium

  • stream.standard.large

  • *
  • stream.compute.large

  • stream.compute.xlarge

  • *
  • stream.compute.2xlarge

  • stream.compute.4xlarge

    *
  • stream.compute.8xlarge

  • stream.memory.large

    *
  • stream.memory.xlarge

  • stream.memory.2xlarge

    *
  • stream.memory.4xlarge

  • stream.memory.8xlarge

    *
  • stream.memory.z1d.large

  • *

    stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

    *
  • stream.memory.z1d.3xlarge

  • *

    stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

    *
  • stream.graphics-design.large

  • *

    stream.graphics-design.xlarge

  • *

    stream.graphics-design.2xlarge

  • *

    stream.graphics-design.4xlarge

  • *

    stream.graphics-desktop.2xlarge

  • *

    stream.graphics.g4dn.xlarge

  • *

    stream.graphics.g4dn.2xlarge

  • *

    stream.graphics.g4dn.4xlarge

  • *

    stream.graphics.g4dn.8xlarge

  • *

    stream.graphics.g4dn.12xlarge

  • *

    stream.graphics.g4dn.16xlarge

  • *

    stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

    *
  • stream.graphics-pro.16xlarge

*/ inline CreateImageBuilderRequest& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *

The description to display.

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

The description to display.

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

The description to display.

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

The description to display.

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

The description to display.

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

The description to display.

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

The description to display.

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

The description to display.

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

The image builder name to display.

*/ inline const Aws::String& GetDisplayName() const{ return m_displayName; } /** *

The image builder name to display.

*/ inline bool DisplayNameHasBeenSet() const { return m_displayNameHasBeenSet; } /** *

The image builder name to display.

*/ inline void SetDisplayName(const Aws::String& value) { m_displayNameHasBeenSet = true; m_displayName = value; } /** *

The image builder name to display.

*/ inline void SetDisplayName(Aws::String&& value) { m_displayNameHasBeenSet = true; m_displayName = std::move(value); } /** *

The image builder name to display.

*/ inline void SetDisplayName(const char* value) { m_displayNameHasBeenSet = true; m_displayName.assign(value); } /** *

The image builder name to display.

*/ inline CreateImageBuilderRequest& WithDisplayName(const Aws::String& value) { SetDisplayName(value); return *this;} /** *

The image builder name to display.

*/ inline CreateImageBuilderRequest& WithDisplayName(Aws::String&& value) { SetDisplayName(std::move(value)); return *this;} /** *

The image builder name to display.

*/ inline CreateImageBuilderRequest& WithDisplayName(const char* value) { SetDisplayName(value); return *this;} /** *

The VPC configuration for the image builder. You can specify only one * subnet.

*/ inline const VpcConfig& GetVpcConfig() const{ return m_vpcConfig; } /** *

The VPC configuration for the image builder. You can specify only one * subnet.

*/ inline bool VpcConfigHasBeenSet() const { return m_vpcConfigHasBeenSet; } /** *

The VPC configuration for the image builder. You can specify only one * subnet.

*/ inline void SetVpcConfig(const VpcConfig& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = value; } /** *

The VPC configuration for the image builder. You can specify only one * subnet.

*/ inline void SetVpcConfig(VpcConfig&& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = std::move(value); } /** *

The VPC configuration for the image builder. You can specify only one * subnet.

*/ inline CreateImageBuilderRequest& WithVpcConfig(const VpcConfig& value) { SetVpcConfig(value); return *this;} /** *

The VPC configuration for the image builder. You can specify only one * subnet.

*/ inline CreateImageBuilderRequest& WithVpcConfig(VpcConfig&& value) { SetVpcConfig(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline const Aws::String& GetIamRoleArn() const{ return m_iamRoleArn; } /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline bool IamRoleArnHasBeenSet() const { return m_iamRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline void SetIamRoleArn(const Aws::String& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = value; } /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline void SetIamRoleArn(Aws::String&& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline void SetIamRoleArn(const char* value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline CreateImageBuilderRequest& WithIamRoleArn(const Aws::String& value) { SetIamRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline CreateImageBuilderRequest& WithIamRoleArn(Aws::String&& value) { SetIamRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. * To assume a role, the image builder calls the AWS Security Token Service (STS) * AssumeRole API operation and passes the ARN of the role to use. The * operation creates a new session with temporary credentials. AppStream 2.0 * retrieves the temporary credentials and creates the * appstream_machine_role credential profile on the instance.

For * more information, see Using * an IAM Role to Grant Permissions to Applications and Scripts Running on * AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 * Administration Guide.

*/ inline CreateImageBuilderRequest& WithIamRoleArn(const char* value) { SetIamRoleArn(value); return *this;} /** *

Enables or disables default internet access for the image builder.

*/ inline bool GetEnableDefaultInternetAccess() const{ return m_enableDefaultInternetAccess; } /** *

Enables or disables default internet access for the image builder.

*/ inline bool EnableDefaultInternetAccessHasBeenSet() const { return m_enableDefaultInternetAccessHasBeenSet; } /** *

Enables or disables default internet access for the image builder.

*/ inline void SetEnableDefaultInternetAccess(bool value) { m_enableDefaultInternetAccessHasBeenSet = true; m_enableDefaultInternetAccess = value; } /** *

Enables or disables default internet access for the image builder.

*/ inline CreateImageBuilderRequest& WithEnableDefaultInternetAccess(bool value) { SetEnableDefaultInternetAccess(value); return *this;} /** *

The name of the directory and organizational unit (OU) to use to join the * image builder to a Microsoft Active Directory domain.

*/ inline const DomainJoinInfo& GetDomainJoinInfo() const{ return m_domainJoinInfo; } /** *

The name of the directory and organizational unit (OU) to use to join the * image builder to a Microsoft Active Directory domain.

*/ inline bool DomainJoinInfoHasBeenSet() const { return m_domainJoinInfoHasBeenSet; } /** *

The name of the directory and organizational unit (OU) to use to join the * image builder to a Microsoft Active Directory domain.

*/ inline void SetDomainJoinInfo(const DomainJoinInfo& value) { m_domainJoinInfoHasBeenSet = true; m_domainJoinInfo = value; } /** *

The name of the directory and organizational unit (OU) to use to join the * image builder to a Microsoft Active Directory domain.

*/ inline void SetDomainJoinInfo(DomainJoinInfo&& value) { m_domainJoinInfoHasBeenSet = true; m_domainJoinInfo = std::move(value); } /** *

The name of the directory and organizational unit (OU) to use to join the * image builder to a Microsoft Active Directory domain.

*/ inline CreateImageBuilderRequest& WithDomainJoinInfo(const DomainJoinInfo& value) { SetDomainJoinInfo(value); return *this;} /** *

The name of the directory and organizational unit (OU) to use to join the * image builder to a Microsoft Active Directory domain.

*/ inline CreateImageBuilderRequest& WithDomainJoinInfo(DomainJoinInfo&& value) { SetDomainJoinInfo(std::move(value)); return *this;} /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline const Aws::String& GetAppstreamAgentVersion() const{ return m_appstreamAgentVersion; } /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline bool AppstreamAgentVersionHasBeenSet() const { return m_appstreamAgentVersionHasBeenSet; } /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline void SetAppstreamAgentVersion(const Aws::String& value) { m_appstreamAgentVersionHasBeenSet = true; m_appstreamAgentVersion = value; } /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline void SetAppstreamAgentVersion(Aws::String&& value) { m_appstreamAgentVersionHasBeenSet = true; m_appstreamAgentVersion = std::move(value); } /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline void SetAppstreamAgentVersion(const char* value) { m_appstreamAgentVersionHasBeenSet = true; m_appstreamAgentVersion.assign(value); } /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline CreateImageBuilderRequest& WithAppstreamAgentVersion(const Aws::String& value) { SetAppstreamAgentVersion(value); return *this;} /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline CreateImageBuilderRequest& WithAppstreamAgentVersion(Aws::String&& value) { SetAppstreamAgentVersion(std::move(value)); return *this;} /** *

The version of the AppStream 2.0 agent to use for this image builder. To use * the latest version of the AppStream 2.0 agent, specify [LATEST].

*/ inline CreateImageBuilderRequest& WithAppstreamAgentVersion(const char* value) { SetAppstreamAgentVersion(value); return *this;} /** *

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The tags to associate with the image builder. A tag is a key-value pair, and * the value is optional. For example, Environment=Test. If you do not specify a * value, Environment=.

Generally allowed characters are: letters, numbers, * and spaces representable in UTF-8, and the following special characters:

*

_ . : / = + \ - @

If you do not specify a value, the value is set to * an empty string.

For more information about tags, see Tagging * Your Resources in the Amazon AppStream 2.0 Administration Guide.

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

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline const Aws::Vector& GetAccessEndpoints() const{ return m_accessEndpoints; } /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline bool AccessEndpointsHasBeenSet() const { return m_accessEndpointsHasBeenSet; } /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline void SetAccessEndpoints(const Aws::Vector& value) { m_accessEndpointsHasBeenSet = true; m_accessEndpoints = value; } /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline void SetAccessEndpoints(Aws::Vector&& value) { m_accessEndpointsHasBeenSet = true; m_accessEndpoints = std::move(value); } /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline CreateImageBuilderRequest& WithAccessEndpoints(const Aws::Vector& value) { SetAccessEndpoints(value); return *this;} /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline CreateImageBuilderRequest& WithAccessEndpoints(Aws::Vector&& value) { SetAccessEndpoints(std::move(value)); return *this;} /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline CreateImageBuilderRequest& AddAccessEndpoints(const AccessEndpoint& value) { m_accessEndpointsHasBeenSet = true; m_accessEndpoints.push_back(value); return *this; } /** *

The list of interface VPC endpoint (interface endpoint) objects. * Administrators can connect to the image builder only through the specified * endpoints.

*/ inline CreateImageBuilderRequest& AddAccessEndpoints(AccessEndpoint&& value) { m_accessEndpointsHasBeenSet = true; m_accessEndpoints.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_imageName; bool m_imageNameHasBeenSet = false; Aws::String m_imageArn; bool m_imageArnHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_displayName; bool m_displayNameHasBeenSet = false; VpcConfig m_vpcConfig; bool m_vpcConfigHasBeenSet = false; Aws::String m_iamRoleArn; bool m_iamRoleArnHasBeenSet = false; bool m_enableDefaultInternetAccess; bool m_enableDefaultInternetAccessHasBeenSet = false; DomainJoinInfo m_domainJoinInfo; bool m_domainJoinInfoHasBeenSet = false; Aws::String m_appstreamAgentVersion; bool m_appstreamAgentVersionHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_accessEndpoints; bool m_accessEndpointsHasBeenSet = false; }; } // namespace Model } // namespace AppStream } // namespace Aws