@alienplatform/core 2.1.6 → 3.0.1

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/index.d.ts CHANGED
@@ -1179,6 +1179,22 @@ declare const AwsNetworkImportDataSchema: z$2.ZodObject<{
1179
1179
  }, z$2.core.$strip>;
1180
1180
  type AwsNetworkImportData = z$2.infer<typeof AwsNetworkImportDataSchema>;
1181
1181
  //#endregion
1182
+ //#region src/generated/zod/aws-open-search-capacity-schema.d.ts
1183
+ /**
1184
+ * @description Indexing and search capacity limits for an OpenSearch collection group.
1185
+ */
1186
+ declare const AwsOpenSearchCapacitySchema: z$2.ZodObject<{
1187
+ indexing: z$2.ZodOptional<z$2.ZodUnion<readonly [z$2.ZodObject<{
1188
+ maxOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1189
+ minOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1190
+ }, z$2.core.$strip>, z$2.ZodNull]>>;
1191
+ search: z$2.ZodOptional<z$2.ZodUnion<readonly [z$2.ZodObject<{
1192
+ maxOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1193
+ minOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1194
+ }, z$2.core.$strip>, z$2.ZodNull]>>;
1195
+ }, z$2.core.$strip>;
1196
+ type AwsOpenSearchCapacity = z$2.infer<typeof AwsOpenSearchCapacitySchema>;
1197
+ //#endregion
1182
1198
  //#region src/generated/zod/aws-open-search-collection-type-schema.d.ts
1183
1199
  /**
1184
1200
  * @description Workload type for an OpenSearch Serverless collection.\n\n`TIMESERIES` is intentionally not exposed: next-generation serverless\nscale-to-zero targets search and vector workloads.
@@ -1201,9 +1217,19 @@ type AwsOpenSearchOutputs = z$2.infer<typeof AwsOpenSearchOutputsSchema>;
1201
1217
  //#endregion
1202
1218
  //#region src/generated/zod/aws-open-search-schema.d.ts
1203
1219
  /**
1204
- * @description An Amazon OpenSearch Serverless collection (next generation).\n\n# Experimental namespace\n\nThis is the first resource under the `experimental/` resource-type\nnamespace. Experimental resources are provider-specific (they do not\nabstract over clouds), may change or be promoted to a portable resource\nin a breaking way, and are only registered for the platforms they\nsupport. `AwsOpenSearch` registers an AWS CloudFormation emitter only;\ndeploying it to any other platform fails with a typed\n`ImportRegistrationMissing` error at generation time.\n\n# What gets provisioned\n\nThe AWS emitter provisions next-generation OpenSearch Serverless:\na collection group (`Generation: NEXTGEN`, compute/storage decoupled,\nscale-to-zero) plus a collection inside it, an AWS-owned-key encryption\nconfiguration, a public network policy, and a data-access policy for\nservice-account roles granted `experimental/aws-opensearch/data-access`.\nThe collection endpoint is public but every request must be SigV4-signed\nand pass both IAM (`aoss:APIAccessAll`) and the data-access policy.\n\n# Naming\n\nThe physical collection (and collection group) name is\n`{id}-{stack-suffix}` and must satisfy the AOSS name grammar, so `id`\nmust match `[a-z][a-z0-9-]*` and be at most 23 characters. The emitter\nrejects ids that don\'t fit.\n\n# Runtime access\n\nWorkers reach the collection over HTTPS with SigV4. The SigV4 signing\nservice name for OpenSearch Serverless is `aoss` (not `es`); the runtime\nbinding payload carries `\"service\": \"aoss\"` so clients sign correctly.\nRequests with a body must also send an `x-amz-content-sha256` header\n(the AOSS gateway rejects body-carrying requests without it with an\nempty 403); official OpenSearch clients with an `aoss` signer handle\nthis automatically.
1220
+ * @description An Amazon OpenSearch Serverless collection (next generation).\n\n# Experimental namespace\n\nThis is the first resource under the `experimental/` resource-type\nnamespace. Experimental resources are provider-specific (they do not\nabstract over clouds), may change or be promoted to a portable resource\nin a breaking way, and are only registered for the platforms they\nsupport. `AwsOpenSearch` registers an AWS CloudFormation emitter only;\ndeploying it to any other platform fails with a typed\n`ImportRegistrationMissing` error at generation time.\n\n# What gets provisioned\n\nThe AWS emitter provisions next-generation OpenSearch Serverless:\na collection group (`Generation: NEXTGEN`, compute/storage decoupled)\nplus a collection inside it, an AWS-owned-key encryption configuration,\na public network policy, and a data-access policy for service-account\nroles granted `experimental/aws-opensearch/data-access`. Collection groups\nscale to zero by default; configure a non-zero minimum capacity when the\nworkload requires predictable interactive latency.\nThe collection endpoint is public but every request must be SigV4-signed\nand pass both IAM (`aoss:APIAccessAll`) and the data-access policy.\n\n# Naming\n\nThe physical collection (and collection group) name is\n`{id}-{stack-suffix}` and must satisfy the AOSS name grammar, so `id`\nmust match `[a-z][a-z0-9-]*` and be at most 23 characters. The emitter\nrejects ids that don\'t fit.\n\n# Runtime access\n\nWorkers reach the collection over HTTPS with SigV4. The SigV4 signing\nservice name for OpenSearch Serverless is `aoss` (not `es`); the runtime\nbinding payload carries `\"service\": \"aoss\"` so clients sign correctly.\nRequests with a body must also send an `x-amz-content-sha256` header\n(the AOSS gateway rejects body-carrying requests without it with an\nempty 403); official OpenSearch clients with an `aoss` signer handle\nthis automatically.
1205
1221
  */
1206
1222
  declare const AwsOpenSearchSchema: z$2.ZodObject<{
1223
+ capacity: z$2.ZodOptional<z$2.ZodUnion<readonly [z$2.ZodObject<{
1224
+ indexing: z$2.ZodOptional<z$2.ZodUnion<readonly [z$2.ZodObject<{
1225
+ maxOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1226
+ minOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1227
+ }, z$2.core.$strip>, z$2.ZodNull]>>;
1228
+ search: z$2.ZodOptional<z$2.ZodUnion<readonly [z$2.ZodObject<{
1229
+ maxOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1230
+ minOcu: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodInt>>;
1231
+ }, z$2.core.$strip>, z$2.ZodNull]>>;
1232
+ }, z$2.core.$strip>, z$2.ZodNull]>>;
1207
1233
  collectionType: z$2.ZodOptional<z$2.ZodEnum<{
1208
1234
  search: "search";
1209
1235
  vectorSearch: "vectorSearch";
@@ -3310,10 +3336,10 @@ type BuildOutputs = z$2.infer<typeof BuildOutputsSchema>;
3310
3336
  * @description Status of a build execution.
3311
3337
  */
3312
3338
  declare const BuildStatusSchema: z$2.ZodEnum<{
3313
- SUCCEEDED: "SUCCEEDED";
3314
- FAILED: "FAILED";
3315
3339
  QUEUED: "QUEUED";
3316
3340
  RUNNING: "RUNNING";
3341
+ SUCCEEDED: "SUCCEEDED";
3342
+ FAILED: "FAILED";
3317
3343
  CANCELLED: "CANCELLED";
3318
3344
  TIMED_OUT: "TIMED_OUT";
3319
3345
  }>;
@@ -3471,11 +3497,11 @@ type CommandResponse = z$2.infer<typeof CommandResponseSchema>;
3471
3497
  * @description Command states in the Commands protocol lifecycle
3472
3498
  */
3473
3499
  declare const CommandStateSchema: z$2.ZodEnum<{
3500
+ SUCCEEDED: "SUCCEEDED";
3501
+ FAILED: "FAILED";
3474
3502
  PENDING_UPLOAD: "PENDING_UPLOAD";
3475
3503
  PENDING: "PENDING";
3476
3504
  DISPATCHED: "DISPATCHED";
3477
- SUCCEEDED: "SUCCEEDED";
3478
- FAILED: "FAILED";
3479
3505
  EXPIRED: "EXPIRED";
3480
3506
  }>;
3481
3507
  type CommandState = z$2.infer<typeof CommandStateSchema>;
@@ -3539,11 +3565,11 @@ declare const CommandStatusResponseSchema: z$2.ZodObject<{
3539
3565
  }>;
3540
3566
  }, z$2.core.$strip>]>, z$2.ZodNull]>>;
3541
3567
  state: z$2.ZodEnum<{
3568
+ SUCCEEDED: "SUCCEEDED";
3569
+ FAILED: "FAILED";
3542
3570
  PENDING_UPLOAD: "PENDING_UPLOAD";
3543
3571
  PENDING: "PENDING";
3544
3572
  DISPATCHED: "DISPATCHED";
3545
- SUCCEEDED: "SUCCEEDED";
3546
- FAILED: "FAILED";
3547
3573
  EXPIRED: "EXPIRED";
3548
3574
  }>;
3549
3575
  target: z$2.ZodObject<{
@@ -5132,11 +5158,11 @@ declare const CreateCommandResponseSchema: z$2.ZodObject<{
5132
5158
  inlineAllowedUpTo: z$2.ZodInt;
5133
5159
  next: z$2.ZodString;
5134
5160
  state: z$2.ZodEnum<{
5161
+ SUCCEEDED: "SUCCEEDED";
5162
+ FAILED: "FAILED";
5135
5163
  PENDING_UPLOAD: "PENDING_UPLOAD";
5136
5164
  PENDING: "PENDING";
5137
5165
  DISPATCHED: "DISPATCHED";
5138
- SUCCEEDED: "SUCCEEDED";
5139
- FAILED: "FAILED";
5140
5166
  EXPIRED: "EXPIRED";
5141
5167
  }>;
5142
5168
  storageUpload: z$2.ZodOptional<z$2.ZodUnion<readonly [z$2.ZodObject<{
@@ -6235,7 +6261,7 @@ type EmailOutputs = z$2.infer<typeof EmailOutputsSchema>;
6235
6261
  //#endregion
6236
6262
  //#region src/generated/zod/email-schema.d.ts
6237
6263
  /**
6238
- * @description Email infrastructure for sending and receiving mail on customer-owned\ndomains. On AWS this is backed by SES: a shared configuration set, optional\ninbound/event wiring, and one email identity (Easy DKIM) per seed domain.\n\n# Infrastructure vs runtime data\n\nThis resource owns the email *infrastructure* and the capability to use it,\nnot the domain lifecycle. Deployment manages the configuration set, the\nevent topology, the inbound receipt topology, and any seed identities\nlisted in `domains`. Email identities created at runtime through the\n`email/manage-identities` grant are application data: they are not tracked\nby the deployment, are not removed when the stack is deleted, and their\nlifecycle — including deletion — belongs to the application.\n\nThe operator (or the application, for runtime-created identities) owns DNS:\nthe per-domain DKIM CNAME records surfaced in [`EmailOutputs`] must be\ncreated before SES verifies a domain and allows sending from it.\n\n# Inbound mail (AWS)\n\nWhen `inbound` is set, a SES receipt rule set is provisioned that writes\nraw incoming mail into the linked Storage bucket. The receipt rule is a\ncatch-all (no recipient filter), so mail for identities verified at runtime\nlands in the bucket without any infrastructure change. Two caveats apply:\n\n* SES allows only **one active receipt rule set per AWS account**, and\n CloudFormation has no resource that activates a rule set. Activating the\n provisioned rule set is a documented post-deploy step:\n `aws ses set-active-receipt-rule-set --rule-set-name <ruleSetName>`.\n* SES email receiving is only available in a subset of AWS regions (see the\n SES endpoints documentation). Deploying `inbound` to an unsupported\n region fails at the CloudFormation layer.\n\n# Update semantics\n\n`domains` is append-friendly: adding a domain provisions a new identity,\nremoving a domain deletes its identity (and its DKIM verification state).\nThe list may be empty. `inbound` and `events` may be added, removed, or\nrepointed; removing them tears down the corresponding receipt rule set /\nevent destination wiring.
6264
+ * @description Email infrastructure for sending and receiving mail on customer-owned\ndomains. On AWS this is backed by SES: a shared configuration set, optional\ninbound/event wiring, and one email identity (Easy DKIM) per seed domain.\n\n# Infrastructure vs runtime data\n\nThis resource owns the email *infrastructure* and the capability to use it,\nnot the domain lifecycle. Deployment manages the configuration set, the\nevent topology, the inbound receipt topology, and any seed identities\nlisted in `domains`. Email identities created at runtime through the\n`email/manage-identities` grant are application data: they are not tracked\nby the deployment, are not removed when the stack is deleted, and their\nlifecycle — including deletion — belongs to the application.\n\nThe operator (or the application, for runtime-created identities) owns DNS:\nthe per-domain DKIM CNAME records surfaced in [`EmailOutputs`] must be\ncreated before SES verifies a domain and allows sending from it.\n\n# Inbound mail (AWS)\n\nWhen `inbound` is set, a SES receipt rule set is provisioned that writes\nraw incoming mail into the linked Storage bucket. The receipt rule is a\ncatch-all (no recipient filter), so mail for identities verified at runtime\nlands in the bucket without any infrastructure change.\n\nAlien activates the provisioned receipt rule set as part of setup. Because\nSES permits only one active receipt rule set per AWS account and region, an\nAWS stack may contain only one email resource with inbound delivery, and\ninstalling it makes its rule set the account\'s active rule set. SES email\nreceiving is available only in a subset of AWS regions; deploying `inbound`\nto an unsupported region fails during setup.\n\n# Update semantics\n\n`domains` is append-friendly: adding a domain provisions a new identity,\nremoving a domain deletes its identity (and its DKIM verification state).\nThe list may be empty. `inbound` and `events` may be added, removed, or\nrepointed; removing them tears down the corresponding receipt rule set /\nevent destination wiring.
6239
6265
  */
6240
6266
  declare const EmailSchema: z$2.ZodObject<{
6241
6267
  domains: z$2.ZodOptional<z$2.ZodArray<z$2.ZodString>>;
@@ -23412,6 +23438,7 @@ declare const StackSchema: z$2.ZodObject<{
23412
23438
  id: z$2.ZodString;
23413
23439
  type: z$2.ZodString;
23414
23440
  }, z$2.core.$strip>>;
23441
+ enabledWhen: z$2.ZodOptional<z$2.ZodNullable<z$2.ZodString>>;
23415
23442
  lifecycle: z$2.ZodEnum<{
23416
23443
  frozen: "frozen";
23417
23444
  live: "live";
@@ -24226,6 +24253,7 @@ type StorageOutputs = z$2.infer<typeof StorageOutputsSchema>;
24226
24253
  * @description Represents an object storage bucket.
24227
24254
  */
24228
24255
  declare const StorageSchema: z$2.ZodObject<{
24256
+ corsAllowedOrigins: z$2.ZodOptional<z$2.ZodArray<z$2.ZodString>>;
24229
24257
  id: z$2.ZodString;
24230
24258
  lifecycleRules: z$2.ZodOptional<z$2.ZodArray<z$2.ZodObject<{
24231
24259
  days: z$2.ZodInt;
@@ -24376,11 +24404,11 @@ type UploadCompleteRequest = z$2.infer<typeof UploadCompleteRequestSchema>;
24376
24404
  declare const UploadCompleteResponseSchema: z$2.ZodObject<{
24377
24405
  commandId: z$2.ZodString;
24378
24406
  state: z$2.ZodEnum<{
24407
+ SUCCEEDED: "SUCCEEDED";
24408
+ FAILED: "FAILED";
24379
24409
  PENDING_UPLOAD: "PENDING_UPLOAD";
24380
24410
  PENDING: "PENDING";
24381
24411
  DISPATCHED: "DISPATCHED";
24382
- SUCCEEDED: "SUCCEEDED";
24383
- FAILED: "FAILED";
24384
24412
  EXPIRED: "EXPIRED";
24385
24413
  }>;
24386
24414
  }, z$2.core.$strip>;
@@ -25416,6 +25444,79 @@ declare const WorkloadReplicaStatusSchema: z$2.ZodObject<{
25416
25444
  }, z$2.core.$strip>;
25417
25445
  type WorkloadReplicaStatus = z$2.infer<typeof WorkloadReplicaStatusSchema>;
25418
25446
  //#endregion
25447
+ //#region src/input.d.ts
25448
+ declare const stackInputDraftSymbol: unique symbol;
25449
+ declare const stackInputDefinitionsSymbol: unique symbol;
25450
+ type StackInputValue = string | number | boolean | string[];
25451
+ type OneOrMany<T> = T | readonly T[];
25452
+ type StackInputEnvMapping = string | {
25453
+ name: string;
25454
+ targetResources?: readonly string[];
25455
+ type?: StackInputEnvironmentVariableType;
25456
+ };
25457
+ interface CommonInputOptions<TDefault extends StackInputValue> {
25458
+ providedBy: OneOrMany<StackInputProvider>;
25459
+ required: boolean;
25460
+ label: string;
25461
+ description: string;
25462
+ placeholder?: string;
25463
+ default?: TDefault;
25464
+ platforms?: readonly Platform[];
25465
+ env?: OneOrMany<StackInputEnvMapping>;
25466
+ }
25467
+ interface StringInputOptions extends CommonInputOptions<string> {
25468
+ minLength?: number;
25469
+ maxLength?: number;
25470
+ pattern?: string;
25471
+ format?: string;
25472
+ }
25473
+ interface SecretInputOptions extends Omit<CommonInputOptions<string>, "default"> {
25474
+ minLength?: number;
25475
+ maxLength?: number;
25476
+ pattern?: string;
25477
+ format?: string;
25478
+ }
25479
+ interface NumberInputOptions extends CommonInputOptions<number> {
25480
+ min?: number;
25481
+ max?: number;
25482
+ }
25483
+ interface IntegerInputOptions extends CommonInputOptions<number> {
25484
+ min?: number;
25485
+ max?: number;
25486
+ }
25487
+ interface BooleanInputOptions extends CommonInputOptions<boolean> {}
25488
+ interface EnumInputOptions extends CommonInputOptions<string> {
25489
+ placeholder?: string;
25490
+ }
25491
+ interface StringListInputOptions extends CommonInputOptions<string[]> {
25492
+ minItems?: number;
25493
+ maxItems?: number;
25494
+ }
25495
+ interface StackInputRef<TValue extends StackInputValue = StackInputValue> {
25496
+ readonly id: string;
25497
+ readonly kind: StackInputKind;
25498
+ readonly __value?: TValue;
25499
+ }
25500
+ type StackInputCollection = {
25501
+ readonly [stackInputDefinitionsSymbol]: readonly StackInputDefinition[];
25502
+ };
25503
+ interface StackInputDraft<TValue extends StackInputValue = StackInputValue> {
25504
+ readonly [stackInputDraftSymbol]: true;
25505
+ readonly kind: StackInputKind;
25506
+ readonly options: CommonInputOptions<TValue>;
25507
+ readonly validation: StackInputValidation;
25508
+ }
25509
+ type StackInputSet<T extends Record<string, StackInputDraft>> = { readonly [K in keyof T]: T[K] extends StackInputDraft<infer TValue> ? StackInputRef<TValue> : never } & StackInputCollection;
25510
+ declare function inputs<const T extends Record<string, StackInputDraft>>(drafts: T): StackInputSet<T>;
25511
+ declare function getStackInputDefinitions(value: StackInputCollection | readonly StackInputDefinition[]): StackInputDefinition[];
25512
+ declare function defineStringInput(options: StringInputOptions): StackInputDraft<string>;
25513
+ declare function defineSecretInput(options: SecretInputOptions): StackInputDraft<string>;
25514
+ declare function defineNumberInput(options: NumberInputOptions): StackInputDraft<number>;
25515
+ declare function defineIntegerInput(options: IntegerInputOptions): StackInputDraft<number>;
25516
+ declare function defineBooleanInput(options: BooleanInputOptions): StackInputDraft<boolean>;
25517
+ declare function defineEnumInput<const TValues extends readonly [string, ...string[]]>(values: TValues, options: EnumInputOptions): StackInputDraft<TValues[number]>;
25518
+ declare function defineStringListInput(options: StringListInputOptions): StackInputDraft<string[]>;
25519
+ //#endregion
25419
25520
  //#region src/resource.d.ts
25420
25521
  /**
25421
25522
  * Represents a generic cloud resource within the Alien framework.
@@ -25423,11 +25524,21 @@ type WorkloadReplicaStatus = z$2.infer<typeof WorkloadReplicaStatusSchema>;
25423
25524
  */
25424
25525
  declare class Resource {
25425
25526
  config: BaseResource;
25527
+ /**
25528
+ * Id of the boolean stack input that decides whether this resource is created at all.
25529
+ * Undefined means always create it.
25530
+ *
25531
+ * Declared rather than defined because class fields materialise on construction: a
25532
+ * plain declaration would put `enabledWhen: undefined` on every resource, including
25533
+ * ungated ones, which shows up in the stack snapshots.
25534
+ */
25535
+ readonly enabledWhen?: string;
25426
25536
  /**
25427
25537
  * Creates a new Resource instance.
25428
25538
  * @param config The configuration object for this specific resource type.
25539
+ * @param enabledWhen Id of the boolean stack input gating this resource's creation.
25429
25540
  */
25430
- constructor(config: BaseResource);
25541
+ constructor(config: BaseResource, enabledWhen?: string);
25431
25542
  /**
25432
25543
  * Returns a reference to this resource.
25433
25544
  * A resource reference is used to link resources together (e.g., granting a Worker access to a Storage bucket).
@@ -25435,12 +25546,35 @@ declare class Resource {
25435
25546
  */
25436
25547
  ref(): ResourceRef;
25437
25548
  }
25549
+ /**
25550
+ * Base class for the per-resource builders, giving every resource type the same
25551
+ * `.enabled()` gate without each builder reimplementing it.
25552
+ */
25553
+ declare abstract class ResourceBuilder {
25554
+ private _enabledWhen?;
25555
+ /**
25556
+ * Creates this resource only when the given boolean stack input is true.
25557
+ * A deployer who answers no never gets the resource, its outputs, or anything derived from it.
25558
+ * A frozen resource's answer is fixed when the deployment is created; a live
25559
+ * resource follows later edits to the input, and turning it off deletes the
25560
+ * resource together with its data.
25561
+ * @param input A boolean stack input declared with alien.inputs({...}).
25562
+ * @returns The builder instance.
25563
+ */
25564
+ enabled(input: StackInputRef<boolean>): this;
25565
+ /**
25566
+ * Carries the `.enabled()` gate into the Resource.
25567
+ * @param config The validated configuration for this resource type.
25568
+ * @returns An immutable Resource.
25569
+ */
25570
+ protected resource(config: BaseResource): Resource;
25571
+ }
25438
25572
  //#endregion
25439
25573
  //#region src/storage.d.ts
25440
25574
  /**
25441
25575
  * Represents an object storage bucket.
25442
25576
  */
25443
- declare class Storage {
25577
+ declare class Storage extends ResourceBuilder {
25444
25578
  private _config;
25445
25579
  /**
25446
25580
  * Creates a new Storage builder.
@@ -25473,6 +25607,14 @@ declare class Storage {
25473
25607
  * @returns The Storage builder instance.
25474
25608
  */
25475
25609
  lifecycleRules(rules: LifecycleRule[]): this;
25610
+ /**
25611
+ * Allows browser reads from the listed origins through signed URLs.
25612
+ * Providers enable `GET` and `HEAD`; use `*` only when the signed URL itself
25613
+ * is the credential and browser cookies are not involved.
25614
+ * @param origins Allowed browser origins.
25615
+ * @returns The Storage builder instance.
25616
+ */
25617
+ corsAllowedOrigins(origins: string[]): this;
25476
25618
  /**
25477
25619
  * Builds and validates the storage configuration.
25478
25620
  * @returns An immutable Resource representing the configured storage bucket.
@@ -25512,7 +25654,7 @@ declare class Worker {
25512
25654
  /**
25513
25655
  * Sets the memory allocated to the worker in megabytes (MB).
25514
25656
  * Constraints: 128‑32768 MB (platform-specific limits may apply).
25515
- * Default: 256 MB.
25657
+ * Default: 512 MB.
25516
25658
  * @param mb The memory in MB.
25517
25659
  * @returns The Worker builder instance.
25518
25660
  */
@@ -26128,7 +26270,7 @@ declare class ArtifactRegistry {
26128
26270
  *
26129
26271
  * The vault acts as a namespace for secrets and controls access permissions for workers and services.
26130
26272
  */
26131
- declare class Vault {
26273
+ declare class Vault extends ResourceBuilder {
26132
26274
  private _config;
26133
26275
  /**
26134
26276
  * Creates a new Vault builder.
@@ -26182,7 +26324,7 @@ declare class Vault {
26182
26324
  * - Clients must de-duplicate keys across pages
26183
26325
  * - No completeness guarantee under concurrent writes
26184
26326
  */
26185
- declare class Kv {
26327
+ declare class Kv extends ResourceBuilder {
26186
26328
  private _config;
26187
26329
  /**
26188
26330
  * Creates a new KV builder.
@@ -26208,7 +26350,7 @@ declare class Kv {
26208
26350
  * Represents a managed PostgreSQL database. The target platform decides the backend;
26209
26351
  * the database is private and reachable only by same-stack workloads.
26210
26352
  */
26211
- declare class Postgres {
26353
+ declare class Postgres extends ResourceBuilder {
26212
26354
  private _config;
26213
26355
  /**
26214
26356
  * Creates a new Postgres builder.
@@ -26269,7 +26411,7 @@ declare class Postgres {
26269
26411
  * Represents a message queue resource with minimal, portable semantics.
26270
26412
  * Queue integrates with platform-native services (AWS SQS, GCP Pub/Sub, Azure Service Bus).
26271
26413
  */
26272
- declare class Queue {
26414
+ declare class Queue extends ResourceBuilder {
26273
26415
  private _config;
26274
26416
  /**
26275
26417
  * Creates a new Queue builder.
@@ -26308,10 +26450,10 @@ declare class Queue {
26308
26450
  *
26309
26451
  * When inbound mail is configured, the receipt rule is a catch-all (no
26310
26452
  * recipient filter), so mail for runtime-verified identities lands in the
26311
- * bucket without redeployment. The provisioned SES receipt rule set must be
26312
- * activated manually after deployment (only one receipt rule set can be
26313
- * active per AWS account, and CloudFormation cannot activate one):
26314
- * `aws ses set-active-receipt-rule-set --rule-set-name <ruleSetName>`.
26453
+ * bucket without redeployment. Setup activates the provisioned receipt rule
26454
+ * set automatically. SES permits one active receipt rule set per account and
26455
+ * region, so an AWS stack may contain only one Email with inbound delivery,
26456
+ * and installing it makes its rule set the account's active rule set.
26315
26457
  */
26316
26458
  declare class Email {
26317
26459
  private _config;
@@ -26439,79 +26581,6 @@ declare class ServiceAccount {
26439
26581
  build(): Resource;
26440
26582
  }
26441
26583
  //#endregion
26442
- //#region src/input.d.ts
26443
- declare const stackInputDraftSymbol: unique symbol;
26444
- declare const stackInputDefinitionsSymbol: unique symbol;
26445
- type StackInputValue = string | number | boolean | string[];
26446
- type OneOrMany<T> = T | readonly T[];
26447
- type StackInputEnvMapping = string | {
26448
- name: string;
26449
- targetResources?: readonly string[];
26450
- type?: StackInputEnvironmentVariableType;
26451
- };
26452
- interface CommonInputOptions<TDefault extends StackInputValue> {
26453
- providedBy: OneOrMany<StackInputProvider>;
26454
- required: boolean;
26455
- label: string;
26456
- description: string;
26457
- placeholder?: string;
26458
- default?: TDefault;
26459
- platforms?: readonly Platform[];
26460
- env?: OneOrMany<StackInputEnvMapping>;
26461
- }
26462
- interface StringInputOptions extends CommonInputOptions<string> {
26463
- minLength?: number;
26464
- maxLength?: number;
26465
- pattern?: string;
26466
- format?: string;
26467
- }
26468
- interface SecretInputOptions extends Omit<CommonInputOptions<string>, "default"> {
26469
- minLength?: number;
26470
- maxLength?: number;
26471
- pattern?: string;
26472
- format?: string;
26473
- }
26474
- interface NumberInputOptions extends CommonInputOptions<number> {
26475
- min?: number;
26476
- max?: number;
26477
- }
26478
- interface IntegerInputOptions extends CommonInputOptions<number> {
26479
- min?: number;
26480
- max?: number;
26481
- }
26482
- interface BooleanInputOptions extends CommonInputOptions<boolean> {}
26483
- interface EnumInputOptions extends CommonInputOptions<string> {
26484
- placeholder?: string;
26485
- }
26486
- interface StringListInputOptions extends CommonInputOptions<string[]> {
26487
- minItems?: number;
26488
- maxItems?: number;
26489
- }
26490
- interface StackInputRef<TValue extends StackInputValue = StackInputValue> {
26491
- readonly id: string;
26492
- readonly kind: StackInputKind;
26493
- readonly __value?: TValue;
26494
- }
26495
- type StackInputCollection = {
26496
- readonly [stackInputDefinitionsSymbol]: readonly StackInputDefinition[];
26497
- };
26498
- interface StackInputDraft<TValue extends StackInputValue = StackInputValue> {
26499
- readonly [stackInputDraftSymbol]: true;
26500
- readonly kind: StackInputKind;
26501
- readonly options: CommonInputOptions<TValue>;
26502
- readonly validation: StackInputValidation;
26503
- }
26504
- type StackInputSet<T extends Record<string, StackInputDraft>> = { readonly [K in keyof T]: T[K] extends StackInputDraft<infer TValue> ? StackInputRef<TValue> : never } & StackInputCollection;
26505
- declare function inputs<const T extends Record<string, StackInputDraft>>(drafts: T): StackInputSet<T>;
26506
- declare function getStackInputDefinitions(value: StackInputCollection | readonly StackInputDefinition[]): StackInputDefinition[];
26507
- declare function defineStringInput(options: StringInputOptions): StackInputDraft<string>;
26508
- declare function defineSecretInput(options: SecretInputOptions): StackInputDraft<string>;
26509
- declare function defineNumberInput(options: NumberInputOptions): StackInputDraft<number>;
26510
- declare function defineIntegerInput(options: IntegerInputOptions): StackInputDraft<number>;
26511
- declare function defineBooleanInput(options: BooleanInputOptions): StackInputDraft<boolean>;
26512
- declare function defineEnumInput<const TValues extends readonly [string, ...string[]]>(values: TValues, options: EnumInputOptions): StackInputDraft<TValues[number]>;
26513
- declare function defineStringListInput(options: StringListInputOptions): StackInputDraft<string[]>;
26514
- //#endregion
26515
26584
  //#region src/stack.d.ts
26516
26585
  /**
26517
26586
  * Options for adding a resource to a stack.
@@ -26806,6 +26875,7 @@ declare const ResourceSchemaMapping: {
26806
26875
  };
26807
26876
  storage: {
26808
26877
  input: z$1.ZodObject<{
26878
+ corsAllowedOrigins: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
26809
26879
  id: z$1.ZodString;
26810
26880
  lifecycleRules: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
26811
26881
  days: z$1.ZodInt;
@@ -27398,8 +27468,8 @@ declare const UnexpectedResourceTypeError: {
27398
27468
  //#region src/experimental/aws-opensearch.d.ts
27399
27469
  /**
27400
27470
  * An Amazon OpenSearch Serverless collection (next generation): compute and
27401
- * storage are decoupled, the collection scales to zero, and it lives inside a
27402
- * dedicated collection group.
27471
+ * storage are decoupled, and the collection lives inside a dedicated
27472
+ * collection group. By default, its compute can scale to zero.
27403
27473
  *
27404
27474
  * Experimental and AWS-only: deploying a stack containing this resource to any
27405
27475
  * other platform fails at template generation with a clear error.
@@ -27435,6 +27505,17 @@ declare class AwsOpenSearch$1 {
27435
27505
  * @returns The AwsOpenSearch builder instance.
27436
27506
  */
27437
27507
  collectionType(value: AwsOpenSearchCollectionType): this;
27508
+ /**
27509
+ * Sets the collection group's indexing and search capacity limits.
27510
+ *
27511
+ * Omit this setting to retain the provider defaults, including scale-to-zero.
27512
+ * Set a minimum of 1 OCU for latency-sensitive workloads that should remain
27513
+ * warm.
27514
+ *
27515
+ * @param value Indexing and search capacity limits.
27516
+ * @returns The AwsOpenSearch builder instance.
27517
+ */
27518
+ capacity(value: AwsOpenSearchCapacity): this;
27438
27519
  /**
27439
27520
  * Builds and validates the collection configuration.
27440
27521
  * @returns An immutable Resource representing the configured collection.