@opengeni/runtime 0.2.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/dist/chunk-2PO56VAL.js +3478 -0
- package/dist/chunk-2PO56VAL.js.map +1 -0
- package/dist/index.d.ts +912 -0
- package/dist/index.js +3663 -0
- package/dist/index.js.map +1 -0
- package/dist/sandbox/index.d.ts +1738 -0
- package/dist/sandbox/index.js +187 -0
- package/dist/sandbox/index.js.map +1 -0
- package/package.json +49 -0
- package/src/bundled_hashicorp_terraform_skills/LICENSE +373 -0
- package/src/bundled_hashicorp_terraform_skills/README.md +18 -0
- package/src/bundled_hashicorp_terraform_skills/UPSTREAM_GIT_SHA +1 -0
- package/src/bundled_hashicorp_terraform_skills/azure-verified-modules/SKILL.md +613 -0
- package/src/bundled_hashicorp_terraform_skills/checkov/SKILL.md +43 -0
- package/src/bundled_hashicorp_terraform_skills/refactor-module/SKILL.md +538 -0
- package/src/bundled_hashicorp_terraform_skills/social-media-marketing/SKILL.md +35 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-search-import/SKILL.md +372 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-search-import/references/MANUAL-IMPORT.md +113 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-search-import/scripts/list_resources.sh +38 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/SKILL.md +480 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/api-monitoring.md +543 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/component-blocks.md +476 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/deployment-blocks.md +391 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/examples.md +1529 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/linked-stacks.md +187 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/troubleshooting.md +671 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-style-guide/SKILL.md +353 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-test/SKILL.md +451 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-test/references/CI_CD.md +80 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-test/references/EXAMPLES.md +314 -0
- package/src/bundled_hashicorp_terraform_skills/terraform-test/references/MOCK_PROVIDERS.md +171 -0
- package/src/codex-tool-search.ts +267 -0
- package/src/context-compaction.ts +538 -0
- package/src/history-sanitizer.ts +719 -0
- package/src/index.ts +3299 -0
- package/src/sandbox/capabilities.ts +69 -0
- package/src/sandbox/channel-a.ts +1031 -0
- package/src/sandbox/display-stack.ts +231 -0
- package/src/sandbox/errors.ts +34 -0
- package/src/sandbox/index.ts +832 -0
- package/src/sandbox/providers/blaxel.ts +35 -0
- package/src/sandbox/providers/cloudflare.ts +24 -0
- package/src/sandbox/providers/daytona.ts +34 -0
- package/src/sandbox/providers/docker.ts +17 -0
- package/src/sandbox/providers/e2b.ts +36 -0
- package/src/sandbox/providers/index.ts +107 -0
- package/src/sandbox/providers/local.ts +13 -0
- package/src/sandbox/providers/modal.ts +55 -0
- package/src/sandbox/providers/none.ts +13 -0
- package/src/sandbox/providers/runloop.ts +32 -0
- package/src/sandbox/providers/selfhosted.ts +96 -0
- package/src/sandbox/providers/types.ts +38 -0
- package/src/sandbox/providers/vercel.ts +29 -0
- package/src/sandbox/recording.ts +286 -0
- package/src/sandbox/routing/backend-resolver.ts +189 -0
- package/src/sandbox/routing/routing-session.ts +455 -0
- package/src/sandbox/select.ts +371 -0
- package/src/sandbox/selfhosted/capabilities.ts +255 -0
- package/src/sandbox/selfhosted/control-rpc.ts +351 -0
- package/src/sandbox/selfhosted/session.ts +930 -0
- package/src/sandbox/selfhosted/testing.ts +230 -0
- package/src/sandbox/stream-port.ts +185 -0
- package/src/sandbox/stream-token.ts +90 -0
- package/src/sandbox/terminal-server.ts +203 -0
- package/src/sandbox-computer.ts +835 -0
package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/component-blocks.md
ADDED
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
# Component Configuration Block Reference
|
|
2
|
+
|
|
3
|
+
Complete reference for all blocks available in Terraform Stack component configuration files (`.tfcomponent.hcl`).
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
1. [Variable Block](#variable-block)
|
|
8
|
+
2. [Required Providers Block](#required-providers-block)
|
|
9
|
+
3. [Provider Block](#provider-block)
|
|
10
|
+
4. [Component Block](#component-block)
|
|
11
|
+
5. [Output Block](#output-block)
|
|
12
|
+
6. [Locals Block](#locals-block)
|
|
13
|
+
7. [Removed Block](#removed-block)
|
|
14
|
+
|
|
15
|
+
## Variable Block
|
|
16
|
+
|
|
17
|
+
Declares input variables for Stack configuration.
|
|
18
|
+
|
|
19
|
+
### Syntax
|
|
20
|
+
|
|
21
|
+
```hcl
|
|
22
|
+
variable "variable_name" {
|
|
23
|
+
type = <type>
|
|
24
|
+
description = "<description>"
|
|
25
|
+
default = <value>
|
|
26
|
+
sensitive = <bool>
|
|
27
|
+
nullable = <bool>
|
|
28
|
+
ephemeral = <bool>
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Arguments
|
|
33
|
+
|
|
34
|
+
- **type** (required): Data type (string, number, bool, list, map, object, set, tuple, any)
|
|
35
|
+
- **description** (optional): Variable description
|
|
36
|
+
- **default** (optional): Default value
|
|
37
|
+
- **sensitive** (optional, default false): Mark as sensitive to redact from logs
|
|
38
|
+
- **nullable** (optional, default true): Whether null is allowed
|
|
39
|
+
- **ephemeral** (optional, default false): Do not persist to state file
|
|
40
|
+
|
|
41
|
+
### Differences from Traditional Terraform
|
|
42
|
+
|
|
43
|
+
- **type** is required (not optional)
|
|
44
|
+
- **validation** argument is not supported
|
|
45
|
+
|
|
46
|
+
### Examples
|
|
47
|
+
|
|
48
|
+
```hcl
|
|
49
|
+
variable "aws_region" {
|
|
50
|
+
type = string
|
|
51
|
+
description = "AWS region for infrastructure"
|
|
52
|
+
default = "us-west-1"
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
variable "identity_token" {
|
|
56
|
+
type = string
|
|
57
|
+
description = "OIDC identity token"
|
|
58
|
+
ephemeral = true
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
variable "subnet_config" {
|
|
62
|
+
type = object({
|
|
63
|
+
cidr_block = string
|
|
64
|
+
availability_zone = string
|
|
65
|
+
map_public_ip = bool
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For complete variable examples in context, see `examples.md`.
|
|
71
|
+
|
|
72
|
+
## Required Providers Block
|
|
73
|
+
|
|
74
|
+
Declares provider dependencies.
|
|
75
|
+
|
|
76
|
+
### Syntax
|
|
77
|
+
|
|
78
|
+
```hcl
|
|
79
|
+
required_providers {
|
|
80
|
+
<provider_name> = {
|
|
81
|
+
source = "<source>"
|
|
82
|
+
version = "<version_constraint>"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Arguments
|
|
88
|
+
|
|
89
|
+
- **source** (required): Provider source address (e.g., "hashicorp/aws")
|
|
90
|
+
- **version** (optional): Version constraint (e.g., "~> 5.0")
|
|
91
|
+
|
|
92
|
+
### Examples
|
|
93
|
+
|
|
94
|
+
```hcl
|
|
95
|
+
required_providers {
|
|
96
|
+
aws = {
|
|
97
|
+
source = "hashicorp/aws"
|
|
98
|
+
version = "~> 5.7.0"
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
random = {
|
|
102
|
+
source = "hashicorp/random"
|
|
103
|
+
version = "~> 3.5.0"
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
azurerm = {
|
|
107
|
+
source = "hashicorp/azurerm"
|
|
108
|
+
version = ">= 3.0"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Provider Block
|
|
114
|
+
|
|
115
|
+
Configures provider instances.
|
|
116
|
+
|
|
117
|
+
### Syntax
|
|
118
|
+
|
|
119
|
+
```hcl
|
|
120
|
+
provider "<provider_type>" "<alias>" {
|
|
121
|
+
for_each = <map_or_set> # Optional
|
|
122
|
+
|
|
123
|
+
config {
|
|
124
|
+
<provider_arguments>
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Arguments
|
|
130
|
+
|
|
131
|
+
- **provider_type** (label 1, required): Provider type (e.g., "aws", "azurerm")
|
|
132
|
+
- **alias** (label 2, required): Unique identifier for this provider configuration
|
|
133
|
+
- **for_each** (optional): Create multiple provider instances from a map or set
|
|
134
|
+
- **config** (required): Nested block containing provider-specific configuration
|
|
135
|
+
|
|
136
|
+
### Key Differences from Traditional Terraform
|
|
137
|
+
|
|
138
|
+
1. Alias is defined in block header, not as an argument
|
|
139
|
+
2. Configuration goes in a nested `config` block
|
|
140
|
+
3. Supports `for_each` meta-argument
|
|
141
|
+
4. Provider configurations are treated as first-class values
|
|
142
|
+
|
|
143
|
+
### Example
|
|
144
|
+
|
|
145
|
+
```hcl
|
|
146
|
+
provider "aws" "main" {
|
|
147
|
+
config {
|
|
148
|
+
region = var.aws_region
|
|
149
|
+
|
|
150
|
+
assume_role_with_web_identity {
|
|
151
|
+
role_arn = var.role_arn
|
|
152
|
+
web_identity_token = var.identity_token
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
For complete provider examples including for_each and multi-cloud patterns, see `examples.md`.
|
|
159
|
+
|
|
160
|
+
## Component Block
|
|
161
|
+
|
|
162
|
+
Defines infrastructure components to include in the Stack.
|
|
163
|
+
|
|
164
|
+
### Syntax
|
|
165
|
+
|
|
166
|
+
```hcl
|
|
167
|
+
component "<component_name>" {
|
|
168
|
+
for_each = <map_or_set> # Optional
|
|
169
|
+
|
|
170
|
+
source = "<module_source>"
|
|
171
|
+
|
|
172
|
+
inputs = {
|
|
173
|
+
<input_name> = <value>
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
providers = {
|
|
177
|
+
<provider_local_name> = provider.<type>.<alias>[<key>]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Arguments
|
|
183
|
+
|
|
184
|
+
- **component_name** (label, required): Unique identifier for this component
|
|
185
|
+
- **for_each** (optional): Create multiple component instances
|
|
186
|
+
- **source** (required): Module source (see [Source Argument](#source-argument) below)
|
|
187
|
+
- **version** (optional): Version constraint for registry-based sources only
|
|
188
|
+
- **inputs** (required): Map of input variables for the module
|
|
189
|
+
- **providers** (required): Map of provider configurations
|
|
190
|
+
|
|
191
|
+
### Source Argument
|
|
192
|
+
|
|
193
|
+
The `source` argument accepts the same module sources as traditional Terraform configurations.
|
|
194
|
+
|
|
195
|
+
**Local File Path:**
|
|
196
|
+
```hcl
|
|
197
|
+
source = "./modules/vpc"
|
|
198
|
+
source = "../shared-modules/networking"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Public Terraform Registry:**
|
|
202
|
+
```hcl
|
|
203
|
+
source = "terraform-aws-modules/vpc/aws"
|
|
204
|
+
source = "hashicorp/consul/aws"
|
|
205
|
+
```
|
|
206
|
+
Format: `<NAMESPACE>/<NAME>/<PROVIDER>`
|
|
207
|
+
|
|
208
|
+
**Private HCP Terraform Registry:**
|
|
209
|
+
```hcl
|
|
210
|
+
source = "app.terraform.io/my-org/vpc/aws"
|
|
211
|
+
source = "app.terraform.io/example-corp/networking/azurerm"
|
|
212
|
+
```
|
|
213
|
+
Format: `<HOSTNAME>/<ORGANIZATION>/<MODULE_NAME>/<PROVIDER_NAME>`
|
|
214
|
+
|
|
215
|
+
- **HCP Terraform (SaaS)**: Use hostname `app.terraform.io`
|
|
216
|
+
- **Terraform Enterprise**: Use your instance hostname (e.g., `terraform.mycompany.com`)
|
|
217
|
+
- **Generic hostname**: Use `localterraform.com` for deployments spanning multiple Terraform Enterprise instances
|
|
218
|
+
|
|
219
|
+
**Git Repository:**
|
|
220
|
+
```hcl
|
|
221
|
+
source = "git::https://github.com/org/repo.git//modules/vpc?ref=v1.0.0"
|
|
222
|
+
source = "git::ssh://git@github.com/org/repo.git//modules/vpc?ref=main"
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**HTTP/HTTPS Archive:**
|
|
226
|
+
```hcl
|
|
227
|
+
source = "https://example.com/modules/vpc-module.tar.gz"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Version Argument
|
|
231
|
+
|
|
232
|
+
The `version` argument is supported only for registry-based sources (public and private registries). Local file paths and Git sources do not support the `version` argument.
|
|
233
|
+
|
|
234
|
+
```hcl
|
|
235
|
+
component "vpc" {
|
|
236
|
+
source = "app.terraform.io/my-org/vpc/aws"
|
|
237
|
+
version = "~> 2.0" # Semantic versioning constraint
|
|
238
|
+
|
|
239
|
+
inputs = {
|
|
240
|
+
cidr_block = var.vpc_cidr
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
providers = {
|
|
244
|
+
aws = provider.aws.main
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Note**: Modules sourced from local file paths always share the same version as their caller and cannot have independent version constraints.
|
|
250
|
+
|
|
251
|
+
### Component References
|
|
252
|
+
|
|
253
|
+
Access component outputs using: `component.<name>.<output>`
|
|
254
|
+
|
|
255
|
+
For components with `for_each`: `component.<name>[<key>].<output>`
|
|
256
|
+
|
|
257
|
+
### Examples
|
|
258
|
+
|
|
259
|
+
**Basic Component:**
|
|
260
|
+
|
|
261
|
+
```hcl
|
|
262
|
+
component "vpc" {
|
|
263
|
+
source = "app.terraform.io/my-org/vpc/aws"
|
|
264
|
+
version = "2.1.0"
|
|
265
|
+
|
|
266
|
+
inputs = {
|
|
267
|
+
cidr_block = var.vpc_cidr
|
|
268
|
+
name_prefix = var.name_prefix
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
providers = {
|
|
272
|
+
aws = provider.aws.main
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**Component with Dependencies:**
|
|
278
|
+
|
|
279
|
+
```hcl
|
|
280
|
+
component "database" {
|
|
281
|
+
source = "./modules/rds"
|
|
282
|
+
|
|
283
|
+
inputs = {
|
|
284
|
+
vpc_id = component.vpc.vpc_id
|
|
285
|
+
subnet_ids = component.vpc.private_subnet_ids
|
|
286
|
+
security_group_ids = [component.security.database_sg_id]
|
|
287
|
+
engine_version = var.db_engine_version
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
providers = {
|
|
291
|
+
aws = provider.aws.main
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
For complete component examples including for_each, multi-region, public registry, and multi-provider patterns, see `examples.md`.
|
|
297
|
+
|
|
298
|
+
## Output Block
|
|
299
|
+
|
|
300
|
+
Exposes values from Stack configuration.
|
|
301
|
+
|
|
302
|
+
### Syntax
|
|
303
|
+
|
|
304
|
+
```hcl
|
|
305
|
+
output "<output_name>" {
|
|
306
|
+
type = <type>
|
|
307
|
+
description = "<description>"
|
|
308
|
+
value = <expression>
|
|
309
|
+
sensitive = <bool>
|
|
310
|
+
ephemeral = <bool>
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Arguments
|
|
315
|
+
|
|
316
|
+
- **output_name** (label, required): Unique identifier for this output
|
|
317
|
+
- **type** (required): Data type of the output
|
|
318
|
+
- **description** (optional): Output description
|
|
319
|
+
- **value** (required): Expression to output
|
|
320
|
+
- **sensitive** (optional, default false): Mark as sensitive
|
|
321
|
+
- **ephemeral** (optional, default false): Ephemeral value
|
|
322
|
+
|
|
323
|
+
### Differences from Traditional Terraform
|
|
324
|
+
|
|
325
|
+
- **type** is required
|
|
326
|
+
- **precondition** block is not supported
|
|
327
|
+
|
|
328
|
+
### Examples
|
|
329
|
+
|
|
330
|
+
```hcl
|
|
331
|
+
output "vpc_id" {
|
|
332
|
+
type = string
|
|
333
|
+
description = "VPC ID"
|
|
334
|
+
value = component.vpc.vpc_id
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
output "instance_details" {
|
|
338
|
+
type = object({
|
|
339
|
+
id = string
|
|
340
|
+
public_ip = string
|
|
341
|
+
private_ip = string
|
|
342
|
+
})
|
|
343
|
+
description = "EC2 instance details"
|
|
344
|
+
value = {
|
|
345
|
+
id = component.compute.instance_id
|
|
346
|
+
public_ip = component.compute.public_ip
|
|
347
|
+
private_ip = component.compute.private_ip
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
For complete output examples including sensitive outputs and for expressions, see `examples.md`.
|
|
353
|
+
|
|
354
|
+
## Locals Block
|
|
355
|
+
|
|
356
|
+
Defines local values for reuse within the Stack configuration.
|
|
357
|
+
|
|
358
|
+
### Syntax
|
|
359
|
+
|
|
360
|
+
```hcl
|
|
361
|
+
locals {
|
|
362
|
+
<name> = <expression>
|
|
363
|
+
}
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Example
|
|
367
|
+
|
|
368
|
+
```hcl
|
|
369
|
+
locals {
|
|
370
|
+
common_tags = {
|
|
371
|
+
Environment = var.environment
|
|
372
|
+
ManagedBy = "Terraform Stacks"
|
|
373
|
+
Project = var.project_name
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
name_prefix = "${var.project_name}-${var.environment}"
|
|
377
|
+
|
|
378
|
+
region_config = {
|
|
379
|
+
for region in var.regions : region => {
|
|
380
|
+
name_suffix = region
|
|
381
|
+
instance_count = var.environment == "prod" ? 3 : 1
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
## Removed Block
|
|
388
|
+
|
|
389
|
+
Declares components to be removed from the Stack.
|
|
390
|
+
|
|
391
|
+
### Syntax
|
|
392
|
+
|
|
393
|
+
```hcl
|
|
394
|
+
removed {
|
|
395
|
+
from = component.<component_name>
|
|
396
|
+
source = "<original_module_source>"
|
|
397
|
+
|
|
398
|
+
providers = {
|
|
399
|
+
<provider_name> = provider.<type>.<alias>
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### Arguments
|
|
405
|
+
|
|
406
|
+
- **from** (required): Reference to the component being removed
|
|
407
|
+
- **source** (required): Original module source
|
|
408
|
+
- **providers** (required): Provider configurations needed for removal
|
|
409
|
+
|
|
410
|
+
### Important Notes
|
|
411
|
+
|
|
412
|
+
- Required for safe component removal
|
|
413
|
+
- Must include all providers the component used
|
|
414
|
+
- Do not remove providers before removing components that use them
|
|
415
|
+
|
|
416
|
+
### Examples
|
|
417
|
+
|
|
418
|
+
```hcl
|
|
419
|
+
removed {
|
|
420
|
+
from = component.old_component
|
|
421
|
+
source = "./modules/deprecated-module"
|
|
422
|
+
|
|
423
|
+
providers = {
|
|
424
|
+
aws = provider.aws.main
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
removed {
|
|
429
|
+
from = component.legacy_regional
|
|
430
|
+
source = "registry.terraform.io/example/legacy/aws"
|
|
431
|
+
|
|
432
|
+
providers = {
|
|
433
|
+
aws = provider.aws.main
|
|
434
|
+
random = provider.random.main
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
## Provider References in Component Blocks
|
|
440
|
+
|
|
441
|
+
### Single Provider
|
|
442
|
+
|
|
443
|
+
```hcl
|
|
444
|
+
providers = {
|
|
445
|
+
aws = provider.aws.main
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
### Multiple Providers
|
|
450
|
+
|
|
451
|
+
```hcl
|
|
452
|
+
providers = {
|
|
453
|
+
aws = provider.aws.main
|
|
454
|
+
random = provider.random.main
|
|
455
|
+
tls = provider.tls.main
|
|
456
|
+
}
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
### Provider from for_each
|
|
460
|
+
|
|
461
|
+
```hcl
|
|
462
|
+
providers = {
|
|
463
|
+
aws = provider.aws.regional[each.value]
|
|
464
|
+
}
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### Aliased Providers in Module
|
|
468
|
+
|
|
469
|
+
If module requires specific provider aliases:
|
|
470
|
+
|
|
471
|
+
```hcl
|
|
472
|
+
providers = {
|
|
473
|
+
aws.source = provider.aws.us_east
|
|
474
|
+
aws.dest = provider.aws.eu_west
|
|
475
|
+
}
|
|
476
|
+
```
|