github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcIpamResourceDiscovery.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 IPAM Resource Discovery resource. 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. For a full deployment example, see `ec2.VpcIpamResourceDiscoveryAssociation` resource. 16 // 17 // ## Example Usage 18 // 19 // Basic usage: 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // current, err := aws.GetRegion(ctx, nil, nil) 36 // if err != nil { 37 // return err 38 // } 39 // _, err = ec2.NewVpcIpamResourceDiscovery(ctx, "main", &ec2.VpcIpamResourceDiscoveryArgs{ 40 // Description: pulumi.String("My IPAM Resource Discovery"), 41 // OperatingRegions: ec2.VpcIpamResourceDiscoveryOperatingRegionArray{ 42 // &ec2.VpcIpamResourceDiscoveryOperatingRegionArgs{ 43 // RegionName: pulumi.String(current.Name), 44 // }, 45 // }, 46 // Tags: pulumi.StringMap{ 47 // "Test": pulumi.String("Main"), 48 // }, 49 // }) 50 // if err != nil { 51 // return err 52 // } 53 // return nil 54 // }) 55 // } 56 // 57 // ``` 58 // <!--End PulumiCodeChooser --> 59 // 60 // ## Import 61 // 62 // Using `pulumi import`, import IPAMs using the IPAM resource discovery `id`. For example: 63 // 64 // ```sh 65 // $ pulumi import aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery example ipam-res-disco-0178368ad2146a492 66 // ``` 67 type VpcIpamResourceDiscovery struct { 68 pulumi.CustomResourceState 69 70 // Amazon Resource Name (ARN) of IPAM Resource Discovery 71 Arn pulumi.StringOutput `pulumi:"arn"` 72 // A description for the IPAM Resource Discovery. 73 Description pulumi.StringPtrOutput `pulumi:"description"` 74 // The home region of the Resource Discovery 75 IpamResourceDiscoveryRegion pulumi.StringOutput `pulumi:"ipamResourceDiscoveryRegion"` 76 // A boolean to identify if the Resource Discovery is the accounts default resource discovery 77 IsDefault pulumi.BoolOutput `pulumi:"isDefault"` 78 // Determines which regions the Resource Discovery will enable IPAM features for usage and monitoring. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM Resource Discovery. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the regionName parameter. **You must set your provider block region as an operating_region.** 79 OperatingRegions VpcIpamResourceDiscoveryOperatingRegionArrayOutput `pulumi:"operatingRegions"` 80 // The account ID for the account that manages the Resource Discovery 81 OwnerId pulumi.StringOutput `pulumi:"ownerId"` 82 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 83 Tags pulumi.StringMapOutput `pulumi:"tags"` 84 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 85 // 86 // Deprecated: Please use `tags` instead. 87 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 88 } 89 90 // NewVpcIpamResourceDiscovery registers a new resource with the given unique name, arguments, and options. 91 func NewVpcIpamResourceDiscovery(ctx *pulumi.Context, 92 name string, args *VpcIpamResourceDiscoveryArgs, opts ...pulumi.ResourceOption) (*VpcIpamResourceDiscovery, error) { 93 if args == nil { 94 return nil, errors.New("missing one or more required arguments") 95 } 96 97 if args.OperatingRegions == nil { 98 return nil, errors.New("invalid value for required argument 'OperatingRegions'") 99 } 100 opts = internal.PkgResourceDefaultOpts(opts) 101 var resource VpcIpamResourceDiscovery 102 err := ctx.RegisterResource("aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery", name, args, &resource, opts...) 103 if err != nil { 104 return nil, err 105 } 106 return &resource, nil 107 } 108 109 // GetVpcIpamResourceDiscovery gets an existing VpcIpamResourceDiscovery 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 GetVpcIpamResourceDiscovery(ctx *pulumi.Context, 112 name string, id pulumi.IDInput, state *VpcIpamResourceDiscoveryState, opts ...pulumi.ResourceOption) (*VpcIpamResourceDiscovery, error) { 113 var resource VpcIpamResourceDiscovery 114 err := ctx.ReadResource("aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery", 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 VpcIpamResourceDiscovery resources. 122 type vpcIpamResourceDiscoveryState struct { 123 // Amazon Resource Name (ARN) of IPAM Resource Discovery 124 Arn *string `pulumi:"arn"` 125 // A description for the IPAM Resource Discovery. 126 Description *string `pulumi:"description"` 127 // The home region of the Resource Discovery 128 IpamResourceDiscoveryRegion *string `pulumi:"ipamResourceDiscoveryRegion"` 129 // A boolean to identify if the Resource Discovery is the accounts default resource discovery 130 IsDefault *bool `pulumi:"isDefault"` 131 // Determines which regions the Resource Discovery will enable IPAM features for usage and monitoring. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM Resource Discovery. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the regionName parameter. **You must set your provider block region as an operating_region.** 132 OperatingRegions []VpcIpamResourceDiscoveryOperatingRegion `pulumi:"operatingRegions"` 133 // The account ID for the account that manages the Resource Discovery 134 OwnerId *string `pulumi:"ownerId"` 135 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 136 Tags map[string]string `pulumi:"tags"` 137 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 138 // 139 // Deprecated: Please use `tags` instead. 140 TagsAll map[string]string `pulumi:"tagsAll"` 141 } 142 143 type VpcIpamResourceDiscoveryState struct { 144 // Amazon Resource Name (ARN) of IPAM Resource Discovery 145 Arn pulumi.StringPtrInput 146 // A description for the IPAM Resource Discovery. 147 Description pulumi.StringPtrInput 148 // The home region of the Resource Discovery 149 IpamResourceDiscoveryRegion pulumi.StringPtrInput 150 // A boolean to identify if the Resource Discovery is the accounts default resource discovery 151 IsDefault pulumi.BoolPtrInput 152 // Determines which regions the Resource Discovery will enable IPAM features for usage and monitoring. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM Resource Discovery. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the regionName parameter. **You must set your provider block region as an operating_region.** 153 OperatingRegions VpcIpamResourceDiscoveryOperatingRegionArrayInput 154 // The account ID for the account that manages the Resource Discovery 155 OwnerId pulumi.StringPtrInput 156 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 157 Tags pulumi.StringMapInput 158 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 159 // 160 // Deprecated: Please use `tags` instead. 161 TagsAll pulumi.StringMapInput 162 } 163 164 func (VpcIpamResourceDiscoveryState) ElementType() reflect.Type { 165 return reflect.TypeOf((*vpcIpamResourceDiscoveryState)(nil)).Elem() 166 } 167 168 type vpcIpamResourceDiscoveryArgs struct { 169 // A description for the IPAM Resource Discovery. 170 Description *string `pulumi:"description"` 171 // Determines which regions the Resource Discovery will enable IPAM features for usage and monitoring. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM Resource Discovery. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the regionName parameter. **You must set your provider block region as an operating_region.** 172 OperatingRegions []VpcIpamResourceDiscoveryOperatingRegion `pulumi:"operatingRegions"` 173 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 174 Tags map[string]string `pulumi:"tags"` 175 } 176 177 // The set of arguments for constructing a VpcIpamResourceDiscovery resource. 178 type VpcIpamResourceDiscoveryArgs struct { 179 // A description for the IPAM Resource Discovery. 180 Description pulumi.StringPtrInput 181 // Determines which regions the Resource Discovery will enable IPAM features for usage and monitoring. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM Resource Discovery. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the regionName parameter. **You must set your provider block region as an operating_region.** 182 OperatingRegions VpcIpamResourceDiscoveryOperatingRegionArrayInput 183 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 184 Tags pulumi.StringMapInput 185 } 186 187 func (VpcIpamResourceDiscoveryArgs) ElementType() reflect.Type { 188 return reflect.TypeOf((*vpcIpamResourceDiscoveryArgs)(nil)).Elem() 189 } 190 191 type VpcIpamResourceDiscoveryInput interface { 192 pulumi.Input 193 194 ToVpcIpamResourceDiscoveryOutput() VpcIpamResourceDiscoveryOutput 195 ToVpcIpamResourceDiscoveryOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryOutput 196 } 197 198 func (*VpcIpamResourceDiscovery) ElementType() reflect.Type { 199 return reflect.TypeOf((**VpcIpamResourceDiscovery)(nil)).Elem() 200 } 201 202 func (i *VpcIpamResourceDiscovery) ToVpcIpamResourceDiscoveryOutput() VpcIpamResourceDiscoveryOutput { 203 return i.ToVpcIpamResourceDiscoveryOutputWithContext(context.Background()) 204 } 205 206 func (i *VpcIpamResourceDiscovery) ToVpcIpamResourceDiscoveryOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryOutput { 207 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamResourceDiscoveryOutput) 208 } 209 210 // VpcIpamResourceDiscoveryArrayInput is an input type that accepts VpcIpamResourceDiscoveryArray and VpcIpamResourceDiscoveryArrayOutput values. 211 // You can construct a concrete instance of `VpcIpamResourceDiscoveryArrayInput` via: 212 // 213 // VpcIpamResourceDiscoveryArray{ VpcIpamResourceDiscoveryArgs{...} } 214 type VpcIpamResourceDiscoveryArrayInput interface { 215 pulumi.Input 216 217 ToVpcIpamResourceDiscoveryArrayOutput() VpcIpamResourceDiscoveryArrayOutput 218 ToVpcIpamResourceDiscoveryArrayOutputWithContext(context.Context) VpcIpamResourceDiscoveryArrayOutput 219 } 220 221 type VpcIpamResourceDiscoveryArray []VpcIpamResourceDiscoveryInput 222 223 func (VpcIpamResourceDiscoveryArray) ElementType() reflect.Type { 224 return reflect.TypeOf((*[]*VpcIpamResourceDiscovery)(nil)).Elem() 225 } 226 227 func (i VpcIpamResourceDiscoveryArray) ToVpcIpamResourceDiscoveryArrayOutput() VpcIpamResourceDiscoveryArrayOutput { 228 return i.ToVpcIpamResourceDiscoveryArrayOutputWithContext(context.Background()) 229 } 230 231 func (i VpcIpamResourceDiscoveryArray) ToVpcIpamResourceDiscoveryArrayOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryArrayOutput { 232 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamResourceDiscoveryArrayOutput) 233 } 234 235 // VpcIpamResourceDiscoveryMapInput is an input type that accepts VpcIpamResourceDiscoveryMap and VpcIpamResourceDiscoveryMapOutput values. 236 // You can construct a concrete instance of `VpcIpamResourceDiscoveryMapInput` via: 237 // 238 // VpcIpamResourceDiscoveryMap{ "key": VpcIpamResourceDiscoveryArgs{...} } 239 type VpcIpamResourceDiscoveryMapInput interface { 240 pulumi.Input 241 242 ToVpcIpamResourceDiscoveryMapOutput() VpcIpamResourceDiscoveryMapOutput 243 ToVpcIpamResourceDiscoveryMapOutputWithContext(context.Context) VpcIpamResourceDiscoveryMapOutput 244 } 245 246 type VpcIpamResourceDiscoveryMap map[string]VpcIpamResourceDiscoveryInput 247 248 func (VpcIpamResourceDiscoveryMap) ElementType() reflect.Type { 249 return reflect.TypeOf((*map[string]*VpcIpamResourceDiscovery)(nil)).Elem() 250 } 251 252 func (i VpcIpamResourceDiscoveryMap) ToVpcIpamResourceDiscoveryMapOutput() VpcIpamResourceDiscoveryMapOutput { 253 return i.ToVpcIpamResourceDiscoveryMapOutputWithContext(context.Background()) 254 } 255 256 func (i VpcIpamResourceDiscoveryMap) ToVpcIpamResourceDiscoveryMapOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryMapOutput { 257 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamResourceDiscoveryMapOutput) 258 } 259 260 type VpcIpamResourceDiscoveryOutput struct{ *pulumi.OutputState } 261 262 func (VpcIpamResourceDiscoveryOutput) ElementType() reflect.Type { 263 return reflect.TypeOf((**VpcIpamResourceDiscovery)(nil)).Elem() 264 } 265 266 func (o VpcIpamResourceDiscoveryOutput) ToVpcIpamResourceDiscoveryOutput() VpcIpamResourceDiscoveryOutput { 267 return o 268 } 269 270 func (o VpcIpamResourceDiscoveryOutput) ToVpcIpamResourceDiscoveryOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryOutput { 271 return o 272 } 273 274 // Amazon Resource Name (ARN) of IPAM Resource Discovery 275 func (o VpcIpamResourceDiscoveryOutput) Arn() pulumi.StringOutput { 276 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 277 } 278 279 // A description for the IPAM Resource Discovery. 280 func (o VpcIpamResourceDiscoveryOutput) Description() pulumi.StringPtrOutput { 281 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 282 } 283 284 // The home region of the Resource Discovery 285 func (o VpcIpamResourceDiscoveryOutput) IpamResourceDiscoveryRegion() pulumi.StringOutput { 286 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.StringOutput { return v.IpamResourceDiscoveryRegion }).(pulumi.StringOutput) 287 } 288 289 // A boolean to identify if the Resource Discovery is the accounts default resource discovery 290 func (o VpcIpamResourceDiscoveryOutput) IsDefault() pulumi.BoolOutput { 291 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.BoolOutput { return v.IsDefault }).(pulumi.BoolOutput) 292 } 293 294 // Determines which regions the Resource Discovery will enable IPAM features for usage and monitoring. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM Resource Discovery. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the regionName parameter. **You must set your provider block region as an operating_region.** 295 func (o VpcIpamResourceDiscoveryOutput) OperatingRegions() VpcIpamResourceDiscoveryOperatingRegionArrayOutput { 296 return o.ApplyT(func(v *VpcIpamResourceDiscovery) VpcIpamResourceDiscoveryOperatingRegionArrayOutput { 297 return v.OperatingRegions 298 }).(VpcIpamResourceDiscoveryOperatingRegionArrayOutput) 299 } 300 301 // The account ID for the account that manages the Resource Discovery 302 func (o VpcIpamResourceDiscoveryOutput) OwnerId() pulumi.StringOutput { 303 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) 304 } 305 306 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 307 func (o VpcIpamResourceDiscoveryOutput) Tags() pulumi.StringMapOutput { 308 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 309 } 310 311 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 312 // 313 // Deprecated: Please use `tags` instead. 314 func (o VpcIpamResourceDiscoveryOutput) TagsAll() pulumi.StringMapOutput { 315 return o.ApplyT(func(v *VpcIpamResourceDiscovery) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 316 } 317 318 type VpcIpamResourceDiscoveryArrayOutput struct{ *pulumi.OutputState } 319 320 func (VpcIpamResourceDiscoveryArrayOutput) ElementType() reflect.Type { 321 return reflect.TypeOf((*[]*VpcIpamResourceDiscovery)(nil)).Elem() 322 } 323 324 func (o VpcIpamResourceDiscoveryArrayOutput) ToVpcIpamResourceDiscoveryArrayOutput() VpcIpamResourceDiscoveryArrayOutput { 325 return o 326 } 327 328 func (o VpcIpamResourceDiscoveryArrayOutput) ToVpcIpamResourceDiscoveryArrayOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryArrayOutput { 329 return o 330 } 331 332 func (o VpcIpamResourceDiscoveryArrayOutput) Index(i pulumi.IntInput) VpcIpamResourceDiscoveryOutput { 333 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcIpamResourceDiscovery { 334 return vs[0].([]*VpcIpamResourceDiscovery)[vs[1].(int)] 335 }).(VpcIpamResourceDiscoveryOutput) 336 } 337 338 type VpcIpamResourceDiscoveryMapOutput struct{ *pulumi.OutputState } 339 340 func (VpcIpamResourceDiscoveryMapOutput) ElementType() reflect.Type { 341 return reflect.TypeOf((*map[string]*VpcIpamResourceDiscovery)(nil)).Elem() 342 } 343 344 func (o VpcIpamResourceDiscoveryMapOutput) ToVpcIpamResourceDiscoveryMapOutput() VpcIpamResourceDiscoveryMapOutput { 345 return o 346 } 347 348 func (o VpcIpamResourceDiscoveryMapOutput) ToVpcIpamResourceDiscoveryMapOutputWithContext(ctx context.Context) VpcIpamResourceDiscoveryMapOutput { 349 return o 350 } 351 352 func (o VpcIpamResourceDiscoveryMapOutput) MapIndex(k pulumi.StringInput) VpcIpamResourceDiscoveryOutput { 353 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcIpamResourceDiscovery { 354 return vs[0].(map[string]*VpcIpamResourceDiscovery)[vs[1].(string)] 355 }).(VpcIpamResourceDiscoveryOutput) 356 } 357 358 func init() { 359 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamResourceDiscoveryInput)(nil)).Elem(), &VpcIpamResourceDiscovery{}) 360 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamResourceDiscoveryArrayInput)(nil)).Elem(), VpcIpamResourceDiscoveryArray{}) 361 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamResourceDiscoveryMapInput)(nil)).Elem(), VpcIpamResourceDiscoveryMap{}) 362 pulumi.RegisterOutputType(VpcIpamResourceDiscoveryOutput{}) 363 pulumi.RegisterOutputType(VpcIpamResourceDiscoveryArrayOutput{}) 364 pulumi.RegisterOutputType(VpcIpamResourceDiscoveryMapOutput{}) 365 }