@pulumi/aws 4.30.0 → 4.31.0-alpha.1638454643

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/accessanalyzer/analyzer.d.ts +6 -0
  2. package/accessanalyzer/analyzer.js.map +1 -1
  3. package/account/alternativeContact.d.ts +12 -0
  4. package/account/alternativeContact.js +2 -0
  5. package/account/alternativeContact.js.map +1 -1
  6. package/alb/getTargetGroup.d.ts +1 -0
  7. package/alb/getTargetGroup.js.map +1 -1
  8. package/alb/targetGroup.d.ts +12 -0
  9. package/alb/targetGroup.js +2 -0
  10. package/alb/targetGroup.js.map +1 -1
  11. package/applicationloadbalancing/getTargetGroup.d.ts +1 -0
  12. package/applicationloadbalancing/getTargetGroup.js.map +1 -1
  13. package/applicationloadbalancing/targetGroup.d.ts +12 -0
  14. package/applicationloadbalancing/targetGroup.js +2 -0
  15. package/applicationloadbalancing/targetGroup.js.map +1 -1
  16. package/codecommit/approvalRuleTemplate.d.ts +144 -0
  17. package/codecommit/approvalRuleTemplate.js +100 -0
  18. package/codecommit/approvalRuleTemplate.js.map +1 -0
  19. package/codecommit/getApprovalRuleTemplate.d.ts +73 -0
  20. package/codecommit/getApprovalRuleTemplate.js +38 -0
  21. package/codecommit/getApprovalRuleTemplate.js.map +1 -0
  22. package/codecommit/index.d.ts +2 -0
  23. package/codecommit/index.js +6 -0
  24. package/codecommit/index.js.map +1 -1
  25. package/ec2/defaultVpc.d.ts +16 -0
  26. package/ec2/defaultVpc.js +9 -1
  27. package/ec2/defaultVpc.js.map +1 -1
  28. package/ec2/getVpcIamPool.d.ts +151 -0
  29. package/ec2/getVpcIamPool.js +53 -0
  30. package/ec2/getVpcIamPool.js.map +1 -0
  31. package/ec2/index.d.ts +7 -0
  32. package/ec2/index.js +31 -0
  33. package/ec2/index.js.map +1 -1
  34. package/ec2/vpc.d.ts +69 -11
  35. package/ec2/vpc.js +36 -4
  36. package/ec2/vpc.js.map +1 -1
  37. package/ec2/vpcIpam.d.ts +178 -0
  38. package/ec2/vpcIpam.js +121 -0
  39. package/ec2/vpcIpam.js.map +1 -0
  40. package/ec2/vpcIpamPool.d.ts +299 -0
  41. package/ec2/vpcIpamPool.js +151 -0
  42. package/ec2/vpcIpamPool.js.map +1 -0
  43. package/ec2/vpcIpamPoolCidr.d.ts +136 -0
  44. package/ec2/vpcIpamPoolCidr.js +121 -0
  45. package/ec2/vpcIpamPoolCidr.js.map +1 -0
  46. package/ec2/vpcIpamPoolCidrAllocation.d.ts +150 -0
  47. package/ec2/vpcIpamPoolCidrAllocation.js +108 -0
  48. package/ec2/vpcIpamPoolCidrAllocation.js.map +1 -0
  49. package/ec2/vpcIpamScope.d.ts +132 -0
  50. package/ec2/vpcIpamScope.js +99 -0
  51. package/ec2/vpcIpamScope.js.map +1 -0
  52. package/ec2/vpcIpv4CidrBlockAssociation.d.ts +28 -4
  53. package/ec2/vpcIpv4CidrBlockAssociation.js +4 -3
  54. package/ec2/vpcIpv4CidrBlockAssociation.js.map +1 -1
  55. package/ec2/vpcIpv6CidrBlockAssociation.d.ts +102 -0
  56. package/ec2/vpcIpv6CidrBlockAssociation.js +90 -0
  57. package/ec2/vpcIpv6CidrBlockAssociation.js.map +1 -0
  58. package/ecs/accountSettingDefault.d.ts +71 -0
  59. package/ecs/accountSettingDefault.js +67 -0
  60. package/ecs/accountSettingDefault.js.map +1 -0
  61. package/ecs/index.d.ts +1 -0
  62. package/ecs/index.js +5 -0
  63. package/ecs/index.js.map +1 -1
  64. package/elasticloadbalancingv2/getTargetGroup.d.ts +1 -0
  65. package/elasticloadbalancingv2/getTargetGroup.js.map +1 -1
  66. package/elasticloadbalancingv2/targetGroup.d.ts +12 -0
  67. package/elasticloadbalancingv2/targetGroup.js +2 -0
  68. package/elasticloadbalancingv2/targetGroup.js.map +1 -1
  69. package/fsx/ontapStorageVirtualMachine.d.ts +0 -6
  70. package/fsx/ontapStorageVirtualMachine.js +1 -1
  71. package/fsx/ontapStorageVirtualMachine.js.map +1 -1
  72. package/fsx/ontapVolume.d.ts +0 -6
  73. package/fsx/ontapVolume.js +1 -1
  74. package/fsx/ontapVolume.js.map +1 -1
  75. package/iot/thingGroup.d.ts +0 -3
  76. package/iot/thingGroup.js +1 -1
  77. package/iot/thingGroup.js.map +1 -1
  78. package/iot/thingType.d.ts +0 -6
  79. package/iot/thingType.js +1 -1
  80. package/iot/thingType.js.map +1 -1
  81. package/lb/getTargetGroup.d.ts +1 -0
  82. package/lb/getTargetGroup.js.map +1 -1
  83. package/lb/targetGroup.d.ts +12 -0
  84. package/lb/targetGroup.js +2 -0
  85. package/lb/targetGroup.js.map +1 -1
  86. package/package.json +2 -2
  87. package/package.json.dev +1 -1
  88. package/synthetics/canary.d.ts +15 -3
  89. package/synthetics/canary.js +2 -0
  90. package/synthetics/canary.js.map +1 -1
  91. package/types/input.d.ts +154 -114
  92. package/types/output.d.ts +37 -1
package/ec2/vpc.d.ts CHANGED
@@ -30,6 +30,33 @@ import * as pulumi from "@pulumi/pulumi";
30
30
  * });
31
31
  * ```
32
32
  *
33
+ * VPC with CIDR from AWS IPAM:
34
+ *
35
+ * ```typescript
36
+ * import * as pulumi from "@pulumi/pulumi";
37
+ * import * as aws from "@pulumi/aws";
38
+ *
39
+ * const current = aws.getRegion({});
40
+ * const testVpcIpam = new aws.ec2.VpcIpam("testVpcIpam", {operatingRegions: [{
41
+ * regionName: current.then(current => current.name),
42
+ * }]});
43
+ * const testVpcIpamPool = new aws.ec2.VpcIpamPool("testVpcIpamPool", {
44
+ * addressFamily: "ipv4",
45
+ * ipamScopeId: testVpcIpam.privateDefaultScopeId,
46
+ * locale: current.then(current => current.name),
47
+ * });
48
+ * const testVpcIpamPoolCidr = new aws.ec2.VpcIpamPoolCidr("testVpcIpamPoolCidr", {
49
+ * ipamPoolId: testVpcIpamPool.id,
50
+ * cidr: "172.2.0.0/16",
51
+ * });
52
+ * const testVpc = new aws.ec2.Vpc("testVpc", {
53
+ * ipv4IpamPoolId: testVpcIpamPool.id,
54
+ * ipv4NetmaskLength: "28",
55
+ * }, {
56
+ * dependsOn: [testVpcIpamPoolCidr],
57
+ * });
58
+ * ```
59
+ *
33
60
  * ## Import
34
61
  *
35
62
  * VPCs can be imported using the `vpc id`, e.g.,
@@ -65,7 +92,7 @@ export declare class Vpc extends pulumi.CustomResource {
65
92
  */
66
93
  readonly assignGeneratedIpv6CidrBlock: pulumi.Output<boolean | undefined>;
67
94
  /**
68
- * The CIDR block for the VPC.
95
+ * The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using `ipv4NetmaskLength`.
69
96
  */
70
97
  readonly cidrBlock: pulumi.Output<string>;
71
98
  /**
@@ -101,10 +128,17 @@ export declare class Vpc extends pulumi.CustomResource {
101
128
  */
102
129
  readonly enableDnsSupport: pulumi.Output<boolean | undefined>;
103
130
  /**
104
- * A tenancy option for instances launched into the VPC. Default is `default`, which
105
- * makes your instances shared on the host. Using either of the other options (`dedicated` or `host`) costs at least $2/hr.
131
+ * A tenancy option for instances launched into the VPC. Default is `default`, which makes your instances shared on the host. Using either of the other options (`dedicated` or `host`) costs at least $2/hr.
106
132
  */
107
133
  readonly instanceTenancy: pulumi.Output<string | undefined>;
134
+ /**
135
+ * The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization.
136
+ */
137
+ readonly ipv4IpamPoolId: pulumi.Output<string | undefined>;
138
+ /**
139
+ * The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a `ipv4IpamPoolId`.
140
+ */
141
+ readonly ipv4NetmaskLength: pulumi.Output<number | undefined>;
108
142
  /**
109
143
  * The association ID for the IPv6 CIDR block.
110
144
  */
@@ -113,6 +147,8 @@ export declare class Vpc extends pulumi.CustomResource {
113
147
  * The IPv6 CIDR block.
114
148
  */
115
149
  readonly ipv6CidrBlock: pulumi.Output<string>;
150
+ readonly ipv6IpamPoolId: pulumi.Output<string | undefined>;
151
+ readonly ipv6NetmaskLength: pulumi.Output<number | undefined>;
116
152
  /**
117
153
  * The ID of the main route table associated with
118
154
  * this VPC. Note that you can change a VPC's main route table by using an
@@ -142,7 +178,7 @@ export declare class Vpc extends pulumi.CustomResource {
142
178
  * @param args The arguments to use to populate this resource's properties.
143
179
  * @param opts A bag of options that control this resource's behavior.
144
180
  */
145
- constructor(name: string, args: VpcArgs, opts?: pulumi.CustomResourceOptions);
181
+ constructor(name: string, args?: VpcArgs, opts?: pulumi.CustomResourceOptions);
146
182
  }
147
183
  /**
148
184
  * Input properties used for looking up and filtering Vpc resources.
@@ -159,7 +195,7 @@ export interface VpcState {
159
195
  */
160
196
  assignGeneratedIpv6CidrBlock?: pulumi.Input<boolean>;
161
197
  /**
162
- * The CIDR block for the VPC.
198
+ * The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using `ipv4NetmaskLength`.
163
199
  */
164
200
  cidrBlock?: pulumi.Input<string>;
165
201
  /**
@@ -195,10 +231,17 @@ export interface VpcState {
195
231
  */
196
232
  enableDnsSupport?: pulumi.Input<boolean>;
197
233
  /**
198
- * A tenancy option for instances launched into the VPC. Default is `default`, which
199
- * makes your instances shared on the host. Using either of the other options (`dedicated` or `host`) costs at least $2/hr.
234
+ * A tenancy option for instances launched into the VPC. Default is `default`, which makes your instances shared on the host. Using either of the other options (`dedicated` or `host`) costs at least $2/hr.
200
235
  */
201
236
  instanceTenancy?: pulumi.Input<string>;
237
+ /**
238
+ * The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization.
239
+ */
240
+ ipv4IpamPoolId?: pulumi.Input<string>;
241
+ /**
242
+ * The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a `ipv4IpamPoolId`.
243
+ */
244
+ ipv4NetmaskLength?: pulumi.Input<number>;
202
245
  /**
203
246
  * The association ID for the IPv6 CIDR block.
204
247
  */
@@ -207,6 +250,8 @@ export interface VpcState {
207
250
  * The IPv6 CIDR block.
208
251
  */
209
252
  ipv6CidrBlock?: pulumi.Input<string>;
253
+ ipv6IpamPoolId?: pulumi.Input<string>;
254
+ ipv6NetmaskLength?: pulumi.Input<number>;
210
255
  /**
211
256
  * The ID of the main route table associated with
212
257
  * this VPC. Note that you can change a VPC's main route table by using an
@@ -241,9 +286,9 @@ export interface VpcArgs {
241
286
  */
242
287
  assignGeneratedIpv6CidrBlock?: pulumi.Input<boolean>;
243
288
  /**
244
- * The CIDR block for the VPC.
289
+ * The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using `ipv4NetmaskLength`.
245
290
  */
246
- cidrBlock: pulumi.Input<string>;
291
+ cidrBlock?: pulumi.Input<string>;
247
292
  /**
248
293
  * A boolean flag to enable/disable ClassicLink
249
294
  * for the VPC. Only valid in regions and accounts that support EC2 Classic.
@@ -264,10 +309,23 @@ export interface VpcArgs {
264
309
  */
265
310
  enableDnsSupport?: pulumi.Input<boolean>;
266
311
  /**
267
- * A tenancy option for instances launched into the VPC. Default is `default`, which
268
- * makes your instances shared on the host. Using either of the other options (`dedicated` or `host`) costs at least $2/hr.
312
+ * A tenancy option for instances launched into the VPC. Default is `default`, which makes your instances shared on the host. Using either of the other options (`dedicated` or `host`) costs at least $2/hr.
269
313
  */
270
314
  instanceTenancy?: pulumi.Input<string>;
315
+ /**
316
+ * The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization.
317
+ */
318
+ ipv4IpamPoolId?: pulumi.Input<string>;
319
+ /**
320
+ * The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a `ipv4IpamPoolId`.
321
+ */
322
+ ipv4NetmaskLength?: pulumi.Input<number>;
323
+ /**
324
+ * The IPv6 CIDR block.
325
+ */
326
+ ipv6CidrBlock?: pulumi.Input<string>;
327
+ ipv6IpamPoolId?: pulumi.Input<string>;
328
+ ipv6NetmaskLength?: pulumi.Input<number>;
271
329
  /**
272
330
  * 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.
273
331
  */
package/ec2/vpc.js CHANGED
@@ -36,6 +36,33 @@ const utilities = require("../utilities");
36
36
  * });
37
37
  * ```
38
38
  *
39
+ * VPC with CIDR from AWS IPAM:
40
+ *
41
+ * ```typescript
42
+ * import * as pulumi from "@pulumi/pulumi";
43
+ * import * as aws from "@pulumi/aws";
44
+ *
45
+ * const current = aws.getRegion({});
46
+ * const testVpcIpam = new aws.ec2.VpcIpam("testVpcIpam", {operatingRegions: [{
47
+ * regionName: current.then(current => current.name),
48
+ * }]});
49
+ * const testVpcIpamPool = new aws.ec2.VpcIpamPool("testVpcIpamPool", {
50
+ * addressFamily: "ipv4",
51
+ * ipamScopeId: testVpcIpam.privateDefaultScopeId,
52
+ * locale: current.then(current => current.name),
53
+ * });
54
+ * const testVpcIpamPoolCidr = new aws.ec2.VpcIpamPoolCidr("testVpcIpamPoolCidr", {
55
+ * ipamPoolId: testVpcIpamPool.id,
56
+ * cidr: "172.2.0.0/16",
57
+ * });
58
+ * const testVpc = new aws.ec2.Vpc("testVpc", {
59
+ * ipv4IpamPoolId: testVpcIpamPool.id,
60
+ * ipv4NetmaskLength: "28",
61
+ * }, {
62
+ * dependsOn: [testVpcIpamPoolCidr],
63
+ * });
64
+ * ```
65
+ *
39
66
  * ## Import
40
67
  *
41
68
  * VPCs can be imported using the `vpc id`, e.g.,
@@ -62,8 +89,12 @@ class Vpc extends pulumi.CustomResource {
62
89
  inputs["enableDnsHostnames"] = state ? state.enableDnsHostnames : undefined;
63
90
  inputs["enableDnsSupport"] = state ? state.enableDnsSupport : undefined;
64
91
  inputs["instanceTenancy"] = state ? state.instanceTenancy : undefined;
92
+ inputs["ipv4IpamPoolId"] = state ? state.ipv4IpamPoolId : undefined;
93
+ inputs["ipv4NetmaskLength"] = state ? state.ipv4NetmaskLength : undefined;
65
94
  inputs["ipv6AssociationId"] = state ? state.ipv6AssociationId : undefined;
66
95
  inputs["ipv6CidrBlock"] = state ? state.ipv6CidrBlock : undefined;
96
+ inputs["ipv6IpamPoolId"] = state ? state.ipv6IpamPoolId : undefined;
97
+ inputs["ipv6NetmaskLength"] = state ? state.ipv6NetmaskLength : undefined;
67
98
  inputs["mainRouteTableId"] = state ? state.mainRouteTableId : undefined;
68
99
  inputs["ownerId"] = state ? state.ownerId : undefined;
69
100
  inputs["tags"] = state ? state.tags : undefined;
@@ -71,9 +102,6 @@ class Vpc extends pulumi.CustomResource {
71
102
  }
72
103
  else {
73
104
  const args = argsOrState;
74
- if ((!args || args.cidrBlock === undefined) && !opts.urn) {
75
- throw new Error("Missing required property 'cidrBlock'");
76
- }
77
105
  inputs["assignGeneratedIpv6CidrBlock"] = args ? args.assignGeneratedIpv6CidrBlock : undefined;
78
106
  inputs["cidrBlock"] = args ? args.cidrBlock : undefined;
79
107
  inputs["enableClassiclink"] = args ? args.enableClassiclink : undefined;
@@ -81,6 +109,11 @@ class Vpc extends pulumi.CustomResource {
81
109
  inputs["enableDnsHostnames"] = args ? args.enableDnsHostnames : undefined;
82
110
  inputs["enableDnsSupport"] = args ? args.enableDnsSupport : undefined;
83
111
  inputs["instanceTenancy"] = args ? args.instanceTenancy : undefined;
112
+ inputs["ipv4IpamPoolId"] = args ? args.ipv4IpamPoolId : undefined;
113
+ inputs["ipv4NetmaskLength"] = args ? args.ipv4NetmaskLength : undefined;
114
+ inputs["ipv6CidrBlock"] = args ? args.ipv6CidrBlock : undefined;
115
+ inputs["ipv6IpamPoolId"] = args ? args.ipv6IpamPoolId : undefined;
116
+ inputs["ipv6NetmaskLength"] = args ? args.ipv6NetmaskLength : undefined;
84
117
  inputs["tags"] = args ? args.tags : undefined;
85
118
  inputs["arn"] = undefined /*out*/;
86
119
  inputs["defaultNetworkAclId"] = undefined /*out*/;
@@ -88,7 +121,6 @@ class Vpc extends pulumi.CustomResource {
88
121
  inputs["defaultSecurityGroupId"] = undefined /*out*/;
89
122
  inputs["dhcpOptionsId"] = undefined /*out*/;
90
123
  inputs["ipv6AssociationId"] = undefined /*out*/;
91
- inputs["ipv6CidrBlock"] = undefined /*out*/;
92
124
  inputs["mainRouteTableId"] = undefined /*out*/;
93
125
  inputs["ownerId"] = undefined /*out*/;
94
126
  inputs["tagsAll"] = undefined /*out*/;
package/ec2/vpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vpc.js","sourceRoot":"","sources":["../../ec2/vpc.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAa,GAAI,SAAQ,MAAM,CAAC,cAAc;IAkH1C,YAAY,IAAY,EAAE,WAAgC,EAAE,IAAmC;QAC3F,IAAI,MAAM,GAAkB,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAmC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,8BAA8B,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,SAAS,CAAC;YAChG,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,MAAM,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,MAAM,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,CAAC,6BAA6B,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9F,MAAM,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,MAAM,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;SACzD;aAAM;YACH,MAAM,IAAI,GAAG,WAAkC,CAAC;YAChD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;aAC5D;YACD,MAAM,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9F,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,MAAM,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClC,MAAM,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,MAAM,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,MAAM,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACrD,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5C,MAAM,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAChD,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5C,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACzC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;SACxE;QACD,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IApKD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAgB,EAAE,IAAmC;QAC9G,OAAO,IAAI,GAAG,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC1D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC;IACpD,CAAC;;AA1BL,kBAsKC;AAxJG,gBAAgB;AACO,gBAAY,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"vpc.js","sourceRoot":"","sources":["../../ec2/vpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "../types";
3
+ /**
4
+ * Provides a IPAM resource.
5
+ *
6
+ * ## Example Usage
7
+ *
8
+ * Basic usage:
9
+ *
10
+ * ```typescript
11
+ * import * as pulumi from "@pulumi/pulumi";
12
+ * import * as aws from "@pulumi/aws";
13
+ *
14
+ * const current = aws.getRegion({});
15
+ * const main = new aws.ec2.VpcIpam("main", {
16
+ * description: "My IPAM",
17
+ * operatingRegions: [{
18
+ * regionName: current.then(current => current.name),
19
+ * }],
20
+ * tags: {
21
+ * Test: "Main",
22
+ * },
23
+ * });
24
+ * ```
25
+ *
26
+ * Shared with multiple operating_regions:
27
+ *
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as aws from "@pulumi/aws";
31
+ *
32
+ * const config = new pulumi.Config();
33
+ * const ipamRegions = config.getObject("ipamRegions") || [
34
+ * "us-east-1",
35
+ * "us-west-2",
36
+ * ];
37
+ * const example = new aws.ec2.VpcIpam("example", {
38
+ * description: "test4",
39
+ * dynamic: [{
40
+ * forEach: ipamRegions,
41
+ * content: [{
42
+ * regionName: operating_regions.value,
43
+ * }],
44
+ * }],
45
+ * });
46
+ * ```
47
+ *
48
+ * ## Import
49
+ *
50
+ * IPAMs can be imported using the `ipam id`, e.g.
51
+ *
52
+ * ```sh
53
+ * $ pulumi import aws:ec2/vpcIpam:VpcIpam example ipam-0178368ad2146a492
54
+ * ```
55
+ */
56
+ export declare class VpcIpam extends pulumi.CustomResource {
57
+ /**
58
+ * Get an existing VpcIpam resource's state with the given name, ID, and optional extra
59
+ * properties used to qualify the lookup.
60
+ *
61
+ * @param name The _unique_ name of the resulting resource.
62
+ * @param id The _unique_ provider ID of the resource to lookup.
63
+ * @param state Any extra arguments used during the lookup.
64
+ * @param opts Optional settings to control the behavior of the CustomResource.
65
+ */
66
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: VpcIpamState, opts?: pulumi.CustomResourceOptions): VpcIpam;
67
+ /**
68
+ * Returns true if the given object is an instance of VpcIpam. This is designed to work even
69
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
70
+ */
71
+ static isInstance(obj: any): obj is VpcIpam;
72
+ /**
73
+ * Amazon Resource Name (ARN) of IPAM
74
+ */
75
+ readonly arn: pulumi.Output<string>;
76
+ /**
77
+ * A description for the IPAM.
78
+ */
79
+ readonly description: pulumi.Output<string | undefined>;
80
+ /**
81
+ * Determines which locales can be chosen when you create pools. 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. 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.
82
+ */
83
+ readonly operatingRegions: pulumi.Output<outputs.ec2.VpcIpamOperatingRegion[]>;
84
+ /**
85
+ * The ID of the IPAM's private scope. A scope is a top-level container in IPAM. Each scope represents an IP-independent network. Scopes enable you to represent networks where you have overlapping IP space. When you create an IPAM, IPAM automatically creates two scopes: public and private. The private scope is intended for private IP space. The public scope is intended for all internet-routable IP space.
86
+ */
87
+ readonly privateDefaultScopeId: pulumi.Output<string>;
88
+ /**
89
+ * The ID of the IPAM's public scope. A scope is a top-level container in IPAM. Each scope represents an IP-independent network. Scopes enable you to represent networks where you have overlapping IP space. When you create an IPAM, IPAM automatically creates two scopes: public and private. The private scope is intended for private
90
+ * IP space. The public scope is intended for all internet-routable IP space.
91
+ */
92
+ readonly publicDefaultScopeId: pulumi.Output<string>;
93
+ /**
94
+ * The number of scopes in the IPAM.
95
+ */
96
+ readonly scopeCount: pulumi.Output<number>;
97
+ /**
98
+ * A map of tags to assign to the resource. If configured with a provider [`defaultTags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.
99
+ */
100
+ readonly tags: pulumi.Output<{
101
+ [key: string]: string;
102
+ } | undefined>;
103
+ /**
104
+ * A map of tags assigned to the resource, including those inherited from the provider [`defaultTags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).
105
+ */
106
+ readonly tagsAll: pulumi.Output<{
107
+ [key: string]: string;
108
+ }>;
109
+ /**
110
+ * Create a VpcIpam resource with the given unique name, arguments, and options.
111
+ *
112
+ * @param name The _unique_ name of the resource.
113
+ * @param args The arguments to use to populate this resource's properties.
114
+ * @param opts A bag of options that control this resource's behavior.
115
+ */
116
+ constructor(name: string, args: VpcIpamArgs, opts?: pulumi.CustomResourceOptions);
117
+ }
118
+ /**
119
+ * Input properties used for looking up and filtering VpcIpam resources.
120
+ */
121
+ export interface VpcIpamState {
122
+ /**
123
+ * Amazon Resource Name (ARN) of IPAM
124
+ */
125
+ arn?: pulumi.Input<string>;
126
+ /**
127
+ * A description for the IPAM.
128
+ */
129
+ description?: pulumi.Input<string>;
130
+ /**
131
+ * Determines which locales can be chosen when you create pools. 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. 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
+ */
133
+ operatingRegions?: pulumi.Input<pulumi.Input<inputs.ec2.VpcIpamOperatingRegion>[]>;
134
+ /**
135
+ * The ID of the IPAM's private scope. A scope is a top-level container in IPAM. Each scope represents an IP-independent network. Scopes enable you to represent networks where you have overlapping IP space. When you create an IPAM, IPAM automatically creates two scopes: public and private. The private scope is intended for private IP space. The public scope is intended for all internet-routable IP space.
136
+ */
137
+ privateDefaultScopeId?: pulumi.Input<string>;
138
+ /**
139
+ * The ID of the IPAM's public scope. A scope is a top-level container in IPAM. Each scope represents an IP-independent network. Scopes enable you to represent networks where you have overlapping IP space. When you create an IPAM, IPAM automatically creates two scopes: public and private. The private scope is intended for private
140
+ * IP space. The public scope is intended for all internet-routable IP space.
141
+ */
142
+ publicDefaultScopeId?: pulumi.Input<string>;
143
+ /**
144
+ * The number of scopes in the IPAM.
145
+ */
146
+ scopeCount?: pulumi.Input<number>;
147
+ /**
148
+ * A map of tags to assign to the resource. If configured with a provider [`defaultTags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.
149
+ */
150
+ tags?: pulumi.Input<{
151
+ [key: string]: pulumi.Input<string>;
152
+ }>;
153
+ /**
154
+ * A map of tags assigned to the resource, including those inherited from the provider [`defaultTags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).
155
+ */
156
+ tagsAll?: pulumi.Input<{
157
+ [key: string]: pulumi.Input<string>;
158
+ }>;
159
+ }
160
+ /**
161
+ * The set of arguments for constructing a VpcIpam resource.
162
+ */
163
+ export interface VpcIpamArgs {
164
+ /**
165
+ * A description for the IPAM.
166
+ */
167
+ description?: pulumi.Input<string>;
168
+ /**
169
+ * Determines which locales can be chosen when you create pools. 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. 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.
170
+ */
171
+ operatingRegions: pulumi.Input<pulumi.Input<inputs.ec2.VpcIpamOperatingRegion>[]>;
172
+ /**
173
+ * A map of tags to assign to the resource. If configured with a provider [`defaultTags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.
174
+ */
175
+ tags?: pulumi.Input<{
176
+ [key: string]: pulumi.Input<string>;
177
+ }>;
178
+ }
package/ec2/vpcIpam.js ADDED
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.VpcIpam = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * Provides a IPAM resource.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * Basic usage:
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as aws from "@pulumi/aws";
18
+ *
19
+ * const current = aws.getRegion({});
20
+ * const main = new aws.ec2.VpcIpam("main", {
21
+ * description: "My IPAM",
22
+ * operatingRegions: [{
23
+ * regionName: current.then(current => current.name),
24
+ * }],
25
+ * tags: {
26
+ * Test: "Main",
27
+ * },
28
+ * });
29
+ * ```
30
+ *
31
+ * Shared with multiple operating_regions:
32
+ *
33
+ * ```typescript
34
+ * import * as pulumi from "@pulumi/pulumi";
35
+ * import * as aws from "@pulumi/aws";
36
+ *
37
+ * const config = new pulumi.Config();
38
+ * const ipamRegions = config.getObject("ipamRegions") || [
39
+ * "us-east-1",
40
+ * "us-west-2",
41
+ * ];
42
+ * const example = new aws.ec2.VpcIpam("example", {
43
+ * description: "test4",
44
+ * dynamic: [{
45
+ * forEach: ipamRegions,
46
+ * content: [{
47
+ * regionName: operating_regions.value,
48
+ * }],
49
+ * }],
50
+ * });
51
+ * ```
52
+ *
53
+ * ## Import
54
+ *
55
+ * IPAMs can be imported using the `ipam id`, e.g.
56
+ *
57
+ * ```sh
58
+ * $ pulumi import aws:ec2/vpcIpam:VpcIpam example ipam-0178368ad2146a492
59
+ * ```
60
+ */
61
+ class VpcIpam extends pulumi.CustomResource {
62
+ constructor(name, argsOrState, opts) {
63
+ let inputs = {};
64
+ opts = opts || {};
65
+ if (opts.id) {
66
+ const state = argsOrState;
67
+ inputs["arn"] = state ? state.arn : undefined;
68
+ inputs["description"] = state ? state.description : undefined;
69
+ inputs["operatingRegions"] = state ? state.operatingRegions : undefined;
70
+ inputs["privateDefaultScopeId"] = state ? state.privateDefaultScopeId : undefined;
71
+ inputs["publicDefaultScopeId"] = state ? state.publicDefaultScopeId : undefined;
72
+ inputs["scopeCount"] = state ? state.scopeCount : undefined;
73
+ inputs["tags"] = state ? state.tags : undefined;
74
+ inputs["tagsAll"] = state ? state.tagsAll : undefined;
75
+ }
76
+ else {
77
+ const args = argsOrState;
78
+ if ((!args || args.operatingRegions === undefined) && !opts.urn) {
79
+ throw new Error("Missing required property 'operatingRegions'");
80
+ }
81
+ inputs["description"] = args ? args.description : undefined;
82
+ inputs["operatingRegions"] = args ? args.operatingRegions : undefined;
83
+ inputs["tags"] = args ? args.tags : undefined;
84
+ inputs["arn"] = undefined /*out*/;
85
+ inputs["privateDefaultScopeId"] = undefined /*out*/;
86
+ inputs["publicDefaultScopeId"] = undefined /*out*/;
87
+ inputs["scopeCount"] = undefined /*out*/;
88
+ inputs["tagsAll"] = undefined /*out*/;
89
+ }
90
+ if (!opts.version) {
91
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
92
+ }
93
+ super(VpcIpam.__pulumiType, name, inputs, opts);
94
+ }
95
+ /**
96
+ * Get an existing VpcIpam resource's state with the given name, ID, and optional extra
97
+ * properties used to qualify the lookup.
98
+ *
99
+ * @param name The _unique_ name of the resulting resource.
100
+ * @param id The _unique_ provider ID of the resource to lookup.
101
+ * @param state Any extra arguments used during the lookup.
102
+ * @param opts Optional settings to control the behavior of the CustomResource.
103
+ */
104
+ static get(name, id, state, opts) {
105
+ return new VpcIpam(name, state, Object.assign(Object.assign({}, opts), { id: id }));
106
+ }
107
+ /**
108
+ * Returns true if the given object is an instance of VpcIpam. This is designed to work even
109
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
110
+ */
111
+ static isInstance(obj) {
112
+ if (obj === undefined || obj === null) {
113
+ return false;
114
+ }
115
+ return obj['__pulumiType'] === VpcIpam.__pulumiType;
116
+ }
117
+ }
118
+ exports.VpcIpam = VpcIpam;
119
+ /** @internal */
120
+ VpcIpam.__pulumiType = 'aws:ec2/vpcIpam:VpcIpam';
121
+ //# sourceMappingURL=vpcIpam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vpcIpam.js","sourceRoot":"","sources":["../../ec2/vpcIpam.ts"],"names":[],"mappings":"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"}