github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/servicequotas/templateAssociation.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 servicequotas
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Resource for managing an AWS Service Quotas Template Association.
    15  //
    16  // > Only the management account of an organization can associate Service Quota templates, and this must be done from the `us-east-1` region.
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Basic Usage
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicequotas"
    29  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    30  //
    31  // )
    32  //
    33  //	func main() {
    34  //		pulumi.Run(func(ctx *pulumi.Context) error {
    35  //			_, err := servicequotas.NewTemplateAssociation(ctx, "example", nil)
    36  //			if err != nil {
    37  //				return err
    38  //			}
    39  //			return nil
    40  //		})
    41  //	}
    42  //
    43  // ```
    44  // <!--End PulumiCodeChooser -->
    45  //
    46  // ## Import
    47  //
    48  // Using `pulumi import`, import Service Quotas Template Association using the `id`. For example:
    49  //
    50  // ```sh
    51  // $ pulumi import aws:servicequotas/templateAssociation:TemplateAssociation example 012345678901
    52  // ```
    53  type TemplateAssociation struct {
    54  	pulumi.CustomResourceState
    55  
    56  	SkipDestroy pulumi.BoolPtrOutput `pulumi:"skipDestroy"`
    57  	// Association status. Creating this resource will result in an `ASSOCIATED` status, and quota increase requests in the template are automatically applied to new AWS accounts in the organization.
    58  	Status pulumi.StringOutput `pulumi:"status"`
    59  }
    60  
    61  // NewTemplateAssociation registers a new resource with the given unique name, arguments, and options.
    62  func NewTemplateAssociation(ctx *pulumi.Context,
    63  	name string, args *TemplateAssociationArgs, opts ...pulumi.ResourceOption) (*TemplateAssociation, error) {
    64  	if args == nil {
    65  		args = &TemplateAssociationArgs{}
    66  	}
    67  
    68  	opts = internal.PkgResourceDefaultOpts(opts)
    69  	var resource TemplateAssociation
    70  	err := ctx.RegisterResource("aws:servicequotas/templateAssociation:TemplateAssociation", name, args, &resource, opts...)
    71  	if err != nil {
    72  		return nil, err
    73  	}
    74  	return &resource, nil
    75  }
    76  
    77  // GetTemplateAssociation gets an existing TemplateAssociation resource's state with the given name, ID, and optional
    78  // state properties that are used to uniquely qualify the lookup (nil if not required).
    79  func GetTemplateAssociation(ctx *pulumi.Context,
    80  	name string, id pulumi.IDInput, state *TemplateAssociationState, opts ...pulumi.ResourceOption) (*TemplateAssociation, error) {
    81  	var resource TemplateAssociation
    82  	err := ctx.ReadResource("aws:servicequotas/templateAssociation:TemplateAssociation", name, id, state, &resource, opts...)
    83  	if err != nil {
    84  		return nil, err
    85  	}
    86  	return &resource, nil
    87  }
    88  
    89  // Input properties used for looking up and filtering TemplateAssociation resources.
    90  type templateAssociationState struct {
    91  	SkipDestroy *bool `pulumi:"skipDestroy"`
    92  	// Association status. Creating this resource will result in an `ASSOCIATED` status, and quota increase requests in the template are automatically applied to new AWS accounts in the organization.
    93  	Status *string `pulumi:"status"`
    94  }
    95  
    96  type TemplateAssociationState struct {
    97  	SkipDestroy pulumi.BoolPtrInput
    98  	// Association status. Creating this resource will result in an `ASSOCIATED` status, and quota increase requests in the template are automatically applied to new AWS accounts in the organization.
    99  	Status pulumi.StringPtrInput
   100  }
   101  
   102  func (TemplateAssociationState) ElementType() reflect.Type {
   103  	return reflect.TypeOf((*templateAssociationState)(nil)).Elem()
   104  }
   105  
   106  type templateAssociationArgs struct {
   107  	SkipDestroy *bool `pulumi:"skipDestroy"`
   108  }
   109  
   110  // The set of arguments for constructing a TemplateAssociation resource.
   111  type TemplateAssociationArgs struct {
   112  	SkipDestroy pulumi.BoolPtrInput
   113  }
   114  
   115  func (TemplateAssociationArgs) ElementType() reflect.Type {
   116  	return reflect.TypeOf((*templateAssociationArgs)(nil)).Elem()
   117  }
   118  
   119  type TemplateAssociationInput interface {
   120  	pulumi.Input
   121  
   122  	ToTemplateAssociationOutput() TemplateAssociationOutput
   123  	ToTemplateAssociationOutputWithContext(ctx context.Context) TemplateAssociationOutput
   124  }
   125  
   126  func (*TemplateAssociation) ElementType() reflect.Type {
   127  	return reflect.TypeOf((**TemplateAssociation)(nil)).Elem()
   128  }
   129  
   130  func (i *TemplateAssociation) ToTemplateAssociationOutput() TemplateAssociationOutput {
   131  	return i.ToTemplateAssociationOutputWithContext(context.Background())
   132  }
   133  
   134  func (i *TemplateAssociation) ToTemplateAssociationOutputWithContext(ctx context.Context) TemplateAssociationOutput {
   135  	return pulumi.ToOutputWithContext(ctx, i).(TemplateAssociationOutput)
   136  }
   137  
   138  // TemplateAssociationArrayInput is an input type that accepts TemplateAssociationArray and TemplateAssociationArrayOutput values.
   139  // You can construct a concrete instance of `TemplateAssociationArrayInput` via:
   140  //
   141  //	TemplateAssociationArray{ TemplateAssociationArgs{...} }
   142  type TemplateAssociationArrayInput interface {
   143  	pulumi.Input
   144  
   145  	ToTemplateAssociationArrayOutput() TemplateAssociationArrayOutput
   146  	ToTemplateAssociationArrayOutputWithContext(context.Context) TemplateAssociationArrayOutput
   147  }
   148  
   149  type TemplateAssociationArray []TemplateAssociationInput
   150  
   151  func (TemplateAssociationArray) ElementType() reflect.Type {
   152  	return reflect.TypeOf((*[]*TemplateAssociation)(nil)).Elem()
   153  }
   154  
   155  func (i TemplateAssociationArray) ToTemplateAssociationArrayOutput() TemplateAssociationArrayOutput {
   156  	return i.ToTemplateAssociationArrayOutputWithContext(context.Background())
   157  }
   158  
   159  func (i TemplateAssociationArray) ToTemplateAssociationArrayOutputWithContext(ctx context.Context) TemplateAssociationArrayOutput {
   160  	return pulumi.ToOutputWithContext(ctx, i).(TemplateAssociationArrayOutput)
   161  }
   162  
   163  // TemplateAssociationMapInput is an input type that accepts TemplateAssociationMap and TemplateAssociationMapOutput values.
   164  // You can construct a concrete instance of `TemplateAssociationMapInput` via:
   165  //
   166  //	TemplateAssociationMap{ "key": TemplateAssociationArgs{...} }
   167  type TemplateAssociationMapInput interface {
   168  	pulumi.Input
   169  
   170  	ToTemplateAssociationMapOutput() TemplateAssociationMapOutput
   171  	ToTemplateAssociationMapOutputWithContext(context.Context) TemplateAssociationMapOutput
   172  }
   173  
   174  type TemplateAssociationMap map[string]TemplateAssociationInput
   175  
   176  func (TemplateAssociationMap) ElementType() reflect.Type {
   177  	return reflect.TypeOf((*map[string]*TemplateAssociation)(nil)).Elem()
   178  }
   179  
   180  func (i TemplateAssociationMap) ToTemplateAssociationMapOutput() TemplateAssociationMapOutput {
   181  	return i.ToTemplateAssociationMapOutputWithContext(context.Background())
   182  }
   183  
   184  func (i TemplateAssociationMap) ToTemplateAssociationMapOutputWithContext(ctx context.Context) TemplateAssociationMapOutput {
   185  	return pulumi.ToOutputWithContext(ctx, i).(TemplateAssociationMapOutput)
   186  }
   187  
   188  type TemplateAssociationOutput struct{ *pulumi.OutputState }
   189  
   190  func (TemplateAssociationOutput) ElementType() reflect.Type {
   191  	return reflect.TypeOf((**TemplateAssociation)(nil)).Elem()
   192  }
   193  
   194  func (o TemplateAssociationOutput) ToTemplateAssociationOutput() TemplateAssociationOutput {
   195  	return o
   196  }
   197  
   198  func (o TemplateAssociationOutput) ToTemplateAssociationOutputWithContext(ctx context.Context) TemplateAssociationOutput {
   199  	return o
   200  }
   201  
   202  func (o TemplateAssociationOutput) SkipDestroy() pulumi.BoolPtrOutput {
   203  	return o.ApplyT(func(v *TemplateAssociation) pulumi.BoolPtrOutput { return v.SkipDestroy }).(pulumi.BoolPtrOutput)
   204  }
   205  
   206  // Association status. Creating this resource will result in an `ASSOCIATED` status, and quota increase requests in the template are automatically applied to new AWS accounts in the organization.
   207  func (o TemplateAssociationOutput) Status() pulumi.StringOutput {
   208  	return o.ApplyT(func(v *TemplateAssociation) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   209  }
   210  
   211  type TemplateAssociationArrayOutput struct{ *pulumi.OutputState }
   212  
   213  func (TemplateAssociationArrayOutput) ElementType() reflect.Type {
   214  	return reflect.TypeOf((*[]*TemplateAssociation)(nil)).Elem()
   215  }
   216  
   217  func (o TemplateAssociationArrayOutput) ToTemplateAssociationArrayOutput() TemplateAssociationArrayOutput {
   218  	return o
   219  }
   220  
   221  func (o TemplateAssociationArrayOutput) ToTemplateAssociationArrayOutputWithContext(ctx context.Context) TemplateAssociationArrayOutput {
   222  	return o
   223  }
   224  
   225  func (o TemplateAssociationArrayOutput) Index(i pulumi.IntInput) TemplateAssociationOutput {
   226  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TemplateAssociation {
   227  		return vs[0].([]*TemplateAssociation)[vs[1].(int)]
   228  	}).(TemplateAssociationOutput)
   229  }
   230  
   231  type TemplateAssociationMapOutput struct{ *pulumi.OutputState }
   232  
   233  func (TemplateAssociationMapOutput) ElementType() reflect.Type {
   234  	return reflect.TypeOf((*map[string]*TemplateAssociation)(nil)).Elem()
   235  }
   236  
   237  func (o TemplateAssociationMapOutput) ToTemplateAssociationMapOutput() TemplateAssociationMapOutput {
   238  	return o
   239  }
   240  
   241  func (o TemplateAssociationMapOutput) ToTemplateAssociationMapOutputWithContext(ctx context.Context) TemplateAssociationMapOutput {
   242  	return o
   243  }
   244  
   245  func (o TemplateAssociationMapOutput) MapIndex(k pulumi.StringInput) TemplateAssociationOutput {
   246  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TemplateAssociation {
   247  		return vs[0].(map[string]*TemplateAssociation)[vs[1].(string)]
   248  	}).(TemplateAssociationOutput)
   249  }
   250  
   251  func init() {
   252  	pulumi.RegisterInputType(reflect.TypeOf((*TemplateAssociationInput)(nil)).Elem(), &TemplateAssociation{})
   253  	pulumi.RegisterInputType(reflect.TypeOf((*TemplateAssociationArrayInput)(nil)).Elem(), TemplateAssociationArray{})
   254  	pulumi.RegisterInputType(reflect.TypeOf((*TemplateAssociationMapInput)(nil)).Elem(), TemplateAssociationMap{})
   255  	pulumi.RegisterOutputType(TemplateAssociationOutput{})
   256  	pulumi.RegisterOutputType(TemplateAssociationArrayOutput{})
   257  	pulumi.RegisterOutputType(TemplateAssociationMapOutput{})
   258  }