alchemy 0.61.0 → 0.62.0

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 (143) hide show
  1. package/README.md +1 -2
  2. package/bin/alchemy.js +1406 -1464
  3. package/bin/commands/init.ts +29 -2
  4. package/bin/services/execute-alchemy.ts +1 -2
  5. package/lib/alchemy.d.ts +2 -2
  6. package/lib/alchemy.d.ts.map +1 -1
  7. package/lib/alchemy.js.map +1 -1
  8. package/lib/aws/client-props.d.ts +149 -0
  9. package/lib/aws/client-props.d.ts.map +1 -0
  10. package/lib/aws/client-props.js +1 -0
  11. package/lib/aws/client-props.js.map +1 -0
  12. package/lib/aws/credentials.d.ts +68 -5
  13. package/lib/aws/credentials.d.ts.map +1 -1
  14. package/lib/aws/credentials.js +148 -0
  15. package/lib/aws/credentials.js.map +1 -1
  16. package/lib/aws/ec2/internet-gateway-attachment.d.ts +57 -3
  17. package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -1
  18. package/lib/aws/ec2/internet-gateway-attachment.js +57 -3
  19. package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -1
  20. package/lib/aws/ec2/internet-gateway.d.ts +68 -40
  21. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -1
  22. package/lib/aws/ec2/internet-gateway.js +68 -40
  23. package/lib/aws/ec2/internet-gateway.js.map +1 -1
  24. package/lib/aws/ec2/nat-gateway.d.ts +99 -18
  25. package/lib/aws/ec2/nat-gateway.d.ts.map +1 -1
  26. package/lib/aws/ec2/nat-gateway.js +113 -37
  27. package/lib/aws/ec2/nat-gateway.js.map +1 -1
  28. package/lib/aws/ec2/route-table-association.d.ts +1 -1
  29. package/lib/aws/ec2/route-table-association.js +1 -1
  30. package/lib/aws/ec2/route-table.d.ts +64 -1
  31. package/lib/aws/ec2/route-table.d.ts.map +1 -1
  32. package/lib/aws/ec2/route-table.js +64 -1
  33. package/lib/aws/ec2/route-table.js.map +1 -1
  34. package/lib/aws/ec2/route.d.ts +60 -1
  35. package/lib/aws/ec2/route.d.ts.map +1 -1
  36. package/lib/aws/ec2/route.js +60 -1
  37. package/lib/aws/ec2/route.js.map +1 -1
  38. package/lib/aws/ec2/security-group.d.ts +96 -3
  39. package/lib/aws/ec2/security-group.d.ts.map +1 -1
  40. package/lib/aws/ec2/security-group.js +96 -3
  41. package/lib/aws/ec2/security-group.js.map +1 -1
  42. package/lib/aws/ec2/subnet.d.ts +61 -3
  43. package/lib/aws/ec2/subnet.d.ts.map +1 -1
  44. package/lib/aws/ec2/subnet.js +61 -3
  45. package/lib/aws/ec2/subnet.js.map +1 -1
  46. package/lib/aws/ec2/utils.d.ts +10 -2
  47. package/lib/aws/ec2/utils.d.ts.map +1 -1
  48. package/lib/aws/ec2/utils.js +68 -7
  49. package/lib/aws/ec2/utils.js.map +1 -1
  50. package/lib/aws/ec2/vpc.d.ts +50 -2
  51. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  52. package/lib/aws/ec2/vpc.js +50 -2
  53. package/lib/aws/ec2/vpc.js.map +1 -1
  54. package/lib/aws/index.d.ts +2 -0
  55. package/lib/aws/index.d.ts.map +1 -1
  56. package/lib/aws/index.js +2 -0
  57. package/lib/aws/index.js.map +1 -1
  58. package/lib/cloudflare/api-response.js +2 -2
  59. package/lib/cloudflare/api-response.js.map +1 -1
  60. package/lib/cloudflare/api.d.ts +19 -0
  61. package/lib/cloudflare/api.d.ts.map +1 -1
  62. package/lib/cloudflare/api.js +4 -0
  63. package/lib/cloudflare/api.js.map +1 -1
  64. package/lib/cloudflare/assets.d.ts.map +1 -1
  65. package/lib/cloudflare/assets.js +3 -4
  66. package/lib/cloudflare/assets.js.map +1 -1
  67. package/lib/cloudflare/bucket.d.ts +5 -3
  68. package/lib/cloudflare/bucket.d.ts.map +1 -1
  69. package/lib/cloudflare/bucket.js +22 -18
  70. package/lib/cloudflare/bucket.js.map +1 -1
  71. package/lib/cloudflare/bundle/plugin-compat-warning.js +7 -7
  72. package/lib/cloudflare/bundle/plugin-compat-warning.js.map +1 -1
  73. package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
  74. package/lib/cloudflare/kv-namespace.d.ts +2 -2
  75. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  76. package/lib/cloudflare/kv-namespace.js.map +1 -1
  77. package/lib/cloudflare/oauth.js +3 -3
  78. package/lib/cloudflare/oauth.js.map +1 -1
  79. package/lib/cloudflare/quick-tunnel.d.ts +1 -1
  80. package/lib/cloudflare/website.d.ts.map +1 -1
  81. package/lib/cloudflare/website.js +26 -97
  82. package/lib/cloudflare/website.js.map +1 -1
  83. package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
  84. package/lib/cloudflare/worker-bundle.js +9 -8
  85. package/lib/cloudflare/worker-bundle.js.map +1 -1
  86. package/lib/cloudflare/worker-tail.d.ts.map +1 -1
  87. package/lib/cloudflare/worker-tail.js +6 -6
  88. package/lib/cloudflare/worker-tail.js.map +1 -1
  89. package/lib/resource.d.ts +1 -0
  90. package/lib/resource.d.ts.map +1 -1
  91. package/lib/resource.js +13 -2
  92. package/lib/resource.js.map +1 -1
  93. package/lib/scope.d.ts +24 -23
  94. package/lib/scope.d.ts.map +1 -1
  95. package/lib/scope.js +25 -20
  96. package/lib/scope.js.map +1 -1
  97. package/lib/state/cloudflare-state-store.d.ts.map +1 -1
  98. package/lib/state/cloudflare-state-store.js +2 -1
  99. package/lib/state/cloudflare-state-store.js.map +1 -1
  100. package/lib/util/idempotent-spawn.d.ts +10 -8
  101. package/lib/util/idempotent-spawn.d.ts.map +1 -1
  102. package/lib/util/idempotent-spawn.js +97 -78
  103. package/lib/util/idempotent-spawn.js.map +1 -1
  104. package/lib/util/index.d.ts +2 -0
  105. package/lib/util/index.d.ts.map +1 -0
  106. package/lib/util/index.js +2 -0
  107. package/lib/util/index.js.map +1 -0
  108. package/lib/util/safe-fetch.d.ts +24 -0
  109. package/lib/util/safe-fetch.d.ts.map +1 -1
  110. package/lib/util/safe-fetch.js +72 -0
  111. package/lib/util/safe-fetch.js.map +1 -1
  112. package/package.json +8 -5
  113. package/src/alchemy.ts +2 -2
  114. package/src/aws/client-props.ts +156 -0
  115. package/src/aws/credentials.ts +165 -4
  116. package/src/aws/ec2/internet-gateway-attachment.ts +59 -4
  117. package/src/aws/ec2/internet-gateway.ts +70 -41
  118. package/src/aws/ec2/nat-gateway.ts +123 -33
  119. package/src/aws/ec2/route-table-association.ts +1 -1
  120. package/src/aws/ec2/route-table.ts +66 -2
  121. package/src/aws/ec2/route.ts +62 -2
  122. package/src/aws/ec2/security-group.ts +98 -4
  123. package/src/aws/ec2/subnet.ts +63 -4
  124. package/src/aws/ec2/utils.ts +73 -7
  125. package/src/aws/ec2/vpc.ts +52 -3
  126. package/src/aws/index.ts +2 -0
  127. package/src/cloudflare/api-response.ts +2 -2
  128. package/src/cloudflare/api.ts +23 -0
  129. package/src/cloudflare/assets.ts +3 -4
  130. package/src/cloudflare/bucket.ts +27 -25
  131. package/src/cloudflare/bundle/plugin-compat-warning.ts +7 -7
  132. package/src/cloudflare/cloudflare-env-proxy.ts +2 -2
  133. package/src/cloudflare/kv-namespace.ts +26 -27
  134. package/src/cloudflare/oauth.ts +3 -3
  135. package/src/cloudflare/website.ts +30 -111
  136. package/src/cloudflare/worker-bundle.ts +9 -8
  137. package/src/cloudflare/worker-tail.ts +6 -8
  138. package/src/resource.ts +19 -2
  139. package/src/scope.ts +73 -43
  140. package/src/state/cloudflare-state-store.ts +2 -1
  141. package/src/util/idempotent-spawn.ts +117 -100
  142. package/src/util/index.ts +1 -0
  143. package/src/util/safe-fetch.ts +114 -0
@@ -16,6 +16,9 @@ import { callEC2Api, createEC2Client } from "./utils.js";
16
16
  * allowing traffic to flow between the VPC and the internet when combined with proper
17
17
  * routing configuration.
18
18
  *
19
+ * Supports AWS credential overrides at the resource level, allowing you to deploy Internet Gateway Attachments
20
+ * to different AWS accounts or regions than the default scope configuration.
21
+ *
19
22
  * @example
20
23
  * // Basic Internet Gateway attachment for internet connectivity
21
24
  * const vpc = await Vpc("main-vpc", {
@@ -30,6 +33,36 @@ import { callEC2Api, createEC2Client } from "./utils.js";
30
33
  * });
31
34
  *
32
35
  * @example
36
+ * // Internet Gateway Attachment with AWS credential overrides
37
+ * const crossAccountAttachment = await InternetGatewayAttachment("cross-account-attachment", {
38
+ * internetGateway: igw,
39
+ * vpc: vpc,
40
+ * // Override AWS credentials for this specific resource
41
+ * region: "us-east-1",
42
+ * profile: "production-account",
43
+ * });
44
+ *
45
+ * @example
46
+ * // Internet Gateway Attachment in different region with role assumption
47
+ * const multiRegionAttachment = await InternetGatewayAttachment("multi-region-attachment", {
48
+ * internetGateway: euIgw,
49
+ * vpc: euVpc,
50
+ * region: "eu-west-1",
51
+ * roleArn: "arn:aws:iam::123456789012:role/CrossRegionRole",
52
+ * roleSessionName: "igw-attachment-deployment",
53
+ * });
54
+ *
55
+ * @example
56
+ * // Internet Gateway Attachment with explicit credentials
57
+ * const explicitCredsAttachment = await InternetGatewayAttachment("explicit-creds-attachment", {
58
+ * internetGateway: testIgw,
59
+ * vpc: testVpc,
60
+ * accessKeyId: alchemy.secret("AKIAIOSFODNN7EXAMPLE"),
61
+ * secretAccessKey: alchemy.secret("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
62
+ * region: "us-west-2",
63
+ * });
64
+ *
65
+ * @example
33
66
  * // Internet Gateway attachment with custom timeout configuration
34
67
  * // for environments with slower AWS API responses
35
68
  * const attachment = await InternetGatewayAttachment("slow-env-attachment", {
@@ -58,7 +91,7 @@ import { callEC2Api, createEC2Client } from "./utils.js";
58
91
  *
59
92
  * // Create public subnet and route table for internet access
60
93
  * const publicSubnet = await Subnet("public-subnet", {
61
- * vpc,
94
+ * vpc: vpc,
62
95
  * cidrBlock: "10.0.1.0/24",
63
96
  * availabilityZone: "us-east-1a"
64
97
  * });
@@ -70,11 +103,32 @@ import { callEC2Api, createEC2Client } from "./utils.js";
70
103
  * const internetRoute = await Route("internet-route", {
71
104
  * routeTable: publicRouteTable,
72
105
  * destinationCidrBlock: "0.0.0.0/0",
73
- * gateway: igw
106
+ * target: { internetGateway: igw }
107
+ * });
108
+ *
109
+ * @example
110
+ * // Multi-account deployment with scope-level and resource-level overrides
111
+ * await alchemy.run("production", {
112
+ * aws: { region: "us-west-2", profile: "main-account" }
113
+ * }, async () => {
114
+ * // This Internet Gateway Attachment uses scope credentials (main-account, us-west-2)
115
+ * const mainAttachment = await InternetGatewayAttachment("main-attachment", {
116
+ * internetGateway: mainIgw,
117
+ * vpc: mainVpc
118
+ * });
119
+ *
120
+ * // This Internet Gateway Attachment overrides to use different account
121
+ * const crossAccountAttachment = await InternetGatewayAttachment("cross-account-attachment", {
122
+ * internetGateway: crossIgw,
123
+ * vpc: crossVpc,
124
+ * profile: "secondary-account",
125
+ * region: "us-east-1", // Also override region
126
+ * });
74
127
  * });
75
128
  */
76
129
  export const InternetGatewayAttachment = Resource("aws::InternetGatewayAttachment", async function (_id, props) {
77
- const client = await createEC2Client();
130
+ // Create EC2 client with credential resolution handled internally
131
+ const client = await createEC2Client(props);
78
132
  const timeoutConfig = mergeTimeoutConfig(INTERNET_GATEWAY_ATTACHMENT_TIMEOUT, props.timeout);
79
133
  const internetGatewayId = typeof props.internetGateway === "string"
80
134
  ? props.internetGateway
@@ -1 +1 @@
1
- {"version":3,"file":"internet-gateway-attachment.js","sourceRoot":"","sources":["../../../src/aws/ec2/internet-gateway-attachment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internet-gateway-attachment.js","sourceRoot":"","sources":["../../../src/aws/ec2/internet-gateway-attachment.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import type { Context } from "../../context.ts";
2
2
  import { Resource } from "../../resource.ts";
3
3
  import { type TimeoutConfig } from "../../util/timeout.ts";
4
+ import type { AwsClientProps } from "../client-props.ts";
4
5
  /**
5
6
  * Properties for creating or updating an Internet Gateway
6
7
  */
7
- export interface InternetGatewayProps {
8
+ export interface InternetGatewayProps extends AwsClientProps {
8
9
  /**
9
10
  * Tags to apply to the Internet Gateway
10
11
  */
@@ -47,12 +48,15 @@ export interface InternetGateway extends Resource<"aws::InternetGateway">, Inter
47
48
  * 1. Provide a target in your VPC route tables for internet-routable traffic
48
49
  * 2. Perform network address translation (NAT) for instances with public IPv4 addresses
49
50
  *
51
+ * Supports AWS credential overrides at the resource level, allowing you to deploy Internet Gateways
52
+ * to different AWS accounts or regions than the default scope configuration.
53
+ *
50
54
  * @example
51
55
  * ```typescript
52
56
  * // Create a basic Internet Gateway
53
- * const igw = new InternetGateway({
57
+ * const igw = await InternetGateway("main-igw", {
54
58
  * tags: {
55
- * Name: "my-internet-gateway",
59
+ * Name: "main-internet-gateway",
56
60
  * Environment: "production"
57
61
  * }
58
62
  * });
@@ -60,59 +64,49 @@ export interface InternetGateway extends Resource<"aws::InternetGateway">, Inter
60
64
  *
61
65
  * @example
62
66
  * ```typescript
63
- * // Create Internet Gateway with custom timeout configuration
64
- * const igw = new InternetGateway({
65
- * tags: { Name: "custom-igw" },
66
- * timeoutConfig: {
67
- * maxAttempts: 30,
68
- * delayMs: 1000
67
+ * // Create Internet Gateway with AWS credential overrides
68
+ * const crossAccountIgw = await InternetGateway("cross-account-igw", {
69
+ * // Override AWS credentials for this specific resource
70
+ * region: "us-east-1",
71
+ * profile: "production-account",
72
+ * tags: {
73
+ * Name: "cross-account-internet-gateway",
74
+ * Environment: "production"
69
75
  * }
70
76
  * });
71
77
  * ```
72
78
  *
73
79
  * @example
74
80
  * ```typescript
75
- * // Create Internet Gateway and attach to VPC
76
- * const vpc = new VPC({ cidrBlock: "10.0.0.0/16" });
77
- * const igw = new InternetGateway({ tags: { Name: "vpc-igw" } });
78
- * const attachment = new InternetGatewayAttachment({
79
- * internetGatewayId: igw.internetGatewayId,
80
- * vpcId: vpc.vpcId
81
- * });
82
- * ```
83
- *
84
- * @example
85
- * ```typescript
86
- * // Access Internet Gateway properties
87
- * const igw = new InternetGateway({ tags: { Name: "example-igw" } });
88
- * logger.log(`Internet Gateway ID: ${igw.internetGatewayId}`);
89
- * logger.log(`State: ${igw.state}`);
90
- * ```
91
- *
92
- * Creates and manages Internet Gateways that provide internet access to VPCs.
93
- * Note: Use InternetGatewayAttachment to attach the gateway to a VPC.
94
- *
95
- * @example
96
- * // Create a basic Internet Gateway
97
- * const igw = await InternetGateway("main-igw", {
81
+ * // Create Internet Gateway in different region with role assumption
82
+ * const multiRegionIgw = await InternetGateway("multi-region-igw", {
83
+ * region: "eu-west-1",
84
+ * roleArn: "arn:aws:iam::123456789012:role/CrossRegionRole",
85
+ * roleSessionName: "internet-gateway-deployment",
98
86
  * tags: {
99
- * Name: "main-internet-gateway",
100
- * Environment: "production"
87
+ * Name: "eu-internet-gateway",
88
+ * Region: "europe"
101
89
  * }
102
90
  * });
91
+ * ```
103
92
  *
104
93
  * @example
105
- * // Create an Internet Gateway for development environment
106
- * const devIgw = await InternetGateway("dev-igw", {
94
+ * ```typescript
95
+ * // Create Internet Gateway with explicit credentials
96
+ * const explicitCredsIgw = await InternetGateway("explicit-creds-igw", {
97
+ * accessKeyId: alchemy.secret("AKIAIOSFODNN7EXAMPLE"),
98
+ * secretAccessKey: alchemy.secret("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
99
+ * region: "us-west-2",
107
100
  * tags: {
108
- * Name: "dev-internet-gateway",
109
- * Environment: "development",
110
- * Team: "backend"
101
+ * Name: "explicit-credentials-igw",
102
+ * Purpose: "testing"
111
103
  * }
112
104
  * });
105
+ * ```
113
106
  *
114
107
  * @example
115
- * // Create an Internet Gateway with custom timeout configuration
108
+ * ```typescript
109
+ * // Create Internet Gateway with custom timeout configuration
116
110
  * const customIgw = await InternetGateway("custom-igw", {
117
111
  * timeout: {
118
112
  * maxAttempts: 90,
@@ -123,6 +117,40 @@ export interface InternetGateway extends Resource<"aws::InternetGateway">, Inter
123
117
  * Purpose: "high-availability"
124
118
  * }
125
119
  * });
120
+ * ```
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * // Create Internet Gateway and attach to VPC
125
+ * const vpc = await VPC("main-vpc", { cidrBlock: "10.0.0.0/16" });
126
+ * const igw = await InternetGateway("vpc-igw", {
127
+ * tags: { Name: "vpc-internet-gateway" }
128
+ * });
129
+ * const attachment = await InternetGatewayAttachment("igw-attachment", {
130
+ * internetGatewayId: igw.internetGatewayId,
131
+ * vpcId: vpc.vpcId
132
+ * });
133
+ * ```
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * // Multi-account deployment with scope-level and resource-level overrides
138
+ * await alchemy.run("production", {
139
+ * aws: { region: "us-west-2", profile: "main-account" }
140
+ * }, async () => {
141
+ * // This IGW uses scope credentials (main-account, us-west-2)
142
+ * const mainIgw = await InternetGateway("main-igw", {
143
+ * tags: { Name: "main-account-igw" }
144
+ * });
145
+ *
146
+ * // This IGW overrides to use different account
147
+ * const crossAccountIgw = await InternetGateway("cross-account-igw", {
148
+ * profile: "secondary-account",
149
+ * region: "us-east-1", // Also override region
150
+ * tags: { Name: "secondary-account-igw" }
151
+ * });
152
+ * });
153
+ * ```
126
154
  */
127
155
  export declare const InternetGateway: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<InternetGateway>, _id: string, props: InternetGatewayProps) => Promise<InternetGateway>);
128
156
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"internet-gateway.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/internet-gateway.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAG/B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eACf,SAAQ,QAAQ,CAAC,sBAAsB,CAAC,EACtC,oBAAoB;IACtB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;KAC5D,CAAC,CAAC;IAEH;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,eAAO,MAAM,eAAe,yFAGlB,OAAO,CAAC,eAAe,CAAC,OACzB,MAAM,SACJ,oBAAoB,KAC1B,OAAO,CAAC,eAAe,CAAC,CAgH5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAGtC,CAAC"}
1
+ {"version":3,"file":"internet-gateway.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/internet-gateway.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eACf,SAAQ,QAAQ,CAAC,sBAAsB,CAAC,EACtC,oBAAoB;IACtB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;KAC5D,CAAC,CAAC;IAEH;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,eAAO,MAAM,eAAe,yFAGlB,OAAO,CAAC,eAAe,CAAC,OACzB,MAAM,SACJ,oBAAoB,KAC1B,OAAO,CAAC,eAAe,CAAC,CAiH5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAGtC,CAAC"}
@@ -53,12 +53,15 @@ async function waitForInternetGatewayDeleted(client, internetGatewayId, timeoutC
53
53
  * 1. Provide a target in your VPC route tables for internet-routable traffic
54
54
  * 2. Perform network address translation (NAT) for instances with public IPv4 addresses
55
55
  *
56
+ * Supports AWS credential overrides at the resource level, allowing you to deploy Internet Gateways
57
+ * to different AWS accounts or regions than the default scope configuration.
58
+ *
56
59
  * @example
57
60
  * ```typescript
58
61
  * // Create a basic Internet Gateway
59
- * const igw = new InternetGateway({
62
+ * const igw = await InternetGateway("main-igw", {
60
63
  * tags: {
61
- * Name: "my-internet-gateway",
64
+ * Name: "main-internet-gateway",
62
65
  * Environment: "production"
63
66
  * }
64
67
  * });
@@ -66,59 +69,49 @@ async function waitForInternetGatewayDeleted(client, internetGatewayId, timeoutC
66
69
  *
67
70
  * @example
68
71
  * ```typescript
69
- * // Create Internet Gateway with custom timeout configuration
70
- * const igw = new InternetGateway({
71
- * tags: { Name: "custom-igw" },
72
- * timeoutConfig: {
73
- * maxAttempts: 30,
74
- * delayMs: 1000
72
+ * // Create Internet Gateway with AWS credential overrides
73
+ * const crossAccountIgw = await InternetGateway("cross-account-igw", {
74
+ * // Override AWS credentials for this specific resource
75
+ * region: "us-east-1",
76
+ * profile: "production-account",
77
+ * tags: {
78
+ * Name: "cross-account-internet-gateway",
79
+ * Environment: "production"
75
80
  * }
76
81
  * });
77
82
  * ```
78
83
  *
79
84
  * @example
80
85
  * ```typescript
81
- * // Create Internet Gateway and attach to VPC
82
- * const vpc = new VPC({ cidrBlock: "10.0.0.0/16" });
83
- * const igw = new InternetGateway({ tags: { Name: "vpc-igw" } });
84
- * const attachment = new InternetGatewayAttachment({
85
- * internetGatewayId: igw.internetGatewayId,
86
- * vpcId: vpc.vpcId
87
- * });
88
- * ```
89
- *
90
- * @example
91
- * ```typescript
92
- * // Access Internet Gateway properties
93
- * const igw = new InternetGateway({ tags: { Name: "example-igw" } });
94
- * logger.log(`Internet Gateway ID: ${igw.internetGatewayId}`);
95
- * logger.log(`State: ${igw.state}`);
96
- * ```
97
- *
98
- * Creates and manages Internet Gateways that provide internet access to VPCs.
99
- * Note: Use InternetGatewayAttachment to attach the gateway to a VPC.
100
- *
101
- * @example
102
- * // Create a basic Internet Gateway
103
- * const igw = await InternetGateway("main-igw", {
86
+ * // Create Internet Gateway in different region with role assumption
87
+ * const multiRegionIgw = await InternetGateway("multi-region-igw", {
88
+ * region: "eu-west-1",
89
+ * roleArn: "arn:aws:iam::123456789012:role/CrossRegionRole",
90
+ * roleSessionName: "internet-gateway-deployment",
104
91
  * tags: {
105
- * Name: "main-internet-gateway",
106
- * Environment: "production"
92
+ * Name: "eu-internet-gateway",
93
+ * Region: "europe"
107
94
  * }
108
95
  * });
96
+ * ```
109
97
  *
110
98
  * @example
111
- * // Create an Internet Gateway for development environment
112
- * const devIgw = await InternetGateway("dev-igw", {
99
+ * ```typescript
100
+ * // Create Internet Gateway with explicit credentials
101
+ * const explicitCredsIgw = await InternetGateway("explicit-creds-igw", {
102
+ * accessKeyId: alchemy.secret("AKIAIOSFODNN7EXAMPLE"),
103
+ * secretAccessKey: alchemy.secret("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
104
+ * region: "us-west-2",
113
105
  * tags: {
114
- * Name: "dev-internet-gateway",
115
- * Environment: "development",
116
- * Team: "backend"
106
+ * Name: "explicit-credentials-igw",
107
+ * Purpose: "testing"
117
108
  * }
118
109
  * });
110
+ * ```
119
111
  *
120
112
  * @example
121
- * // Create an Internet Gateway with custom timeout configuration
113
+ * ```typescript
114
+ * // Create Internet Gateway with custom timeout configuration
122
115
  * const customIgw = await InternetGateway("custom-igw", {
123
116
  * timeout: {
124
117
  * maxAttempts: 90,
@@ -129,9 +122,44 @@ async function waitForInternetGatewayDeleted(client, internetGatewayId, timeoutC
129
122
  * Purpose: "high-availability"
130
123
  * }
131
124
  * });
125
+ * ```
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * // Create Internet Gateway and attach to VPC
130
+ * const vpc = await VPC("main-vpc", { cidrBlock: "10.0.0.0/16" });
131
+ * const igw = await InternetGateway("vpc-igw", {
132
+ * tags: { Name: "vpc-internet-gateway" }
133
+ * });
134
+ * const attachment = await InternetGatewayAttachment("igw-attachment", {
135
+ * internetGatewayId: igw.internetGatewayId,
136
+ * vpcId: vpc.vpcId
137
+ * });
138
+ * ```
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * // Multi-account deployment with scope-level and resource-level overrides
143
+ * await alchemy.run("production", {
144
+ * aws: { region: "us-west-2", profile: "main-account" }
145
+ * }, async () => {
146
+ * // This IGW uses scope credentials (main-account, us-west-2)
147
+ * const mainIgw = await InternetGateway("main-igw", {
148
+ * tags: { Name: "main-account-igw" }
149
+ * });
150
+ *
151
+ * // This IGW overrides to use different account
152
+ * const crossAccountIgw = await InternetGateway("cross-account-igw", {
153
+ * profile: "secondary-account",
154
+ * region: "us-east-1", // Also override region
155
+ * tags: { Name: "secondary-account-igw" }
156
+ * });
157
+ * });
158
+ * ```
132
159
  */
133
160
  export const InternetGateway = Resource("aws::InternetGateway", async function (_id, props) {
134
- const client = await createEC2Client();
161
+ // Create EC2 client with credential resolution handled internally
162
+ const client = await createEC2Client(props);
135
163
  const timeoutConfig = mergeTimeoutConfig(INTERNET_GATEWAY_TIMEOUT, props.timeout);
136
164
  if (this.phase === "delete") {
137
165
  if (this.output?.internetGatewayId) {
@@ -1 +1 @@
1
- {"version":3,"file":"internet-gateway.js","sourceRoot":"","sources":["../../../src/aws/ec2/internet-gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internet-gateway.js","sourceRoot":"","sources":["../../../src/aws/ec2/internet-gateway.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAElB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgDzD;;GAEG;AACH,KAAK,UAAU,+BAA+B,CAC5C,MAAiB,EACjB,iBAAyB,EACzB,aAA4B;IAE5B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,0BAA0B,EAC1B,+BAA+B,EAC/B;YACE,qBAAqB,EAAE,iBAAiB;SACzC,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAmC,EAAE,EAAE;QACtD,OAAO,GAAG,EAAE,KAAK,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,yCAAyC;IACnG,CAAC,CAAC;IAEF,MAAM,oBAAoB,CACxB,aAAa,EACb,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,6BAA6B,CAC1C,MAAiB,EACjB,iBAAyB,EACzB,aAA4B;IAE5B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,0BAA0B,EAC1B,+BAA+B,EAC/B;gBACE,qBAAqB,EAAE,iBAAiB;aACzC,CACF,CAAC;YACF,OAAO,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,yEAAyE;YACzE,IACE,KAAK,CAAC,IAAI,KAAK,mCAAmC;gBAClD,KAAK,CAAC,IAAI,KAAK,iCAAiC,EAChD,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAmC,EAAE,EAAE;QACtD,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,oBAAoB,CACxB,aAAa,EACb,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,CACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CACrC,sBAAsB,EACtB,KAAK,WAEH,GAAW,EACX,KAA2B;IAE3B,kEAAkE;IAClE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,kBAAkB,CACtC,wBAAwB,EACxB,KAAK,CAAC,OAAO,CACd,CAAC;IAEF,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CACR,kCAAkC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAClE,CAAC;YAEF,4EAA4E;YAC5E,MAAM,MAAM,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,UAAU,CACd,MAAM,EACN,uBAAuB,EACvB,+BAA+B,EAC/B;oBACE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;iBACjD,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,gDAAgD;YAChD,MAAM,6BAA6B,CACjC,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,aAAa,CACd,CAAC;YAEF,MAAM,CAAC,GAAG,CACR,wBAAwB,IAAI,CAAC,MAAM,CAAC,iBAAiB,qBAAqB,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,eAAmC,CAAC;IAExC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC9D,gCAAgC;QAChC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,0BAA0B,EAC1B,+BAA+B,EAC/B;YACE,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;SACrD,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,MAAM,CAAC,iBAAiB,YAAY,CAC9D,CAAC;QACJ,CAAC;QAED,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,8BAA8B;QAC9B,MAAM,2BAA2B,GAAgC,EAAE,CAAC;QAEpE,uBAAuB;QACvB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,2BAA2B,CAAC,iBAAiB,GAAG;gBAC9C;oBACE,YAAY,EAAE,kBAAkB;oBAChC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtD,GAAG,EAAE,GAAG;wBACR,KAAK,EAAE,KAAK;qBACb,CAAC,CAAC;iBACJ;aACF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,6CAA6C,CAChE,2BAA2B,CAC5B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAE3C,4CAA4C;QAC5C,MAAM,+BAA+B,CACnC,MAAM,EACN,eAAe,CAAC,iBAAkB,EAClC,aAAa,CACd,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;QACV,iBAAiB,EAAE,eAAe,CAAC,iBAAkB;QACrD,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkB;IACrD,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,IAAI,EAAE,8CAA8C;CAC9D,CAAC;AAqBF;;GAEG;AACH,SAAS,6CAA6C,CACpD,MAAmC;IAEnC,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;YAC9B,SAAS,CAAC,oBAAoB,OAAO,eAAe,CAAC;gBACnD,OAAO,CAAC,YAAY,CAAC;YAEvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC;gBAC5B,SAAS,CAAC,oBAAoB,OAAO,QAAQ,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;gBACrE,SAAS,CAAC,oBAAoB,OAAO,QAAQ,MAAM,QAAQ,CAAC;oBAC1D,GAAG,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAyDD;;GAEG;AACH,SAAS,+BAA+B,CAAI,OAAe;IACzD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;QACzB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,sCAAsC;IACtC,IAAI,MAAM,CAAC,6BAA6B,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,MAAM,CAAC,6BAA6B;aACzD,eAA4C,CAAC;QAChD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,eAAe,GAAG;gBACvB,iBAAiB,EAAE,eAAe,CAAC,iBAAiB;gBACpD,KAAK,EAAE,WAAoB,EAAE,8CAA8C;gBAC3E,WAAW,EAAE,eAAe,CAAC,aAAa,EAAE,IAAI;oBAC9C,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC;wBAChD,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI;wBACpC,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CACvC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;wBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,KAAK,EAAE,UAAU,CAAC,KAIJ;qBACf,CAAC,CAAC;oBACL,CAAC,CAAC,EAAE;gBACN,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI;oBAChC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC1C,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;4BACxC,GAAG,EAAE,GAAG,CAAC,GAAG;4BACZ,KAAK,EAAE,GAAG,CAAC,KAAK;yBACjB,CAAC,CAAC;wBACL,CAAC,CAAC;4BACE;gCACE,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gCACpC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;6BACzC;yBACF;oBACL,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,eAAe,CAAC,OAAO;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,CAAC,gCAAgC,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GACtB,MAAM,CAAC,gCAAgC,CAAC,kBAAkB,CAAC;QAC7D,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBACjD,CAAC,CAAC,kBAAkB,CAAC,IAAI;gBACzB,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAA8B,EAAE,EAAE,CAAC,CAAC;gBACtE,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,KAAK,EAAE,WAAoB;gBAC3B,WAAW,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI;oBAClC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC;wBACpC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI;wBACxB,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAC3B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;wBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,KAAK,EAAE,UAAU,CAAC,KAIJ;qBACf,CAAC,CAAC;oBACL,CAAC,CAAC,EAAE;gBACN,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI;oBACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC9B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;wBACpE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChE,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IACE,MAAM,CAAC,6BAA6B;QACpC,MAAM,CAAC,6BAA6B;QACpC,MAAM,CAAC,6BAA6B,EACpC,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import type { Context } from "../../context.ts";
2
2
  import { Resource } from "../../resource.ts";
3
3
  import { type TimeoutConfig } from "../../util/timeout.ts";
4
+ import type { AwsClientProps } from "../client-props.ts";
4
5
  import type { Subnet } from "./subnet.ts";
5
6
  /**
6
7
  * Properties for creating or updating a NAT Gateway
7
8
  */
8
- export interface NatGatewayProps {
9
+ export interface NatGatewayProps extends AwsClientProps {
9
10
  /**
10
11
  * The subnet to create the NAT Gateway in (must be a public subnet)
11
12
  */
@@ -75,39 +76,94 @@ export interface NatGateway extends Resource<"aws::NatGateway">, NatGatewayProps
75
76
  * if one is not provided. NAT Gateways are slow resources that can take
76
77
  * up to 10 minutes to become available.
77
78
  *
79
+ * Supports AWS credential overrides at the resource level, allowing you to deploy NAT Gateways
80
+ * to different AWS accounts or regions than the default scope configuration.
81
+ *
78
82
  * @example
83
+ * ```typescript
79
84
  * // Create a NAT Gateway with automatic Elastic IP allocation
80
85
  * const natGateway = await NatGateway("main-nat", {
81
- * subnet: publicSubnet,
82
- * tags: {
83
- * Name: "main-nat-gateway",
84
- * Environment: "production"
85
- * }
86
+ * subnet: publicSubnet,
87
+ * tags: {
88
+ * Name: "main-nat-gateway",
89
+ * Environment: "production"
90
+ * }
91
+ * });
92
+ * ```
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * // Create NAT Gateway with AWS credential overrides
97
+ * const crossAccountNat = await NatGateway("cross-account-nat", {
98
+ * subnet: publicSubnet,
99
+ * // Override AWS credentials for this specific resource
100
+ * region: "us-east-1",
101
+ * profile: "production-account",
102
+ * tags: {
103
+ * Name: "cross-account-nat-gateway",
104
+ * Environment: "production"
105
+ * }
106
+ * });
107
+ * ```
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * // Create NAT Gateway in different region with role assumption
112
+ * const multiRegionNat = await NatGateway("multi-region-nat", {
113
+ * subnet: euPublicSubnet,
114
+ * region: "eu-west-1",
115
+ * roleArn: "arn:aws:iam::123456789012:role/CrossRegionRole",
116
+ * roleSessionName: "nat-gateway-deployment",
117
+ * tags: {
118
+ * Name: "eu-nat-gateway",
119
+ * Region: "europe"
120
+ * }
86
121
  * });
122
+ * ```
87
123
  *
88
124
  * @example
125
+ * ```typescript
126
+ * // Create NAT Gateway with explicit credentials
127
+ * const explicitCredsNat = await NatGateway("explicit-creds-nat", {
128
+ * subnet: testPublicSubnet,
129
+ * accessKeyId: alchemy.secret("AKIAIOSFODNN7EXAMPLE"),
130
+ * secretAccessKey: alchemy.secret("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
131
+ * region: "us-west-2",
132
+ * tags: {
133
+ * Name: "explicit-credentials-nat",
134
+ * Purpose: "testing"
135
+ * }
136
+ * });
137
+ * ```
138
+ *
139
+ * @example
140
+ * ```typescript
89
141
  * // Create a NAT Gateway with existing Elastic IP
90
142
  * const natGateway = await NatGateway("custom-nat", {
91
- * subnet: "subnet-12345678",
92
- * allocationId: "eipalloc-12345678",
93
- * connectivityType: "public",
94
- * tags: {
95
- * Name: "custom-nat-gateway"
96
- * }
143
+ * subnet: "subnet-12345678",
144
+ * allocationId: "eipalloc-12345678",
145
+ * connectivityType: "public",
146
+ * tags: {
147
+ * Name: "custom-nat-gateway"
148
+ * }
97
149
  * });
150
+ * ```
98
151
  *
99
152
  * @example
153
+ * ```typescript
100
154
  * // Create a private NAT Gateway (for VPC-to-VPC communication)
101
155
  * const privateNat = await NatGateway("private-nat", {
102
- * subnet: privateSubnet,
103
- * connectivityType: "private",
104
- * tags: {
105
- * Name: "private-nat-gateway",
106
- * Type: "internal"
107
- * }
156
+ * subnet: privateSubnet,
157
+ * connectivityType: "private",
158
+ * tags: {
159
+ * Name: "private-nat-gateway",
160
+ * Type: "internal"
161
+ * }
108
162
  * });
163
+ * ```
109
164
  *
110
165
  * @example
166
+ * ```typescript
111
167
  * // Create a NAT Gateway with custom timeout configuration
112
168
  * const slowNat = await NatGateway("slow-nat", {
113
169
  * subnet: publicSubnet,
@@ -119,8 +175,32 @@ export interface NatGateway extends Resource<"aws::NatGateway">, NatGatewayProps
119
175
  * Name: "slow-nat-gateway"
120
176
  * }
121
177
  * });
178
+ * ```
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * // Multi-account deployment with scope-level and resource-level overrides
183
+ * await alchemy.run("production", {
184
+ * aws: { region: "us-west-2", profile: "main-account" }
185
+ * }, async () => {
186
+ * // This NAT Gateway uses scope credentials (main-account, us-west-2)
187
+ * const mainNat = await NatGateway("main-nat", {
188
+ * subnet: mainPublicSubnet,
189
+ * tags: { Name: "main-account-nat" }
190
+ * });
191
+ *
192
+ * // This NAT Gateway overrides to use different account
193
+ * const crossAccountNat = await NatGateway("cross-account-nat", {
194
+ * subnet: crossPublicSubnet,
195
+ * profile: "secondary-account",
196
+ * region: "us-east-1", // Also override region
197
+ * tags: { Name: "secondary-account-nat" }
198
+ * });
199
+ * });
200
+ * ```
122
201
  *
123
202
  * @example
203
+ * ```typescript
124
204
  * // Use NAT Gateway in route table for private subnet internet access
125
205
  * const privateRoute = await Route("private-internet", {
126
206
  * routeTable: privateRouteTable,
@@ -130,6 +210,7 @@ export interface NatGateway extends Resource<"aws::NatGateway">, NatGatewayProps
130
210
  * Name: "private-to-internet"
131
211
  * }
132
212
  * });
213
+ * ```
133
214
  */
134
215
  export declare const NatGateway: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<NatGateway>, _id: string, props: NatGatewayProps) => Promise<NatGateway>);
135
216
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nat-gateway.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/nat-gateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UACf,SAAQ,QAAQ,CAAC,iBAAiB,CAAC,EACjC,eAAe;IACjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IAEnE;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,UAAU,yFAGb,OAAO,CAAC,UAAU,CAAC,OACpB,MAAM,SACJ,eAAe,KACrB,OAAO,CAAC,UAAU,CAAC,CA8LvB,CAAC;AAiOF;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAGjC,CAAC"}
1
+ {"version":3,"file":"nat-gateway.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/nat-gateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UACf,SAAQ,QAAQ,CAAC,iBAAiB,CAAC,EACjC,eAAe;IACjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IAEnE;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+IG;AACH,eAAO,MAAM,UAAU,yFAGb,OAAO,CAAC,UAAU,CAAC,OACpB,MAAM,SACJ,eAAe,KACrB,OAAO,CAAC,UAAU,CAAC,CAmMvB,CAAC;AAqOF;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAGjC,CAAC"}