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 }