createImageBuilder method
- required String instanceType,
- required String name,
- List<
AccessEndpoint> ? accessEndpoints, - String? appstreamAgentVersion,
- String? description,
- String? displayName,
- DomainJoinInfo? domainJoinInfo,
- bool? enableDefaultInternetAccess,
- String? iamRoleArn,
- String? imageArn,
- String? imageName,
- Map<
String, String> ? tags, - VpcConfig? vpcConfig,
Creates an image builder. An image builder is a virtual machine that is used to create an image.
The initial state of the builder is PENDING
. When it is
ready, the state is RUNNING
.
May throw LimitExceededException. May throw RequestLimitExceededException. May throw InvalidAccountStatusException. May throw ResourceAlreadyExistsException. May throw ResourceNotAvailableException. May throw ResourceNotFoundException. May throw InvalidRoleException. May throw ConcurrentModificationException. May throw InvalidParameterCombinationException. May throw IncompatibleImageException. May throw OperationNotPermittedException.
Parameter instanceType
:
The instance type to use when launching the image builder. The following
instance types are available:
- 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
Parameter name
:
A unique name for the image builder.
Parameter accessEndpoints
:
The list of interface VPC endpoint (interface endpoint) objects.
Administrators can connect to the image builder only through the specified
endpoints.
Parameter 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
.
Parameter description
:
The description to display.
Parameter displayName
:
The image builder name to display.
Parameter domainJoinInfo
:
The name of the directory and organizational unit (OU) to use to join the
image builder to a Microsoft Active Directory domain.
Parameter enableDefaultInternetAccess
:
Enables or disables default internet access for the image builder.
Parameter 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.
Parameter imageArn
:
The ARN of the public, private, or shared image to use.
Parameter imageName
:
The name of the image used to create the image builder.
Parameter 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.
Parameter vpcConfig
:
The VPC configuration for the image builder. You can specify only one
subnet.
Implementation
Future<CreateImageBuilderResult> createImageBuilder({
required String instanceType,
required String name,
List<AccessEndpoint>? accessEndpoints,
String? appstreamAgentVersion,
String? description,
String? displayName,
DomainJoinInfo? domainJoinInfo,
bool? enableDefaultInternetAccess,
String? iamRoleArn,
String? imageArn,
String? imageName,
Map<String, String>? tags,
VpcConfig? vpcConfig,
}) async {
ArgumentError.checkNotNull(instanceType, 'instanceType');
_s.validateStringLength(
'instanceType',
instanceType,
1,
1152921504606846976,
isRequired: true,
);
ArgumentError.checkNotNull(name, 'name');
_s.validateStringLength(
'appstreamAgentVersion',
appstreamAgentVersion,
1,
100,
);
_s.validateStringLength(
'description',
description,
0,
256,
);
_s.validateStringLength(
'displayName',
displayName,
0,
100,
);
_s.validateStringLength(
'imageName',
imageName,
1,
1152921504606846976,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'PhotonAdminProxyService.CreateImageBuilder'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'InstanceType': instanceType,
'Name': name,
if (accessEndpoints != null) 'AccessEndpoints': accessEndpoints,
if (appstreamAgentVersion != null)
'AppstreamAgentVersion': appstreamAgentVersion,
if (description != null) 'Description': description,
if (displayName != null) 'DisplayName': displayName,
if (domainJoinInfo != null) 'DomainJoinInfo': domainJoinInfo,
if (enableDefaultInternetAccess != null)
'EnableDefaultInternetAccess': enableDefaultInternetAccess,
if (iamRoleArn != null) 'IamRoleArn': iamRoleArn,
if (imageArn != null) 'ImageArn': imageArn,
if (imageName != null) 'ImageName': imageName,
if (tags != null) 'Tags': tags,
if (vpcConfig != null) 'VpcConfig': vpcConfig,
},
);
return CreateImageBuilderResult.fromJson(jsonResponse.body);
}