github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcIpamResourceDiscoveryAssociation.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 ec2 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 // Provides an association between an Amazon IP Address Manager (IPAM) and a IPAM Resource Discovery. IPAM Resource Discoveries are resources meant for multi-organization customers. If you wish to use a single IPAM across multiple orgs, a resource discovery can be created and shared from a subordinate organization to the management organizations IPAM delegated admin account. 16 // 17 // Once an association is created between two organizations via IPAM & a IPAM Resource Discovery, IPAM Pools can be shared via Resource Access Manager (RAM) to accounts in the subordinate organization; these RAM shares must be accepted by the end user account. Pools can then also discover and monitor IPAM resources in the subordinate organization. 18 // 19 // ## Example Usage 20 // 21 // Basic usage: 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // _, err := ec2.NewVpcIpamResourceDiscoveryAssociation(ctx, "test", &ec2.VpcIpamResourceDiscoveryAssociationArgs{ 37 // IpamId: pulumi.Any(testAwsVpcIpam.Id), 38 // IpamResourceDiscoveryId: pulumi.Any(testAwsVpcIpamResourceDiscovery.Id), 39 // Tags: pulumi.StringMap{ 40 // "Name": pulumi.String("test"), 41 // }, 42 // }) 43 // if err != nil { 44 // return err 45 // } 46 // return nil 47 // }) 48 // } 49 // 50 // ``` 51 // <!--End PulumiCodeChooser --> 52 // 53 // ## Import 54 // 55 // Using `pulumi import`, import IPAMs using the IPAM resource discovery association `id`. For example: 56 // 57 // ```sh 58 // $ pulumi import aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation example ipam-res-disco-assoc-0178368ad2146a492 59 // ``` 60 type VpcIpamResourceDiscoveryAssociation struct { 61 pulumi.CustomResourceState 62 63 // The Amazon Resource Name (ARN) of IPAM Resource Discovery Association. 64 Arn pulumi.StringOutput `pulumi:"arn"` 65 // The Amazon Resource Name (ARN) of the IPAM. 66 IpamArn pulumi.StringOutput `pulumi:"ipamArn"` 67 // The ID of the IPAM to associate. 68 IpamId pulumi.StringOutput `pulumi:"ipamId"` 69 // The home region of the IPAM. 70 IpamRegion pulumi.StringOutput `pulumi:"ipamRegion"` 71 // The ID of the Resource Discovery to associate. 72 IpamResourceDiscoveryId pulumi.StringOutput `pulumi:"ipamResourceDiscoveryId"` 73 // A boolean to identify if the Resource Discovery is the accounts default resource discovery. 74 IsDefault pulumi.BoolOutput `pulumi:"isDefault"` 75 // The account ID for the account that manages the Resource Discovery 76 OwnerId pulumi.StringOutput `pulumi:"ownerId"` 77 // The lifecycle state of the association when you associate or disassociate a resource discovery. 78 State pulumi.StringOutput `pulumi:"state"` 79 // A map of tags to add to the IPAM resource discovery association resource. 80 Tags pulumi.StringMapOutput `pulumi:"tags"` 81 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 82 // 83 // Deprecated: Please use `tags` instead. 84 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 85 } 86 87 // NewVpcIpamResourceDiscoveryAssociation registers a new resource with the given unique name, arguments, and options. 88 func NewVpcIpamResourceDiscoveryAssociation(ctx *pulumi.Context, 89 name string, args *VpcIpamResourceDiscoveryAssociationArgs, opts ...pulumi.ResourceOption) (*VpcIpamResourceDiscoveryAssociation, error) { 90 if args == nil { 91 return nil, errors.New("missing one or more required arguments") 92 } 93 94 if args.IpamId == nil { 95 return nil, errors.New("invalid value for required argument 'IpamId'") 96 } 97 if args.IpamResourceDiscoveryId == nil { 98 return nil, errors.New("invalid value for required argument 'IpamResourceDiscoveryId'") 99 } 100 opts = internal.PkgResourceDefaultOpts(opts) 101 var resource VpcIpamResourceDiscoveryAssociation 102 err := ctx.RegisterResource("aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation", name, args, &resource, opts...) 103 if err != nil { 104 return nil, err 105 } 106 return &resource, nil 107 } 108 109 // GetVpcIpamResourceDiscoveryAssociation gets an existing VpcIpamResourceDiscoveryAssociation resource's state with the given name, ID, and optional 110 // state properties that are used to uniquely qualify the lookup (nil if not required). 111 func GetVpcIpamResourceDiscoveryAssociation(ctx *pulumi.Context, 112 name string, id pulumi.IDInput, state *VpcIpamResourceDiscoveryAssociationState, opts ...pulumi.ResourceOption) (*VpcIpamResourceDiscoveryAssociation, error) { 113 var resource VpcIpamResourceDiscoveryAssociation 114 err := ctx.ReadResource("aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation", name, id, state, &resource, opts...) 115 if err != nil { 116 return nil, err 117 } 118 return &resource, nil 119 } 120 121 // Input properties used for looking up and filtering VpcIpamResourceDiscoveryAssociation resources. 122 type vpcIpamResourceDiscoveryAssociationState struct { 123 // The Amazon Resource Name (ARN) of IPAM Resource Discovery Association. 124 Arn *string `pulumi:"arn"` 125 // The Amazon Resource Name (ARN) of the IPAM. 126 IpamArn *string `pulumi:"ipamArn"` 127 // The ID of the IPAM to associate. 128 IpamId *string `pulumi:"ipamId"` 129 // The home region of the IPAM. 130 IpamRegion *string `pulumi:"ipamRegion"` 131 // The ID of the Resource Discovery to associate. 132 IpamResourceDiscoveryId *string `pulumi:"ipamResourceDiscoveryId"` 133 // A boolean to identify if the Resource Discovery is the accounts default resource discovery. 134 IsDefault *bool `pulumi:"isDefault"` 135 // The account ID for the account that manages the Resource Discovery 136 OwnerId *string `pulumi:"ownerId"` 137 // The lifecycle state of the association when you associate or disassociate a resource discovery. 138 State *string `pulumi:"state"` 139 // A map of tags to add to the IPAM resource discovery association resource. 140 Tags map[string]string `pulumi:"tags"` 141 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 142 // 143 // Deprecated: Please use `tags` instead. 144 TagsAll map[string]string `pulumi:"tagsAll"` 145 } 146 147 type VpcIpamResourceDiscoveryAssociationState struct { 148 // The Amazon Resource Name (ARN) of IPAM Resource Discovery Association. 149 Arn pulumi.StringPtrInput 150 // The Amazon Resource Name (ARN) of the IPAM. 151 IpamArn pulumi.StringPtrInput 152 // The ID of the IPAM to associate. 153 IpamId pulumi.StringPtrInput 154 // The home region of the IPAM. 155 IpamRegion pulumi.StringPtrInput 156 // The ID of the Resource Discovery to associate. 157 IpamResourceDiscoveryId pulumi.StringPtrInput 158 // A boolean to identify if the Resource Discovery is the accounts default resource discovery. 159 IsDefault pulumi.BoolPtrInput 160 // The account ID for the account that manages the Resource Discovery 161 OwnerId pulumi.StringPtrInput 162 // The lifecycle state of the association when you associate or disassociate a resource discovery. 163 State pulumi.StringPtrInput 164 // A map of tags to add to the IPAM resource discovery association resource. 165 Tags pulumi.StringMapInput 166 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 167 // 168 // Deprecated: Please use `tags` instead. 169 TagsAll pulumi.StringMapInput 170 } 171 172 func (VpcIpamResourceDiscoveryAssociationState) ElementType() reflect.Type { 173 return reflect.TypeOf((*vpcIpamResourceDiscoveryAssociationState)(nil)).Elem() 174 } 175 176 type vpcIpamResourceDiscoveryAssociationArgs struct { 177 // The ID of the IPAM to associate. 178 IpamId string `pulumi:"ipamId"` 179 // The ID of the Resource Discovery to associate. 180 IpamResourceDiscoveryId string `pulumi:"ipamResourceDiscoveryId"` 181 // A map of tags to add to the IPAM resource discovery association resource. 182 Tags map[string]string `pulumi:"tags"` 183 } 184 185 // The set of arguments for constructing a VpcIpamResourceDiscoveryAssociation resource. 186 type VpcIpamResourceDiscoveryAssociationArgs struct { 187 // The ID of the IPAM to associate. 188 IpamId pulumi.StringInput 189 // The ID of the Resource Discovery to associate. 190 IpamResourceDiscoveryId pulumi.StringInput 191 // A map of tags to add to the IPAM resource discovery association resource. 192 Tags pulumi.StringMapInput 193 } 194 195 func (VpcIpamResourceDiscoveryAssociationArgs) ElementType() reflect.Type { 196 return reflect.TypeOf((*vpcIpamResourceDiscoveryAssociationArgs)(nil)).Elem() 197 } 198 199 type VpcIpamResourceDiscoveryAssociationInput interface { 200 pulumi.Input 201 202 ToVpcIpamResourceDiscoveryAssociationOutput() VpcIpamResourceDiscoveryAssociationOutput 203 ToVpcIpamResourceDiscoveryAssociationOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationOutput 204 } 205 206 func (*VpcIpamResourceDiscoveryAssociation) ElementType() reflect.Type { 207 return reflect.TypeOf((**VpcIpamResourceDiscoveryAssociation)(nil)).Elem() 208 } 209 210 func (i *VpcIpamResourceDiscoveryAssociation) ToVpcIpamResourceDiscoveryAssociationOutput() VpcIpamResourceDiscoveryAssociationOutput { 211 return i.ToVpcIpamResourceDiscoveryAssociationOutputWithContext(context.Background()) 212 } 213 214 func (i *VpcIpamResourceDiscoveryAssociation) ToVpcIpamResourceDiscoveryAssociationOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationOutput { 215 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamResourceDiscoveryAssociationOutput) 216 } 217 218 // VpcIpamResourceDiscoveryAssociationArrayInput is an input type that accepts VpcIpamResourceDiscoveryAssociationArray and VpcIpamResourceDiscoveryAssociationArrayOutput values. 219 // You can construct a concrete instance of `VpcIpamResourceDiscoveryAssociationArrayInput` via: 220 // 221 // VpcIpamResourceDiscoveryAssociationArray{ VpcIpamResourceDiscoveryAssociationArgs{...} } 222 type VpcIpamResourceDiscoveryAssociationArrayInput interface { 223 pulumi.Input 224 225 ToVpcIpamResourceDiscoveryAssociationArrayOutput() VpcIpamResourceDiscoveryAssociationArrayOutput 226 ToVpcIpamResourceDiscoveryAssociationArrayOutputWithContext(context.Context) VpcIpamResourceDiscoveryAssociationArrayOutput 227 } 228 229 type VpcIpamResourceDiscoveryAssociationArray []VpcIpamResourceDiscoveryAssociationInput 230 231 func (VpcIpamResourceDiscoveryAssociationArray) ElementType() reflect.Type { 232 return reflect.TypeOf((*[]*VpcIpamResourceDiscoveryAssociation)(nil)).Elem() 233 } 234 235 func (i VpcIpamResourceDiscoveryAssociationArray) ToVpcIpamResourceDiscoveryAssociationArrayOutput() VpcIpamResourceDiscoveryAssociationArrayOutput { 236 return i.ToVpcIpamResourceDiscoveryAssociationArrayOutputWithContext(context.Background()) 237 } 238 239 func (i VpcIpamResourceDiscoveryAssociationArray) ToVpcIpamResourceDiscoveryAssociationArrayOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationArrayOutput { 240 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamResourceDiscoveryAssociationArrayOutput) 241 } 242 243 // VpcIpamResourceDiscoveryAssociationMapInput is an input type that accepts VpcIpamResourceDiscoveryAssociationMap and VpcIpamResourceDiscoveryAssociationMapOutput values. 244 // You can construct a concrete instance of `VpcIpamResourceDiscoveryAssociationMapInput` via: 245 // 246 // VpcIpamResourceDiscoveryAssociationMap{ "key": VpcIpamResourceDiscoveryAssociationArgs{...} } 247 type VpcIpamResourceDiscoveryAssociationMapInput interface { 248 pulumi.Input 249 250 ToVpcIpamResourceDiscoveryAssociationMapOutput() VpcIpamResourceDiscoveryAssociationMapOutput 251 ToVpcIpamResourceDiscoveryAssociationMapOutputWithContext(context.Context) VpcIpamResourceDiscoveryAssociationMapOutput 252 } 253 254 type VpcIpamResourceDiscoveryAssociationMap map[string]VpcIpamResourceDiscoveryAssociationInput 255 256 func (VpcIpamResourceDiscoveryAssociationMap) ElementType() reflect.Type { 257 return reflect.TypeOf((*map[string]*VpcIpamResourceDiscoveryAssociation)(nil)).Elem() 258 } 259 260 func (i VpcIpamResourceDiscoveryAssociationMap) ToVpcIpamResourceDiscoveryAssociationMapOutput() VpcIpamResourceDiscoveryAssociationMapOutput { 261 return i.ToVpcIpamResourceDiscoveryAssociationMapOutputWithContext(context.Background()) 262 } 263 264 func (i VpcIpamResourceDiscoveryAssociationMap) ToVpcIpamResourceDiscoveryAssociationMapOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationMapOutput { 265 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamResourceDiscoveryAssociationMapOutput) 266 } 267 268 type VpcIpamResourceDiscoveryAssociationOutput struct{ *pulumi.OutputState } 269 270 func (VpcIpamResourceDiscoveryAssociationOutput) ElementType() reflect.Type { 271 return reflect.TypeOf((**VpcIpamResourceDiscoveryAssociation)(nil)).Elem() 272 } 273 274 func (o VpcIpamResourceDiscoveryAssociationOutput) ToVpcIpamResourceDiscoveryAssociationOutput() VpcIpamResourceDiscoveryAssociationOutput { 275 return o 276 } 277 278 func (o VpcIpamResourceDiscoveryAssociationOutput) ToVpcIpamResourceDiscoveryAssociationOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationOutput { 279 return o 280 } 281 282 // The Amazon Resource Name (ARN) of IPAM Resource Discovery Association. 283 func (o VpcIpamResourceDiscoveryAssociationOutput) Arn() pulumi.StringOutput { 284 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 285 } 286 287 // The Amazon Resource Name (ARN) of the IPAM. 288 func (o VpcIpamResourceDiscoveryAssociationOutput) IpamArn() pulumi.StringOutput { 289 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.IpamArn }).(pulumi.StringOutput) 290 } 291 292 // The ID of the IPAM to associate. 293 func (o VpcIpamResourceDiscoveryAssociationOutput) IpamId() pulumi.StringOutput { 294 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.IpamId }).(pulumi.StringOutput) 295 } 296 297 // The home region of the IPAM. 298 func (o VpcIpamResourceDiscoveryAssociationOutput) IpamRegion() pulumi.StringOutput { 299 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.IpamRegion }).(pulumi.StringOutput) 300 } 301 302 // The ID of the Resource Discovery to associate. 303 func (o VpcIpamResourceDiscoveryAssociationOutput) IpamResourceDiscoveryId() pulumi.StringOutput { 304 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.IpamResourceDiscoveryId }).(pulumi.StringOutput) 305 } 306 307 // A boolean to identify if the Resource Discovery is the accounts default resource discovery. 308 func (o VpcIpamResourceDiscoveryAssociationOutput) IsDefault() pulumi.BoolOutput { 309 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.BoolOutput { return v.IsDefault }).(pulumi.BoolOutput) 310 } 311 312 // The account ID for the account that manages the Resource Discovery 313 func (o VpcIpamResourceDiscoveryAssociationOutput) OwnerId() pulumi.StringOutput { 314 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) 315 } 316 317 // The lifecycle state of the association when you associate or disassociate a resource discovery. 318 func (o VpcIpamResourceDiscoveryAssociationOutput) State() pulumi.StringOutput { 319 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) 320 } 321 322 // A map of tags to add to the IPAM resource discovery association resource. 323 func (o VpcIpamResourceDiscoveryAssociationOutput) Tags() pulumi.StringMapOutput { 324 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 325 } 326 327 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 328 // 329 // Deprecated: Please use `tags` instead. 330 func (o VpcIpamResourceDiscoveryAssociationOutput) TagsAll() pulumi.StringMapOutput { 331 return o.ApplyT(func(v *VpcIpamResourceDiscoveryAssociation) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 332 } 333 334 type VpcIpamResourceDiscoveryAssociationArrayOutput struct{ *pulumi.OutputState } 335 336 func (VpcIpamResourceDiscoveryAssociationArrayOutput) ElementType() reflect.Type { 337 return reflect.TypeOf((*[]*VpcIpamResourceDiscoveryAssociation)(nil)).Elem() 338 } 339 340 func (o VpcIpamResourceDiscoveryAssociationArrayOutput) ToVpcIpamResourceDiscoveryAssociationArrayOutput() VpcIpamResourceDiscoveryAssociationArrayOutput { 341 return o 342 } 343 344 func (o VpcIpamResourceDiscoveryAssociationArrayOutput) ToVpcIpamResourceDiscoveryAssociationArrayOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationArrayOutput { 345 return o 346 } 347 348 func (o VpcIpamResourceDiscoveryAssociationArrayOutput) Index(i pulumi.IntInput) VpcIpamResourceDiscoveryAssociationOutput { 349 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcIpamResourceDiscoveryAssociation { 350 return vs[0].([]*VpcIpamResourceDiscoveryAssociation)[vs[1].(int)] 351 }).(VpcIpamResourceDiscoveryAssociationOutput) 352 } 353 354 type VpcIpamResourceDiscoveryAssociationMapOutput struct{ *pulumi.OutputState } 355 356 func (VpcIpamResourceDiscoveryAssociationMapOutput) ElementType() reflect.Type { 357 return reflect.TypeOf((*map[string]*VpcIpamResourceDiscoveryAssociation)(nil)).Elem() 358 } 359 360 func (o VpcIpamResourceDiscoveryAssociationMapOutput) ToVpcIpamResourceDiscoveryAssociationMapOutput() VpcIpamResourceDiscoveryAssociationMapOutput { 361 return o 362 } 363 364 func (o VpcIpamResourceDiscoveryAssociationMapOutput) ToVpcIpamResourceDiscoveryAssociationMapOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryAssociationMapOutput { 365 return o 366 } 367 368 func (o VpcIpamResourceDiscoveryAssociationMapOutput) MapIndex(k pulumi.StringInput) VpcIpamResourceDiscoveryAssociationOutput { 369 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcIpamResourceDiscoveryAssociation { 370 return vs[0].(map[string]*VpcIpamResourceDiscoveryAssociation)[vs[1].(string)] 371 }).(VpcIpamResourceDiscoveryAssociationOutput) 372 } 373 374 func init() { 375 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamResourceDiscoveryAssociationInput)(nil)).Elem(), &VpcIpamResourceDiscoveryAssociation{}) 376 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamResourceDiscoveryAssociationArrayInput)(nil)).Elem(), VpcIpamResourceDiscoveryAssociationArray{}) 377 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamResourceDiscoveryAssociationMapInput)(nil)).Elem(), VpcIpamResourceDiscoveryAssociationMap{}) 378 pulumi.RegisterOutputType(VpcIpamResourceDiscoveryAssociationOutput{}) 379 pulumi.RegisterOutputType(VpcIpamResourceDiscoveryAssociationArrayOutput{}) 380 pulumi.RegisterOutputType(VpcIpamResourceDiscoveryAssociationMapOutput{}) 381 }