@intentius/chant-lexicon-aws 0.18.37 → 0.19.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.
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "86b62ac993900475413852b8d72bd2191df18c78506c3d0e21d7dd2c49c68cb1",
5
- "meta.json": "dcddef61188a10733c993daaca4c209c7f0948ee95a63c20477875cf794f596e",
6
- "types/index.d.ts": "5444b8212f0ab3c649e0dd8b1e8d4824eeb5c33d58b0ec053c5ee3fb97da0413",
4
+ "manifest.json": "63edb731cb48bb0a2cf262db13361382f1ab61152d6b379cdf4fa892806e5b42",
5
+ "meta.json": "34f746d3e7e7ee7bb2578ac0ec3aa20b67567506620df877191f0f2393f2f98a",
6
+ "types/index.d.ts": "113961df90faaec43d71a1d2088f0f5d8b1b2694078ccd2cf4ae40a56f15833b",
7
7
  "rules/hardcoded-region.ts": "5a0eaf7ab391231fe6cd51426ece29539cb4b36f31c8dd060956638fed55722a",
8
8
  "rules/iam-wildcard.ts": "135d7217d278fef50939e605c5da32603ba35674b8c4b5c4d66a06c77903e945",
9
9
  "rules/s3-encryption.ts": "c4f9f8aa8dc382ed98c7b04e820a600590cc75335a8db2e087cbfbfe4003d09e",
@@ -56,7 +56,8 @@
56
56
  "rules/waw054.ts": "a1a9c1d1d04aebd72e14c01340f6203231d9513add64958edd42366aaa419d42",
57
57
  "rules/waw055.ts": "f924e6bca957da1860c7d56dd385d28d91ab57bfd0f1499077d63a9cfc5b81e5",
58
58
  "skills/chant-aws.md": "4d65eb160e001f2af42eb7c622a5b498c2fd1f5afbd6c8155615c010fb265c63",
59
- "skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe"
59
+ "skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe",
60
+ "skills/chant-aws-carve-terraform.md": "f4c6fe1c702250665f90d82b3bdaba5ea50ae75e380a8ae321dad6eb1c39683e"
60
61
  },
61
- "composite": "b4333dc803950e8e7a3b92f4b51f7b97769d387f27c560a1bd2b1d8a2648f54d"
62
+ "composite": "8fed2d6136907de0510e58410d8468221c166f35caa702b6550ad05891e83e68"
62
63
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws",
3
- "version": "0.18.37",
3
+ "version": "0.19.1",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "AWS",
6
6
  "intrinsics": [
package/dist/meta.json CHANGED
@@ -17336,6 +17336,21 @@
17336
17336
  "kind": "property",
17337
17337
  "lexicon": "aws"
17338
17338
  },
17339
+ "ComputeNodeGroup_NodeLifecycleActions": {
17340
+ "resourceType": "AWS::PCS::ComputeNodeGroup.NodeLifecycleActions",
17341
+ "kind": "property",
17342
+ "lexicon": "aws"
17343
+ },
17344
+ "ComputeNodeGroup_NodeLifecycleScript": {
17345
+ "resourceType": "AWS::PCS::ComputeNodeGroup.NodeLifecycleScript",
17346
+ "kind": "property",
17347
+ "lexicon": "aws"
17348
+ },
17349
+ "ComputeNodeGroup_NodeLifecycleStages": {
17350
+ "resourceType": "AWS::PCS::ComputeNodeGroup.NodeLifecycleStages",
17351
+ "kind": "property",
17352
+ "lexicon": "aws"
17353
+ },
17339
17354
  "ComputeOptimizerAutomationRule": {
17340
17355
  "resourceType": "AWS::ComputeOptimizer::AutomationRule",
17341
17356
  "kind": "resource",
@@ -30411,13 +30426,10 @@
30411
30426
  "createOnly": [
30412
30427
  "ServiceType",
30413
30428
  "ServiceDetails/Dynatrace",
30414
- "ServiceDetails/MCPServer",
30415
30429
  "ServiceDetails/MCPServerSplunk",
30416
- "ServiceDetails/MCPServerNewRelic",
30417
30430
  "ServiceDetails/ServiceNow",
30418
30431
  "ServiceDetails/PagerDuty",
30419
30432
  "ServiceDetails/AzureIdentity",
30420
- "ServiceDetails/MCPServerGrafana",
30421
30433
  "KmsKeyArn"
30422
30434
  ],
30423
30435
  "writeOnly": [
@@ -65631,6 +65643,21 @@
65631
65643
  "kind": "property",
65632
65644
  "lexicon": "aws"
65633
65645
  },
65646
+ "NodeLifecycleActions": {
65647
+ "resourceType": "AWS::PCS::ComputeNodeGroup.NodeLifecycleActions",
65648
+ "kind": "property",
65649
+ "lexicon": "aws"
65650
+ },
65651
+ "NodeLifecycleScript": {
65652
+ "resourceType": "AWS::PCS::ComputeNodeGroup.NodeLifecycleScript",
65653
+ "kind": "property",
65654
+ "lexicon": "aws"
65655
+ },
65656
+ "NodeLifecycleStages": {
65657
+ "resourceType": "AWS::PCS::ComputeNodeGroup.NodeLifecycleStages",
65658
+ "kind": "property",
65659
+ "lexicon": "aws"
65660
+ },
65634
65661
  "NodeOption": {
65635
65662
  "resourceType": "AWS::OpenSearchService::Domain.NodeOption",
65636
65663
  "kind": "property",
@@ -71810,7 +71837,8 @@
71810
71837
  "kind": "resource",
71811
71838
  "lexicon": "aws",
71812
71839
  "attrs": {
71813
- "GroupName": "GroupName"
71840
+ "GroupName": "GroupName",
71841
+ "GroupId": "GroupId"
71814
71842
  },
71815
71843
  "createOnly": [
71816
71844
  "Tags",
@@ -77039,6 +77067,9 @@
77039
77067
  "resourceType": "AWS::RDS::DBSubnetGroup",
77040
77068
  "kind": "resource",
77041
77069
  "lexicon": "aws",
77070
+ "attrs": {
77071
+ "DBSubnetGroupArn": "DBSubnetGroupArn"
77072
+ },
77042
77073
  "createOnly": [
77043
77074
  "DBSubnetGroupName"
77044
77075
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAA+G,MAAM,0BAA0B,CAAC;AAwB3K;;sFAEsF;AACtF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,aAytBvB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAA+G,MAAM,0BAA0B,CAAC;AAwB3K;;sFAEsF;AACtF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,aA+vBvB,CAAC"}
@@ -0,0 +1,102 @@
1
+ ---
2
+ skill: chant-aws-carve-terraform
3
+ description: Demo carving a resource out of Terraform into native chant — advise, emit, bridge, apply — fully offline
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Carve a resource out of Terraform (demo)
8
+
9
+ Use this skill to cleanly demonstrate chant's Terraform carve-out flow for
10
+ someone. The whole demo runs **offline** — no cloud account, no Terraform
11
+ binary, no state backend. It carves an AWS S3 bucket out of a small Terraform
12
+ estate into native chant source, patches the survivors, and plans the
13
+ graduation.
14
+
15
+ ## When to use
16
+
17
+ - Someone asks "how does chant move things off Terraform?"
18
+ - You want to show the advise → emit → bridge → apply loop end to end.
19
+ - You are evaluating whether a Terraform estate is worth carving.
20
+
21
+ ## Preconditions
22
+
23
+ - `chant --version` succeeds.
24
+ - `@cdktf/hcl2json` is installed (the HCL parser). If a command reports it is
25
+ missing, run `npm install -D @cdktf/hcl2json` once.
26
+
27
+ ## The fastest path: run the bundled demo
28
+
29
+ The `examples/terraform-carve-out` example ships a runnable estate + state and a
30
+ script that runs all four steps with commentary:
31
+
32
+ ```bash
33
+ cd examples/terraform-carve-out
34
+ ./demo.sh
35
+ ```
36
+
37
+ Walk the person through the output. That is the whole demo.
38
+
39
+ ## Driving it step by step (to explain each stage)
40
+
41
+ From `examples/terraform-carve-out`, with `TF=./terraform`:
42
+
43
+ 1. **Advise — what is cheap to carve.**
44
+ ```bash
45
+ chant carve advise --from ./terraform
46
+ ```
47
+ Point out the three bands: clean leaves (carve now), carvable with edits,
48
+ and leave-in-Terraform. `aws_s3_bucket.assets` is a clean leaf held back one
49
+ notch by the Lambda that reads it; `random_pet` has no native mapping.
50
+
51
+ 2. **Emit — adopt the bucket into chant source, offline, from state.**
52
+ ```bash
53
+ chant carve emit --from ./terraform --select aws_s3_bucket.assets \
54
+ --state ./terraform/terraform.tfstate --output ./carveout
55
+ ```
56
+ Show `./carveout/assets.ts` — a real `new Bucket({ BucketName, Tags })` with
57
+ CloudFormation-style properties mapped from the Terraform state attributes.
58
+ Explain: a Terraform-managed resource is not in any CloudFormation stack, so
59
+ the correct source of its live shape is the state file, not a cloud read.
60
+
61
+ 3. **Lint the inherited resource — optional, offer it.**
62
+ ```bash
63
+ chant lint ./carveout --lexicon aws
64
+ ```
65
+ After emit, offer to lint the carved source. chant audits the resource you
66
+ inherited from Terraform against the AWS lexicon's rules. Findings have a
67
+ severity: `error` (must fix before `chant build` will emit — e.g. an S3
68
+ bucket with no public-access block) and `warning`/`info` (advisory — e.g.
69
+ DynamoDB point-in-time recovery). This is a feature of carving: chant
70
+ immediately tells the person what is wrong with what they adopted. Whether to
71
+ fix an advisory finding is their call; errors block the build until resolved.
72
+
73
+ 4. **Bridge — patch the surviving Terraform.**
74
+ ```bash
75
+ chant carve bridge --from ./terraform --select aws_s3_bucket.assets --output ./carveout
76
+ ```
77
+ Show the generated `data "aws_s3_bucket" "assets"` and the rewired survivor.
78
+ Emphasize it is dry-run: nothing in `./terraform` changed. `--apply-rewrites`
79
+ would edit it in place.
80
+
81
+ 5. **Apply — graduation plan.**
82
+ ```bash
83
+ chant carve apply --from ./terraform --select aws_s3_bucket.assets --env prod --stack assets
84
+ ```
85
+ Show the ownership marker (`chant:managed-by/stack/env`) and the finalized
86
+ runbook. Stress this makes no cloud call — the apply is the person's own
87
+ lifecycle; chant just plans it.
88
+
89
+ ## Key points to land
90
+
91
+ - Nothing is destroyed or applied; every step before graduation is reversible
92
+ with `terraform import`.
93
+ - You carve one resource at a time. The gnarly long tail stays in Terraform.
94
+ - `advise` and `bridge` work against **any** Terraform tree — offer to point
95
+ them at the person's own estate.
96
+
97
+ ## Going live (only if asked)
98
+
99
+ The real handoff adds three Terraform commands between bridge and apply:
100
+ `terraform state rm <addr>` (stops managing it, does not destroy), then
101
+ `terraform plan && terraform apply` to land the survivor patch. See the
102
+ generated runbook in `./carveout/<addr>-runbook.md`.
@@ -6187,6 +6187,7 @@ export declare class ComputeNodeGroup {
6187
6187
  Id?: string;
6188
6188
  /** The name that identifies the compute node group. */
6189
6189
  Name?: string;
6190
+ NodeLifecycleActions?: ComputeNodeGroup_NodeLifecycleActions;
6190
6191
  /** Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand, Spot, Capacity Block, and Interruptible Capacity Reservation instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand. */
6191
6192
  PurchaseOption?: "CAPACITY_BLOCK" | "INTERRUPTIBLE_CAPACITY_RESERVATION" | "ONDEMAND" | "SPOT";
6192
6193
  /** Additional options related to the Slurm scheduler. */
@@ -9753,7 +9754,7 @@ export declare class DbInstance {
9753
9754
  /** The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.
9754
9755
  By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.
9755
9756
  Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties, and the point-in-time recovery properties ``RestoreTime`` and ``UseLatestRestorableTime``. For information about the properties that you can specify, see the [RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) action in the *Amazon RDS API Reference*.
9756
- After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.
9757
+ When you specify the same ``DBSnapshotIdentifier`` property value for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. If you specify a different ``DBSnapshotIdentifier`` value, a new DB instance is restored from the specified snapshot, and the original DB instance is deleted.
9757
9758
  If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:
9758
9759
  + ``CharacterSetName``
9759
9760
  + ``DBClusterIdentifier``
@@ -9916,7 +9917,7 @@ export declare class DbInstance {
9916
9917
  + Aurora PostgreSQL - ``postgresql-license``
9917
9918
  + RDS for Db2 - ``bring-your-own-license``. For more information about RDS for Db2 licensing, see [](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) in the *Amazon RDS User Guide.*
9918
9919
  + RDS for MariaDB - ``general-public-license``
9919
- + RDS for Microsoft SQL Server - ``license-included``
9920
+ + RDS for Microsoft SQL Server - ``license-included`` or ``bring-your-own-media``
9920
9921
  + RDS for MySQL - ``general-public-license``
9921
9922
  + RDS for Oracle - ``bring-your-own-license`` or ``license-included``
9922
9923
  + RDS for PostgreSQL - ``postgresql-license``
@@ -12430,7 +12431,6 @@ export declare class EgressOnlyInternetGateway {
12430
12431
 
12431
12432
  export declare class EIP {
12432
12433
  constructor(props: {
12433
- /** An Elastic IP address or a carrier IP address in a Wavelength Zone. */
12434
12434
  Address?: string;
12435
12435
  AllocationId?: string;
12436
12436
  /** The network (``vpc``).
@@ -12439,7 +12439,6 @@ export declare class EIP {
12439
12439
  /** The ID of the instance.
12440
12440
  Updates to the ``InstanceId`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. */
12441
12441
  InstanceId?: string;
12442
- /** The ID of an IPAM pool which has an Amazon-provided or BYOIP public IPv4 CIDR provisioned to it. For more information, see [Allocate sequential Elastic IP addresses from an IPAM pool](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-eip-pool.html) in the *Amazon VPC IPAM User Guide*. */
12443
12442
  IpamPoolId?: string;
12444
12443
  /** A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups.
12445
12444
  Use [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups. */
@@ -26047,6 +26046,8 @@ export declare class PlaceIndex {
26047
26046
 
26048
26047
  export declare class PlacementGroup {
26049
26048
  constructor(props: {
26049
+ /** The ID of the placement group. */
26050
+ GroupId?: string;
26050
26051
  /** The Group Name of Placement Group. */
26051
26052
  GroupName?: string;
26052
26053
  /** The number of partitions. Valid only when **Strategy** is set to `partition` */
@@ -26058,6 +26059,7 @@ export declare class PlacementGroup {
26058
26059
  /** An array of key-value pairs to apply to this resource. */
26059
26060
  Tags?: PlacementGroup_Tag[];
26060
26061
  }, attributes?: CFResourceAttributes);
26062
+ readonly GroupId: string;
26061
26063
  readonly GroupName: string;
26062
26064
  }
26063
26065
 
@@ -27827,6 +27829,7 @@ export declare class RDSDBParameterGroup {
27827
27829
  + ``aurora-mysql``
27828
27830
  + ``aurora-postgresql``
27829
27831
  + ``db2-ae``
27832
+ + ``db2-ce``
27830
27833
  + ``db2-se``
27831
27834
  + ``mysql``
27832
27835
  + ``oracle-ee``
@@ -27863,6 +27866,7 @@ export declare class RDSDBSubnetGroup {
27863
27866
  DBSubnetGroupDescription: string;
27864
27867
  /** The EC2 Subnet IDs for the DB subnet group. */
27865
27868
  SubnetIds: string[];
27869
+ DBSubnetGroupArn?: string;
27866
27870
  /** The name for the DB subnet group. This value is stored as a lowercase string.
27867
27871
  Constraints:
27868
27872
  + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.
@@ -27874,6 +27878,7 @@ export declare class RDSDBSubnetGroup {
27874
27878
  /** Tags to assign to the DB subnet group. */
27875
27879
  Tags?: RDSDBSubnetGroup_Tag[];
27876
27880
  }, attributes?: CFResourceAttributes);
27881
+ readonly DBSubnetGroupArn: string;
27877
27882
  }
27878
27883
 
27879
27884
  export declare class RDSEventSubscription {
@@ -53906,6 +53911,37 @@ export declare class ComputeNodeGroup_InstanceConfig {
53906
53911
  });
53907
53912
  }
53908
53913
 
53914
+ export declare class ComputeNodeGroup_NodeLifecycleActions {
53915
+ constructor(props: {
53916
+ Stages: ComputeNodeGroup_NodeLifecycleStages;
53917
+ /** Controls whether lifecycle scripts are downloaded once at first boot (CACHE_ONCE) or re-downloaded on every reboot (REFRESH_ON_REBOOT). Defaults to CACHE_ONCE. */
53918
+ ScriptCachingPolicy?: "CACHE_ONCE" | "REFRESH_ON_REBOOT";
53919
+ });
53920
+ }
53921
+
53922
+ export declare class ComputeNodeGroup_NodeLifecycleScript {
53923
+ constructor(props: {
53924
+ /** A human-readable name that identifies the script. */
53925
+ Name: string;
53926
+ ScriptSource: Record<string, unknown>;
53927
+ /** An ordered list of arguments passed to the script. */
53928
+ Arguments?: string[];
53929
+ /** Whether the script runs only on the node's first boot (FIRST_BOOT_ONLY) or on every boot including reboots (EVERY_BOOT). Defaults to FIRST_BOOT_ONLY. */
53930
+ ExecutionPolicy?: "EVERY_BOOT" | "FIRST_BOOT_ONLY";
53931
+ /** The behavior when the script exits with an error. Defaults to TERMINATE. */
53932
+ OnError?: "CONTINUE" | "STOP_SEQUENCE" | "TERMINATE";
53933
+ });
53934
+ }
53935
+
53936
+ export declare class ComputeNodeGroup_NodeLifecycleStages {
53937
+ constructor(props: {
53938
+ /** Scripts to run after the node is bootstrapped, once the PCS configuration phase completes and before slurmd starts. */
53939
+ NodeBootstrapped?: ComputeNodeGroup_NodeLifecycleScript[];
53940
+ /** Scripts to execute when the node becomes ready (every boot). */
53941
+ NodeReady?: ComputeNodeGroup_NodeLifecycleScript[];
53942
+ });
53943
+ }
53944
+
53909
53945
  export declare class ComputeNodeGroupConfiguration {
53910
53946
  constructor(props: {
53911
53947
  /** The compute node group ID for the compute node group configuration. */
@@ -55924,9 +55960,9 @@ export declare class ConnectRule_Tag {
55924
55960
  export declare class ConnectSecurityProfile_Application {
55925
55961
  constructor(props: {
55926
55962
  /** The permissions that the agent is granted on the application */
55927
- ApplicationPermissions: string[];
55963
+ ApplicationPermissions?: string[];
55928
55964
  /** Namespace of the application that you want to give access to. */
55929
- Namespace: string;
55965
+ Namespace?: string;
55930
55966
  /** The type of the application. */
55931
55967
  Type?: "MCP" | "THIRD_PARTY_APPLICATION";
55932
55968
  });
@@ -55935,9 +55971,9 @@ export declare class ConnectSecurityProfile_Application {
55935
55971
  export declare class ConnectSecurityProfile_FlowModule {
55936
55972
  constructor(props: {
55937
55973
  /** The identifier of the application that you want to give access to. */
55938
- FlowModuleId: string;
55974
+ FlowModuleId?: string;
55939
55975
  /** The type of the first-party application */
55940
- Type: string;
55976
+ Type?: string;
55941
55977
  });
55942
55978
  }
55943
55979
 
@@ -72139,9 +72175,9 @@ export declare class FlowLog_TagFieldSpecification {
72139
72175
  export declare class FlowModule {
72140
72176
  constructor(props: {
72141
72177
  /** The identifier of the application that you want to give access to. */
72142
- FlowModuleId: string;
72178
+ FlowModuleId?: string;
72143
72179
  /** The type of the first-party application */
72144
- Type: string;
72180
+ Type?: string;
72145
72181
  });
72146
72182
  }
72147
72183
 
@@ -94527,6 +94563,37 @@ export declare class NodeInterfaceMapping {
94527
94563
  });
94528
94564
  }
94529
94565
 
94566
+ export declare class NodeLifecycleActions {
94567
+ constructor(props: {
94568
+ Stages: ComputeNodeGroup_NodeLifecycleStages;
94569
+ /** Controls whether lifecycle scripts are downloaded once at first boot (CACHE_ONCE) or re-downloaded on every reboot (REFRESH_ON_REBOOT). Defaults to CACHE_ONCE. */
94570
+ ScriptCachingPolicy?: "CACHE_ONCE" | "REFRESH_ON_REBOOT";
94571
+ });
94572
+ }
94573
+
94574
+ export declare class NodeLifecycleScript {
94575
+ constructor(props: {
94576
+ /** A human-readable name that identifies the script. */
94577
+ Name: string;
94578
+ ScriptSource: Record<string, unknown>;
94579
+ /** An ordered list of arguments passed to the script. */
94580
+ Arguments?: string[];
94581
+ /** Whether the script runs only on the node's first boot (FIRST_BOOT_ONLY) or on every boot including reboots (EVERY_BOOT). Defaults to FIRST_BOOT_ONLY. */
94582
+ ExecutionPolicy?: "EVERY_BOOT" | "FIRST_BOOT_ONLY";
94583
+ /** The behavior when the script exits with an error. Defaults to TERMINATE. */
94584
+ OnError?: "CONTINUE" | "STOP_SEQUENCE" | "TERMINATE";
94585
+ });
94586
+ }
94587
+
94588
+ export declare class NodeLifecycleStages {
94589
+ constructor(props: {
94590
+ /** Scripts to run after the node is bootstrapped, once the PCS configuration phase completes and before slurmd starts. */
94591
+ NodeBootstrapped?: ComputeNodeGroup_NodeLifecycleScript[];
94592
+ /** Scripts to execute when the node becomes ready (every boot). */
94593
+ NodeReady?: ComputeNodeGroup_NodeLifecycleScript[];
94594
+ });
94595
+ }
94596
+
94530
94597
  export declare class NodeOption {
94531
94598
  constructor(props: {
94532
94599
  NodeConfig?: OpenSearchServiceDomain_NodeConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-aws",
3
- "version": "0.18.37",
3
+ "version": "0.19.1",
4
4
  "description": "AWS CloudFormation lexicon for chant — declarative IaC in TypeScript",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -80,7 +80,7 @@
80
80
  "typescript": "^5.9.3"
81
81
  },
82
82
  "peerDependencies": {
83
- "@intentius/chant": "^0.18.37",
83
+ "@intentius/chant": "^0.19.1",
84
84
  "typescript": "^5.9.3"
85
85
  }
86
86
  }
@@ -6187,6 +6187,7 @@ export declare class ComputeNodeGroup {
6187
6187
  Id?: string;
6188
6188
  /** The name that identifies the compute node group. */
6189
6189
  Name?: string;
6190
+ NodeLifecycleActions?: ComputeNodeGroup_NodeLifecycleActions;
6190
6191
  /** Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand, Spot, Capacity Block, and Interruptible Capacity Reservation instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand. */
6191
6192
  PurchaseOption?: "CAPACITY_BLOCK" | "INTERRUPTIBLE_CAPACITY_RESERVATION" | "ONDEMAND" | "SPOT";
6192
6193
  /** Additional options related to the Slurm scheduler. */
@@ -9753,7 +9754,7 @@ export declare class DbInstance {
9753
9754
  /** The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.
9754
9755
  By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.
9755
9756
  Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties, and the point-in-time recovery properties ``RestoreTime`` and ``UseLatestRestorableTime``. For information about the properties that you can specify, see the [RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) action in the *Amazon RDS API Reference*.
9756
- After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.
9757
+ When you specify the same ``DBSnapshotIdentifier`` property value for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. If you specify a different ``DBSnapshotIdentifier`` value, a new DB instance is restored from the specified snapshot, and the original DB instance is deleted.
9757
9758
  If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:
9758
9759
  + ``CharacterSetName``
9759
9760
  + ``DBClusterIdentifier``
@@ -9916,7 +9917,7 @@ export declare class DbInstance {
9916
9917
  + Aurora PostgreSQL - ``postgresql-license``
9917
9918
  + RDS for Db2 - ``bring-your-own-license``. For more information about RDS for Db2 licensing, see [](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) in the *Amazon RDS User Guide.*
9918
9919
  + RDS for MariaDB - ``general-public-license``
9919
- + RDS for Microsoft SQL Server - ``license-included``
9920
+ + RDS for Microsoft SQL Server - ``license-included`` or ``bring-your-own-media``
9920
9921
  + RDS for MySQL - ``general-public-license``
9921
9922
  + RDS for Oracle - ``bring-your-own-license`` or ``license-included``
9922
9923
  + RDS for PostgreSQL - ``postgresql-license``
@@ -12430,7 +12431,6 @@ export declare class EgressOnlyInternetGateway {
12430
12431
 
12431
12432
  export declare class EIP {
12432
12433
  constructor(props: {
12433
- /** An Elastic IP address or a carrier IP address in a Wavelength Zone. */
12434
12434
  Address?: string;
12435
12435
  AllocationId?: string;
12436
12436
  /** The network (``vpc``).
@@ -12439,7 +12439,6 @@ export declare class EIP {
12439
12439
  /** The ID of the instance.
12440
12440
  Updates to the ``InstanceId`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. */
12441
12441
  InstanceId?: string;
12442
- /** The ID of an IPAM pool which has an Amazon-provided or BYOIP public IPv4 CIDR provisioned to it. For more information, see [Allocate sequential Elastic IP addresses from an IPAM pool](https://docs.aws.amazon.com/vpc/latest/ipam/tutorials-eip-pool.html) in the *Amazon VPC IPAM User Guide*. */
12443
12442
  IpamPoolId?: string;
12444
12443
  /** A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups.
12445
12444
  Use [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups. */
@@ -26047,6 +26046,8 @@ export declare class PlaceIndex {
26047
26046
 
26048
26047
  export declare class PlacementGroup {
26049
26048
  constructor(props: {
26049
+ /** The ID of the placement group. */
26050
+ GroupId?: string;
26050
26051
  /** The Group Name of Placement Group. */
26051
26052
  GroupName?: string;
26052
26053
  /** The number of partitions. Valid only when **Strategy** is set to `partition` */
@@ -26058,6 +26059,7 @@ export declare class PlacementGroup {
26058
26059
  /** An array of key-value pairs to apply to this resource. */
26059
26060
  Tags?: PlacementGroup_Tag[];
26060
26061
  }, attributes?: CFResourceAttributes);
26062
+ readonly GroupId: string;
26061
26063
  readonly GroupName: string;
26062
26064
  }
26063
26065
 
@@ -27827,6 +27829,7 @@ export declare class RDSDBParameterGroup {
27827
27829
  + ``aurora-mysql``
27828
27830
  + ``aurora-postgresql``
27829
27831
  + ``db2-ae``
27832
+ + ``db2-ce``
27830
27833
  + ``db2-se``
27831
27834
  + ``mysql``
27832
27835
  + ``oracle-ee``
@@ -27863,6 +27866,7 @@ export declare class RDSDBSubnetGroup {
27863
27866
  DBSubnetGroupDescription: string;
27864
27867
  /** The EC2 Subnet IDs for the DB subnet group. */
27865
27868
  SubnetIds: string[];
27869
+ DBSubnetGroupArn?: string;
27866
27870
  /** The name for the DB subnet group. This value is stored as a lowercase string.
27867
27871
  Constraints:
27868
27872
  + Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens.
@@ -27874,6 +27878,7 @@ export declare class RDSDBSubnetGroup {
27874
27878
  /** Tags to assign to the DB subnet group. */
27875
27879
  Tags?: RDSDBSubnetGroup_Tag[];
27876
27880
  }, attributes?: CFResourceAttributes);
27881
+ readonly DBSubnetGroupArn: string;
27877
27882
  }
27878
27883
 
27879
27884
  export declare class RDSEventSubscription {
@@ -53906,6 +53911,37 @@ export declare class ComputeNodeGroup_InstanceConfig {
53906
53911
  });
53907
53912
  }
53908
53913
 
53914
+ export declare class ComputeNodeGroup_NodeLifecycleActions {
53915
+ constructor(props: {
53916
+ Stages: ComputeNodeGroup_NodeLifecycleStages;
53917
+ /** Controls whether lifecycle scripts are downloaded once at first boot (CACHE_ONCE) or re-downloaded on every reboot (REFRESH_ON_REBOOT). Defaults to CACHE_ONCE. */
53918
+ ScriptCachingPolicy?: "CACHE_ONCE" | "REFRESH_ON_REBOOT";
53919
+ });
53920
+ }
53921
+
53922
+ export declare class ComputeNodeGroup_NodeLifecycleScript {
53923
+ constructor(props: {
53924
+ /** A human-readable name that identifies the script. */
53925
+ Name: string;
53926
+ ScriptSource: Record<string, unknown>;
53927
+ /** An ordered list of arguments passed to the script. */
53928
+ Arguments?: string[];
53929
+ /** Whether the script runs only on the node's first boot (FIRST_BOOT_ONLY) or on every boot including reboots (EVERY_BOOT). Defaults to FIRST_BOOT_ONLY. */
53930
+ ExecutionPolicy?: "EVERY_BOOT" | "FIRST_BOOT_ONLY";
53931
+ /** The behavior when the script exits with an error. Defaults to TERMINATE. */
53932
+ OnError?: "CONTINUE" | "STOP_SEQUENCE" | "TERMINATE";
53933
+ });
53934
+ }
53935
+
53936
+ export declare class ComputeNodeGroup_NodeLifecycleStages {
53937
+ constructor(props: {
53938
+ /** Scripts to run after the node is bootstrapped, once the PCS configuration phase completes and before slurmd starts. */
53939
+ NodeBootstrapped?: ComputeNodeGroup_NodeLifecycleScript[];
53940
+ /** Scripts to execute when the node becomes ready (every boot). */
53941
+ NodeReady?: ComputeNodeGroup_NodeLifecycleScript[];
53942
+ });
53943
+ }
53944
+
53909
53945
  export declare class ComputeNodeGroupConfiguration {
53910
53946
  constructor(props: {
53911
53947
  /** The compute node group ID for the compute node group configuration. */
@@ -55924,9 +55960,9 @@ export declare class ConnectRule_Tag {
55924
55960
  export declare class ConnectSecurityProfile_Application {
55925
55961
  constructor(props: {
55926
55962
  /** The permissions that the agent is granted on the application */
55927
- ApplicationPermissions: string[];
55963
+ ApplicationPermissions?: string[];
55928
55964
  /** Namespace of the application that you want to give access to. */
55929
- Namespace: string;
55965
+ Namespace?: string;
55930
55966
  /** The type of the application. */
55931
55967
  Type?: "MCP" | "THIRD_PARTY_APPLICATION";
55932
55968
  });
@@ -55935,9 +55971,9 @@ export declare class ConnectSecurityProfile_Application {
55935
55971
  export declare class ConnectSecurityProfile_FlowModule {
55936
55972
  constructor(props: {
55937
55973
  /** The identifier of the application that you want to give access to. */
55938
- FlowModuleId: string;
55974
+ FlowModuleId?: string;
55939
55975
  /** The type of the first-party application */
55940
- Type: string;
55976
+ Type?: string;
55941
55977
  });
55942
55978
  }
55943
55979
 
@@ -72139,9 +72175,9 @@ export declare class FlowLog_TagFieldSpecification {
72139
72175
  export declare class FlowModule {
72140
72176
  constructor(props: {
72141
72177
  /** The identifier of the application that you want to give access to. */
72142
- FlowModuleId: string;
72178
+ FlowModuleId?: string;
72143
72179
  /** The type of the first-party application */
72144
- Type: string;
72180
+ Type?: string;
72145
72181
  });
72146
72182
  }
72147
72183
 
@@ -94527,6 +94563,37 @@ export declare class NodeInterfaceMapping {
94527
94563
  });
94528
94564
  }
94529
94565
 
94566
+ export declare class NodeLifecycleActions {
94567
+ constructor(props: {
94568
+ Stages: ComputeNodeGroup_NodeLifecycleStages;
94569
+ /** Controls whether lifecycle scripts are downloaded once at first boot (CACHE_ONCE) or re-downloaded on every reboot (REFRESH_ON_REBOOT). Defaults to CACHE_ONCE. */
94570
+ ScriptCachingPolicy?: "CACHE_ONCE" | "REFRESH_ON_REBOOT";
94571
+ });
94572
+ }
94573
+
94574
+ export declare class NodeLifecycleScript {
94575
+ constructor(props: {
94576
+ /** A human-readable name that identifies the script. */
94577
+ Name: string;
94578
+ ScriptSource: Record<string, unknown>;
94579
+ /** An ordered list of arguments passed to the script. */
94580
+ Arguments?: string[];
94581
+ /** Whether the script runs only on the node's first boot (FIRST_BOOT_ONLY) or on every boot including reboots (EVERY_BOOT). Defaults to FIRST_BOOT_ONLY. */
94582
+ ExecutionPolicy?: "EVERY_BOOT" | "FIRST_BOOT_ONLY";
94583
+ /** The behavior when the script exits with an error. Defaults to TERMINATE. */
94584
+ OnError?: "CONTINUE" | "STOP_SEQUENCE" | "TERMINATE";
94585
+ });
94586
+ }
94587
+
94588
+ export declare class NodeLifecycleStages {
94589
+ constructor(props: {
94590
+ /** Scripts to run after the node is bootstrapped, once the PCS configuration phase completes and before slurmd starts. */
94591
+ NodeBootstrapped?: ComputeNodeGroup_NodeLifecycleScript[];
94592
+ /** Scripts to execute when the node becomes ready (every boot). */
94593
+ NodeReady?: ComputeNodeGroup_NodeLifecycleScript[];
94594
+ });
94595
+ }
94596
+
94530
94597
  export declare class NodeOption {
94531
94598
  constructor(props: {
94532
94599
  NodeConfig?: OpenSearchServiceDomain_NodeConfig;