github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/appconfig/extensionAssociation.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 appconfig
     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  // Associates an AppConfig Extension with a Resource.
    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/appconfig"
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			testTopic, err := sns.NewTopic(ctx, "test", &sns.TopicArgs{
    35  //				Name: pulumi.String("test"),
    36  //			})
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			test, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    41  //				Statements: []iam.GetPolicyDocumentStatement{
    42  //					{
    43  //						Actions: []string{
    44  //							"sts:AssumeRole",
    45  //						},
    46  //						Principals: []iam.GetPolicyDocumentStatementPrincipal{
    47  //							{
    48  //								Type: "Service",
    49  //								Identifiers: []string{
    50  //									"appconfig.amazonaws.com",
    51  //								},
    52  //							},
    53  //						},
    54  //					},
    55  //				},
    56  //			}, nil)
    57  //			if err != nil {
    58  //				return err
    59  //			}
    60  //			testRole, err := iam.NewRole(ctx, "test", &iam.RoleArgs{
    61  //				Name:             pulumi.String("test"),
    62  //				AssumeRolePolicy: pulumi.String(test.Json),
    63  //			})
    64  //			if err != nil {
    65  //				return err
    66  //			}
    67  //			testExtension, err := appconfig.NewExtension(ctx, "test", &appconfig.ExtensionArgs{
    68  //				Name:        pulumi.String("test"),
    69  //				Description: pulumi.String("test description"),
    70  //				ActionPoints: appconfig.ExtensionActionPointArray{
    71  //					&appconfig.ExtensionActionPointArgs{
    72  //						Point: pulumi.String("ON_DEPLOYMENT_COMPLETE"),
    73  //						Actions: appconfig.ExtensionActionPointActionArray{
    74  //							&appconfig.ExtensionActionPointActionArgs{
    75  //								Name:    pulumi.String("test"),
    76  //								RoleArn: testRole.Arn,
    77  //								Uri:     testTopic.Arn,
    78  //							},
    79  //						},
    80  //					},
    81  //				},
    82  //				Tags: pulumi.StringMap{
    83  //					"Type": pulumi.String("AppConfig Extension"),
    84  //				},
    85  //			})
    86  //			if err != nil {
    87  //				return err
    88  //			}
    89  //			testApplication, err := appconfig.NewApplication(ctx, "test", &appconfig.ApplicationArgs{
    90  //				Name: pulumi.String("test"),
    91  //			})
    92  //			if err != nil {
    93  //				return err
    94  //			}
    95  //			_, err = appconfig.NewExtensionAssociation(ctx, "test", &appconfig.ExtensionAssociationArgs{
    96  //				ExtensionArn: testExtension.Arn,
    97  //				ResourceArn:  testApplication.Arn,
    98  //			})
    99  //			if err != nil {
   100  //				return err
   101  //			}
   102  //			return nil
   103  //		})
   104  //	}
   105  //
   106  // ```
   107  // <!--End PulumiCodeChooser -->
   108  //
   109  // ## Import
   110  //
   111  // Using `pulumi import`, import AppConfig Extension Associations using their extension association ID. For example:
   112  //
   113  // ```sh
   114  // $ pulumi import aws:appconfig/extensionAssociation:ExtensionAssociation example 71rxuzt
   115  // ```
   116  type ExtensionAssociation struct {
   117  	pulumi.CustomResourceState
   118  
   119  	// ARN of the AppConfig Extension Association.
   120  	Arn pulumi.StringOutput `pulumi:"arn"`
   121  	// The ARN of the extension defined in the association.
   122  	ExtensionArn pulumi.StringOutput `pulumi:"extensionArn"`
   123  	// The version number for the extension defined in the association.
   124  	ExtensionVersion pulumi.IntOutput `pulumi:"extensionVersion"`
   125  	// The parameter names and values defined for the association.
   126  	Parameters pulumi.StringMapOutput `pulumi:"parameters"`
   127  	// The ARN of the application, configuration profile, or environment to associate with the extension.
   128  	ResourceArn pulumi.StringOutput `pulumi:"resourceArn"`
   129  }
   130  
   131  // NewExtensionAssociation registers a new resource with the given unique name, arguments, and options.
   132  func NewExtensionAssociation(ctx *pulumi.Context,
   133  	name string, args *ExtensionAssociationArgs, opts ...pulumi.ResourceOption) (*ExtensionAssociation, error) {
   134  	if args == nil {
   135  		return nil, errors.New("missing one or more required arguments")
   136  	}
   137  
   138  	if args.ExtensionArn == nil {
   139  		return nil, errors.New("invalid value for required argument 'ExtensionArn'")
   140  	}
   141  	if args.ResourceArn == nil {
   142  		return nil, errors.New("invalid value for required argument 'ResourceArn'")
   143  	}
   144  	opts = internal.PkgResourceDefaultOpts(opts)
   145  	var resource ExtensionAssociation
   146  	err := ctx.RegisterResource("aws:appconfig/extensionAssociation:ExtensionAssociation", name, args, &resource, opts...)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	return &resource, nil
   151  }
   152  
   153  // GetExtensionAssociation gets an existing ExtensionAssociation resource's state with the given name, ID, and optional
   154  // state properties that are used to uniquely qualify the lookup (nil if not required).
   155  func GetExtensionAssociation(ctx *pulumi.Context,
   156  	name string, id pulumi.IDInput, state *ExtensionAssociationState, opts ...pulumi.ResourceOption) (*ExtensionAssociation, error) {
   157  	var resource ExtensionAssociation
   158  	err := ctx.ReadResource("aws:appconfig/extensionAssociation:ExtensionAssociation", name, id, state, &resource, opts...)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &resource, nil
   163  }
   164  
   165  // Input properties used for looking up and filtering ExtensionAssociation resources.
   166  type extensionAssociationState struct {
   167  	// ARN of the AppConfig Extension Association.
   168  	Arn *string `pulumi:"arn"`
   169  	// The ARN of the extension defined in the association.
   170  	ExtensionArn *string `pulumi:"extensionArn"`
   171  	// The version number for the extension defined in the association.
   172  	ExtensionVersion *int `pulumi:"extensionVersion"`
   173  	// The parameter names and values defined for the association.
   174  	Parameters map[string]string `pulumi:"parameters"`
   175  	// The ARN of the application, configuration profile, or environment to associate with the extension.
   176  	ResourceArn *string `pulumi:"resourceArn"`
   177  }
   178  
   179  type ExtensionAssociationState struct {
   180  	// ARN of the AppConfig Extension Association.
   181  	Arn pulumi.StringPtrInput
   182  	// The ARN of the extension defined in the association.
   183  	ExtensionArn pulumi.StringPtrInput
   184  	// The version number for the extension defined in the association.
   185  	ExtensionVersion pulumi.IntPtrInput
   186  	// The parameter names and values defined for the association.
   187  	Parameters pulumi.StringMapInput
   188  	// The ARN of the application, configuration profile, or environment to associate with the extension.
   189  	ResourceArn pulumi.StringPtrInput
   190  }
   191  
   192  func (ExtensionAssociationState) ElementType() reflect.Type {
   193  	return reflect.TypeOf((*extensionAssociationState)(nil)).Elem()
   194  }
   195  
   196  type extensionAssociationArgs struct {
   197  	// The ARN of the extension defined in the association.
   198  	ExtensionArn string `pulumi:"extensionArn"`
   199  	// The parameter names and values defined for the association.
   200  	Parameters map[string]string `pulumi:"parameters"`
   201  	// The ARN of the application, configuration profile, or environment to associate with the extension.
   202  	ResourceArn string `pulumi:"resourceArn"`
   203  }
   204  
   205  // The set of arguments for constructing a ExtensionAssociation resource.
   206  type ExtensionAssociationArgs struct {
   207  	// The ARN of the extension defined in the association.
   208  	ExtensionArn pulumi.StringInput
   209  	// The parameter names and values defined for the association.
   210  	Parameters pulumi.StringMapInput
   211  	// The ARN of the application, configuration profile, or environment to associate with the extension.
   212  	ResourceArn pulumi.StringInput
   213  }
   214  
   215  func (ExtensionAssociationArgs) ElementType() reflect.Type {
   216  	return reflect.TypeOf((*extensionAssociationArgs)(nil)).Elem()
   217  }
   218  
   219  type ExtensionAssociationInput interface {
   220  	pulumi.Input
   221  
   222  	ToExtensionAssociationOutput() ExtensionAssociationOutput
   223  	ToExtensionAssociationOutputWithContext(ctx context.Context) ExtensionAssociationOutput
   224  }
   225  
   226  func (*ExtensionAssociation) ElementType() reflect.Type {
   227  	return reflect.TypeOf((**ExtensionAssociation)(nil)).Elem()
   228  }
   229  
   230  func (i *ExtensionAssociation) ToExtensionAssociationOutput() ExtensionAssociationOutput {
   231  	return i.ToExtensionAssociationOutputWithContext(context.Background())
   232  }
   233  
   234  func (i *ExtensionAssociation) ToExtensionAssociationOutputWithContext(ctx context.Context) ExtensionAssociationOutput {
   235  	return pulumi.ToOutputWithContext(ctx, i).(ExtensionAssociationOutput)
   236  }
   237  
   238  // ExtensionAssociationArrayInput is an input type that accepts ExtensionAssociationArray and ExtensionAssociationArrayOutput values.
   239  // You can construct a concrete instance of `ExtensionAssociationArrayInput` via:
   240  //
   241  //	ExtensionAssociationArray{ ExtensionAssociationArgs{...} }
   242  type ExtensionAssociationArrayInput interface {
   243  	pulumi.Input
   244  
   245  	ToExtensionAssociationArrayOutput() ExtensionAssociationArrayOutput
   246  	ToExtensionAssociationArrayOutputWithContext(context.Context) ExtensionAssociationArrayOutput
   247  }
   248  
   249  type ExtensionAssociationArray []ExtensionAssociationInput
   250  
   251  func (ExtensionAssociationArray) ElementType() reflect.Type {
   252  	return reflect.TypeOf((*[]*ExtensionAssociation)(nil)).Elem()
   253  }
   254  
   255  func (i ExtensionAssociationArray) ToExtensionAssociationArrayOutput() ExtensionAssociationArrayOutput {
   256  	return i.ToExtensionAssociationArrayOutputWithContext(context.Background())
   257  }
   258  
   259  func (i ExtensionAssociationArray) ToExtensionAssociationArrayOutputWithContext(ctx context.Context) ExtensionAssociationArrayOutput {
   260  	return pulumi.ToOutputWithContext(ctx, i).(ExtensionAssociationArrayOutput)
   261  }
   262  
   263  // ExtensionAssociationMapInput is an input type that accepts ExtensionAssociationMap and ExtensionAssociationMapOutput values.
   264  // You can construct a concrete instance of `ExtensionAssociationMapInput` via:
   265  //
   266  //	ExtensionAssociationMap{ "key": ExtensionAssociationArgs{...} }
   267  type ExtensionAssociationMapInput interface {
   268  	pulumi.Input
   269  
   270  	ToExtensionAssociationMapOutput() ExtensionAssociationMapOutput
   271  	ToExtensionAssociationMapOutputWithContext(context.Context) ExtensionAssociationMapOutput
   272  }
   273  
   274  type ExtensionAssociationMap map[string]ExtensionAssociationInput
   275  
   276  func (ExtensionAssociationMap) ElementType() reflect.Type {
   277  	return reflect.TypeOf((*map[string]*ExtensionAssociation)(nil)).Elem()
   278  }
   279  
   280  func (i ExtensionAssociationMap) ToExtensionAssociationMapOutput() ExtensionAssociationMapOutput {
   281  	return i.ToExtensionAssociationMapOutputWithContext(context.Background())
   282  }
   283  
   284  func (i ExtensionAssociationMap) ToExtensionAssociationMapOutputWithContext(ctx context.Context) ExtensionAssociationMapOutput {
   285  	return pulumi.ToOutputWithContext(ctx, i).(ExtensionAssociationMapOutput)
   286  }
   287  
   288  type ExtensionAssociationOutput struct{ *pulumi.OutputState }
   289  
   290  func (ExtensionAssociationOutput) ElementType() reflect.Type {
   291  	return reflect.TypeOf((**ExtensionAssociation)(nil)).Elem()
   292  }
   293  
   294  func (o ExtensionAssociationOutput) ToExtensionAssociationOutput() ExtensionAssociationOutput {
   295  	return o
   296  }
   297  
   298  func (o ExtensionAssociationOutput) ToExtensionAssociationOutputWithContext(ctx context.Context) ExtensionAssociationOutput {
   299  	return o
   300  }
   301  
   302  // ARN of the AppConfig Extension Association.
   303  func (o ExtensionAssociationOutput) Arn() pulumi.StringOutput {
   304  	return o.ApplyT(func(v *ExtensionAssociation) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   305  }
   306  
   307  // The ARN of the extension defined in the association.
   308  func (o ExtensionAssociationOutput) ExtensionArn() pulumi.StringOutput {
   309  	return o.ApplyT(func(v *ExtensionAssociation) pulumi.StringOutput { return v.ExtensionArn }).(pulumi.StringOutput)
   310  }
   311  
   312  // The version number for the extension defined in the association.
   313  func (o ExtensionAssociationOutput) ExtensionVersion() pulumi.IntOutput {
   314  	return o.ApplyT(func(v *ExtensionAssociation) pulumi.IntOutput { return v.ExtensionVersion }).(pulumi.IntOutput)
   315  }
   316  
   317  // The parameter names and values defined for the association.
   318  func (o ExtensionAssociationOutput) Parameters() pulumi.StringMapOutput {
   319  	return o.ApplyT(func(v *ExtensionAssociation) pulumi.StringMapOutput { return v.Parameters }).(pulumi.StringMapOutput)
   320  }
   321  
   322  // The ARN of the application, configuration profile, or environment to associate with the extension.
   323  func (o ExtensionAssociationOutput) ResourceArn() pulumi.StringOutput {
   324  	return o.ApplyT(func(v *ExtensionAssociation) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput)
   325  }
   326  
   327  type ExtensionAssociationArrayOutput struct{ *pulumi.OutputState }
   328  
   329  func (ExtensionAssociationArrayOutput) ElementType() reflect.Type {
   330  	return reflect.TypeOf((*[]*ExtensionAssociation)(nil)).Elem()
   331  }
   332  
   333  func (o ExtensionAssociationArrayOutput) ToExtensionAssociationArrayOutput() ExtensionAssociationArrayOutput {
   334  	return o
   335  }
   336  
   337  func (o ExtensionAssociationArrayOutput) ToExtensionAssociationArrayOutputWithContext(ctx context.Context) ExtensionAssociationArrayOutput {
   338  	return o
   339  }
   340  
   341  func (o ExtensionAssociationArrayOutput) Index(i pulumi.IntInput) ExtensionAssociationOutput {
   342  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ExtensionAssociation {
   343  		return vs[0].([]*ExtensionAssociation)[vs[1].(int)]
   344  	}).(ExtensionAssociationOutput)
   345  }
   346  
   347  type ExtensionAssociationMapOutput struct{ *pulumi.OutputState }
   348  
   349  func (ExtensionAssociationMapOutput) ElementType() reflect.Type {
   350  	return reflect.TypeOf((*map[string]*ExtensionAssociation)(nil)).Elem()
   351  }
   352  
   353  func (o ExtensionAssociationMapOutput) ToExtensionAssociationMapOutput() ExtensionAssociationMapOutput {
   354  	return o
   355  }
   356  
   357  func (o ExtensionAssociationMapOutput) ToExtensionAssociationMapOutputWithContext(ctx context.Context) ExtensionAssociationMapOutput {
   358  	return o
   359  }
   360  
   361  func (o ExtensionAssociationMapOutput) MapIndex(k pulumi.StringInput) ExtensionAssociationOutput {
   362  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ExtensionAssociation {
   363  		return vs[0].(map[string]*ExtensionAssociation)[vs[1].(string)]
   364  	}).(ExtensionAssociationOutput)
   365  }
   366  
   367  func init() {
   368  	pulumi.RegisterInputType(reflect.TypeOf((*ExtensionAssociationInput)(nil)).Elem(), &ExtensionAssociation{})
   369  	pulumi.RegisterInputType(reflect.TypeOf((*ExtensionAssociationArrayInput)(nil)).Elem(), ExtensionAssociationArray{})
   370  	pulumi.RegisterInputType(reflect.TypeOf((*ExtensionAssociationMapInput)(nil)).Elem(), ExtensionAssociationMap{})
   371  	pulumi.RegisterOutputType(ExtensionAssociationOutput{})
   372  	pulumi.RegisterOutputType(ExtensionAssociationArrayOutput{})
   373  	pulumi.RegisterOutputType(ExtensionAssociationMapOutput{})
   374  }