Class: AWSCDK::AppStream::CfnImageBuilderProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
app_stream/cfn_image_builder_props.rb

Overview

Properties for defining a CfnImageBuilder.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instance_type:, name:, access_endpoints: nil, appstream_agent_version: nil, description: nil, display_name: nil, domain_join_info: nil, enable_default_internet_access: nil, iam_role_arn: nil, image_arn: nil, image_name: nil, root_volume_config: nil, softwares_to_install: nil, softwares_to_uninstall: nil, tags: nil, vpc_config: nil) ⇒ CfnImageBuilderProps

Returns a new instance of CfnImageBuilderProps.

Parameters:

  • instance_type (String)

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

  • name (String)

    A unique name for the image builder.

  • access_endpoints (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::AppStream::CfnImageBuilder::AccessEndpointProperty>, nil) (defaults to: nil)

    The list of virtual private cloud (VPC) interface endpoint objects.

  • appstream_agent_version (String, nil) (defaults to: nil)

    The version of the WorkSpaces Applications agent to use for this image builder.

  • description (String, nil) (defaults to: nil)

    The description to display.

  • display_name (String, nil) (defaults to: nil)

    The image builder name to display.

  • domain_join_info (AWSCDK::IResolvable, AWSCDK::AppStream::CfnImageBuilder::DomainJoinInfoProperty, nil) (defaults to: nil)

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

  • enable_default_internet_access (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Enables or disables default internet access for the image builder.

  • iam_role_arn (String, nil) (defaults to: nil)

    The ARN of the IAM role that is applied to the image builder.

  • image_arn (String, nil) (defaults to: nil)

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

  • image_name (String, nil) (defaults to: nil)

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

  • root_volume_config (AWSCDK::IResolvable, AWSCDK::AppStream::CfnImageBuilder::VolumeConfigProperty, nil) (defaults to: nil)
  • softwares_to_install (Array<String>, nil) (defaults to: nil)
  • softwares_to_uninstall (Array<String>, nil) (defaults to: nil)
  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    An array of key-value pairs.

  • vpc_config (AWSCDK::IResolvable, AWSCDK::AppStream::CfnImageBuilder::VPCConfigProperty, nil) (defaults to: nil)

    The VPC configuration for the image builder.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'app_stream/cfn_image_builder_props.rb', line 25

def initialize(instance_type:, name:, access_endpoints: nil, appstream_agent_version: nil, description: nil, display_name: nil, domain_join_info: nil, enable_default_internet_access: nil, iam_role_arn: nil, image_arn: nil, image_name: nil, root_volume_config: nil, softwares_to_install: nil, softwares_to_uninstall: nil, tags: nil, vpc_config: nil)
  @instance_type = instance_type
  Jsii::Type.check_type(@instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceType")
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @access_endpoints = access_endpoints
  Jsii::Type.check_type(@access_endpoints, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3RyZWFtLkNmbkltYWdlQnVpbGRlci5BY2Nlc3NFbmRwb2ludFByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "accessEndpoints") unless @access_endpoints.nil?
  @appstream_agent_version = appstream_agent_version
  Jsii::Type.check_type(@appstream_agent_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "appstreamAgentVersion") unless @appstream_agent_version.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @display_name = display_name
  Jsii::Type.check_type(@display_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "displayName") unless @display_name.nil?
  @domain_join_info = domain_join_info.is_a?(Hash) ? ::AWSCDK::AppStream::CfnImageBuilder::DomainJoinInfoProperty.new(**domain_join_info.transform_keys(&:to_sym)) : domain_join_info
  Jsii::Type.check_type(@domain_join_info, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzdHJlYW0uQ2ZuSW1hZ2VCdWlsZGVyLkRvbWFpbkpvaW5JbmZvUHJvcGVydHkifV19fQ==")), "domainJoinInfo") unless @domain_join_info.nil?
  @enable_default_internet_access = enable_default_internet_access
  Jsii::Type.check_type(@enable_default_internet_access, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "enableDefaultInternetAccess") unless @enable_default_internet_access.nil?
  @iam_role_arn = iam_role_arn
  Jsii::Type.check_type(@iam_role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "iamRoleArn") unless @iam_role_arn.nil?
  @image_arn = image_arn
  Jsii::Type.check_type(@image_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "imageArn") unless @image_arn.nil?
  @image_name = image_name
  Jsii::Type.check_type(@image_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "imageName") unless @image_name.nil?
  @root_volume_config = root_volume_config.is_a?(Hash) ? ::AWSCDK::AppStream::CfnImageBuilder::VolumeConfigProperty.new(**root_volume_config.transform_keys(&:to_sym)) : root_volume_config
  Jsii::Type.check_type(@root_volume_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzdHJlYW0uQ2ZuSW1hZ2VCdWlsZGVyLlZvbHVtZUNvbmZpZ1Byb3BlcnR5In1dfX0=")), "rootVolumeConfig") unless @root_volume_config.nil?
  @softwares_to_install = softwares_to_install
  Jsii::Type.check_type(@softwares_to_install, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "softwaresToInstall") unless @softwares_to_install.nil?
  @softwares_to_uninstall = softwares_to_uninstall
  Jsii::Type.check_type(@softwares_to_uninstall, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "softwaresToUninstall") unless @softwares_to_uninstall.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @vpc_config = vpc_config.is_a?(Hash) ? ::AWSCDK::AppStream::CfnImageBuilder::VPCConfigProperty.new(**vpc_config.transform_keys(&:to_sym)) : vpc_config
  Jsii::Type.check_type(@vpc_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzdHJlYW0uQ2ZuSW1hZ2VCdWlsZGVyLlZwY0NvbmZpZ1Byb3BlcnR5In1dfX0=")), "vpcConfig") unless @vpc_config.nil?
end

Instance Attribute Details

#access_endpointsAWSCDK::IResolvable, ... (readonly)

The list of virtual private cloud (VPC) interface endpoint objects.

Administrators can connect to the image builder only through the specified endpoints.



127
128
129
# File 'app_stream/cfn_image_builder_props.rb', line 127

def access_endpoints
  @access_endpoints
end

#appstream_agent_versionString? (readonly)

The version of the WorkSpaces Applications agent to use for this image builder.

To use the latest version of the WorkSpaces Applications agent, specify [LATEST].



134
135
136
# File 'app_stream/cfn_image_builder_props.rb', line 134

def appstream_agent_version
  @appstream_agent_version
end

#descriptionString? (readonly)

The description to display.



139
140
141
# File 'app_stream/cfn_image_builder_props.rb', line 139

def description
  @description
end

#display_nameString? (readonly)

The image builder name to display.



144
145
146
# File 'app_stream/cfn_image_builder_props.rb', line 144

def display_name
  @display_name
end

#domain_join_infoAWSCDK::IResolvable, ... (readonly)

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



149
150
151
# File 'app_stream/cfn_image_builder_props.rb', line 149

def domain_join_info
  @domain_join_info
end

#enable_default_internet_accessBoolean, ... (readonly)

Enables or disables default internet access for the image builder.



154
155
156
# File 'app_stream/cfn_image_builder_props.rb', line 154

def enable_default_internet_access
  @enable_default_internet_access
end

#iam_role_arnString? (readonly)

The ARN of the IAM role that is applied to the image builder.

To assume a role, the image builder calls the Security Token Service 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 .



163
164
165
# File 'app_stream/cfn_image_builder_props.rb', line 163

def iam_role_arn
  @iam_role_arn
end

#image_arnString? (readonly)

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



168
169
170
# File 'app_stream/cfn_image_builder_props.rb', line 168

def image_arn
  @image_arn
end

#image_nameString? (readonly)

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



173
174
175
# File 'app_stream/cfn_image_builder_props.rb', line 173

def image_name
  @image_name
end

#instance_typeString (readonly)

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.g4dn.xlarge
  • stream.graphics.g4dn.2xlarge
  • stream.graphics.g4dn.4xlarge
  • stream.graphics.g4dn.8xlarge
  • stream.graphics.g4dn.12xlarge
  • stream.graphics.g4dn.16xlarge
  • stream.graphics.g5.xlarge
  • stream.graphics.g5.2xlarge
  • stream.graphics.g5.4xlarge
  • stream.graphics.g5.8xlarge
  • stream.graphics.g5.16xlarge
  • stream.graphics.g5.12xlarge
  • stream.graphics.g5.24xlarge
  • stream.graphics.g6.xlarge
  • stream.graphics.g6.2xlarge
  • stream.graphics.g6.4xlarge
  • stream.graphics.g6.8xlarge
  • stream.graphics.g6.16xlarge
  • stream.graphics.g6.12xlarge
  • stream.graphics.g6.24xlarge
  • stream.graphics.gr6.4xlarge
  • stream.graphics.gr6.8xlarge
  • stream.graphics.g6f.large
  • stream.graphics.g6f.xlarge
  • stream.graphics.g6f.2xlarge
  • stream.graphics.g6f.4xlarge
  • stream.graphics.gr6f.4xlarge


115
116
117
# File 'app_stream/cfn_image_builder_props.rb', line 115

def instance_type
  @instance_type
end

#nameString (readonly)

A unique name for the image builder.



120
121
122
# File 'app_stream/cfn_image_builder_props.rb', line 120

def name
  @name
end

#root_volume_configAWSCDK::IResolvable, ... (readonly)



176
177
178
# File 'app_stream/cfn_image_builder_props.rb', line 176

def root_volume_config
  @root_volume_config
end

#softwares_to_installArray<String>? (readonly)



179
180
181
# File 'app_stream/cfn_image_builder_props.rb', line 179

def softwares_to_install
  @softwares_to_install
end

#softwares_to_uninstallArray<String>? (readonly)



182
183
184
# File 'app_stream/cfn_image_builder_props.rb', line 182

def softwares_to_uninstall
  @softwares_to_uninstall
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

An array of key-value pairs.



187
188
189
# File 'app_stream/cfn_image_builder_props.rb', line 187

def tags
  @tags
end

#vpc_configAWSCDK::IResolvable, ... (readonly)

The VPC configuration for the image builder.

You can specify only one subnet.



194
195
196
# File 'app_stream/cfn_image_builder_props.rb', line 194

def vpc_config
  @vpc_config
end

Class Method Details

.jsii_propertiesObject



196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'app_stream/cfn_image_builder_props.rb', line 196

def self.jsii_properties
  {
    :instance_type => "instanceType",
    :name => "name",
    :access_endpoints => "accessEndpoints",
    :appstream_agent_version => "appstreamAgentVersion",
    :description => "description",
    :display_name => "displayName",
    :domain_join_info => "domainJoinInfo",
    :enable_default_internet_access => "enableDefaultInternetAccess",
    :iam_role_arn => "iamRoleArn",
    :image_arn => "imageArn",
    :image_name => "imageName",
    :root_volume_config => "rootVolumeConfig",
    :softwares_to_install => "softwaresToInstall",
    :softwares_to_uninstall => "softwaresToUninstall",
    :tags => "tags",
    :vpc_config => "vpcConfig",
  }
end

Instance Method Details

#to_jsiiObject



217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# File 'app_stream/cfn_image_builder_props.rb', line 217

def to_jsii
  result = {}
  result.merge!({
    "instanceType" => @instance_type,
    "name" => @name,
    "accessEndpoints" => @access_endpoints,
    "appstreamAgentVersion" => @appstream_agent_version,
    "description" => @description,
    "displayName" => @display_name,
    "domainJoinInfo" => @domain_join_info,
    "enableDefaultInternetAccess" => @enable_default_internet_access,
    "iamRoleArn" => @iam_role_arn,
    "imageArn" => @image_arn,
    "imageName" => @image_name,
    "rootVolumeConfig" => @root_volume_config,
    "softwaresToInstall" => @softwares_to_install,
    "softwaresToUninstall" => @softwares_to_uninstall,
    "tags" => @tags,
    "vpcConfig" => @vpc_config,
  })
  result.compact
end