github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/appstream/imageBuilder.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package appstream
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an AppStream image builder.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appstream"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := appstream.NewImageBuilder(ctx, "test_fleet", &appstream.ImageBuilderArgs{
    33  //				Name:                        pulumi.String("Name"),
    34  //				Description:                 pulumi.String("Description of a ImageBuilder"),
    35  //				DisplayName:                 pulumi.String("Display name of a ImageBuilder"),
    36  //				EnableDefaultInternetAccess: pulumi.Bool(false),
    37  //				ImageName:                   pulumi.String("AppStream-WinServer2019-10-05-2022"),
    38  //				InstanceType:                pulumi.String("stream.standard.large"),
    39  //				VpcConfig: &appstream.ImageBuilderVpcConfigArgs{
    40  //					SubnetIds: pulumi.StringArray{
    41  //						example.Id,
    42  //					},
    43  //				},
    44  //				Tags: pulumi.StringMap{
    45  //					"Name": pulumi.String("Example Image Builder"),
    46  //				},
    47  //			})
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // ## Import
    59  //
    60  // Using `pulumi import`, import `aws_appstream_image_builder` using the `name`. For example:
    61  //
    62  // ```sh
    63  // $ pulumi import aws:appstream/imageBuilder:ImageBuilder example imageBuilderExample
    64  // ```
    65  type ImageBuilder struct {
    66  	pulumi.CustomResourceState
    67  
    68  	// Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below.
    69  	AccessEndpoints ImageBuilderAccessEndpointArrayOutput `pulumi:"accessEndpoints"`
    70  	// Version of the AppStream 2.0 agent to use for this image builder.
    71  	AppstreamAgentVersion pulumi.StringOutput `pulumi:"appstreamAgentVersion"`
    72  	// ARN of the appstream image builder.
    73  	Arn pulumi.StringOutput `pulumi:"arn"`
    74  	// Date and time, in UTC and extended RFC 3339 format, when the image builder was created.
    75  	CreatedTime pulumi.StringOutput `pulumi:"createdTime"`
    76  	// Description to display.
    77  	Description pulumi.StringOutput `pulumi:"description"`
    78  	// Human-readable friendly name for the AppStream image builder.
    79  	DisplayName pulumi.StringOutput `pulumi:"displayName"`
    80  	// Configuration block for the name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. See below.
    81  	DomainJoinInfo ImageBuilderDomainJoinInfoOutput `pulumi:"domainJoinInfo"`
    82  	// Enables or disables default internet access for the image builder.
    83  	EnableDefaultInternetAccess pulumi.BoolOutput `pulumi:"enableDefaultInternetAccess"`
    84  	// ARN of the IAM role to apply to the image builder.
    85  	IamRoleArn pulumi.StringOutput `pulumi:"iamRoleArn"`
    86  	// ARN of the public, private, or shared image to use.
    87  	ImageArn pulumi.StringOutput `pulumi:"imageArn"`
    88  	// Name of the image used to create the image builder.
    89  	ImageName pulumi.StringOutput `pulumi:"imageName"`
    90  	// Instance type to use when launching the image builder.
    91  	InstanceType pulumi.StringOutput `pulumi:"instanceType"`
    92  	// Unique name for the image builder.
    93  	//
    94  	// The following arguments are optional:
    95  	Name pulumi.StringOutput `pulumi:"name"`
    96  	// State of the image builder. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_ImageBuilder.html#AppStream2-Type-ImageBuilder-State).
    97  	State pulumi.StringOutput `pulumi:"state"`
    98  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    99  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   100  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   101  	//
   102  	// Deprecated: Please use `tags` instead.
   103  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   104  	// Configuration block for the VPC configuration for the image builder. See below.
   105  	VpcConfig ImageBuilderVpcConfigOutput `pulumi:"vpcConfig"`
   106  }
   107  
   108  // NewImageBuilder registers a new resource with the given unique name, arguments, and options.
   109  func NewImageBuilder(ctx *pulumi.Context,
   110  	name string, args *ImageBuilderArgs, opts ...pulumi.ResourceOption) (*ImageBuilder, error) {
   111  	if args == nil {
   112  		return nil, errors.New("missing one or more required arguments")
   113  	}
   114  
   115  	if args.InstanceType == nil {
   116  		return nil, errors.New("invalid value for required argument 'InstanceType'")
   117  	}
   118  	opts = internal.PkgResourceDefaultOpts(opts)
   119  	var resource ImageBuilder
   120  	err := ctx.RegisterResource("aws:appstream/imageBuilder:ImageBuilder", name, args, &resource, opts...)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &resource, nil
   125  }
   126  
   127  // GetImageBuilder gets an existing ImageBuilder resource's state with the given name, ID, and optional
   128  // state properties that are used to uniquely qualify the lookup (nil if not required).
   129  func GetImageBuilder(ctx *pulumi.Context,
   130  	name string, id pulumi.IDInput, state *ImageBuilderState, opts ...pulumi.ResourceOption) (*ImageBuilder, error) {
   131  	var resource ImageBuilder
   132  	err := ctx.ReadResource("aws:appstream/imageBuilder:ImageBuilder", name, id, state, &resource, opts...)
   133  	if err != nil {
   134  		return nil, err
   135  	}
   136  	return &resource, nil
   137  }
   138  
   139  // Input properties used for looking up and filtering ImageBuilder resources.
   140  type imageBuilderState struct {
   141  	// Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below.
   142  	AccessEndpoints []ImageBuilderAccessEndpoint `pulumi:"accessEndpoints"`
   143  	// Version of the AppStream 2.0 agent to use for this image builder.
   144  	AppstreamAgentVersion *string `pulumi:"appstreamAgentVersion"`
   145  	// ARN of the appstream image builder.
   146  	Arn *string `pulumi:"arn"`
   147  	// Date and time, in UTC and extended RFC 3339 format, when the image builder was created.
   148  	CreatedTime *string `pulumi:"createdTime"`
   149  	// Description to display.
   150  	Description *string `pulumi:"description"`
   151  	// Human-readable friendly name for the AppStream image builder.
   152  	DisplayName *string `pulumi:"displayName"`
   153  	// Configuration block for the name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. See below.
   154  	DomainJoinInfo *ImageBuilderDomainJoinInfo `pulumi:"domainJoinInfo"`
   155  	// Enables or disables default internet access for the image builder.
   156  	EnableDefaultInternetAccess *bool `pulumi:"enableDefaultInternetAccess"`
   157  	// ARN of the IAM role to apply to the image builder.
   158  	IamRoleArn *string `pulumi:"iamRoleArn"`
   159  	// ARN of the public, private, or shared image to use.
   160  	ImageArn *string `pulumi:"imageArn"`
   161  	// Name of the image used to create the image builder.
   162  	ImageName *string `pulumi:"imageName"`
   163  	// Instance type to use when launching the image builder.
   164  	InstanceType *string `pulumi:"instanceType"`
   165  	// Unique name for the image builder.
   166  	//
   167  	// The following arguments are optional:
   168  	Name *string `pulumi:"name"`
   169  	// State of the image builder. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_ImageBuilder.html#AppStream2-Type-ImageBuilder-State).
   170  	State *string `pulumi:"state"`
   171  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   172  	Tags map[string]string `pulumi:"tags"`
   173  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   174  	//
   175  	// Deprecated: Please use `tags` instead.
   176  	TagsAll map[string]string `pulumi:"tagsAll"`
   177  	// Configuration block for the VPC configuration for the image builder. See below.
   178  	VpcConfig *ImageBuilderVpcConfig `pulumi:"vpcConfig"`
   179  }
   180  
   181  type ImageBuilderState struct {
   182  	// Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below.
   183  	AccessEndpoints ImageBuilderAccessEndpointArrayInput
   184  	// Version of the AppStream 2.0 agent to use for this image builder.
   185  	AppstreamAgentVersion pulumi.StringPtrInput
   186  	// ARN of the appstream image builder.
   187  	Arn pulumi.StringPtrInput
   188  	// Date and time, in UTC and extended RFC 3339 format, when the image builder was created.
   189  	CreatedTime pulumi.StringPtrInput
   190  	// Description to display.
   191  	Description pulumi.StringPtrInput
   192  	// Human-readable friendly name for the AppStream image builder.
   193  	DisplayName pulumi.StringPtrInput
   194  	// Configuration block for the name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. See below.
   195  	DomainJoinInfo ImageBuilderDomainJoinInfoPtrInput
   196  	// Enables or disables default internet access for the image builder.
   197  	EnableDefaultInternetAccess pulumi.BoolPtrInput
   198  	// ARN of the IAM role to apply to the image builder.
   199  	IamRoleArn pulumi.StringPtrInput
   200  	// ARN of the public, private, or shared image to use.
   201  	ImageArn pulumi.StringPtrInput
   202  	// Name of the image used to create the image builder.
   203  	ImageName pulumi.StringPtrInput
   204  	// Instance type to use when launching the image builder.
   205  	InstanceType pulumi.StringPtrInput
   206  	// Unique name for the image builder.
   207  	//
   208  	// The following arguments are optional:
   209  	Name pulumi.StringPtrInput
   210  	// State of the image builder. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_ImageBuilder.html#AppStream2-Type-ImageBuilder-State).
   211  	State pulumi.StringPtrInput
   212  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   213  	Tags pulumi.StringMapInput
   214  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   215  	//
   216  	// Deprecated: Please use `tags` instead.
   217  	TagsAll pulumi.StringMapInput
   218  	// Configuration block for the VPC configuration for the image builder. See below.
   219  	VpcConfig ImageBuilderVpcConfigPtrInput
   220  }
   221  
   222  func (ImageBuilderState) ElementType() reflect.Type {
   223  	return reflect.TypeOf((*imageBuilderState)(nil)).Elem()
   224  }
   225  
   226  type imageBuilderArgs struct {
   227  	// Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below.
   228  	AccessEndpoints []ImageBuilderAccessEndpoint `pulumi:"accessEndpoints"`
   229  	// Version of the AppStream 2.0 agent to use for this image builder.
   230  	AppstreamAgentVersion *string `pulumi:"appstreamAgentVersion"`
   231  	// Description to display.
   232  	Description *string `pulumi:"description"`
   233  	// Human-readable friendly name for the AppStream image builder.
   234  	DisplayName *string `pulumi:"displayName"`
   235  	// Configuration block for the name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. See below.
   236  	DomainJoinInfo *ImageBuilderDomainJoinInfo `pulumi:"domainJoinInfo"`
   237  	// Enables or disables default internet access for the image builder.
   238  	EnableDefaultInternetAccess *bool `pulumi:"enableDefaultInternetAccess"`
   239  	// ARN of the IAM role to apply to the image builder.
   240  	IamRoleArn *string `pulumi:"iamRoleArn"`
   241  	// ARN of the public, private, or shared image to use.
   242  	ImageArn *string `pulumi:"imageArn"`
   243  	// Name of the image used to create the image builder.
   244  	ImageName *string `pulumi:"imageName"`
   245  	// Instance type to use when launching the image builder.
   246  	InstanceType string `pulumi:"instanceType"`
   247  	// Unique name for the image builder.
   248  	//
   249  	// The following arguments are optional:
   250  	Name *string `pulumi:"name"`
   251  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   252  	Tags map[string]string `pulumi:"tags"`
   253  	// Configuration block for the VPC configuration for the image builder. See below.
   254  	VpcConfig *ImageBuilderVpcConfig `pulumi:"vpcConfig"`
   255  }
   256  
   257  // The set of arguments for constructing a ImageBuilder resource.
   258  type ImageBuilderArgs struct {
   259  	// Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below.
   260  	AccessEndpoints ImageBuilderAccessEndpointArrayInput
   261  	// Version of the AppStream 2.0 agent to use for this image builder.
   262  	AppstreamAgentVersion pulumi.StringPtrInput
   263  	// Description to display.
   264  	Description pulumi.StringPtrInput
   265  	// Human-readable friendly name for the AppStream image builder.
   266  	DisplayName pulumi.StringPtrInput
   267  	// Configuration block for the name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. See below.
   268  	DomainJoinInfo ImageBuilderDomainJoinInfoPtrInput
   269  	// Enables or disables default internet access for the image builder.
   270  	EnableDefaultInternetAccess pulumi.BoolPtrInput
   271  	// ARN of the IAM role to apply to the image builder.
   272  	IamRoleArn pulumi.StringPtrInput
   273  	// ARN of the public, private, or shared image to use.
   274  	ImageArn pulumi.StringPtrInput
   275  	// Name of the image used to create the image builder.
   276  	ImageName pulumi.StringPtrInput
   277  	// Instance type to use when launching the image builder.
   278  	InstanceType pulumi.StringInput
   279  	// Unique name for the image builder.
   280  	//
   281  	// The following arguments are optional:
   282  	Name pulumi.StringPtrInput
   283  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   284  	Tags pulumi.StringMapInput
   285  	// Configuration block for the VPC configuration for the image builder. See below.
   286  	VpcConfig ImageBuilderVpcConfigPtrInput
   287  }
   288  
   289  func (ImageBuilderArgs) ElementType() reflect.Type {
   290  	return reflect.TypeOf((*imageBuilderArgs)(nil)).Elem()
   291  }
   292  
   293  type ImageBuilderInput interface {
   294  	pulumi.Input
   295  
   296  	ToImageBuilderOutput() ImageBuilderOutput
   297  	ToImageBuilderOutputWithContext(ctx context.Context) ImageBuilderOutput
   298  }
   299  
   300  func (*ImageBuilder) ElementType() reflect.Type {
   301  	return reflect.TypeOf((**ImageBuilder)(nil)).Elem()
   302  }
   303  
   304  func (i *ImageBuilder) ToImageBuilderOutput() ImageBuilderOutput {
   305  	return i.ToImageBuilderOutputWithContext(context.Background())
   306  }
   307  
   308  func (i *ImageBuilder) ToImageBuilderOutputWithContext(ctx context.Context) ImageBuilderOutput {
   309  	return pulumi.ToOutputWithContext(ctx, i).(ImageBuilderOutput)
   310  }
   311  
   312  // ImageBuilderArrayInput is an input type that accepts ImageBuilderArray and ImageBuilderArrayOutput values.
   313  // You can construct a concrete instance of `ImageBuilderArrayInput` via:
   314  //
   315  //	ImageBuilderArray{ ImageBuilderArgs{...} }
   316  type ImageBuilderArrayInput interface {
   317  	pulumi.Input
   318  
   319  	ToImageBuilderArrayOutput() ImageBuilderArrayOutput
   320  	ToImageBuilderArrayOutputWithContext(context.Context) ImageBuilderArrayOutput
   321  }
   322  
   323  type ImageBuilderArray []ImageBuilderInput
   324  
   325  func (ImageBuilderArray) ElementType() reflect.Type {
   326  	return reflect.TypeOf((*[]*ImageBuilder)(nil)).Elem()
   327  }
   328  
   329  func (i ImageBuilderArray) ToImageBuilderArrayOutput() ImageBuilderArrayOutput {
   330  	return i.ToImageBuilderArrayOutputWithContext(context.Background())
   331  }
   332  
   333  func (i ImageBuilderArray) ToImageBuilderArrayOutputWithContext(ctx context.Context) ImageBuilderArrayOutput {
   334  	return pulumi.ToOutputWithContext(ctx, i).(ImageBuilderArrayOutput)
   335  }
   336  
   337  // ImageBuilderMapInput is an input type that accepts ImageBuilderMap and ImageBuilderMapOutput values.
   338  // You can construct a concrete instance of `ImageBuilderMapInput` via:
   339  //
   340  //	ImageBuilderMap{ "key": ImageBuilderArgs{...} }
   341  type ImageBuilderMapInput interface {
   342  	pulumi.Input
   343  
   344  	ToImageBuilderMapOutput() ImageBuilderMapOutput
   345  	ToImageBuilderMapOutputWithContext(context.Context) ImageBuilderMapOutput
   346  }
   347  
   348  type ImageBuilderMap map[string]ImageBuilderInput
   349  
   350  func (ImageBuilderMap) ElementType() reflect.Type {
   351  	return reflect.TypeOf((*map[string]*ImageBuilder)(nil)).Elem()
   352  }
   353  
   354  func (i ImageBuilderMap) ToImageBuilderMapOutput() ImageBuilderMapOutput {
   355  	return i.ToImageBuilderMapOutputWithContext(context.Background())
   356  }
   357  
   358  func (i ImageBuilderMap) ToImageBuilderMapOutputWithContext(ctx context.Context) ImageBuilderMapOutput {
   359  	return pulumi.ToOutputWithContext(ctx, i).(ImageBuilderMapOutput)
   360  }
   361  
   362  type ImageBuilderOutput struct{ *pulumi.OutputState }
   363  
   364  func (ImageBuilderOutput) ElementType() reflect.Type {
   365  	return reflect.TypeOf((**ImageBuilder)(nil)).Elem()
   366  }
   367  
   368  func (o ImageBuilderOutput) ToImageBuilderOutput() ImageBuilderOutput {
   369  	return o
   370  }
   371  
   372  func (o ImageBuilderOutput) ToImageBuilderOutputWithContext(ctx context.Context) ImageBuilderOutput {
   373  	return o
   374  }
   375  
   376  // Set of interface VPC endpoint (interface endpoint) objects. Maximum of 4. See below.
   377  func (o ImageBuilderOutput) AccessEndpoints() ImageBuilderAccessEndpointArrayOutput {
   378  	return o.ApplyT(func(v *ImageBuilder) ImageBuilderAccessEndpointArrayOutput { return v.AccessEndpoints }).(ImageBuilderAccessEndpointArrayOutput)
   379  }
   380  
   381  // Version of the AppStream 2.0 agent to use for this image builder.
   382  func (o ImageBuilderOutput) AppstreamAgentVersion() pulumi.StringOutput {
   383  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.AppstreamAgentVersion }).(pulumi.StringOutput)
   384  }
   385  
   386  // ARN of the appstream image builder.
   387  func (o ImageBuilderOutput) Arn() pulumi.StringOutput {
   388  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   389  }
   390  
   391  // Date and time, in UTC and extended RFC 3339 format, when the image builder was created.
   392  func (o ImageBuilderOutput) CreatedTime() pulumi.StringOutput {
   393  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.CreatedTime }).(pulumi.StringOutput)
   394  }
   395  
   396  // Description to display.
   397  func (o ImageBuilderOutput) Description() pulumi.StringOutput {
   398  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
   399  }
   400  
   401  // Human-readable friendly name for the AppStream image builder.
   402  func (o ImageBuilderOutput) DisplayName() pulumi.StringOutput {
   403  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput)
   404  }
   405  
   406  // Configuration block for the name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. See below.
   407  func (o ImageBuilderOutput) DomainJoinInfo() ImageBuilderDomainJoinInfoOutput {
   408  	return o.ApplyT(func(v *ImageBuilder) ImageBuilderDomainJoinInfoOutput { return v.DomainJoinInfo }).(ImageBuilderDomainJoinInfoOutput)
   409  }
   410  
   411  // Enables or disables default internet access for the image builder.
   412  func (o ImageBuilderOutput) EnableDefaultInternetAccess() pulumi.BoolOutput {
   413  	return o.ApplyT(func(v *ImageBuilder) pulumi.BoolOutput { return v.EnableDefaultInternetAccess }).(pulumi.BoolOutput)
   414  }
   415  
   416  // ARN of the IAM role to apply to the image builder.
   417  func (o ImageBuilderOutput) IamRoleArn() pulumi.StringOutput {
   418  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.IamRoleArn }).(pulumi.StringOutput)
   419  }
   420  
   421  // ARN of the public, private, or shared image to use.
   422  func (o ImageBuilderOutput) ImageArn() pulumi.StringOutput {
   423  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.ImageArn }).(pulumi.StringOutput)
   424  }
   425  
   426  // Name of the image used to create the image builder.
   427  func (o ImageBuilderOutput) ImageName() pulumi.StringOutput {
   428  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.ImageName }).(pulumi.StringOutput)
   429  }
   430  
   431  // Instance type to use when launching the image builder.
   432  func (o ImageBuilderOutput) InstanceType() pulumi.StringOutput {
   433  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.InstanceType }).(pulumi.StringOutput)
   434  }
   435  
   436  // Unique name for the image builder.
   437  //
   438  // The following arguments are optional:
   439  func (o ImageBuilderOutput) Name() pulumi.StringOutput {
   440  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   441  }
   442  
   443  // State of the image builder. For valid values, refer to the [AWS documentation](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_ImageBuilder.html#AppStream2-Type-ImageBuilder-State).
   444  func (o ImageBuilderOutput) State() pulumi.StringOutput {
   445  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringOutput { return v.State }).(pulumi.StringOutput)
   446  }
   447  
   448  // Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   449  func (o ImageBuilderOutput) Tags() pulumi.StringMapOutput {
   450  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   451  }
   452  
   453  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   454  //
   455  // Deprecated: Please use `tags` instead.
   456  func (o ImageBuilderOutput) TagsAll() pulumi.StringMapOutput {
   457  	return o.ApplyT(func(v *ImageBuilder) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   458  }
   459  
   460  // Configuration block for the VPC configuration for the image builder. See below.
   461  func (o ImageBuilderOutput) VpcConfig() ImageBuilderVpcConfigOutput {
   462  	return o.ApplyT(func(v *ImageBuilder) ImageBuilderVpcConfigOutput { return v.VpcConfig }).(ImageBuilderVpcConfigOutput)
   463  }
   464  
   465  type ImageBuilderArrayOutput struct{ *pulumi.OutputState }
   466  
   467  func (ImageBuilderArrayOutput) ElementType() reflect.Type {
   468  	return reflect.TypeOf((*[]*ImageBuilder)(nil)).Elem()
   469  }
   470  
   471  func (o ImageBuilderArrayOutput) ToImageBuilderArrayOutput() ImageBuilderArrayOutput {
   472  	return o
   473  }
   474  
   475  func (o ImageBuilderArrayOutput) ToImageBuilderArrayOutputWithContext(ctx context.Context) ImageBuilderArrayOutput {
   476  	return o
   477  }
   478  
   479  func (o ImageBuilderArrayOutput) Index(i pulumi.IntInput) ImageBuilderOutput {
   480  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ImageBuilder {
   481  		return vs[0].([]*ImageBuilder)[vs[1].(int)]
   482  	}).(ImageBuilderOutput)
   483  }
   484  
   485  type ImageBuilderMapOutput struct{ *pulumi.OutputState }
   486  
   487  func (ImageBuilderMapOutput) ElementType() reflect.Type {
   488  	return reflect.TypeOf((*map[string]*ImageBuilder)(nil)).Elem()
   489  }
   490  
   491  func (o ImageBuilderMapOutput) ToImageBuilderMapOutput() ImageBuilderMapOutput {
   492  	return o
   493  }
   494  
   495  func (o ImageBuilderMapOutput) ToImageBuilderMapOutputWithContext(ctx context.Context) ImageBuilderMapOutput {
   496  	return o
   497  }
   498  
   499  func (o ImageBuilderMapOutput) MapIndex(k pulumi.StringInput) ImageBuilderOutput {
   500  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ImageBuilder {
   501  		return vs[0].(map[string]*ImageBuilder)[vs[1].(string)]
   502  	}).(ImageBuilderOutput)
   503  }
   504  
   505  func init() {
   506  	pulumi.RegisterInputType(reflect.TypeOf((*ImageBuilderInput)(nil)).Elem(), &ImageBuilder{})
   507  	pulumi.RegisterInputType(reflect.TypeOf((*ImageBuilderArrayInput)(nil)).Elem(), ImageBuilderArray{})
   508  	pulumi.RegisterInputType(reflect.TypeOf((*ImageBuilderMapInput)(nil)).Elem(), ImageBuilderMap{})
   509  	pulumi.RegisterOutputType(ImageBuilderOutput{})
   510  	pulumi.RegisterOutputType(ImageBuilderArrayOutput{})
   511  	pulumi.RegisterOutputType(ImageBuilderMapOutput{})
   512  }