@intentius/chant-lexicon-aws 0.18.14 → 0.18.16

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": "183280f448ba830d5079946efc74c017286f4fcc5493c5d6dee346f9e42f5ca7",
5
- "meta.json": "8c8333c2cc61ac2525f3418ea240c69d263e545e5947c15b984549d5207198c2",
6
- "types/index.d.ts": "99c828846be7e9549f21a331ddd1b5e3410ad9618f7982b063190924f6c81677",
4
+ "manifest.json": "5add6f542b1ca426e7bd6175a4d9a373a93449986d082732ca3de1fb8d0cf1d9",
5
+ "meta.json": "556e862c3f936c84ec863d3ce90822544f9580613e1c3d4bf8724b3e3409ca2e",
6
+ "types/index.d.ts": "b6e4cae56f2c903c4f2690b9243cec6658d505f9e11536ff9e98ac9a15824da7",
7
7
  "rules/hardcoded-region.ts": "5a0eaf7ab391231fe6cd51426ece29539cb4b36f31c8dd060956638fed55722a",
8
8
  "rules/iam-wildcard.ts": "135d7217d278fef50939e605c5da32603ba35674b8c4b5c4d66a06c77903e945",
9
9
  "rules/s3-encryption.ts": "c4f9f8aa8dc382ed98c7b04e820a600590cc75335a8db2e087cbfbfe4003d09e",
@@ -58,5 +58,5 @@
58
58
  "skills/chant-aws.md": "4d65eb160e001f2af42eb7c622a5b498c2fd1f5afbd6c8155615c010fb265c63",
59
59
  "skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe"
60
60
  },
61
- "composite": "b4e8fb0290f3892c27f22c0e0f6c2a758207966537752d3c52534261a39e7166"
61
+ "composite": "6fd40695ae9751727198eb4e8a2f343d8e9754f120af043a798663a3c7eaca74"
62
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws",
3
- "version": "0.18.14",
3
+ "version": "0.18.16",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "AWS",
6
6
  "intrinsics": [
package/dist/meta.json CHANGED
@@ -8347,8 +8347,7 @@
8347
8347
  "KmsKeyArn": "KmsKeyArn"
8348
8348
  },
8349
8349
  "createOnly": [
8350
- "KmsKeyId",
8351
- "ForceDelete"
8350
+ "KmsKeyId"
8352
8351
  ],
8353
8352
  "writeOnly": [
8354
8353
  "KmsKeyId",
@@ -49451,6 +49450,92 @@
49451
49450
  "kind": "property",
49452
49451
  "lexicon": "aws"
49453
49452
  },
49453
+ "IntermediateTable": {
49454
+ "resourceType": "AWS::CleanRooms::IntermediateTable",
49455
+ "kind": "resource",
49456
+ "lexicon": "aws",
49457
+ "attrs": {
49458
+ "IntermediateTableIdentifier": "IntermediateTableIdentifier",
49459
+ "Arn": "Arn",
49460
+ "MembershipArn": "MembershipArn",
49461
+ "CollaborationIdentifier": "CollaborationIdentifier",
49462
+ "CollaborationArn": "CollaborationArn",
49463
+ "Status": "Status"
49464
+ },
49465
+ "propertyConstraints": {
49466
+ "Arn": {
49467
+ "maxLength": 256
49468
+ },
49469
+ "MembershipArn": {
49470
+ "maxLength": 100
49471
+ },
49472
+ "CollaborationArn": {
49473
+ "maxLength": 100
49474
+ },
49475
+ "Name": {
49476
+ "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$",
49477
+ "minLength": 1,
49478
+ "maxLength": 100
49479
+ },
49480
+ "Description": {
49481
+ "pattern": "^[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$",
49482
+ "maxLength": 255
49483
+ },
49484
+ "KmsKeyArn": {
49485
+ "minLength": 4,
49486
+ "maxLength": 2048
49487
+ }
49488
+ },
49489
+ "createOnly": [
49490
+ "MembershipIdentifier",
49491
+ "Name",
49492
+ "PopulationAnalysisConfiguration"
49493
+ ],
49494
+ "primaryIdentifier": [
49495
+ "IntermediateTableIdentifier",
49496
+ "MembershipIdentifier"
49497
+ ],
49498
+ "tagging": {
49499
+ "taggable": true,
49500
+ "tagOnCreate": true,
49501
+ "tagUpdatable": true
49502
+ }
49503
+ },
49504
+ "IntermediateTableAnalysisRule": {
49505
+ "resourceType": "AWS::CleanRooms::IntermediateTable.IntermediateTableAnalysisRule",
49506
+ "kind": "property",
49507
+ "lexicon": "aws"
49508
+ },
49509
+ "IntermediateTableAnalysisRulePolicy": {
49510
+ "resourceType": "AWS::CleanRooms::IntermediateTable.IntermediateTableAnalysisRulePolicy",
49511
+ "kind": "property",
49512
+ "lexicon": "aws"
49513
+ },
49514
+ "IntermediateTable_IntermediateTableAnalysisRule": {
49515
+ "resourceType": "AWS::CleanRooms::IntermediateTable.IntermediateTableAnalysisRule",
49516
+ "kind": "property",
49517
+ "lexicon": "aws"
49518
+ },
49519
+ "IntermediateTable_IntermediateTableAnalysisRulePolicy": {
49520
+ "resourceType": "AWS::CleanRooms::IntermediateTable.IntermediateTableAnalysisRulePolicy",
49521
+ "kind": "property",
49522
+ "lexicon": "aws"
49523
+ },
49524
+ "IntermediateTable_PopulationAnalysisConfiguration": {
49525
+ "resourceType": "AWS::CleanRooms::IntermediateTable.PopulationAnalysisConfiguration",
49526
+ "kind": "property",
49527
+ "lexicon": "aws"
49528
+ },
49529
+ "IntermediateTable_PopulationAnalysisSqlParameters": {
49530
+ "resourceType": "AWS::CleanRooms::IntermediateTable.PopulationAnalysisSqlParameters",
49531
+ "kind": "property",
49532
+ "lexicon": "aws"
49533
+ },
49534
+ "IntermediateTable_Tag": {
49535
+ "resourceType": "AWS::CleanRooms::IntermediateTable.Tag",
49536
+ "kind": "property",
49537
+ "lexicon": "aws"
49538
+ },
49454
49539
  "InternetGateway": {
49455
49540
  "resourceType": "AWS::EC2::InternetGateway",
49456
49541
  "kind": "resource",
@@ -54791,7 +54876,12 @@
54791
54876
  ],
54792
54877
  "primaryIdentifier": [
54793
54878
  "ListenerArn"
54794
- ]
54879
+ ],
54880
+ "tagging": {
54881
+ "taggable": true,
54882
+ "tagOnCreate": true,
54883
+ "tagUpdatable": true
54884
+ }
54795
54885
  },
54796
54886
  "ListenerAttribute": {
54797
54887
  "resourceType": "AWS::ElasticLoadBalancingV2::Listener.ListenerAttribute",
@@ -55022,6 +55112,11 @@
55022
55112
  "kind": "property",
55023
55113
  "lexicon": "aws"
55024
55114
  },
55115
+ "Listener_Tag": {
55116
+ "resourceType": "AWS::ElasticLoadBalancingV2::Listener.Tag",
55117
+ "kind": "property",
55118
+ "lexicon": "aws"
55119
+ },
55025
55120
  "Listener_TargetGroupStickinessConfig": {
55026
55121
  "resourceType": "AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig",
55027
55122
  "kind": "property",
@@ -71684,6 +71779,16 @@
71684
71779
  "kind": "property",
71685
71780
  "lexicon": "aws"
71686
71781
  },
71782
+ "PopulationAnalysisConfiguration": {
71783
+ "resourceType": "AWS::CleanRooms::IntermediateTable.PopulationAnalysisConfiguration",
71784
+ "kind": "property",
71785
+ "lexicon": "aws"
71786
+ },
71787
+ "PopulationAnalysisSqlParameters": {
71788
+ "resourceType": "AWS::CleanRooms::IntermediateTable.PopulationAnalysisSqlParameters",
71789
+ "kind": "property",
71790
+ "lexicon": "aws"
71791
+ },
71687
71792
  "Port": {
71688
71793
  "resourceType": "AWS::Lightsail::Instance.Port",
71689
71794
  "kind": "property",
package/dist/plugin.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  import type { LexiconPlugin } from "@intentius/chant/lexicon";
2
+ /** True when a CloudFormation CLI error means the stack simply isn't there yet
3
+ * (`ValidationError … does not exist`) — the pre-first-apply state, which live
4
+ * queries should treat as "nothing deployed", not a failure. Exported for testing. */
5
+ export declare function stackDoesNotExist(stderr: string): boolean;
2
6
  /**
3
7
  * AWS CloudFormation lexicon plugin.
4
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAuF,MAAM,0BAA0B,CAAC;AAuBnJ;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,aA0qBvB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAuF,MAAM,0BAA0B,CAAC;AAwBnJ;;sFAEsF;AACtF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,aAyrBvB,CAAC"}
@@ -3071,7 +3071,7 @@ export declare class AutoScalingGroup {
3071
3071
  TrafficSources?: AutoScalingGroup_TrafficSourceIdentifier[];
3072
3072
  /** A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created.
3073
3073
  If this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html).
3074
- When you update ``VPCZoneIdentifier``, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html).
3074
+ When you update ``VPCZoneIdentifier``, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. To control how CloudFormation replaces the instances, add an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html) to your stack. Set the update policy to ``AutoScalingInstanceRefresh``. For more information, see the [AutoScalingInstanceRefresh policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-instancerefresh).
3075
3075
  Required to launch instances into a nondefault VPC. If you specify ``VPCZoneIdentifier`` with ``AvailabilityZones``, the subnets that you specify for this property must reside in those Availability Zones. */
3076
3076
  VPCZoneIdentifier?: string[];
3077
3077
  }, attributes?: CFResourceAttributes);
@@ -17804,6 +17804,30 @@ export declare class InterconnectConnection {
17804
17804
  readonly Type: string;
17805
17805
  }
17806
17806
 
17807
+ export declare class IntermediateTable {
17808
+ constructor(props: {
17809
+ MembershipIdentifier: string;
17810
+ Name: string;
17811
+ PopulationAnalysisConfiguration: IntermediateTable_PopulationAnalysisConfiguration;
17812
+ AnalysisRules?: IntermediateTable_IntermediateTableAnalysisRule[];
17813
+ Arn?: string;
17814
+ CollaborationArn?: string;
17815
+ CollaborationIdentifier?: string;
17816
+ Description?: string;
17817
+ IntermediateTableIdentifier?: string;
17818
+ KmsKeyArn?: string;
17819
+ MembershipArn?: string;
17820
+ Status?: IntermediateTable_IntermediateTableStatus;
17821
+ Tags?: IntermediateTable_Tag[];
17822
+ }, attributes?: CFResourceAttributes);
17823
+ readonly Arn: string;
17824
+ readonly CollaborationArn: string;
17825
+ readonly CollaborationIdentifier: string;
17826
+ readonly IntermediateTableIdentifier: string;
17827
+ readonly MembershipArn: string;
17828
+ readonly Status: IntermediateTable_IntermediateTableStatus;
17829
+ }
17830
+
17807
17831
  export declare class InternetGateway {
17808
17832
  constructor(props: {
17809
17833
  InternetGatewayId?: string;
@@ -20051,6 +20075,7 @@ export declare class Listener {
20051
20075
  /** [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html) in the *Network Load Balancers Guide*.
20052
20076
  [HTTPS listeners] Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation. */
20053
20077
  SslPolicy?: string;
20078
+ Tags?: Listener_Tag[];
20054
20079
  }, attributes?: CFResourceAttributes);
20055
20080
  readonly ListenerArn: string;
20056
20081
  }
@@ -44843,7 +44868,8 @@ export declare class AutoScalingGroup_AvailabilityZoneDistribution {
44843
44868
  constructor(props: {
44844
44869
  /** If launches fail in an Availability Zone, the following strategies are available. The default is ``balanced-best-effort``.
44845
44870
  + ``balanced-only`` - If launches fail in an Availability Zone, Auto Scaling will continue to attempt to launch in the unhealthy zone to preserve a balanced distribution.
44846
- + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead. */
44871
+ + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead.
44872
+ + ``reservations-then-balanced`` - Auto Scaling will first attempt to launch into your Capacity Reservations, and then balance any remaining capacity across healthy Availability Zones. */
44847
44873
  CapacityDistributionStrategy?: "balanced-best-effort" | "balanced-only" | "reservations-then-balanced";
44848
44874
  });
44849
44875
  }
@@ -45290,7 +45316,8 @@ export declare class AvailabilityZoneDistribution {
45290
45316
  constructor(props: {
45291
45317
  /** If launches fail in an Availability Zone, the following strategies are available. The default is ``balanced-best-effort``.
45292
45318
  + ``balanced-only`` - If launches fail in an Availability Zone, Auto Scaling will continue to attempt to launch in the unhealthy zone to preserve a balanced distribution.
45293
- + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead. */
45319
+ + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead.
45320
+ + ``reservations-then-balanced`` - Auto Scaling will first attempt to launch into your Capacity Reservations, and then balance any remaining capacity across healthy Availability Zones. */
45294
45321
  CapacityDistributionStrategy?: "balanced-best-effort" | "balanced-only" | "reservations-then-balanced";
45295
45322
  });
45296
45323
  }
@@ -79394,6 +79421,52 @@ export declare class IntermediateStorage {
79394
79421
  });
79395
79422
  }
79396
79423
 
79424
+ export declare class IntermediateTable_IntermediateTableAnalysisRule {
79425
+ constructor(props: {
79426
+ Policy: IntermediateTable_IntermediateTableAnalysisRulePolicy;
79427
+ Type: IntermediateTable_IntermediateTableAnalysisRuleType;
79428
+ });
79429
+ }
79430
+
79431
+ export declare class IntermediateTable_IntermediateTableAnalysisRulePolicy {
79432
+ constructor(props: {
79433
+ V1: any;
79434
+ });
79435
+ }
79436
+
79437
+ export declare class IntermediateTable_PopulationAnalysisConfiguration {
79438
+ constructor(props: {
79439
+ SqlParameters?: IntermediateTable_PopulationAnalysisSqlParameters;
79440
+ });
79441
+ }
79442
+
79443
+ export declare class IntermediateTable_PopulationAnalysisSqlParameters {
79444
+ constructor(props: {
79445
+ AnalysisTemplateArn?: string;
79446
+ QueryString?: string;
79447
+ });
79448
+ }
79449
+
79450
+ export declare class IntermediateTable_Tag {
79451
+ constructor(props: {
79452
+ Key: string;
79453
+ Value: string;
79454
+ });
79455
+ }
79456
+
79457
+ export declare class IntermediateTableAnalysisRule {
79458
+ constructor(props: {
79459
+ Policy: IntermediateTable_IntermediateTableAnalysisRulePolicy;
79460
+ Type: IntermediateTable_IntermediateTableAnalysisRuleType;
79461
+ });
79462
+ }
79463
+
79464
+ export declare class IntermediateTableAnalysisRulePolicy {
79465
+ constructor(props: {
79466
+ V1: any;
79467
+ });
79468
+ }
79469
+
79397
79470
  export declare class InternetGateway_Tag {
79398
79471
  constructor(props: {
79399
79472
  /** The tag key. */
@@ -84843,6 +84916,13 @@ export declare class Listener_RedirectConfig {
84843
84916
  });
84844
84917
  }
84845
84918
 
84919
+ export declare class Listener_Tag {
84920
+ constructor(props: {
84921
+ Key: string;
84922
+ Value: string;
84923
+ });
84924
+ }
84925
+
84846
84926
  export declare class Listener_TargetGroupStickinessConfig {
84847
84927
  constructor(props: {
84848
84928
  /** [Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness. */
@@ -98971,6 +99051,19 @@ export declare class Pool_Tag {
98971
99051
  });
98972
99052
  }
98973
99053
 
99054
+ export declare class PopulationAnalysisConfiguration {
99055
+ constructor(props: {
99056
+ SqlParameters?: IntermediateTable_PopulationAnalysisSqlParameters;
99057
+ });
99058
+ }
99059
+
99060
+ export declare class PopulationAnalysisSqlParameters {
99061
+ constructor(props: {
99062
+ AnalysisTemplateArn?: string;
99063
+ QueryString?: string;
99064
+ });
99065
+ }
99066
+
98974
99067
  export declare class Port {
98975
99068
  constructor(props: {
98976
99069
  /** Access Direction for Protocol of the Instance(inbound/outbound). */
@@ -127346,7 +127439,7 @@ export type EmailContact_EmailContactStatus = "active" | "inactive";
127346
127439
 
127347
127440
  export type EMRServerlessApplication_Architecture = "ARM64" | "X86_64";
127348
127441
 
127349
- export type EnforcedGuardrailConfiguration_ConfigOwner = "ACCOUNT";
127442
+ export type EnforcedGuardrailConfiguration_ConfigOwner = "ACCOUNT" | "ORGANIZATION";
127350
127443
 
127351
127444
  export type EnvironmentAccountConnection_Status = "CONNECTED" | "PENDING" | "REJECTED";
127352
127445
 
@@ -127874,6 +127967,18 @@ export type IntelligentPromptRouter_PromptRouterStatus = "AVAILABLE";
127874
127967
 
127875
127968
  export type IntelligentPromptRouter_PromptRouterType = "custom" | "default";
127876
127969
 
127970
+ export type IntermediateTable_AdditionalAnalyses = "ALLOWED" | "NOT_ALLOWED" | "REQUIRED";
127971
+
127972
+ export type IntermediateTable_IntermediateTableAnalysisRuleType = "CUSTOM";
127973
+
127974
+ export type IntermediateTable_IntermediateTableStatus =
127975
+ | "BASE_TABLE_REMOVED"
127976
+ | "CREATED"
127977
+ | "DISALLOWED_BY_DATA_PROVIDER"
127978
+ | "POPULATE_FAILED"
127979
+ | "POPULATE_STARTED"
127980
+ | "POPULATE_SUCCESS";
127981
+
127877
127982
  export type InternetMonitorMonitor_MonitorConfigState =
127878
127983
  | "ACTIVE"
127879
127984
  | "ERROR"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-aws",
3
- "version": "0.18.14",
3
+ "version": "0.18.16",
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.14",
83
+ "@intentius/chant": "^0.18.16",
84
84
  "typescript": "^5.9.3"
85
85
  }
86
86
  }
@@ -1,5 +1,5 @@
1
1
  import { describe, test, expect } from "vitest";
2
- import { applyAwsEndpoint } from "./cloud-executor";
2
+ import { applyAwsEndpoint, applyAwsEndpointArgv } from "./cloud-executor";
3
3
 
4
4
  describe("applyAwsEndpoint", () => {
5
5
  const url = "http://localhost:4566";
@@ -23,3 +23,22 @@ describe("applyAwsEndpoint", () => {
23
23
  );
24
24
  });
25
25
  });
26
+
27
+ describe("applyAwsEndpointArgv (#926)", () => {
28
+ const url = "http://localhost:4566";
29
+
30
+ test("inserts --endpoint-url after `aws` in an argv when set", () => {
31
+ expect(
32
+ applyAwsEndpointArgv(["aws", "cloudformation", "describe-stack-resources", "--stack-name", "prod"], url),
33
+ ).toEqual(["aws", "--endpoint-url", url, "cloudformation", "describe-stack-resources", "--stack-name", "prod"]);
34
+ });
35
+
36
+ test("passes the argv through unchanged when no endpoint is set", () => {
37
+ expect(applyAwsEndpointArgv(["aws", "s3", "ls"], undefined)).toEqual(["aws", "s3", "ls"]);
38
+ expect(applyAwsEndpointArgv(["aws", "s3", "ls"], "")).toEqual(["aws", "s3", "ls"]);
39
+ });
40
+
41
+ test("leaves a non-aws argv untouched", () => {
42
+ expect(applyAwsEndpointArgv(["docker", "ps"], url)).toEqual(["docker", "ps"]);
43
+ });
44
+ });
@@ -344,6 +344,18 @@ export function applyAwsEndpoint(command: string, endpoint: string | undefined):
344
344
  return command.replace(/^aws\s/, `aws --endpoint-url ${q(endpoint)} `);
345
345
  }
346
346
 
347
+ /**
348
+ * argv-form of {@link applyAwsEndpoint}: insert `--endpoint-url <endpoint>` right
349
+ * after `aws` (argv[0]) when an endpoint is set, so a *spawned* `aws …` call (live
350
+ * acquisition, `graph --live`) targets a local emulator instead of real AWS.
351
+ * Non-`aws` argvs pass through untouched. Same reason as the string form — older
352
+ * `aws` v2 (<2.13) ignores `AWS_ENDPOINT_URL`.
353
+ */
354
+ export function applyAwsEndpointArgv(argv: string[], endpoint: string | undefined): string[] {
355
+ if (!endpoint || argv[0] !== "aws") return argv;
356
+ return [argv[0], "--endpoint-url", endpoint, ...argv.slice(1)];
357
+ }
358
+
347
359
  function run(command: string): Promise<{ stdout: string; stderr: string }> {
348
360
  return execFileAsync(applyAwsEndpoint(command, process.env.AWS_ENDPOINT_URL), {
349
361
  maxBuffer: 64 * 1024 * 1024,
@@ -3071,7 +3071,7 @@ export declare class AutoScalingGroup {
3071
3071
  TrafficSources?: AutoScalingGroup_TrafficSourceIdentifier[];
3072
3072
  /** A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created.
3073
3073
  If this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html).
3074
- When you update ``VPCZoneIdentifier``, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html).
3074
+ When you update ``VPCZoneIdentifier``, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. To control how CloudFormation replaces the instances, add an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html) to your stack. Set the update policy to ``AutoScalingInstanceRefresh``. For more information, see the [AutoScalingInstanceRefresh policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-instancerefresh).
3075
3075
  Required to launch instances into a nondefault VPC. If you specify ``VPCZoneIdentifier`` with ``AvailabilityZones``, the subnets that you specify for this property must reside in those Availability Zones. */
3076
3076
  VPCZoneIdentifier?: string[];
3077
3077
  }, attributes?: CFResourceAttributes);
@@ -17804,6 +17804,30 @@ export declare class InterconnectConnection {
17804
17804
  readonly Type: string;
17805
17805
  }
17806
17806
 
17807
+ export declare class IntermediateTable {
17808
+ constructor(props: {
17809
+ MembershipIdentifier: string;
17810
+ Name: string;
17811
+ PopulationAnalysisConfiguration: IntermediateTable_PopulationAnalysisConfiguration;
17812
+ AnalysisRules?: IntermediateTable_IntermediateTableAnalysisRule[];
17813
+ Arn?: string;
17814
+ CollaborationArn?: string;
17815
+ CollaborationIdentifier?: string;
17816
+ Description?: string;
17817
+ IntermediateTableIdentifier?: string;
17818
+ KmsKeyArn?: string;
17819
+ MembershipArn?: string;
17820
+ Status?: IntermediateTable_IntermediateTableStatus;
17821
+ Tags?: IntermediateTable_Tag[];
17822
+ }, attributes?: CFResourceAttributes);
17823
+ readonly Arn: string;
17824
+ readonly CollaborationArn: string;
17825
+ readonly CollaborationIdentifier: string;
17826
+ readonly IntermediateTableIdentifier: string;
17827
+ readonly MembershipArn: string;
17828
+ readonly Status: IntermediateTable_IntermediateTableStatus;
17829
+ }
17830
+
17807
17831
  export declare class InternetGateway {
17808
17832
  constructor(props: {
17809
17833
  InternetGatewayId?: string;
@@ -20051,6 +20075,7 @@ export declare class Listener {
20051
20075
  /** [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html) in the *Network Load Balancers Guide*.
20052
20076
  [HTTPS listeners] Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation. */
20053
20077
  SslPolicy?: string;
20078
+ Tags?: Listener_Tag[];
20054
20079
  }, attributes?: CFResourceAttributes);
20055
20080
  readonly ListenerArn: string;
20056
20081
  }
@@ -44843,7 +44868,8 @@ export declare class AutoScalingGroup_AvailabilityZoneDistribution {
44843
44868
  constructor(props: {
44844
44869
  /** If launches fail in an Availability Zone, the following strategies are available. The default is ``balanced-best-effort``.
44845
44870
  + ``balanced-only`` - If launches fail in an Availability Zone, Auto Scaling will continue to attempt to launch in the unhealthy zone to preserve a balanced distribution.
44846
- + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead. */
44871
+ + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead.
44872
+ + ``reservations-then-balanced`` - Auto Scaling will first attempt to launch into your Capacity Reservations, and then balance any remaining capacity across healthy Availability Zones. */
44847
44873
  CapacityDistributionStrategy?: "balanced-best-effort" | "balanced-only" | "reservations-then-balanced";
44848
44874
  });
44849
44875
  }
@@ -45290,7 +45316,8 @@ export declare class AvailabilityZoneDistribution {
45290
45316
  constructor(props: {
45291
45317
  /** If launches fail in an Availability Zone, the following strategies are available. The default is ``balanced-best-effort``.
45292
45318
  + ``balanced-only`` - If launches fail in an Availability Zone, Auto Scaling will continue to attempt to launch in the unhealthy zone to preserve a balanced distribution.
45293
- + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead. */
45319
+ + ``balanced-best-effort`` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead.
45320
+ + ``reservations-then-balanced`` - Auto Scaling will first attempt to launch into your Capacity Reservations, and then balance any remaining capacity across healthy Availability Zones. */
45294
45321
  CapacityDistributionStrategy?: "balanced-best-effort" | "balanced-only" | "reservations-then-balanced";
45295
45322
  });
45296
45323
  }
@@ -79394,6 +79421,52 @@ export declare class IntermediateStorage {
79394
79421
  });
79395
79422
  }
79396
79423
 
79424
+ export declare class IntermediateTable_IntermediateTableAnalysisRule {
79425
+ constructor(props: {
79426
+ Policy: IntermediateTable_IntermediateTableAnalysisRulePolicy;
79427
+ Type: IntermediateTable_IntermediateTableAnalysisRuleType;
79428
+ });
79429
+ }
79430
+
79431
+ export declare class IntermediateTable_IntermediateTableAnalysisRulePolicy {
79432
+ constructor(props: {
79433
+ V1: any;
79434
+ });
79435
+ }
79436
+
79437
+ export declare class IntermediateTable_PopulationAnalysisConfiguration {
79438
+ constructor(props: {
79439
+ SqlParameters?: IntermediateTable_PopulationAnalysisSqlParameters;
79440
+ });
79441
+ }
79442
+
79443
+ export declare class IntermediateTable_PopulationAnalysisSqlParameters {
79444
+ constructor(props: {
79445
+ AnalysisTemplateArn?: string;
79446
+ QueryString?: string;
79447
+ });
79448
+ }
79449
+
79450
+ export declare class IntermediateTable_Tag {
79451
+ constructor(props: {
79452
+ Key: string;
79453
+ Value: string;
79454
+ });
79455
+ }
79456
+
79457
+ export declare class IntermediateTableAnalysisRule {
79458
+ constructor(props: {
79459
+ Policy: IntermediateTable_IntermediateTableAnalysisRulePolicy;
79460
+ Type: IntermediateTable_IntermediateTableAnalysisRuleType;
79461
+ });
79462
+ }
79463
+
79464
+ export declare class IntermediateTableAnalysisRulePolicy {
79465
+ constructor(props: {
79466
+ V1: any;
79467
+ });
79468
+ }
79469
+
79397
79470
  export declare class InternetGateway_Tag {
79398
79471
  constructor(props: {
79399
79472
  /** The tag key. */
@@ -84843,6 +84916,13 @@ export declare class Listener_RedirectConfig {
84843
84916
  });
84844
84917
  }
84845
84918
 
84919
+ export declare class Listener_Tag {
84920
+ constructor(props: {
84921
+ Key: string;
84922
+ Value: string;
84923
+ });
84924
+ }
84925
+
84846
84926
  export declare class Listener_TargetGroupStickinessConfig {
84847
84927
  constructor(props: {
84848
84928
  /** [Application Load Balancers] The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness. */
@@ -98971,6 +99051,19 @@ export declare class Pool_Tag {
98971
99051
  });
98972
99052
  }
98973
99053
 
99054
+ export declare class PopulationAnalysisConfiguration {
99055
+ constructor(props: {
99056
+ SqlParameters?: IntermediateTable_PopulationAnalysisSqlParameters;
99057
+ });
99058
+ }
99059
+
99060
+ export declare class PopulationAnalysisSqlParameters {
99061
+ constructor(props: {
99062
+ AnalysisTemplateArn?: string;
99063
+ QueryString?: string;
99064
+ });
99065
+ }
99066
+
98974
99067
  export declare class Port {
98975
99068
  constructor(props: {
98976
99069
  /** Access Direction for Protocol of the Instance(inbound/outbound). */
@@ -127346,7 +127439,7 @@ export type EmailContact_EmailContactStatus = "active" | "inactive";
127346
127439
 
127347
127440
  export type EMRServerlessApplication_Architecture = "ARM64" | "X86_64";
127348
127441
 
127349
- export type EnforcedGuardrailConfiguration_ConfigOwner = "ACCOUNT";
127442
+ export type EnforcedGuardrailConfiguration_ConfigOwner = "ACCOUNT" | "ORGANIZATION";
127350
127443
 
127351
127444
  export type EnvironmentAccountConnection_Status = "CONNECTED" | "PENDING" | "REJECTED";
127352
127445
 
@@ -127874,6 +127967,18 @@ export type IntelligentPromptRouter_PromptRouterStatus = "AVAILABLE";
127874
127967
 
127875
127968
  export type IntelligentPromptRouter_PromptRouterType = "custom" | "default";
127876
127969
 
127970
+ export type IntermediateTable_AdditionalAnalyses = "ALLOWED" | "NOT_ALLOWED" | "REQUIRED";
127971
+
127972
+ export type IntermediateTable_IntermediateTableAnalysisRuleType = "CUSTOM";
127973
+
127974
+ export type IntermediateTable_IntermediateTableStatus =
127975
+ | "BASE_TABLE_REMOVED"
127976
+ | "CREATED"
127977
+ | "DISALLOWED_BY_DATA_PROVIDER"
127978
+ | "POPULATE_FAILED"
127979
+ | "POPULATE_STARTED"
127980
+ | "POPULATE_SUCCESS";
127981
+
127877
127982
  export type InternetMonitorMonitor_MonitorConfigState =
127878
127983
  | "ACTIVE"
127879
127984
  | "ERROR"