alchemy 0.60.2 → 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.
- package/README.md +1 -2
- package/bin/alchemy.js +1480 -1498
- package/bin/commands/init.ts +94 -25
- package/bin/services/execute-alchemy.ts +32 -23
- package/lib/alchemy.d.ts +2 -2
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +1 -0
- package/lib/alchemy.js.map +1 -1
- package/lib/aws/client-props.d.ts +149 -0
- package/lib/aws/client-props.d.ts.map +1 -0
- package/lib/aws/client-props.js +1 -0
- package/lib/aws/client-props.js.map +1 -0
- package/lib/aws/credentials.d.ts +68 -5
- package/lib/aws/credentials.d.ts.map +1 -1
- package/lib/aws/credentials.js +148 -0
- package/lib/aws/credentials.js.map +1 -1
- package/lib/aws/ec2/internet-gateway-attachment.d.ts +57 -3
- package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -1
- package/lib/aws/ec2/internet-gateway-attachment.js +57 -3
- package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -1
- package/lib/aws/ec2/internet-gateway.d.ts +68 -40
- package/lib/aws/ec2/internet-gateway.d.ts.map +1 -1
- package/lib/aws/ec2/internet-gateway.js +68 -40
- package/lib/aws/ec2/internet-gateway.js.map +1 -1
- package/lib/aws/ec2/nat-gateway.d.ts +99 -18
- package/lib/aws/ec2/nat-gateway.d.ts.map +1 -1
- package/lib/aws/ec2/nat-gateway.js +113 -37
- package/lib/aws/ec2/nat-gateway.js.map +1 -1
- package/lib/aws/ec2/route-table-association.d.ts +1 -1
- package/lib/aws/ec2/route-table-association.js +1 -1
- package/lib/aws/ec2/route-table.d.ts +64 -1
- package/lib/aws/ec2/route-table.d.ts.map +1 -1
- package/lib/aws/ec2/route-table.js +64 -1
- package/lib/aws/ec2/route-table.js.map +1 -1
- package/lib/aws/ec2/route.d.ts +60 -1
- package/lib/aws/ec2/route.d.ts.map +1 -1
- package/lib/aws/ec2/route.js +60 -1
- package/lib/aws/ec2/route.js.map +1 -1
- package/lib/aws/ec2/security-group.d.ts +96 -3
- package/lib/aws/ec2/security-group.d.ts.map +1 -1
- package/lib/aws/ec2/security-group.js +96 -3
- package/lib/aws/ec2/security-group.js.map +1 -1
- package/lib/aws/ec2/subnet.d.ts +61 -3
- package/lib/aws/ec2/subnet.d.ts.map +1 -1
- package/lib/aws/ec2/subnet.js +61 -3
- package/lib/aws/ec2/subnet.js.map +1 -1
- package/lib/aws/ec2/utils.d.ts +10 -2
- package/lib/aws/ec2/utils.d.ts.map +1 -1
- package/lib/aws/ec2/utils.js +68 -7
- package/lib/aws/ec2/utils.js.map +1 -1
- package/lib/aws/ec2/vpc.d.ts +50 -2
- package/lib/aws/ec2/vpc.d.ts.map +1 -1
- package/lib/aws/ec2/vpc.js +50 -2
- package/lib/aws/ec2/vpc.js.map +1 -1
- package/lib/aws/index.d.ts +2 -0
- package/lib/aws/index.d.ts.map +1 -1
- package/lib/aws/index.js +2 -0
- package/lib/aws/index.js.map +1 -1
- package/lib/cloudflare/api-response.js +2 -2
- package/lib/cloudflare/api-response.js.map +1 -1
- package/lib/cloudflare/api.d.ts +19 -0
- package/lib/cloudflare/api.d.ts.map +1 -1
- package/lib/cloudflare/api.js +4 -0
- package/lib/cloudflare/api.js.map +1 -1
- package/lib/cloudflare/assets.d.ts.map +1 -1
- package/lib/cloudflare/assets.js +3 -4
- package/lib/cloudflare/assets.js.map +1 -1
- package/lib/cloudflare/bucket.d.ts +5 -3
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +28 -20
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/bundle/plugin-compat-warning.js +7 -7
- package/lib/cloudflare/bundle/plugin-compat-warning.js.map +1 -1
- package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
- package/lib/cloudflare/d1-migrations.js +3 -2
- package/lib/cloudflare/d1-migrations.js.map +1 -1
- package/lib/cloudflare/index.d.ts +2 -1
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +2 -1
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/kv-namespace.d.ts +2 -2
- package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
- package/lib/cloudflare/kv-namespace.js.map +1 -1
- package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/build-worker-options.js +16 -3
- package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-controller.js +3 -0
- package/lib/cloudflare/miniflare/miniflare-controller.js.map +1 -1
- package/lib/cloudflare/oauth.js +3 -3
- package/lib/cloudflare/oauth.js.map +1 -1
- package/lib/cloudflare/quick-tunnel.d.ts +17 -0
- package/lib/cloudflare/quick-tunnel.d.ts.map +1 -0
- package/lib/cloudflare/quick-tunnel.js +26 -0
- package/lib/cloudflare/quick-tunnel.js.map +1 -0
- package/lib/cloudflare/sveltekit/plugin.d.ts +2 -2
- package/lib/cloudflare/sveltekit/plugin.d.ts.map +1 -1
- package/lib/cloudflare/sveltekit/plugin.js +5 -4
- package/lib/cloudflare/sveltekit/plugin.js.map +1 -1
- package/lib/cloudflare/website.d.ts.map +1 -1
- package/lib/cloudflare/website.js +26 -97
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
- package/lib/cloudflare/worker-bundle.js +11 -9
- package/lib/cloudflare/worker-bundle.js.map +1 -1
- package/lib/cloudflare/worker-tail.d.ts.map +1 -1
- package/lib/cloudflare/worker-tail.js +6 -6
- package/lib/cloudflare/worker-tail.js.map +1 -1
- package/lib/resource.d.ts +1 -0
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js +13 -2
- package/lib/resource.js.map +1 -1
- package/lib/scope.d.ts +38 -1
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +44 -19
- package/lib/scope.js.map +1 -1
- package/lib/state/cloudflare-state-store.d.ts.map +1 -1
- package/lib/state/cloudflare-state-store.js +2 -1
- package/lib/state/cloudflare-state-store.js.map +1 -1
- package/lib/util/idempotent-spawn.d.ts +24 -0
- package/lib/util/idempotent-spawn.d.ts.map +1 -0
- package/lib/util/idempotent-spawn.js +237 -0
- package/lib/util/idempotent-spawn.js.map +1 -0
- package/lib/util/index.d.ts +2 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +2 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/safe-fetch.d.ts +24 -0
- package/lib/util/safe-fetch.d.ts.map +1 -1
- package/lib/util/safe-fetch.js +72 -0
- package/lib/util/safe-fetch.js.map +1 -1
- package/package.json +9 -5
- package/src/alchemy.ts +3 -2
- package/src/aws/client-props.ts +156 -0
- package/src/aws/credentials.ts +165 -4
- package/src/aws/ec2/internet-gateway-attachment.ts +59 -4
- package/src/aws/ec2/internet-gateway.ts +70 -41
- package/src/aws/ec2/nat-gateway.ts +123 -33
- package/src/aws/ec2/route-table-association.ts +1 -1
- package/src/aws/ec2/route-table.ts +66 -2
- package/src/aws/ec2/route.ts +62 -2
- package/src/aws/ec2/security-group.ts +98 -4
- package/src/aws/ec2/subnet.ts +63 -4
- package/src/aws/ec2/utils.ts +73 -7
- package/src/aws/ec2/vpc.ts +52 -3
- package/src/aws/index.ts +2 -0
- package/src/cloudflare/api-response.ts +2 -2
- package/src/cloudflare/api.ts +23 -0
- package/src/cloudflare/assets.ts +3 -4
- package/src/cloudflare/bucket.ts +39 -29
- package/src/cloudflare/bundle/plugin-compat-warning.ts +7 -7
- package/src/cloudflare/cloudflare-env-proxy.ts +2 -2
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/d1-migrations.ts +4 -5
- package/src/cloudflare/index.ts +2 -1
- package/src/cloudflare/kv-namespace.ts +26 -27
- package/src/cloudflare/miniflare/build-worker-options.ts +16 -3
- package/src/cloudflare/miniflare/miniflare-controller.ts +4 -0
- package/src/cloudflare/oauth.ts +3 -3
- package/src/cloudflare/quick-tunnel.ts +30 -0
- package/src/cloudflare/sveltekit/plugin.ts +5 -5
- package/src/cloudflare/website.ts +30 -111
- package/src/cloudflare/worker-bundle.ts +11 -9
- package/src/cloudflare/worker-tail.ts +6 -8
- package/src/resource.ts +19 -2
- package/src/scope.ts +111 -20
- package/src/state/cloudflare-state-store.ts +2 -1
- package/src/util/idempotent-spawn.ts +303 -0
- package/src/util/index.ts +1 -0
- package/src/util/safe-fetch.ts +114 -0
- package/templates/rwsdk/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
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 { Vpc } from "./vpc.ts";
|
|
5
6
|
/**
|
|
6
7
|
* Security Group timeout constants
|
|
@@ -9,7 +10,7 @@ export declare const SECURITY_GROUP_TIMEOUT: TimeoutConfig;
|
|
|
9
10
|
/**
|
|
10
11
|
* Properties for creating or updating a Security Group
|
|
11
12
|
*/
|
|
12
|
-
export interface SecurityGroupProps {
|
|
13
|
+
export interface SecurityGroupProps extends AwsClientProps {
|
|
13
14
|
/**
|
|
14
15
|
* The VPC to create the security group in.
|
|
15
16
|
*/
|
|
@@ -56,8 +57,12 @@ export interface SecurityGroup extends Resource<"aws::SecurityGroup">, SecurityG
|
|
|
56
57
|
* instances and other AWS resources. Rules are managed separately using the
|
|
57
58
|
* `SecurityGroupRule` resource.
|
|
58
59
|
*
|
|
60
|
+
* Supports AWS credential overrides at the resource level, allowing you to deploy Security Groups
|
|
61
|
+
* to different AWS accounts or regions than the default scope configuration.
|
|
62
|
+
*
|
|
59
63
|
* @example
|
|
60
|
-
*
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Create a basic web server security group
|
|
61
66
|
* const webSecurityGroup = await SecurityGroup("web-sg", {
|
|
62
67
|
* vpc: mainVpc,
|
|
63
68
|
* groupName: "web-server-sg",
|
|
@@ -67,11 +72,72 @@ export interface SecurityGroup extends Resource<"aws::SecurityGroup">, SecurityG
|
|
|
67
72
|
* Environment: "production"
|
|
68
73
|
* }
|
|
69
74
|
* });
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* // Create Security Group with AWS credential overrides
|
|
80
|
+
* const crossAccountSg = await SecurityGroup("cross-account-sg", {
|
|
81
|
+
* vpc: mainVpc,
|
|
82
|
+
* groupName: "cross-account-security-group",
|
|
83
|
+
* description: "Security group in different account",
|
|
84
|
+
* // Override AWS credentials for this specific resource
|
|
85
|
+
* region: "us-east-1",
|
|
86
|
+
* profile: "production-account",
|
|
87
|
+
* tags: {
|
|
88
|
+
* Name: "cross-account-sg",
|
|
89
|
+
* Environment: "production"
|
|
90
|
+
* }
|
|
91
|
+
* });
|
|
92
|
+
* ```
|
|
70
93
|
*
|
|
71
94
|
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* // Create Security Group in different region with role assumption
|
|
97
|
+
* const multiRegionSg = await SecurityGroup("multi-region-sg", {
|
|
98
|
+
* vpc: euVpc,
|
|
99
|
+
* groupName: "eu-security-group",
|
|
100
|
+
* description: "Security group in EU region",
|
|
101
|
+
* region: "eu-west-1",
|
|
102
|
+
* roleArn: "arn:aws:iam::123456789012:role/CrossRegionRole",
|
|
103
|
+
* roleSessionName: "security-group-deployment",
|
|
104
|
+
* tags: {
|
|
105
|
+
* Name: "eu-security-group",
|
|
106
|
+
* Region: "europe"
|
|
107
|
+
* }
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* // Create Security Group with explicit credentials
|
|
114
|
+
* const explicitCredsSg = await SecurityGroup("explicit-creds-sg", {
|
|
115
|
+
* vpc: testVpc,
|
|
116
|
+
* groupName: "test-security-group",
|
|
117
|
+
* description: "Security group with explicit credentials",
|
|
118
|
+
* accessKeyId: alchemy.secret("AKIAIOSFODNN7EXAMPLE"),
|
|
119
|
+
* secretAccessKey: alchemy.secret("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
|
|
120
|
+
* region: "us-west-2",
|
|
121
|
+
* tags: {
|
|
122
|
+
* Name: "explicit-credentials-sg",
|
|
123
|
+
* Purpose: "testing"
|
|
124
|
+
* }
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* // Create Security Group with rules (rules managed separately)
|
|
131
|
+
* const webSg = await SecurityGroup("web-sg", {
|
|
132
|
+
* vpc: mainVpc,
|
|
133
|
+
* groupName: "web-server-sg",
|
|
134
|
+
* description: "Security group for web servers",
|
|
135
|
+
* tags: { Name: "web-server-security-group" }
|
|
136
|
+
* });
|
|
137
|
+
*
|
|
72
138
|
* // Separately, define a rule to allow HTTP traffic
|
|
73
139
|
* const httpRule = await SecurityGroupRule("web-sg-http-rule", {
|
|
74
|
-
* securityGroup:
|
|
140
|
+
* securityGroup: webSg,
|
|
75
141
|
* type: "ingress",
|
|
76
142
|
* protocol: "tcp",
|
|
77
143
|
* fromPort: 80,
|
|
@@ -79,6 +145,33 @@ export interface SecurityGroup extends Resource<"aws::SecurityGroup">, SecurityG
|
|
|
79
145
|
* cidrBlocks: ["0.0.0.0/0"],
|
|
80
146
|
* description: "Allow HTTP access from anywhere"
|
|
81
147
|
* });
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* // Multi-account deployment with scope-level and resource-level overrides
|
|
153
|
+
* await alchemy.run("production", {
|
|
154
|
+
* aws: { region: "us-west-2", profile: "main-account" }
|
|
155
|
+
* }, async () => {
|
|
156
|
+
* // This SG uses scope credentials (main-account, us-west-2)
|
|
157
|
+
* const mainSg = await SecurityGroup("main-sg", {
|
|
158
|
+
* vpc: mainVpc,
|
|
159
|
+
* groupName: "main-account-sg",
|
|
160
|
+
* description: "Security group in main account",
|
|
161
|
+
* tags: { Name: "main-account-sg" }
|
|
162
|
+
* });
|
|
163
|
+
*
|
|
164
|
+
* // This SG overrides to use different account
|
|
165
|
+
* const crossAccountSg = await SecurityGroup("cross-account-sg", {
|
|
166
|
+
* vpc: crossVpc,
|
|
167
|
+
* groupName: "secondary-account-sg",
|
|
168
|
+
* description: "Security group in secondary account",
|
|
169
|
+
* profile: "secondary-account",
|
|
170
|
+
* region: "us-east-1", // Also override region
|
|
171
|
+
* tags: { Name: "secondary-account-sg" }
|
|
172
|
+
* });
|
|
173
|
+
* });
|
|
174
|
+
* ```
|
|
82
175
|
*/
|
|
83
176
|
export declare const SecurityGroup: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<SecurityGroup>, _id: string, props: SecurityGroupProps) => Promise<SecurityGroup>);
|
|
84
177
|
//# sourceMappingURL=security-group.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-group.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/security-group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"security-group.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/security-group.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAGpC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;OAEG;IACH,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;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,aACf,SAAQ,QAAQ,CAAC,oBAAoB,CAAC,EACpC,kBAAkB;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0HG;AACH,eAAO,MAAM,aAAa,yFAGhB,OAAO,CAAC,aAAa,CAAC,OACvB,MAAM,SACJ,kBAAkB,KACxB,OAAO,CAAC,aAAa,CAAC,CAqH1B,CAAC"}
|
|
@@ -17,8 +17,12 @@ export const SECURITY_GROUP_TIMEOUT = {
|
|
|
17
17
|
* instances and other AWS resources. Rules are managed separately using the
|
|
18
18
|
* `SecurityGroupRule` resource.
|
|
19
19
|
*
|
|
20
|
+
* Supports AWS credential overrides at the resource level, allowing you to deploy Security Groups
|
|
21
|
+
* to different AWS accounts or regions than the default scope configuration.
|
|
22
|
+
*
|
|
20
23
|
* @example
|
|
21
|
-
*
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Create a basic web server security group
|
|
22
26
|
* const webSecurityGroup = await SecurityGroup("web-sg", {
|
|
23
27
|
* vpc: mainVpc,
|
|
24
28
|
* groupName: "web-server-sg",
|
|
@@ -28,11 +32,72 @@ export const SECURITY_GROUP_TIMEOUT = {
|
|
|
28
32
|
* Environment: "production"
|
|
29
33
|
* }
|
|
30
34
|
* });
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // Create Security Group with AWS credential overrides
|
|
40
|
+
* const crossAccountSg = await SecurityGroup("cross-account-sg", {
|
|
41
|
+
* vpc: mainVpc,
|
|
42
|
+
* groupName: "cross-account-security-group",
|
|
43
|
+
* description: "Security group in different account",
|
|
44
|
+
* // Override AWS credentials for this specific resource
|
|
45
|
+
* region: "us-east-1",
|
|
46
|
+
* profile: "production-account",
|
|
47
|
+
* tags: {
|
|
48
|
+
* Name: "cross-account-sg",
|
|
49
|
+
* Environment: "production"
|
|
50
|
+
* }
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
31
53
|
*
|
|
32
54
|
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // Create Security Group in different region with role assumption
|
|
57
|
+
* const multiRegionSg = await SecurityGroup("multi-region-sg", {
|
|
58
|
+
* vpc: euVpc,
|
|
59
|
+
* groupName: "eu-security-group",
|
|
60
|
+
* description: "Security group in EU region",
|
|
61
|
+
* region: "eu-west-1",
|
|
62
|
+
* roleArn: "arn:aws:iam::123456789012:role/CrossRegionRole",
|
|
63
|
+
* roleSessionName: "security-group-deployment",
|
|
64
|
+
* tags: {
|
|
65
|
+
* Name: "eu-security-group",
|
|
66
|
+
* Region: "europe"
|
|
67
|
+
* }
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Create Security Group with explicit credentials
|
|
74
|
+
* const explicitCredsSg = await SecurityGroup("explicit-creds-sg", {
|
|
75
|
+
* vpc: testVpc,
|
|
76
|
+
* groupName: "test-security-group",
|
|
77
|
+
* description: "Security group with explicit credentials",
|
|
78
|
+
* accessKeyId: alchemy.secret("AKIAIOSFODNN7EXAMPLE"),
|
|
79
|
+
* secretAccessKey: alchemy.secret("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
|
|
80
|
+
* region: "us-west-2",
|
|
81
|
+
* tags: {
|
|
82
|
+
* Name: "explicit-credentials-sg",
|
|
83
|
+
* Purpose: "testing"
|
|
84
|
+
* }
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* // Create Security Group with rules (rules managed separately)
|
|
91
|
+
* const webSg = await SecurityGroup("web-sg", {
|
|
92
|
+
* vpc: mainVpc,
|
|
93
|
+
* groupName: "web-server-sg",
|
|
94
|
+
* description: "Security group for web servers",
|
|
95
|
+
* tags: { Name: "web-server-security-group" }
|
|
96
|
+
* });
|
|
97
|
+
*
|
|
33
98
|
* // Separately, define a rule to allow HTTP traffic
|
|
34
99
|
* const httpRule = await SecurityGroupRule("web-sg-http-rule", {
|
|
35
|
-
* securityGroup:
|
|
100
|
+
* securityGroup: webSg,
|
|
36
101
|
* type: "ingress",
|
|
37
102
|
* protocol: "tcp",
|
|
38
103
|
* fromPort: 80,
|
|
@@ -40,9 +105,37 @@ export const SECURITY_GROUP_TIMEOUT = {
|
|
|
40
105
|
* cidrBlocks: ["0.0.0.0/0"],
|
|
41
106
|
* description: "Allow HTTP access from anywhere"
|
|
42
107
|
* });
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* // Multi-account deployment with scope-level and resource-level overrides
|
|
113
|
+
* await alchemy.run("production", {
|
|
114
|
+
* aws: { region: "us-west-2", profile: "main-account" }
|
|
115
|
+
* }, async () => {
|
|
116
|
+
* // This SG uses scope credentials (main-account, us-west-2)
|
|
117
|
+
* const mainSg = await SecurityGroup("main-sg", {
|
|
118
|
+
* vpc: mainVpc,
|
|
119
|
+
* groupName: "main-account-sg",
|
|
120
|
+
* description: "Security group in main account",
|
|
121
|
+
* tags: { Name: "main-account-sg" }
|
|
122
|
+
* });
|
|
123
|
+
*
|
|
124
|
+
* // This SG overrides to use different account
|
|
125
|
+
* const crossAccountSg = await SecurityGroup("cross-account-sg", {
|
|
126
|
+
* vpc: crossVpc,
|
|
127
|
+
* groupName: "secondary-account-sg",
|
|
128
|
+
* description: "Security group in secondary account",
|
|
129
|
+
* profile: "secondary-account",
|
|
130
|
+
* region: "us-east-1", // Also override region
|
|
131
|
+
* tags: { Name: "secondary-account-sg" }
|
|
132
|
+
* });
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
43
135
|
*/
|
|
44
136
|
export const SecurityGroup = Resource("aws::SecurityGroup", async function (_id, props) {
|
|
45
|
-
|
|
137
|
+
// Create EC2 client with credential resolution handled internally
|
|
138
|
+
const client = await createEC2Client(props);
|
|
46
139
|
const vpcId = typeof props.vpc === "string" ? props.vpc : props.vpc.vpcId;
|
|
47
140
|
const timeoutConfig = mergeTimeoutConfig(SECURITY_GROUP_TIMEOUT, props.timeout);
|
|
48
141
|
if (this.phase === "delete") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-group.js","sourceRoot":"","sources":["../../../src/aws/ec2/security-group.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,EACL,kBAAkB,EAElB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"security-group.js","sourceRoot":"","sources":["../../../src/aws/ec2/security-group.ts"],"names":[],"mappings":"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"}
|
package/lib/aws/ec2/subnet.d.ts
CHANGED
|
@@ -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 { Vpc } from "./vpc.ts";
|
|
5
6
|
/**
|
|
6
7
|
* Properties for creating or updating a Subnet
|
|
7
8
|
*/
|
|
8
|
-
export interface SubnetProps {
|
|
9
|
+
export interface SubnetProps extends AwsClientProps {
|
|
9
10
|
/**
|
|
10
11
|
* The VPC to create the subnet in
|
|
11
12
|
*/
|
|
@@ -62,14 +63,15 @@ export interface Subnet extends Resource<"aws::Subnet">, SubnetProps {
|
|
|
62
63
|
* AWS Subnet Resource
|
|
63
64
|
*
|
|
64
65
|
* Creates and manages subnets within a VPC. Subnets are used to segment
|
|
65
|
-
* your VPC into smaller networks for organizing resources.
|
|
66
|
+
* your VPC into smaller networks for organizing resources. Supports AWS
|
|
67
|
+
* credential overrides for multi-account and cross-region deployments.
|
|
66
68
|
*
|
|
67
69
|
* @example
|
|
68
70
|
* // Create a public subnet for web servers
|
|
69
71
|
* const publicSubnet = await Subnet("public-subnet", {
|
|
70
72
|
* vpc: myVpc,
|
|
71
73
|
* cidrBlock: "10.0.1.0/24",
|
|
72
|
-
* availabilityZone:
|
|
74
|
+
* availabilityZone: `${process.env.AWS_REGION}a` || "us-east-1a",
|
|
73
75
|
* mapPublicIpOnLaunch: true,
|
|
74
76
|
* tags: {
|
|
75
77
|
* Name: "public-subnet",
|
|
@@ -101,6 +103,62 @@ export interface Subnet extends Resource<"aws::Subnet">, SubnetProps {
|
|
|
101
103
|
* delayMs: 500
|
|
102
104
|
* }
|
|
103
105
|
* });
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* // Create a subnet with AWS credential overrides for cross-account deployment
|
|
109
|
+
* const crossAccountSubnet = await Subnet("cross-account-subnet", {
|
|
110
|
+
* vpc: myVpc,
|
|
111
|
+
* cidrBlock: "10.1.1.0/24",
|
|
112
|
+
* availabilityZone: "us-east-1a",
|
|
113
|
+
* region: "us-east-1",
|
|
114
|
+
* profile: "production-account",
|
|
115
|
+
* mapPublicIpOnLaunch: true,
|
|
116
|
+
* tags: {
|
|
117
|
+
* Name: "cross-account-subnet",
|
|
118
|
+
* Account: "production"
|
|
119
|
+
* }
|
|
120
|
+
* });
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* // Create a subnet in a different region with explicit credentials
|
|
124
|
+
* const multiRegionSubnet = await Subnet("multi-region-subnet", {
|
|
125
|
+
* vpc: "vpc-12345678", // VPC ID from different region
|
|
126
|
+
* cidrBlock: "10.2.1.0/24",
|
|
127
|
+
* availabilityZone: "eu-west-1a",
|
|
128
|
+
* region: "eu-west-1",
|
|
129
|
+
* accessKeyId: alchemy.secret("AKIA..."),
|
|
130
|
+
* secretAccessKey: alchemy.secret("..."),
|
|
131
|
+
* mapPublicIpOnLaunch: false,
|
|
132
|
+
* tags: {
|
|
133
|
+
* Name: "eu-subnet",
|
|
134
|
+
* Region: "europe"
|
|
135
|
+
* }
|
|
136
|
+
* });
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* // Using scope-level credentials with resource-level overrides
|
|
140
|
+
* await alchemy.run("multi-account", {
|
|
141
|
+
* aws: {
|
|
142
|
+
* region: "us-west-2",
|
|
143
|
+
* profile: "staging"
|
|
144
|
+
* }
|
|
145
|
+
* }, async () => {
|
|
146
|
+
* // This subnet uses staging credentials from scope
|
|
147
|
+
* const stagingSubnet = await Subnet("staging-subnet", {
|
|
148
|
+
* vpc: stagingVpc,
|
|
149
|
+
* cidrBlock: "10.0.1.0/24",
|
|
150
|
+
* availabilityZone: "us-west-2a"
|
|
151
|
+
* });
|
|
152
|
+
*
|
|
153
|
+
* // This subnet overrides to use production credentials
|
|
154
|
+
* const prodSubnet = await Subnet("prod-subnet", {
|
|
155
|
+
* vpc: prodVpc,
|
|
156
|
+
* cidrBlock: "10.1.1.0/24",
|
|
157
|
+
* availabilityZone: "us-east-1a",
|
|
158
|
+
* profile: "production",
|
|
159
|
+
* region: "us-east-1"
|
|
160
|
+
* });
|
|
161
|
+
* });
|
|
104
162
|
*/
|
|
105
163
|
export declare const Subnet: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Subnet>, _id: string, props: SubnetProps) => Promise<Subnet>);
|
|
106
164
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subnet.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.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;
|
|
1
|
+
{"version":3,"file":"subnet.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.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,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD;;OAEG;IACH,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;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,MAAO,SAAQ,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW;IAClE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAE/B;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,eAAO,MAAM,MAAM,yFAGT,OAAO,CAAC,MAAM,CAAC,OAChB,MAAM,SACJ,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,CAqJnB,CAAC;AA4EF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,aAG5B,CAAC"}
|
package/lib/aws/ec2/subnet.js
CHANGED
|
@@ -50,14 +50,15 @@ async function waitForSubnetDeleted(client, subnetId, timeoutConfig) {
|
|
|
50
50
|
* AWS Subnet Resource
|
|
51
51
|
*
|
|
52
52
|
* Creates and manages subnets within a VPC. Subnets are used to segment
|
|
53
|
-
* your VPC into smaller networks for organizing resources.
|
|
53
|
+
* your VPC into smaller networks for organizing resources. Supports AWS
|
|
54
|
+
* credential overrides for multi-account and cross-region deployments.
|
|
54
55
|
*
|
|
55
56
|
* @example
|
|
56
57
|
* // Create a public subnet for web servers
|
|
57
58
|
* const publicSubnet = await Subnet("public-subnet", {
|
|
58
59
|
* vpc: myVpc,
|
|
59
60
|
* cidrBlock: "10.0.1.0/24",
|
|
60
|
-
* availabilityZone:
|
|
61
|
+
* availabilityZone: `${process.env.AWS_REGION}a` || "us-east-1a",
|
|
61
62
|
* mapPublicIpOnLaunch: true,
|
|
62
63
|
* tags: {
|
|
63
64
|
* Name: "public-subnet",
|
|
@@ -89,9 +90,66 @@ async function waitForSubnetDeleted(client, subnetId, timeoutConfig) {
|
|
|
89
90
|
* delayMs: 500
|
|
90
91
|
* }
|
|
91
92
|
* });
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* // Create a subnet with AWS credential overrides for cross-account deployment
|
|
96
|
+
* const crossAccountSubnet = await Subnet("cross-account-subnet", {
|
|
97
|
+
* vpc: myVpc,
|
|
98
|
+
* cidrBlock: "10.1.1.0/24",
|
|
99
|
+
* availabilityZone: "us-east-1a",
|
|
100
|
+
* region: "us-east-1",
|
|
101
|
+
* profile: "production-account",
|
|
102
|
+
* mapPublicIpOnLaunch: true,
|
|
103
|
+
* tags: {
|
|
104
|
+
* Name: "cross-account-subnet",
|
|
105
|
+
* Account: "production"
|
|
106
|
+
* }
|
|
107
|
+
* });
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* // Create a subnet in a different region with explicit credentials
|
|
111
|
+
* const multiRegionSubnet = await Subnet("multi-region-subnet", {
|
|
112
|
+
* vpc: "vpc-12345678", // VPC ID from different region
|
|
113
|
+
* cidrBlock: "10.2.1.0/24",
|
|
114
|
+
* availabilityZone: "eu-west-1a",
|
|
115
|
+
* region: "eu-west-1",
|
|
116
|
+
* accessKeyId: alchemy.secret("AKIA..."),
|
|
117
|
+
* secretAccessKey: alchemy.secret("..."),
|
|
118
|
+
* mapPublicIpOnLaunch: false,
|
|
119
|
+
* tags: {
|
|
120
|
+
* Name: "eu-subnet",
|
|
121
|
+
* Region: "europe"
|
|
122
|
+
* }
|
|
123
|
+
* });
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* // Using scope-level credentials with resource-level overrides
|
|
127
|
+
* await alchemy.run("multi-account", {
|
|
128
|
+
* aws: {
|
|
129
|
+
* region: "us-west-2",
|
|
130
|
+
* profile: "staging"
|
|
131
|
+
* }
|
|
132
|
+
* }, async () => {
|
|
133
|
+
* // This subnet uses staging credentials from scope
|
|
134
|
+
* const stagingSubnet = await Subnet("staging-subnet", {
|
|
135
|
+
* vpc: stagingVpc,
|
|
136
|
+
* cidrBlock: "10.0.1.0/24",
|
|
137
|
+
* availabilityZone: "us-west-2a"
|
|
138
|
+
* });
|
|
139
|
+
*
|
|
140
|
+
* // This subnet overrides to use production credentials
|
|
141
|
+
* const prodSubnet = await Subnet("prod-subnet", {
|
|
142
|
+
* vpc: prodVpc,
|
|
143
|
+
* cidrBlock: "10.1.1.0/24",
|
|
144
|
+
* availabilityZone: "us-east-1a",
|
|
145
|
+
* profile: "production",
|
|
146
|
+
* region: "us-east-1"
|
|
147
|
+
* });
|
|
148
|
+
* });
|
|
92
149
|
*/
|
|
93
150
|
export const Subnet = Resource("aws::Subnet", async function (_id, props) {
|
|
94
|
-
|
|
151
|
+
// Create EC2 client with credential resolution handled internally
|
|
152
|
+
const client = await createEC2Client(props);
|
|
95
153
|
const vpcId = typeof props.vpc === "string" ? props.vpc : props.vpc.vpcId;
|
|
96
154
|
// Validate timeout config early, but use default for deletion if invalid
|
|
97
155
|
let timeoutConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subnet.js","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.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;
|
|
1
|
+
{"version":3,"file":"subnet.js","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.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,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAsEzD;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAiB,EACjB,QAAgB,EAChB,aAA4B;IAE5B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,iBAAiB,EACjB,sBAAsB,EACtB;YACE,YAAY,EAAE,QAAQ;SACvB,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,MAA6B,EAAE,EAAE;QAChD,OAAO,MAAM,EAAE,KAAK,KAAK,WAAW,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,oBAAoB,CACxB,aAAa,EACb,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,MAAiB,EACjB,QAAgB,EAChB,aAA4B;IAE5B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,iBAAiB,EACjB,sBAAsB,EACtB;gBACE,YAAY,EAAE,QAAQ;aACvB,CACF,CAAC;YACF,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,+DAA+D;YAC/D,IACE,KAAK,CAAC,IAAI,KAAK,0BAA0B;gBACzC,KAAK,CAAC,IAAI,KAAK,wBAAwB,EACvC,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,MAA6B,EAAE,EAAE;QAChD,wCAAwC;QACxC,OAAO,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,oBAAoB,CACxB,aAAa,EACb,OAAO,EACP,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,YAAY,CACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAC5B,aAAa,EACb,KAAK,WAEH,GAAW,EACX,KAAkB;IAElB,kEAAkE;IAClE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IAE1E,yEAAyE;IACzE,IAAI,aAA4B,CAAC;IACjC,IAAI,CAAC;QACH,aAAa,GAAG,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,6DAA6D;YAC7D,aAAa,GAAG,cAAc,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC,KAAK,IAAI,EAAE;gBACrB,MAAM,MAAM,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;oBAClD,MAAM,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE;wBAC/D,QAAQ,EAAE,IAAI,CAAC,MAAO,CAAC,QAAQ;qBAChC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,qEAAqE;YACrE,MAAM,CAAC,GAAG,CACR,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,yBAAyB,CACtE,CAAC;YACF,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,qBAAqB,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,MAAiB,CAAC;IAEtB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrD,sBAAsB;QACtB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,iBAAiB,EACjB,sBAAsB,EACtB;YACE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SACnC,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE7B,gDAAgD;QAChD,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,UAAU,CACd,MAAM,EACN,uBAAuB,EACvB,sBAAsB,EACtB;gBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,2BAA2B,EAAE,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE;aAClE,CACF,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,SAAS,GAA2B,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;gBACzD,SAAS,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;gBACxC,SAAS,CAAC,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE;gBAC7D,cAAc,EAAE,MAAM,CAAC,QAAQ;gBAC/B,GAAG,SAAS;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,CAAC;QACN,oBAAoB;QACpB,MAAM,kBAAkB,GAAuB;YAC7C,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;QAEF,wBAAwB;QACxB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,kBAAkB,CAAC,iBAAiB,GAAG;gBACrC;oBACE,YAAY,EAAE,QAAQ;oBACtB,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,GAChB,oCAAoC,CAAC,kBAAkB,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,cAAc,EACd,sBAAsB,EACtB,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEzB,wCAAwC;QACxC,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,UAAU,CACd,MAAM,EACN,uBAAuB,EACvB,sBAAsB,EACtB;gBACE,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,2BAA2B,EAAE,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE;aAClE,CACF,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAgC;QAC9C,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,GAAG,KAAK;QACR,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF;;GAEG;AACH,SAAS,sBAAsB,CAK7B,OAAe;IACf,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,6BAA6B;IAC7B,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAyB,CAAC;QACrE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,GAAG;gBACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;aAChD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;QAC3D,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC3C,CAAC,CAAC,SAAS,CAAC,IAAI;gBAChB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAuB,EAAE,EAAE,CAAC,CAAC;gBACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;aAChD,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG;QACvB,+BAA+B;QAC/B,sBAAsB;KACvB,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,IAAI,EAAE,+BAA+B;CAC/C,CAAC;AA+EF;;GAEG;AACH,SAAS,oCAAoC,CAC3C,MAA0B;IAE1B,MAAM,SAAS,GAA2B;QACxC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,SAAS,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,SAAS,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACjE,CAAC;IAED,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC7C,SAAS,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,MAAM,CAAC,0BAA0B,KAAK,SAAS,EAAE,CAAC;QACpD,SAAS,CAAC,0BAA0B;YAClC,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,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"}
|
package/lib/aws/ec2/utils.d.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { AwsClient } from "aws4fetch";
|
|
2
|
+
import type { AwsClientProps } from "../client-props.ts";
|
|
2
3
|
import { getRegion } from "../utils.ts";
|
|
3
4
|
/**
|
|
4
5
|
* Shared EC2 utilities for all EC2 resources
|
|
5
6
|
*/
|
|
6
7
|
/**
|
|
7
|
-
* Create an AWS EC2 client
|
|
8
|
+
* Create an AWS EC2 client with credential resolution from props
|
|
9
|
+
*
|
|
10
|
+
* This function handles the complete credential resolution process internally,
|
|
11
|
+
* merging global, scope, and resource-level credentials according to the
|
|
12
|
+
* established precedence hierarchy.
|
|
13
|
+
*
|
|
14
|
+
* @param props - AWS client properties that may include credential overrides
|
|
15
|
+
* @returns Promise<AwsClient> - Configured AWS client for EC2 operations
|
|
8
16
|
*/
|
|
9
|
-
export declare function createEC2Client(): Promise<AwsClient>;
|
|
17
|
+
export declare function createEC2Client(props?: AwsClientProps): Promise<AwsClient>;
|
|
10
18
|
/**
|
|
11
19
|
* Make an EC2 API call with custom response parser
|
|
12
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAKtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,SAAS,CAAC,CAoDpB;AAYD;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,EACtC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAC/B,OAAO,CAAC,CAAC,CAAC,CAkEZ;AAGD,OAAO,EAAE,SAAS,EAAE,CAAC"}
|