github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/imagebuilder/infrastructureConfiguration.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 Infrastructure Configuration.
    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/imagebuilder"
    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 := imagebuilder.NewInfrastructureConfiguration(ctx, "example", &imagebuilder.InfrastructureConfigurationArgs{
    33  //				Description:         pulumi.String("example description"),
    34  //				InstanceProfileName: pulumi.Any(exampleAwsIamInstanceProfile.Name),
    35  //				InstanceTypes: pulumi.StringArray{
    36  //					pulumi.String("t2.nano"),
    37  //					pulumi.String("t3.micro"),
    38  //				},
    39  //				KeyPair: pulumi.Any(exampleAwsKeyPair.KeyName),
    40  //				Name:    pulumi.String("example"),
    41  //				SecurityGroupIds: pulumi.StringArray{
    42  //					exampleAwsSecurityGroup.Id,
    43  //				},
    44  //				SnsTopicArn:                pulumi.Any(exampleAwsSnsTopic.Arn),
    45  //				SubnetId:                   pulumi.Any(main.Id),
    46  //				TerminateInstanceOnFailure: pulumi.Bool(true),
    47  //				Logging: &imagebuilder.InfrastructureConfigurationLoggingArgs{
    48  //					S3Logs: &imagebuilder.InfrastructureConfigurationLoggingS3LogsArgs{
    49  //						S3BucketName: pulumi.Any(exampleAwsS3Bucket.Bucket),
    50  //						S3KeyPrefix:  pulumi.String("logs"),
    51  //					},
    52  //				},
    53  //				Tags: pulumi.StringMap{
    54  //					"foo": pulumi.String("bar"),
    55  //				},
    56  //			})
    57  //			if err != nil {
    58  //				return err
    59  //			}
    60  //			return nil
    61  //		})
    62  //	}
    63  //
    64  // ```
    65  // <!--End PulumiCodeChooser -->
    66  //
    67  // ## Import
    68  //
    69  // Using `pulumi import`, import `aws_imagebuilder_infrastructure_configuration` using the Amazon Resource Name (ARN). For example:
    70  //
    71  // ```sh
    72  // $ pulumi import aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration example arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/example
    73  // ```
    74  type InfrastructureConfiguration struct {
    75  	pulumi.CustomResourceState
    76  
    77  	// Amazon Resource Name (ARN) of the configuration.
    78  	Arn pulumi.StringOutput `pulumi:"arn"`
    79  	// Date when the configuration was created.
    80  	DateCreated pulumi.StringOutput `pulumi:"dateCreated"`
    81  	// Date when the configuration was updated.
    82  	DateUpdated pulumi.StringOutput `pulumi:"dateUpdated"`
    83  	// Description for the configuration.
    84  	Description pulumi.StringPtrOutput `pulumi:"description"`
    85  	// Configuration block with instance metadata options for the HTTP requests that pipeline builds use to launch EC2 build and test instances. Detailed below.
    86  	InstanceMetadataOptions InfrastructureConfigurationInstanceMetadataOptionsPtrOutput `pulumi:"instanceMetadataOptions"`
    87  	// Name of IAM Instance Profile.
    88  	InstanceProfileName pulumi.StringOutput `pulumi:"instanceProfileName"`
    89  	// Set of EC2 Instance Types.
    90  	InstanceTypes pulumi.StringArrayOutput `pulumi:"instanceTypes"`
    91  	// Name of EC2 Key Pair.
    92  	KeyPair pulumi.StringPtrOutput `pulumi:"keyPair"`
    93  	// Configuration block with logging settings. Detailed below.
    94  	Logging InfrastructureConfigurationLoggingPtrOutput `pulumi:"logging"`
    95  	// Name for the configuration.
    96  	//
    97  	// The following arguments are optional:
    98  	Name pulumi.StringOutput `pulumi:"name"`
    99  	// Key-value map of resource tags to assign to infrastructure created by the configuration.
   100  	ResourceTags pulumi.StringMapOutput `pulumi:"resourceTags"`
   101  	// Set of EC2 Security Group identifiers.
   102  	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
   103  	// Amazon Resource Name (ARN) of SNS Topic.
   104  	SnsTopicArn pulumi.StringPtrOutput `pulumi:"snsTopicArn"`
   105  	// EC2 Subnet identifier. Also requires `securityGroupIds` argument.
   106  	SubnetId pulumi.StringPtrOutput `pulumi:"subnetId"`
   107  	// Key-value map of resource tags to assign to the configuration. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   108  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   109  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   110  	//
   111  	// Deprecated: Please use `tags` instead.
   112  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   113  	// Enable if the instance should be terminated when the pipeline fails. Defaults to `false`.
   114  	TerminateInstanceOnFailure pulumi.BoolPtrOutput `pulumi:"terminateInstanceOnFailure"`
   115  }
   116  
   117  // NewInfrastructureConfiguration registers a new resource with the given unique name, arguments, and options.
   118  func NewInfrastructureConfiguration(ctx *pulumi.Context,
   119  	name string, args *InfrastructureConfigurationArgs, opts ...pulumi.ResourceOption) (*InfrastructureConfiguration, error) {
   120  	if args == nil {
   121  		return nil, errors.New("missing one or more required arguments")
   122  	}
   123  
   124  	if args.InstanceProfileName == nil {
   125  		return nil, errors.New("invalid value for required argument 'InstanceProfileName'")
   126  	}
   127  	opts = internal.PkgResourceDefaultOpts(opts)
   128  	var resource InfrastructureConfiguration
   129  	err := ctx.RegisterResource("aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration", name, args, &resource, opts...)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &resource, nil
   134  }
   135  
   136  // GetInfrastructureConfiguration gets an existing InfrastructureConfiguration resource's state with the given name, ID, and optional
   137  // state properties that are used to uniquely qualify the lookup (nil if not required).
   138  func GetInfrastructureConfiguration(ctx *pulumi.Context,
   139  	name string, id pulumi.IDInput, state *InfrastructureConfigurationState, opts ...pulumi.ResourceOption) (*InfrastructureConfiguration, error) {
   140  	var resource InfrastructureConfiguration
   141  	err := ctx.ReadResource("aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration", name, id, state, &resource, opts...)
   142  	if err != nil {
   143  		return nil, err
   144  	}
   145  	return &resource, nil
   146  }
   147  
   148  // Input properties used for looking up and filtering InfrastructureConfiguration resources.
   149  type infrastructureConfigurationState struct {
   150  	// Amazon Resource Name (ARN) of the configuration.
   151  	Arn *string `pulumi:"arn"`
   152  	// Date when the configuration was created.
   153  	DateCreated *string `pulumi:"dateCreated"`
   154  	// Date when the configuration was updated.
   155  	DateUpdated *string `pulumi:"dateUpdated"`
   156  	// Description for the configuration.
   157  	Description *string `pulumi:"description"`
   158  	// Configuration block with instance metadata options for the HTTP requests that pipeline builds use to launch EC2 build and test instances. Detailed below.
   159  	InstanceMetadataOptions *InfrastructureConfigurationInstanceMetadataOptions `pulumi:"instanceMetadataOptions"`
   160  	// Name of IAM Instance Profile.
   161  	InstanceProfileName *string `pulumi:"instanceProfileName"`
   162  	// Set of EC2 Instance Types.
   163  	InstanceTypes []string `pulumi:"instanceTypes"`
   164  	// Name of EC2 Key Pair.
   165  	KeyPair *string `pulumi:"keyPair"`
   166  	// Configuration block with logging settings. Detailed below.
   167  	Logging *InfrastructureConfigurationLogging `pulumi:"logging"`
   168  	// Name for the configuration.
   169  	//
   170  	// The following arguments are optional:
   171  	Name *string `pulumi:"name"`
   172  	// Key-value map of resource tags to assign to infrastructure created by the configuration.
   173  	ResourceTags map[string]string `pulumi:"resourceTags"`
   174  	// Set of EC2 Security Group identifiers.
   175  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   176  	// Amazon Resource Name (ARN) of SNS Topic.
   177  	SnsTopicArn *string `pulumi:"snsTopicArn"`
   178  	// EC2 Subnet identifier. Also requires `securityGroupIds` argument.
   179  	SubnetId *string `pulumi:"subnetId"`
   180  	// Key-value map of resource tags to assign to the configuration. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   181  	Tags map[string]string `pulumi:"tags"`
   182  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   183  	//
   184  	// Deprecated: Please use `tags` instead.
   185  	TagsAll map[string]string `pulumi:"tagsAll"`
   186  	// Enable if the instance should be terminated when the pipeline fails. Defaults to `false`.
   187  	TerminateInstanceOnFailure *bool `pulumi:"terminateInstanceOnFailure"`
   188  }
   189  
   190  type InfrastructureConfigurationState struct {
   191  	// Amazon Resource Name (ARN) of the configuration.
   192  	Arn pulumi.StringPtrInput
   193  	// Date when the configuration was created.
   194  	DateCreated pulumi.StringPtrInput
   195  	// Date when the configuration was updated.
   196  	DateUpdated pulumi.StringPtrInput
   197  	// Description for the configuration.
   198  	Description pulumi.StringPtrInput
   199  	// Configuration block with instance metadata options for the HTTP requests that pipeline builds use to launch EC2 build and test instances. Detailed below.
   200  	InstanceMetadataOptions InfrastructureConfigurationInstanceMetadataOptionsPtrInput
   201  	// Name of IAM Instance Profile.
   202  	InstanceProfileName pulumi.StringPtrInput
   203  	// Set of EC2 Instance Types.
   204  	InstanceTypes pulumi.StringArrayInput
   205  	// Name of EC2 Key Pair.
   206  	KeyPair pulumi.StringPtrInput
   207  	// Configuration block with logging settings. Detailed below.
   208  	Logging InfrastructureConfigurationLoggingPtrInput
   209  	// Name for the configuration.
   210  	//
   211  	// The following arguments are optional:
   212  	Name pulumi.StringPtrInput
   213  	// Key-value map of resource tags to assign to infrastructure created by the configuration.
   214  	ResourceTags pulumi.StringMapInput
   215  	// Set of EC2 Security Group identifiers.
   216  	SecurityGroupIds pulumi.StringArrayInput
   217  	// Amazon Resource Name (ARN) of SNS Topic.
   218  	SnsTopicArn pulumi.StringPtrInput
   219  	// EC2 Subnet identifier. Also requires `securityGroupIds` argument.
   220  	SubnetId pulumi.StringPtrInput
   221  	// Key-value map of resource tags to assign to the configuration. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   222  	Tags pulumi.StringMapInput
   223  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   224  	//
   225  	// Deprecated: Please use `tags` instead.
   226  	TagsAll pulumi.StringMapInput
   227  	// Enable if the instance should be terminated when the pipeline fails. Defaults to `false`.
   228  	TerminateInstanceOnFailure pulumi.BoolPtrInput
   229  }
   230  
   231  func (InfrastructureConfigurationState) ElementType() reflect.Type {
   232  	return reflect.TypeOf((*infrastructureConfigurationState)(nil)).Elem()
   233  }
   234  
   235  type infrastructureConfigurationArgs struct {
   236  	// Description for the configuration.
   237  	Description *string `pulumi:"description"`
   238  	// Configuration block with instance metadata options for the HTTP requests that pipeline builds use to launch EC2 build and test instances. Detailed below.
   239  	InstanceMetadataOptions *InfrastructureConfigurationInstanceMetadataOptions `pulumi:"instanceMetadataOptions"`
   240  	// Name of IAM Instance Profile.
   241  	InstanceProfileName string `pulumi:"instanceProfileName"`
   242  	// Set of EC2 Instance Types.
   243  	InstanceTypes []string `pulumi:"instanceTypes"`
   244  	// Name of EC2 Key Pair.
   245  	KeyPair *string `pulumi:"keyPair"`
   246  	// Configuration block with logging settings. Detailed below.
   247  	Logging *InfrastructureConfigurationLogging `pulumi:"logging"`
   248  	// Name for the configuration.
   249  	//
   250  	// The following arguments are optional:
   251  	Name *string `pulumi:"name"`
   252  	// Key-value map of resource tags to assign to infrastructure created by the configuration.
   253  	ResourceTags map[string]string `pulumi:"resourceTags"`
   254  	// Set of EC2 Security Group identifiers.
   255  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   256  	// Amazon Resource Name (ARN) of SNS Topic.
   257  	SnsTopicArn *string `pulumi:"snsTopicArn"`
   258  	// EC2 Subnet identifier. Also requires `securityGroupIds` argument.
   259  	SubnetId *string `pulumi:"subnetId"`
   260  	// Key-value map of resource tags to assign to the configuration. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   261  	Tags map[string]string `pulumi:"tags"`
   262  	// Enable if the instance should be terminated when the pipeline fails. Defaults to `false`.
   263  	TerminateInstanceOnFailure *bool `pulumi:"terminateInstanceOnFailure"`
   264  }
   265  
   266  // The set of arguments for constructing a InfrastructureConfiguration resource.
   267  type InfrastructureConfigurationArgs struct {
   268  	// Description for the configuration.
   269  	Description pulumi.StringPtrInput
   270  	// Configuration block with instance metadata options for the HTTP requests that pipeline builds use to launch EC2 build and test instances. Detailed below.
   271  	InstanceMetadataOptions InfrastructureConfigurationInstanceMetadataOptionsPtrInput
   272  	// Name of IAM Instance Profile.
   273  	InstanceProfileName pulumi.StringInput
   274  	// Set of EC2 Instance Types.
   275  	InstanceTypes pulumi.StringArrayInput
   276  	// Name of EC2 Key Pair.
   277  	KeyPair pulumi.StringPtrInput
   278  	// Configuration block with logging settings. Detailed below.
   279  	Logging InfrastructureConfigurationLoggingPtrInput
   280  	// Name for the configuration.
   281  	//
   282  	// The following arguments are optional:
   283  	Name pulumi.StringPtrInput
   284  	// Key-value map of resource tags to assign to infrastructure created by the configuration.
   285  	ResourceTags pulumi.StringMapInput
   286  	// Set of EC2 Security Group identifiers.
   287  	SecurityGroupIds pulumi.StringArrayInput
   288  	// Amazon Resource Name (ARN) of SNS Topic.
   289  	SnsTopicArn pulumi.StringPtrInput
   290  	// EC2 Subnet identifier. Also requires `securityGroupIds` argument.
   291  	SubnetId pulumi.StringPtrInput
   292  	// Key-value map of resource tags to assign to the configuration. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   293  	Tags pulumi.StringMapInput
   294  	// Enable if the instance should be terminated when the pipeline fails. Defaults to `false`.
   295  	TerminateInstanceOnFailure pulumi.BoolPtrInput
   296  }
   297  
   298  func (InfrastructureConfigurationArgs) ElementType() reflect.Type {
   299  	return reflect.TypeOf((*infrastructureConfigurationArgs)(nil)).Elem()
   300  }
   301  
   302  type InfrastructureConfigurationInput interface {
   303  	pulumi.Input
   304  
   305  	ToInfrastructureConfigurationOutput() InfrastructureConfigurationOutput
   306  	ToInfrastructureConfigurationOutputWithContext(ctx context.Context) InfrastructureConfigurationOutput
   307  }
   308  
   309  func (*InfrastructureConfiguration) ElementType() reflect.Type {
   310  	return reflect.TypeOf((**InfrastructureConfiguration)(nil)).Elem()
   311  }
   312  
   313  func (i *InfrastructureConfiguration) ToInfrastructureConfigurationOutput() InfrastructureConfigurationOutput {
   314  	return i.ToInfrastructureConfigurationOutputWithContext(context.Background())
   315  }
   316  
   317  func (i *InfrastructureConfiguration) ToInfrastructureConfigurationOutputWithContext(ctx context.Context) InfrastructureConfigurationOutput {
   318  	return pulumi.ToOutputWithContext(ctx, i).(InfrastructureConfigurationOutput)
   319  }
   320  
   321  // InfrastructureConfigurationArrayInput is an input type that accepts InfrastructureConfigurationArray and InfrastructureConfigurationArrayOutput values.
   322  // You can construct a concrete instance of `InfrastructureConfigurationArrayInput` via:
   323  //
   324  //	InfrastructureConfigurationArray{ InfrastructureConfigurationArgs{...} }
   325  type InfrastructureConfigurationArrayInput interface {
   326  	pulumi.Input
   327  
   328  	ToInfrastructureConfigurationArrayOutput() InfrastructureConfigurationArrayOutput
   329  	ToInfrastructureConfigurationArrayOutputWithContext(context.Context) InfrastructureConfigurationArrayOutput
   330  }
   331  
   332  type InfrastructureConfigurationArray []InfrastructureConfigurationInput
   333  
   334  func (InfrastructureConfigurationArray) ElementType() reflect.Type {
   335  	return reflect.TypeOf((*[]*InfrastructureConfiguration)(nil)).Elem()
   336  }
   337  
   338  func (i InfrastructureConfigurationArray) ToInfrastructureConfigurationArrayOutput() InfrastructureConfigurationArrayOutput {
   339  	return i.ToInfrastructureConfigurationArrayOutputWithContext(context.Background())
   340  }
   341  
   342  func (i InfrastructureConfigurationArray) ToInfrastructureConfigurationArrayOutputWithContext(ctx context.Context) InfrastructureConfigurationArrayOutput {
   343  	return pulumi.ToOutputWithContext(ctx, i).(InfrastructureConfigurationArrayOutput)
   344  }
   345  
   346  // InfrastructureConfigurationMapInput is an input type that accepts InfrastructureConfigurationMap and InfrastructureConfigurationMapOutput values.
   347  // You can construct a concrete instance of `InfrastructureConfigurationMapInput` via:
   348  //
   349  //	InfrastructureConfigurationMap{ "key": InfrastructureConfigurationArgs{...} }
   350  type InfrastructureConfigurationMapInput interface {
   351  	pulumi.Input
   352  
   353  	ToInfrastructureConfigurationMapOutput() InfrastructureConfigurationMapOutput
   354  	ToInfrastructureConfigurationMapOutputWithContext(context.Context) InfrastructureConfigurationMapOutput
   355  }
   356  
   357  type InfrastructureConfigurationMap map[string]InfrastructureConfigurationInput
   358  
   359  func (InfrastructureConfigurationMap) ElementType() reflect.Type {
   360  	return reflect.TypeOf((*map[string]*InfrastructureConfiguration)(nil)).Elem()
   361  }
   362  
   363  func (i InfrastructureConfigurationMap) ToInfrastructureConfigurationMapOutput() InfrastructureConfigurationMapOutput {
   364  	return i.ToInfrastructureConfigurationMapOutputWithContext(context.Background())
   365  }
   366  
   367  func (i InfrastructureConfigurationMap) ToInfrastructureConfigurationMapOutputWithContext(ctx context.Context) InfrastructureConfigurationMapOutput {
   368  	return pulumi.ToOutputWithContext(ctx, i).(InfrastructureConfigurationMapOutput)
   369  }
   370  
   371  type InfrastructureConfigurationOutput struct{ *pulumi.OutputState }
   372  
   373  func (InfrastructureConfigurationOutput) ElementType() reflect.Type {
   374  	return reflect.TypeOf((**InfrastructureConfiguration)(nil)).Elem()
   375  }
   376  
   377  func (o InfrastructureConfigurationOutput) ToInfrastructureConfigurationOutput() InfrastructureConfigurationOutput {
   378  	return o
   379  }
   380  
   381  func (o InfrastructureConfigurationOutput) ToInfrastructureConfigurationOutputWithContext(ctx context.Context) InfrastructureConfigurationOutput {
   382  	return o
   383  }
   384  
   385  // Amazon Resource Name (ARN) of the configuration.
   386  func (o InfrastructureConfigurationOutput) Arn() pulumi.StringOutput {
   387  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   388  }
   389  
   390  // Date when the configuration was created.
   391  func (o InfrastructureConfigurationOutput) DateCreated() pulumi.StringOutput {
   392  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringOutput { return v.DateCreated }).(pulumi.StringOutput)
   393  }
   394  
   395  // Date when the configuration was updated.
   396  func (o InfrastructureConfigurationOutput) DateUpdated() pulumi.StringOutput {
   397  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringOutput { return v.DateUpdated }).(pulumi.StringOutput)
   398  }
   399  
   400  // Description for the configuration.
   401  func (o InfrastructureConfigurationOutput) Description() pulumi.StringPtrOutput {
   402  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   403  }
   404  
   405  // Configuration block with instance metadata options for the HTTP requests that pipeline builds use to launch EC2 build and test instances. Detailed below.
   406  func (o InfrastructureConfigurationOutput) InstanceMetadataOptions() InfrastructureConfigurationInstanceMetadataOptionsPtrOutput {
   407  	return o.ApplyT(func(v *InfrastructureConfiguration) InfrastructureConfigurationInstanceMetadataOptionsPtrOutput {
   408  		return v.InstanceMetadataOptions
   409  	}).(InfrastructureConfigurationInstanceMetadataOptionsPtrOutput)
   410  }
   411  
   412  // Name of IAM Instance Profile.
   413  func (o InfrastructureConfigurationOutput) InstanceProfileName() pulumi.StringOutput {
   414  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringOutput { return v.InstanceProfileName }).(pulumi.StringOutput)
   415  }
   416  
   417  // Set of EC2 Instance Types.
   418  func (o InfrastructureConfigurationOutput) InstanceTypes() pulumi.StringArrayOutput {
   419  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringArrayOutput { return v.InstanceTypes }).(pulumi.StringArrayOutput)
   420  }
   421  
   422  // Name of EC2 Key Pair.
   423  func (o InfrastructureConfigurationOutput) KeyPair() pulumi.StringPtrOutput {
   424  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringPtrOutput { return v.KeyPair }).(pulumi.StringPtrOutput)
   425  }
   426  
   427  // Configuration block with logging settings. Detailed below.
   428  func (o InfrastructureConfigurationOutput) Logging() InfrastructureConfigurationLoggingPtrOutput {
   429  	return o.ApplyT(func(v *InfrastructureConfiguration) InfrastructureConfigurationLoggingPtrOutput { return v.Logging }).(InfrastructureConfigurationLoggingPtrOutput)
   430  }
   431  
   432  // Name for the configuration.
   433  //
   434  // The following arguments are optional:
   435  func (o InfrastructureConfigurationOutput) Name() pulumi.StringOutput {
   436  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   437  }
   438  
   439  // Key-value map of resource tags to assign to infrastructure created by the configuration.
   440  func (o InfrastructureConfigurationOutput) ResourceTags() pulumi.StringMapOutput {
   441  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringMapOutput { return v.ResourceTags }).(pulumi.StringMapOutput)
   442  }
   443  
   444  // Set of EC2 Security Group identifiers.
   445  func (o InfrastructureConfigurationOutput) SecurityGroupIds() pulumi.StringArrayOutput {
   446  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput)
   447  }
   448  
   449  // Amazon Resource Name (ARN) of SNS Topic.
   450  func (o InfrastructureConfigurationOutput) SnsTopicArn() pulumi.StringPtrOutput {
   451  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringPtrOutput { return v.SnsTopicArn }).(pulumi.StringPtrOutput)
   452  }
   453  
   454  // EC2 Subnet identifier. Also requires `securityGroupIds` argument.
   455  func (o InfrastructureConfigurationOutput) SubnetId() pulumi.StringPtrOutput {
   456  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringPtrOutput { return v.SubnetId }).(pulumi.StringPtrOutput)
   457  }
   458  
   459  // Key-value map of resource tags to assign to the configuration. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   460  func (o InfrastructureConfigurationOutput) Tags() pulumi.StringMapOutput {
   461  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   462  }
   463  
   464  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   465  //
   466  // Deprecated: Please use `tags` instead.
   467  func (o InfrastructureConfigurationOutput) TagsAll() pulumi.StringMapOutput {
   468  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   469  }
   470  
   471  // Enable if the instance should be terminated when the pipeline fails. Defaults to `false`.
   472  func (o InfrastructureConfigurationOutput) TerminateInstanceOnFailure() pulumi.BoolPtrOutput {
   473  	return o.ApplyT(func(v *InfrastructureConfiguration) pulumi.BoolPtrOutput { return v.TerminateInstanceOnFailure }).(pulumi.BoolPtrOutput)
   474  }
   475  
   476  type InfrastructureConfigurationArrayOutput struct{ *pulumi.OutputState }
   477  
   478  func (InfrastructureConfigurationArrayOutput) ElementType() reflect.Type {
   479  	return reflect.TypeOf((*[]*InfrastructureConfiguration)(nil)).Elem()
   480  }
   481  
   482  func (o InfrastructureConfigurationArrayOutput) ToInfrastructureConfigurationArrayOutput() InfrastructureConfigurationArrayOutput {
   483  	return o
   484  }
   485  
   486  func (o InfrastructureConfigurationArrayOutput) ToInfrastructureConfigurationArrayOutputWithContext(ctx context.Context) InfrastructureConfigurationArrayOutput {
   487  	return o
   488  }
   489  
   490  func (o InfrastructureConfigurationArrayOutput) Index(i pulumi.IntInput) InfrastructureConfigurationOutput {
   491  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InfrastructureConfiguration {
   492  		return vs[0].([]*InfrastructureConfiguration)[vs[1].(int)]
   493  	}).(InfrastructureConfigurationOutput)
   494  }
   495  
   496  type InfrastructureConfigurationMapOutput struct{ *pulumi.OutputState }
   497  
   498  func (InfrastructureConfigurationMapOutput) ElementType() reflect.Type {
   499  	return reflect.TypeOf((*map[string]*InfrastructureConfiguration)(nil)).Elem()
   500  }
   501  
   502  func (o InfrastructureConfigurationMapOutput) ToInfrastructureConfigurationMapOutput() InfrastructureConfigurationMapOutput {
   503  	return o
   504  }
   505  
   506  func (o InfrastructureConfigurationMapOutput) ToInfrastructureConfigurationMapOutputWithContext(ctx context.Context) InfrastructureConfigurationMapOutput {
   507  	return o
   508  }
   509  
   510  func (o InfrastructureConfigurationMapOutput) MapIndex(k pulumi.StringInput) InfrastructureConfigurationOutput {
   511  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InfrastructureConfiguration {
   512  		return vs[0].(map[string]*InfrastructureConfiguration)[vs[1].(string)]
   513  	}).(InfrastructureConfigurationOutput)
   514  }
   515  
   516  func init() {
   517  	pulumi.RegisterInputType(reflect.TypeOf((*InfrastructureConfigurationInput)(nil)).Elem(), &InfrastructureConfiguration{})
   518  	pulumi.RegisterInputType(reflect.TypeOf((*InfrastructureConfigurationArrayInput)(nil)).Elem(), InfrastructureConfigurationArray{})
   519  	pulumi.RegisterInputType(reflect.TypeOf((*InfrastructureConfigurationMapInput)(nil)).Elem(), InfrastructureConfigurationMap{})
   520  	pulumi.RegisterOutputType(InfrastructureConfigurationOutput{})
   521  	pulumi.RegisterOutputType(InfrastructureConfigurationArrayOutput{})
   522  	pulumi.RegisterOutputType(InfrastructureConfigurationMapOutput{})
   523  }