github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/imagebuilder/imageRecipe.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 imagebuilder
     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  // Manages an Image Builder Image Recipe.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"fmt"
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := imagebuilder.NewImageRecipe(ctx, "example", &imagebuilder.ImageRecipeArgs{
    35  //				BlockDeviceMappings: imagebuilder.ImageRecipeBlockDeviceMappingArray{
    36  //					&imagebuilder.ImageRecipeBlockDeviceMappingArgs{
    37  //						DeviceName: pulumi.String("/dev/xvdb"),
    38  //						Ebs: &imagebuilder.ImageRecipeBlockDeviceMappingEbsArgs{
    39  //							DeleteOnTermination: pulumi.String("true"),
    40  //							VolumeSize:          pulumi.Int(100),
    41  //							VolumeType:          pulumi.String("gp2"),
    42  //						},
    43  //					},
    44  //				},
    45  //				Components: imagebuilder.ImageRecipeComponentArray{
    46  //					&imagebuilder.ImageRecipeComponentArgs{
    47  //						ComponentArn: pulumi.Any(exampleAwsImagebuilderComponent.Arn),
    48  //						Parameters: imagebuilder.ImageRecipeComponentParameterArray{
    49  //							&imagebuilder.ImageRecipeComponentParameterArgs{
    50  //								Name:  pulumi.String("Parameter1"),
    51  //								Value: pulumi.String("Value1"),
    52  //							},
    53  //							&imagebuilder.ImageRecipeComponentParameterArgs{
    54  //								Name:  pulumi.String("Parameter2"),
    55  //								Value: pulumi.String("Value2"),
    56  //							},
    57  //						},
    58  //					},
    59  //				},
    60  //				Name:        pulumi.String("example"),
    61  //				ParentImage: pulumi.String(fmt.Sprintf("arn:%v:imagebuilder:%v:aws:image/amazon-linux-2-x86/x.x.x", current.Partition, currentAwsRegion.Name)),
    62  //				Version:     pulumi.String("1.0.0"),
    63  //			})
    64  //			if err != nil {
    65  //				return err
    66  //			}
    67  //			return nil
    68  //		})
    69  //	}
    70  //
    71  // ```
    72  // <!--End PulumiCodeChooser -->
    73  //
    74  // ## Import
    75  //
    76  // Using `pulumi import`, import `aws_imagebuilder_image_recipe` resources using the Amazon Resource Name (ARN). For example:
    77  //
    78  // ```sh
    79  // $ pulumi import aws:imagebuilder/imageRecipe:ImageRecipe example arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/example/1.0.0
    80  // ```
    81  type ImageRecipe struct {
    82  	pulumi.CustomResourceState
    83  
    84  	// (Required) Amazon Resource Name (ARN) of the image recipe.
    85  	Arn pulumi.StringOutput `pulumi:"arn"`
    86  	// Configuration block(s) with block device mappings for the image recipe. Detailed below.
    87  	BlockDeviceMappings ImageRecipeBlockDeviceMappingArrayOutput `pulumi:"blockDeviceMappings"`
    88  	// Ordered configuration block(s) with components for the image recipe. Detailed below.
    89  	Components ImageRecipeComponentArrayOutput `pulumi:"components"`
    90  	// Date the image recipe was created.
    91  	DateCreated pulumi.StringOutput `pulumi:"dateCreated"`
    92  	// Description of the image recipe.
    93  	Description pulumi.StringPtrOutput `pulumi:"description"`
    94  	// Name of the image recipe.
    95  	Name pulumi.StringOutput `pulumi:"name"`
    96  	// Owner of the image recipe.
    97  	Owner pulumi.StringOutput `pulumi:"owner"`
    98  	// The image recipe uses this image as a base from which to build your customized image. The value can be the base image ARN or an AMI ID.
    99  	ParentImage pulumi.StringOutput `pulumi:"parentImage"`
   100  	// Platform of the image recipe.
   101  	Platform pulumi.StringOutput `pulumi:"platform"`
   102  	// Configuration block for the Systems Manager Agent installed by default by Image Builder. Detailed below.
   103  	SystemsManagerAgent ImageRecipeSystemsManagerAgentOutput `pulumi:"systemsManagerAgent"`
   104  	// Key-value map of resource tags for the image recipe. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   105  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   106  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   107  	//
   108  	// Deprecated: Please use `tags` instead.
   109  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   110  	// Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance.
   111  	UserDataBase64 pulumi.StringOutput `pulumi:"userDataBase64"`
   112  	// The semantic version of the image recipe, which specifies the version in the following format, with numeric values in each position to indicate a specific version: major.minor.patch. For example: 1.0.0.
   113  	//
   114  	// The following attributes are optional:
   115  	Version pulumi.StringOutput `pulumi:"version"`
   116  	// The working directory to be used during build and test workflows.
   117  	WorkingDirectory pulumi.StringPtrOutput `pulumi:"workingDirectory"`
   118  }
   119  
   120  // NewImageRecipe registers a new resource with the given unique name, arguments, and options.
   121  func NewImageRecipe(ctx *pulumi.Context,
   122  	name string, args *ImageRecipeArgs, opts ...pulumi.ResourceOption) (*ImageRecipe, error) {
   123  	if args == nil {
   124  		return nil, errors.New("missing one or more required arguments")
   125  	}
   126  
   127  	if args.Components == nil {
   128  		return nil, errors.New("invalid value for required argument 'Components'")
   129  	}
   130  	if args.ParentImage == nil {
   131  		return nil, errors.New("invalid value for required argument 'ParentImage'")
   132  	}
   133  	if args.Version == nil {
   134  		return nil, errors.New("invalid value for required argument 'Version'")
   135  	}
   136  	opts = internal.PkgResourceDefaultOpts(opts)
   137  	var resource ImageRecipe
   138  	err := ctx.RegisterResource("aws:imagebuilder/imageRecipe:ImageRecipe", name, args, &resource, opts...)
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return &resource, nil
   143  }
   144  
   145  // GetImageRecipe gets an existing ImageRecipe resource's state with the given name, ID, and optional
   146  // state properties that are used to uniquely qualify the lookup (nil if not required).
   147  func GetImageRecipe(ctx *pulumi.Context,
   148  	name string, id pulumi.IDInput, state *ImageRecipeState, opts ...pulumi.ResourceOption) (*ImageRecipe, error) {
   149  	var resource ImageRecipe
   150  	err := ctx.ReadResource("aws:imagebuilder/imageRecipe:ImageRecipe", name, id, state, &resource, opts...)
   151  	if err != nil {
   152  		return nil, err
   153  	}
   154  	return &resource, nil
   155  }
   156  
   157  // Input properties used for looking up and filtering ImageRecipe resources.
   158  type imageRecipeState struct {
   159  	// (Required) Amazon Resource Name (ARN) of the image recipe.
   160  	Arn *string `pulumi:"arn"`
   161  	// Configuration block(s) with block device mappings for the image recipe. Detailed below.
   162  	BlockDeviceMappings []ImageRecipeBlockDeviceMapping `pulumi:"blockDeviceMappings"`
   163  	// Ordered configuration block(s) with components for the image recipe. Detailed below.
   164  	Components []ImageRecipeComponent `pulumi:"components"`
   165  	// Date the image recipe was created.
   166  	DateCreated *string `pulumi:"dateCreated"`
   167  	// Description of the image recipe.
   168  	Description *string `pulumi:"description"`
   169  	// Name of the image recipe.
   170  	Name *string `pulumi:"name"`
   171  	// Owner of the image recipe.
   172  	Owner *string `pulumi:"owner"`
   173  	// The image recipe uses this image as a base from which to build your customized image. The value can be the base image ARN or an AMI ID.
   174  	ParentImage *string `pulumi:"parentImage"`
   175  	// Platform of the image recipe.
   176  	Platform *string `pulumi:"platform"`
   177  	// Configuration block for the Systems Manager Agent installed by default by Image Builder. Detailed below.
   178  	SystemsManagerAgent *ImageRecipeSystemsManagerAgent `pulumi:"systemsManagerAgent"`
   179  	// Key-value map of resource tags for the image recipe. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   180  	Tags map[string]string `pulumi:"tags"`
   181  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   182  	//
   183  	// Deprecated: Please use `tags` instead.
   184  	TagsAll map[string]string `pulumi:"tagsAll"`
   185  	// Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance.
   186  	UserDataBase64 *string `pulumi:"userDataBase64"`
   187  	// The semantic version of the image recipe, which specifies the version in the following format, with numeric values in each position to indicate a specific version: major.minor.patch. For example: 1.0.0.
   188  	//
   189  	// The following attributes are optional:
   190  	Version *string `pulumi:"version"`
   191  	// The working directory to be used during build and test workflows.
   192  	WorkingDirectory *string `pulumi:"workingDirectory"`
   193  }
   194  
   195  type ImageRecipeState struct {
   196  	// (Required) Amazon Resource Name (ARN) of the image recipe.
   197  	Arn pulumi.StringPtrInput
   198  	// Configuration block(s) with block device mappings for the image recipe. Detailed below.
   199  	BlockDeviceMappings ImageRecipeBlockDeviceMappingArrayInput
   200  	// Ordered configuration block(s) with components for the image recipe. Detailed below.
   201  	Components ImageRecipeComponentArrayInput
   202  	// Date the image recipe was created.
   203  	DateCreated pulumi.StringPtrInput
   204  	// Description of the image recipe.
   205  	Description pulumi.StringPtrInput
   206  	// Name of the image recipe.
   207  	Name pulumi.StringPtrInput
   208  	// Owner of the image recipe.
   209  	Owner pulumi.StringPtrInput
   210  	// The image recipe uses this image as a base from which to build your customized image. The value can be the base image ARN or an AMI ID.
   211  	ParentImage pulumi.StringPtrInput
   212  	// Platform of the image recipe.
   213  	Platform pulumi.StringPtrInput
   214  	// Configuration block for the Systems Manager Agent installed by default by Image Builder. Detailed below.
   215  	SystemsManagerAgent ImageRecipeSystemsManagerAgentPtrInput
   216  	// Key-value map of resource tags for the image recipe. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   217  	Tags pulumi.StringMapInput
   218  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   219  	//
   220  	// Deprecated: Please use `tags` instead.
   221  	TagsAll pulumi.StringMapInput
   222  	// Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance.
   223  	UserDataBase64 pulumi.StringPtrInput
   224  	// The semantic version of the image recipe, which specifies the version in the following format, with numeric values in each position to indicate a specific version: major.minor.patch. For example: 1.0.0.
   225  	//
   226  	// The following attributes are optional:
   227  	Version pulumi.StringPtrInput
   228  	// The working directory to be used during build and test workflows.
   229  	WorkingDirectory pulumi.StringPtrInput
   230  }
   231  
   232  func (ImageRecipeState) ElementType() reflect.Type {
   233  	return reflect.TypeOf((*imageRecipeState)(nil)).Elem()
   234  }
   235  
   236  type imageRecipeArgs struct {
   237  	// Configuration block(s) with block device mappings for the image recipe. Detailed below.
   238  	BlockDeviceMappings []ImageRecipeBlockDeviceMapping `pulumi:"blockDeviceMappings"`
   239  	// Ordered configuration block(s) with components for the image recipe. Detailed below.
   240  	Components []ImageRecipeComponent `pulumi:"components"`
   241  	// Description of the image recipe.
   242  	Description *string `pulumi:"description"`
   243  	// Name of the image recipe.
   244  	Name *string `pulumi:"name"`
   245  	// The image recipe uses this image as a base from which to build your customized image. The value can be the base image ARN or an AMI ID.
   246  	ParentImage string `pulumi:"parentImage"`
   247  	// Configuration block for the Systems Manager Agent installed by default by Image Builder. Detailed below.
   248  	SystemsManagerAgent *ImageRecipeSystemsManagerAgent `pulumi:"systemsManagerAgent"`
   249  	// Key-value map of resource tags for the image recipe. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   250  	Tags map[string]string `pulumi:"tags"`
   251  	// Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance.
   252  	UserDataBase64 *string `pulumi:"userDataBase64"`
   253  	// The semantic version of the image recipe, which specifies the version in the following format, with numeric values in each position to indicate a specific version: major.minor.patch. For example: 1.0.0.
   254  	//
   255  	// The following attributes are optional:
   256  	Version string `pulumi:"version"`
   257  	// The working directory to be used during build and test workflows.
   258  	WorkingDirectory *string `pulumi:"workingDirectory"`
   259  }
   260  
   261  // The set of arguments for constructing a ImageRecipe resource.
   262  type ImageRecipeArgs struct {
   263  	// Configuration block(s) with block device mappings for the image recipe. Detailed below.
   264  	BlockDeviceMappings ImageRecipeBlockDeviceMappingArrayInput
   265  	// Ordered configuration block(s) with components for the image recipe. Detailed below.
   266  	Components ImageRecipeComponentArrayInput
   267  	// Description of the image recipe.
   268  	Description pulumi.StringPtrInput
   269  	// Name of the image recipe.
   270  	Name pulumi.StringPtrInput
   271  	// The image recipe uses this image as a base from which to build your customized image. The value can be the base image ARN or an AMI ID.
   272  	ParentImage pulumi.StringInput
   273  	// Configuration block for the Systems Manager Agent installed by default by Image Builder. Detailed below.
   274  	SystemsManagerAgent ImageRecipeSystemsManagerAgentPtrInput
   275  	// Key-value map of resource tags for the image recipe. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   276  	Tags pulumi.StringMapInput
   277  	// Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance.
   278  	UserDataBase64 pulumi.StringPtrInput
   279  	// The semantic version of the image recipe, which specifies the version in the following format, with numeric values in each position to indicate a specific version: major.minor.patch. For example: 1.0.0.
   280  	//
   281  	// The following attributes are optional:
   282  	Version pulumi.StringInput
   283  	// The working directory to be used during build and test workflows.
   284  	WorkingDirectory pulumi.StringPtrInput
   285  }
   286  
   287  func (ImageRecipeArgs) ElementType() reflect.Type {
   288  	return reflect.TypeOf((*imageRecipeArgs)(nil)).Elem()
   289  }
   290  
   291  type ImageRecipeInput interface {
   292  	pulumi.Input
   293  
   294  	ToImageRecipeOutput() ImageRecipeOutput
   295  	ToImageRecipeOutputWithContext(ctx context.Context) ImageRecipeOutput
   296  }
   297  
   298  func (*ImageRecipe) ElementType() reflect.Type {
   299  	return reflect.TypeOf((**ImageRecipe)(nil)).Elem()
   300  }
   301  
   302  func (i *ImageRecipe) ToImageRecipeOutput() ImageRecipeOutput {
   303  	return i.ToImageRecipeOutputWithContext(context.Background())
   304  }
   305  
   306  func (i *ImageRecipe) ToImageRecipeOutputWithContext(ctx context.Context) ImageRecipeOutput {
   307  	return pulumi.ToOutputWithContext(ctx, i).(ImageRecipeOutput)
   308  }
   309  
   310  // ImageRecipeArrayInput is an input type that accepts ImageRecipeArray and ImageRecipeArrayOutput values.
   311  // You can construct a concrete instance of `ImageRecipeArrayInput` via:
   312  //
   313  //	ImageRecipeArray{ ImageRecipeArgs{...} }
   314  type ImageRecipeArrayInput interface {
   315  	pulumi.Input
   316  
   317  	ToImageRecipeArrayOutput() ImageRecipeArrayOutput
   318  	ToImageRecipeArrayOutputWithContext(context.Context) ImageRecipeArrayOutput
   319  }
   320  
   321  type ImageRecipeArray []ImageRecipeInput
   322  
   323  func (ImageRecipeArray) ElementType() reflect.Type {
   324  	return reflect.TypeOf((*[]*ImageRecipe)(nil)).Elem()
   325  }
   326  
   327  func (i ImageRecipeArray) ToImageRecipeArrayOutput() ImageRecipeArrayOutput {
   328  	return i.ToImageRecipeArrayOutputWithContext(context.Background())
   329  }
   330  
   331  func (i ImageRecipeArray) ToImageRecipeArrayOutputWithContext(ctx context.Context) ImageRecipeArrayOutput {
   332  	return pulumi.ToOutputWithContext(ctx, i).(ImageRecipeArrayOutput)
   333  }
   334  
   335  // ImageRecipeMapInput is an input type that accepts ImageRecipeMap and ImageRecipeMapOutput values.
   336  // You can construct a concrete instance of `ImageRecipeMapInput` via:
   337  //
   338  //	ImageRecipeMap{ "key": ImageRecipeArgs{...} }
   339  type ImageRecipeMapInput interface {
   340  	pulumi.Input
   341  
   342  	ToImageRecipeMapOutput() ImageRecipeMapOutput
   343  	ToImageRecipeMapOutputWithContext(context.Context) ImageRecipeMapOutput
   344  }
   345  
   346  type ImageRecipeMap map[string]ImageRecipeInput
   347  
   348  func (ImageRecipeMap) ElementType() reflect.Type {
   349  	return reflect.TypeOf((*map[string]*ImageRecipe)(nil)).Elem()
   350  }
   351  
   352  func (i ImageRecipeMap) ToImageRecipeMapOutput() ImageRecipeMapOutput {
   353  	return i.ToImageRecipeMapOutputWithContext(context.Background())
   354  }
   355  
   356  func (i ImageRecipeMap) ToImageRecipeMapOutputWithContext(ctx context.Context) ImageRecipeMapOutput {
   357  	return pulumi.ToOutputWithContext(ctx, i).(ImageRecipeMapOutput)
   358  }
   359  
   360  type ImageRecipeOutput struct{ *pulumi.OutputState }
   361  
   362  func (ImageRecipeOutput) ElementType() reflect.Type {
   363  	return reflect.TypeOf((**ImageRecipe)(nil)).Elem()
   364  }
   365  
   366  func (o ImageRecipeOutput) ToImageRecipeOutput() ImageRecipeOutput {
   367  	return o
   368  }
   369  
   370  func (o ImageRecipeOutput) ToImageRecipeOutputWithContext(ctx context.Context) ImageRecipeOutput {
   371  	return o
   372  }
   373  
   374  // (Required) Amazon Resource Name (ARN) of the image recipe.
   375  func (o ImageRecipeOutput) Arn() pulumi.StringOutput {
   376  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   377  }
   378  
   379  // Configuration block(s) with block device mappings for the image recipe. Detailed below.
   380  func (o ImageRecipeOutput) BlockDeviceMappings() ImageRecipeBlockDeviceMappingArrayOutput {
   381  	return o.ApplyT(func(v *ImageRecipe) ImageRecipeBlockDeviceMappingArrayOutput { return v.BlockDeviceMappings }).(ImageRecipeBlockDeviceMappingArrayOutput)
   382  }
   383  
   384  // Ordered configuration block(s) with components for the image recipe. Detailed below.
   385  func (o ImageRecipeOutput) Components() ImageRecipeComponentArrayOutput {
   386  	return o.ApplyT(func(v *ImageRecipe) ImageRecipeComponentArrayOutput { return v.Components }).(ImageRecipeComponentArrayOutput)
   387  }
   388  
   389  // Date the image recipe was created.
   390  func (o ImageRecipeOutput) DateCreated() pulumi.StringOutput {
   391  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.DateCreated }).(pulumi.StringOutput)
   392  }
   393  
   394  // Description of the image recipe.
   395  func (o ImageRecipeOutput) Description() pulumi.StringPtrOutput {
   396  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   397  }
   398  
   399  // Name of the image recipe.
   400  func (o ImageRecipeOutput) Name() pulumi.StringOutput {
   401  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   402  }
   403  
   404  // Owner of the image recipe.
   405  func (o ImageRecipeOutput) Owner() pulumi.StringOutput {
   406  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput)
   407  }
   408  
   409  // The image recipe uses this image as a base from which to build your customized image. The value can be the base image ARN or an AMI ID.
   410  func (o ImageRecipeOutput) ParentImage() pulumi.StringOutput {
   411  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.ParentImage }).(pulumi.StringOutput)
   412  }
   413  
   414  // Platform of the image recipe.
   415  func (o ImageRecipeOutput) Platform() pulumi.StringOutput {
   416  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.Platform }).(pulumi.StringOutput)
   417  }
   418  
   419  // Configuration block for the Systems Manager Agent installed by default by Image Builder. Detailed below.
   420  func (o ImageRecipeOutput) SystemsManagerAgent() ImageRecipeSystemsManagerAgentOutput {
   421  	return o.ApplyT(func(v *ImageRecipe) ImageRecipeSystemsManagerAgentOutput { return v.SystemsManagerAgent }).(ImageRecipeSystemsManagerAgentOutput)
   422  }
   423  
   424  // Key-value map of resource tags for the image recipe. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   425  func (o ImageRecipeOutput) Tags() pulumi.StringMapOutput {
   426  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   427  }
   428  
   429  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   430  //
   431  // Deprecated: Please use `tags` instead.
   432  func (o ImageRecipeOutput) TagsAll() pulumi.StringMapOutput {
   433  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   434  }
   435  
   436  // Base64 encoded user data. Use this to provide commands or a command script to run when you launch your build instance.
   437  func (o ImageRecipeOutput) UserDataBase64() pulumi.StringOutput {
   438  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.UserDataBase64 }).(pulumi.StringOutput)
   439  }
   440  
   441  // The semantic version of the image recipe, which specifies the version in the following format, with numeric values in each position to indicate a specific version: major.minor.patch. For example: 1.0.0.
   442  //
   443  // The following attributes are optional:
   444  func (o ImageRecipeOutput) Version() pulumi.StringOutput {
   445  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput)
   446  }
   447  
   448  // The working directory to be used during build and test workflows.
   449  func (o ImageRecipeOutput) WorkingDirectory() pulumi.StringPtrOutput {
   450  	return o.ApplyT(func(v *ImageRecipe) pulumi.StringPtrOutput { return v.WorkingDirectory }).(pulumi.StringPtrOutput)
   451  }
   452  
   453  type ImageRecipeArrayOutput struct{ *pulumi.OutputState }
   454  
   455  func (ImageRecipeArrayOutput) ElementType() reflect.Type {
   456  	return reflect.TypeOf((*[]*ImageRecipe)(nil)).Elem()
   457  }
   458  
   459  func (o ImageRecipeArrayOutput) ToImageRecipeArrayOutput() ImageRecipeArrayOutput {
   460  	return o
   461  }
   462  
   463  func (o ImageRecipeArrayOutput) ToImageRecipeArrayOutputWithContext(ctx context.Context) ImageRecipeArrayOutput {
   464  	return o
   465  }
   466  
   467  func (o ImageRecipeArrayOutput) Index(i pulumi.IntInput) ImageRecipeOutput {
   468  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ImageRecipe {
   469  		return vs[0].([]*ImageRecipe)[vs[1].(int)]
   470  	}).(ImageRecipeOutput)
   471  }
   472  
   473  type ImageRecipeMapOutput struct{ *pulumi.OutputState }
   474  
   475  func (ImageRecipeMapOutput) ElementType() reflect.Type {
   476  	return reflect.TypeOf((*map[string]*ImageRecipe)(nil)).Elem()
   477  }
   478  
   479  func (o ImageRecipeMapOutput) ToImageRecipeMapOutput() ImageRecipeMapOutput {
   480  	return o
   481  }
   482  
   483  func (o ImageRecipeMapOutput) ToImageRecipeMapOutputWithContext(ctx context.Context) ImageRecipeMapOutput {
   484  	return o
   485  }
   486  
   487  func (o ImageRecipeMapOutput) MapIndex(k pulumi.StringInput) ImageRecipeOutput {
   488  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ImageRecipe {
   489  		return vs[0].(map[string]*ImageRecipe)[vs[1].(string)]
   490  	}).(ImageRecipeOutput)
   491  }
   492  
   493  func init() {
   494  	pulumi.RegisterInputType(reflect.TypeOf((*ImageRecipeInput)(nil)).Elem(), &ImageRecipe{})
   495  	pulumi.RegisterInputType(reflect.TypeOf((*ImageRecipeArrayInput)(nil)).Elem(), ImageRecipeArray{})
   496  	pulumi.RegisterInputType(reflect.TypeOf((*ImageRecipeMapInput)(nil)).Elem(), ImageRecipeMap{})
   497  	pulumi.RegisterOutputType(ImageRecipeOutput{})
   498  	pulumi.RegisterOutputType(ImageRecipeArrayOutput{})
   499  	pulumi.RegisterOutputType(ImageRecipeMapOutput{})
   500  }