createImageBuilder method

Future<CreateImageBuilderResult> createImageBuilder({
  1. required String instanceType,
  2. required String name,
  3. List<AccessEndpoint>? accessEndpoints,
  4. String? appstreamAgentVersion,
  5. String? description,
  6. bool? disableIMDSV1,
  7. String? displayName,
  8. DomainJoinInfo? domainJoinInfo,
  9. bool? enableDefaultInternetAccess,
  10. String? iamRoleArn,
  11. String? imageArn,
  12. String? imageName,
  13. VolumeConfig? rootVolumeConfig,
  14. List<String>? softwaresToInstall,
  15. List<String>? softwaresToUninstall,
  16. Map<String, String>? tags,
  17. 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 ConcurrentModificationException. May throw IncompatibleImageException. May throw InvalidAccountStatusException. May throw InvalidParameterCombinationException. May throw InvalidRoleException. May throw LimitExceededException. May throw OperationNotPermittedException. May throw RequestLimitExceededException. May throw ResourceAlreadyExistsException. May throw ResourceNotAvailableException. May throw ResourceNotFoundException.

Parameter 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.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

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 WorkSpaces Applications agent to use for this image builder. To use the latest version of the WorkSpaces Applications agent, specify [LATEST].

Parameter description : The description to display.

Parameter disableIMDSV1 : Set to true to disable Instance Metadata Service Version 1 (IMDSv1) and enforce IMDSv2. Set to false to enable both IMDSv1 and IMDSv2.

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. WorkSpaces Applications 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 WorkSpaces Applications Streaming Instances in the Amazon WorkSpaces Applications 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 rootVolumeConfig : The configuration for the root volume of the image builder. Use this to customize storage capacity from 200 GB up to 500 GB based on your application installation requirements.

Parameter softwaresToInstall : The list of license included applications to install on the image builder during creation.

Possible values include the following:

  • Microsoft_Office_2021_LTSC_Professional_Plus_32Bit
  • Microsoft_Office_2021_LTSC_Professional_Plus_64Bit
  • Microsoft_Office_2024_LTSC_Professional_Plus_32Bit
  • Microsoft_Office_2024_LTSC_Professional_Plus_64Bit
  • Microsoft_Visio_2021_LTSC_Professional_32Bit
  • Microsoft_Visio_2021_LTSC_Professional_64Bit
  • Microsoft_Visio_2024_LTSC_Professional_32Bit
  • Microsoft_Visio_2024_LTSC_Professional_64Bit
  • Microsoft_Project_2021_Professional_32Bit
  • Microsoft_Project_2021_Professional_64Bit
  • Microsoft_Project_2024_Professional_32Bit
  • Microsoft_Project_2024_Professional_64Bit
  • Microsoft_Office_2021_LTSC_Standard_32Bit
  • Microsoft_Office_2021_LTSC_Standard_64Bit
  • Microsoft_Office_2024_LTSC_Standard_32Bit
  • Microsoft_Office_2024_LTSC_Standard_64Bit
  • Microsoft_Visio_2021_LTSC_Standard_32Bit
  • Microsoft_Visio_2021_LTSC_Standard_64Bit
  • Microsoft_Visio_2024_LTSC_Standard_32Bit
  • Microsoft_Visio_2024_LTSC_Standard_64Bit
  • Microsoft_Project_2021_Standard_32Bit
  • Microsoft_Project_2021_Standard_64Bit
  • Microsoft_Project_2024_Standard_32Bit
  • Microsoft_Project_2024_Standard_64Bit

Parameter softwaresToUninstall : The list of license included applications to uninstall from the image builder during creation.

Possible values include the following:

  • Microsoft_Office_2021_LTSC_Professional_Plus_32Bit
  • Microsoft_Office_2021_LTSC_Professional_Plus_64Bit
  • Microsoft_Office_2024_LTSC_Professional_Plus_32Bit
  • Microsoft_Office_2024_LTSC_Professional_Plus_64Bit
  • Microsoft_Visio_2021_LTSC_Professional_32Bit
  • Microsoft_Visio_2021_LTSC_Professional_64Bit
  • Microsoft_Visio_2024_LTSC_Professional_32Bit
  • Microsoft_Visio_2024_LTSC_Professional_64Bit
  • Microsoft_Project_2021_Professional_32Bit
  • Microsoft_Project_2021_Professional_64Bit
  • Microsoft_Project_2024_Professional_32Bit
  • Microsoft_Project_2024_Professional_64Bit
  • Microsoft_Office_2021_LTSC_Standard_32Bit
  • Microsoft_Office_2021_LTSC_Standard_64Bit
  • Microsoft_Office_2024_LTSC_Standard_32Bit
  • Microsoft_Office_2024_LTSC_Standard_64Bit
  • Microsoft_Visio_2021_LTSC_Standard_32Bit
  • Microsoft_Visio_2021_LTSC_Standard_64Bit
  • Microsoft_Visio_2024_LTSC_Standard_32Bit
  • Microsoft_Visio_2024_LTSC_Standard_64Bit
  • Microsoft_Project_2021_Standard_32Bit
  • Microsoft_Project_2021_Standard_64Bit
  • Microsoft_Project_2024_Standard_32Bit
  • Microsoft_Project_2024_Standard_64Bit

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 WorkSpaces Applications 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,
  bool? disableIMDSV1,
  String? displayName,
  DomainJoinInfo? domainJoinInfo,
  bool? enableDefaultInternetAccess,
  String? iamRoleArn,
  String? imageArn,
  String? imageName,
  VolumeConfig? rootVolumeConfig,
  List<String>? softwaresToInstall,
  List<String>? softwaresToUninstall,
  Map<String, String>? tags,
  VpcConfig? vpcConfig,
}) async {
  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 (disableIMDSV1 != null) 'DisableIMDSV1': disableIMDSV1,
      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 (rootVolumeConfig != null) 'RootVolumeConfig': rootVolumeConfig,
      if (softwaresToInstall != null)
        'SoftwaresToInstall': softwaresToInstall,
      if (softwaresToUninstall != null)
        'SoftwaresToUninstall': softwaresToUninstall,
      if (tags != null) 'Tags': tags,
      if (vpcConfig != null) 'VpcConfig': vpcConfig,
    },
  );

  return CreateImageBuilderResult.fromJson(jsonResponse.body);
}