@intentius/chant-lexicon-aws 0.18.22 → 0.18.23

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": "6e36453d75c6d5512632c61863277df42a04bed6b64728e14678c46307c95eb5",
5
- "meta.json": "f6512d8a5b7e2b4910a0b86b917753deff90d860a83e246e80670b783ad8b258",
6
- "types/index.d.ts": "7ebef62aaa1081640af07620ddfdc0e95d2d01198d4a76cdbb5668123c995f8b",
4
+ "manifest.json": "b83031e273246f12fa29648bbf74153be1d5dbc1192482fd1e172c7eae082951",
5
+ "meta.json": "ab002890b5ec513593156baaec46b0819dd2c244eaec6d65c84af30a3bb13f1f",
6
+ "types/index.d.ts": "ec9ae02e2b0f6faac8f681b73fad549c71e11fbbcf5d673538b9f5efd8a34267",
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": "86b2c119a05f52fd1f9e695836aeb43d3897894ffe8c520541783f10cbf9c279"
61
+ "composite": "e6965db540d6499399a0db7a00c4c5b2ce3209378f498d859b516c1d05742ccd"
62
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws",
3
- "version": "0.18.22",
3
+ "version": "0.18.23",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "AWS",
6
6
  "intrinsics": [
package/dist/meta.json CHANGED
@@ -37832,6 +37832,61 @@
37832
37832
  "kind": "property",
37833
37833
  "lexicon": "aws"
37834
37834
  },
37835
+ "ExperimentTrialComponent": {
37836
+ "resourceType": "AWS::SageMaker::ExperimentTrialComponent",
37837
+ "kind": "resource",
37838
+ "lexicon": "aws",
37839
+ "attrs": {
37840
+ "Arn": "Arn",
37841
+ "CreationTime": "CreationTime",
37842
+ "LastModifiedTime": "LastModifiedTime",
37843
+ "LineageGroupArn": "LineageGroupArn"
37844
+ },
37845
+ "propertyConstraints": {
37846
+ "TrialComponentName": {
37847
+ "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,119}$",
37848
+ "minLength": 1,
37849
+ "maxLength": 120
37850
+ },
37851
+ "Arn": {
37852
+ "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:experiment-trial-component/",
37853
+ "maxLength": 256
37854
+ },
37855
+ "DisplayName": {
37856
+ "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,119}$",
37857
+ "minLength": 1,
37858
+ "maxLength": 120
37859
+ },
37860
+ "StartTime": {
37861
+ "format": "date-time"
37862
+ },
37863
+ "EndTime": {
37864
+ "format": "date-time"
37865
+ },
37866
+ "CreationTime": {
37867
+ "format": "date-time"
37868
+ },
37869
+ "LastModifiedTime": {
37870
+ "format": "date-time"
37871
+ },
37872
+ "LineageGroupArn": {
37873
+ "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:lineage-group/",
37874
+ "maxLength": 256
37875
+ }
37876
+ },
37877
+ "createOnly": [
37878
+ "TrialComponentName",
37879
+ "MetadataProperties"
37880
+ ],
37881
+ "primaryIdentifier": [
37882
+ "Arn"
37883
+ ],
37884
+ "tagging": {
37885
+ "taggable": true,
37886
+ "tagOnCreate": true,
37887
+ "tagUpdatable": true
37888
+ }
37889
+ },
37835
37890
  "ExpirationDataRule": {
37836
37891
  "resourceType": "AWS::S3Files::FileSystem.ExpirationDataRule",
37837
37892
  "kind": "property",
@@ -62374,6 +62429,11 @@
62374
62429
  "kind": "property",
62375
62430
  "lexicon": "aws"
62376
62431
  },
62432
+ "ModelDashboardIndicatorAction": {
62433
+ "resourceType": "AWS::SageMaker::MonitoringScheduleAlert.ModelDashboardIndicatorAction",
62434
+ "kind": "property",
62435
+ "lexicon": "aws"
62436
+ },
62377
62437
  "ModelDataQuality": {
62378
62438
  "resourceType": "AWS::SageMaker::ModelPackage.ModelDataQuality",
62379
62439
  "kind": "property",
@@ -63225,6 +63285,11 @@
63225
63285
  "kind": "property",
63226
63286
  "lexicon": "aws"
63227
63287
  },
63288
+ "MonitoringAlertActions": {
63289
+ "resourceType": "AWS::SageMaker::MonitoringScheduleAlert.MonitoringAlertActions",
63290
+ "kind": "property",
63291
+ "lexicon": "aws"
63292
+ },
63228
63293
  "MonitoringAppSpecification": {
63229
63294
  "resourceType": "AWS::SageMaker::MonitoringSchedule.MonitoringAppSpecification",
63230
63295
  "kind": "property",
@@ -63274,6 +63339,72 @@
63274
63339
  "MonitoringScheduleArn"
63275
63340
  ]
63276
63341
  },
63342
+ "MonitoringScheduleAlert": {
63343
+ "resourceType": "AWS::SageMaker::MonitoringScheduleAlert",
63344
+ "kind": "resource",
63345
+ "lexicon": "aws",
63346
+ "attrs": {
63347
+ "Arn": "Arn",
63348
+ "AlertStatus": "AlertStatus",
63349
+ "CreationTime": "CreationTime",
63350
+ "LastModifiedTime": "LastModifiedTime",
63351
+ "Actions": "Actions"
63352
+ },
63353
+ "propertyConstraints": {
63354
+ "Arn": {
63355
+ "maxLength": 256
63356
+ },
63357
+ "MonitoringScheduleName": {
63358
+ "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$",
63359
+ "minLength": 1,
63360
+ "maxLength": 63
63361
+ },
63362
+ "MonitoringAlertName": {
63363
+ "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$",
63364
+ "minLength": 1,
63365
+ "maxLength": 63
63366
+ },
63367
+ "DatapointsToAlert": {
63368
+ "minimum": 1,
63369
+ "maximum": 100
63370
+ },
63371
+ "EvaluationPeriod": {
63372
+ "minimum": 1,
63373
+ "maximum": 100
63374
+ },
63375
+ "AlertStatus": {
63376
+ "enum": [
63377
+ "InAlert",
63378
+ "OK"
63379
+ ]
63380
+ },
63381
+ "CreationTime": {
63382
+ "format": "date-time"
63383
+ },
63384
+ "LastModifiedTime": {
63385
+ "format": "date-time"
63386
+ }
63387
+ },
63388
+ "createOnly": [
63389
+ "DatapointsToAlert",
63390
+ "EvaluationPeriod",
63391
+ "MonitoringAlertName",
63392
+ "MonitoringScheduleName"
63393
+ ],
63394
+ "primaryIdentifier": [
63395
+ "Arn"
63396
+ ]
63397
+ },
63398
+ "MonitoringScheduleAlert_ModelDashboardIndicatorAction": {
63399
+ "resourceType": "AWS::SageMaker::MonitoringScheduleAlert.ModelDashboardIndicatorAction",
63400
+ "kind": "property",
63401
+ "lexicon": "aws"
63402
+ },
63403
+ "MonitoringScheduleAlert_MonitoringAlertActions": {
63404
+ "resourceType": "AWS::SageMaker::MonitoringScheduleAlert.MonitoringAlertActions",
63405
+ "kind": "property",
63406
+ "lexicon": "aws"
63407
+ },
63277
63408
  "MonitoringScheduleConfig": {
63278
63409
  "resourceType": "AWS::SageMaker::MonitoringSchedule.MonitoringScheduleConfig",
63279
63410
  "kind": "property",
@@ -13923,6 +13923,37 @@ export declare class ExperimentTemplate {
13923
13923
  readonly Id: string;
13924
13924
  }
13925
13925
 
13926
+ export declare class ExperimentTrialComponent {
13927
+ constructor(props: {
13928
+ /** The name of the trial component. The name must be unique in your AWS account and is not case-sensitive. */
13929
+ TrialComponentName: string;
13930
+ /** The Amazon Resource Name (ARN) of the trial component. */
13931
+ Arn?: string;
13932
+ /** When the component was created. */
13933
+ CreationTime?: string;
13934
+ /** The name of the component as displayed. The name doesn't need to be unique. If DisplayName isn't specified, TrialComponentName is displayed. */
13935
+ DisplayName?: string;
13936
+ /** When the component ended. */
13937
+ EndTime?: string;
13938
+ /** When the component was last modified. */
13939
+ LastModifiedTime?: string;
13940
+ /** The Amazon Resource Name (ARN) of the lineage group. */
13941
+ LineageGroupArn?: string;
13942
+ /** Metadata properties of the tracking entity, trial, or trial component. */
13943
+ MetadataProperties?: Record<string, unknown>;
13944
+ /** When the component started. */
13945
+ StartTime?: string;
13946
+ /** The status of the trial component. */
13947
+ Status?: Record<string, unknown>;
13948
+ /** A list of tags to associate with the component. */
13949
+ Tags?: Record<string, unknown>[];
13950
+ }, attributes?: CFResourceAttributes);
13951
+ readonly Arn: string;
13952
+ readonly CreationTime: string;
13953
+ readonly LastModifiedTime: string;
13954
+ readonly LineageGroupArn: string;
13955
+ }
13956
+
13926
13957
  export declare class Export {
13927
13958
  constructor(props: {
13928
13959
  Export: Export_Export;
@@ -22905,6 +22936,34 @@ export declare class MonitoringSchedule {
22905
22936
  readonly MonitoringScheduleArn: string;
22906
22937
  }
22907
22938
 
22939
+ export declare class MonitoringScheduleAlert {
22940
+ constructor(props: {
22941
+ /** Within EvaluationPeriod, how many execution failures will raise an alert. */
22942
+ DatapointsToAlert: number;
22943
+ /** The number of most recent monitoring executions to consider when evaluating alert status. */
22944
+ EvaluationPeriod: number;
22945
+ /** The name of the monitoring alert. */
22946
+ MonitoringAlertName: string;
22947
+ /** The name of the monitoring schedule. */
22948
+ MonitoringScheduleName: string;
22949
+ /** A list of alert actions taken in response to an alert going into InAlert status. */
22950
+ Actions?: MonitoringScheduleAlert_MonitoringAlertActions;
22951
+ /** The current status of the alert. */
22952
+ AlertStatus?: "InAlert" | "OK";
22953
+ /** The Amazon Resource Name (ARN) of the monitoring schedule alert. */
22954
+ Arn?: string;
22955
+ /** A timestamp that indicates when the alert was created. */
22956
+ CreationTime?: string;
22957
+ /** A timestamp that indicates when the alert was last updated. */
22958
+ LastModifiedTime?: string;
22959
+ }, attributes?: CFResourceAttributes);
22960
+ readonly Actions: MonitoringScheduleAlert_MonitoringAlertActions;
22961
+ readonly AlertStatus: "InAlert" | "OK";
22962
+ readonly Arn: string;
22963
+ readonly CreationTime: string;
22964
+ readonly LastModifiedTime: string;
22965
+ }
22966
+
22908
22967
  export declare class MonitoringSubscription {
22909
22968
  constructor(props: {
22910
22969
  /** The ID of the distribution that you are enabling metrics for. */
@@ -91054,6 +91113,13 @@ export declare class ModelCardExportOutputConfig {
91054
91113
  });
91055
91114
  }
91056
91115
 
91116
+ export declare class ModelDashboardIndicatorAction {
91117
+ constructor(props: {
91118
+ /** Indicates whether the alert action is turned on. */
91119
+ Enabled?: boolean;
91120
+ });
91121
+ }
91122
+
91057
91123
  export declare class ModelDataQuality {
91058
91124
  constructor(props: {
91059
91125
  Constraints?: ModelPackage_MetricsSource;
@@ -92044,6 +92110,12 @@ export declare class Monitoring {
92044
92110
  });
92045
92111
  }
92046
92112
 
92113
+ export declare class MonitoringAlertActions {
92114
+ constructor(props: {
92115
+ ModelDashboardIndicator?: MonitoringScheduleAlert_ModelDashboardIndicatorAction;
92116
+ });
92117
+ }
92118
+
92047
92119
  export declare class MonitoringAppSpecification {
92048
92120
  constructor(props: {
92049
92121
  /** The container image to be run by the monitoring job. */
@@ -92213,6 +92285,19 @@ export declare class MonitoringSchedule_Tag {
92213
92285
  });
92214
92286
  }
92215
92287
 
92288
+ export declare class MonitoringScheduleAlert_ModelDashboardIndicatorAction {
92289
+ constructor(props: {
92290
+ /** Indicates whether the alert action is turned on. */
92291
+ Enabled?: boolean;
92292
+ });
92293
+ }
92294
+
92295
+ export declare class MonitoringScheduleAlert_MonitoringAlertActions {
92296
+ constructor(props: {
92297
+ ModelDashboardIndicator?: MonitoringScheduleAlert_ModelDashboardIndicatorAction;
92298
+ });
92299
+ }
92300
+
92216
92301
  export declare class MonitoringScheduleConfig {
92217
92302
  constructor(props: {
92218
92303
  MonitoringJobDefinition?: MonitoringSchedule_MonitoringJobDefinition;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-aws",
3
- "version": "0.18.22",
3
+ "version": "0.18.23",
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.22",
83
+ "@intentius/chant": "^0.18.23",
84
84
  "typescript": "^5.9.3"
85
85
  }
86
86
  }
@@ -84,6 +84,63 @@ describe("AgentCoreAgent", () => {
84
84
  expect(networkProps.NetworkModeConfig).toBeUndefined();
85
85
  });
86
86
 
87
+ test("code-config path wires CodeConfiguration (S3 zip on a managed runtime) instead of a container", () => {
88
+ const instance = AgentCoreAgent({
89
+ name: "support-agent",
90
+ code: {
91
+ s3Bucket: "loom-artifacts",
92
+ s3Prefix: "agents/assistant.zip",
93
+ runtime: "PYTHON_3_12",
94
+ entryPoint: ["app.py"],
95
+ },
96
+ });
97
+ const artifactProps = ((instance.runtime as any).props.AgentRuntimeArtifact as any).props;
98
+ expect(artifactProps.ContainerConfiguration).toBeUndefined();
99
+ const codeProps = (artifactProps.CodeConfiguration as any).props;
100
+ expect(codeProps.Runtime).toBe("PYTHON_3_12");
101
+ expect(codeProps.EntryPoint).toEqual(["app.py"]);
102
+ const s3 = (codeProps.Code as any).props.S3;
103
+ expect(s3).toEqual({ Bucket: "loom-artifacts", Prefix: "agents/assistant.zip" });
104
+ });
105
+
106
+ test("code-config VersionId is threaded through only when supplied", () => {
107
+ const withVersion = AgentCoreAgent({
108
+ name: "support-agent",
109
+ code: { s3Bucket: "b", s3Prefix: "k.zip", runtime: "PYTHON_3_12", entryPoint: ["app.py"], s3VersionId: "v1" },
110
+ });
111
+ const s3 = (((withVersion.runtime as any).props.AgentRuntimeArtifact as any).props.CodeConfiguration as any).props.Code.props.S3;
112
+ expect(s3.VersionId).toBe("v1");
113
+ });
114
+
115
+ test("throws when neither containerUri nor code is supplied", () => {
116
+ expect(() => AgentCoreAgent({ name: "support-agent" } as any)).toThrow(
117
+ "AgentCoreAgent requires exactly one of containerUri or code",
118
+ );
119
+ });
120
+
121
+ test("throws when both containerUri and code are supplied", () => {
122
+ expect(() => AgentCoreAgent({
123
+ ...baseProps,
124
+ code: { s3Bucket: "b", s3Prefix: "k.zip", runtime: "PYTHON_3_12", entryPoint: ["app.py"] },
125
+ })).toThrow("AgentCoreAgent requires exactly one of containerUri or code");
126
+ });
127
+
128
+ test("code-config serializes to a valid CloudFormation Runtime resource", () => {
129
+ const expanded = expandComposite("agent", AgentCoreAgent({
130
+ name: "support-agent",
131
+ code: { s3Bucket: "loom-artifacts", s3Prefix: "agents/assistant.zip", runtime: "PYTHON_3_12", entryPoint: ["app.py"] },
132
+ }));
133
+ resolveAttrRefs(expanded);
134
+ const template = JSON.parse(awsSerializer.serialize(expanded));
135
+ const artifact = template.Resources.agentRuntime.Properties.AgentRuntimeArtifact;
136
+ expect(artifact.ContainerConfiguration).toBeUndefined();
137
+ expect(artifact.CodeConfiguration).toEqual({
138
+ Code: { S3: { Bucket: "loom-artifacts", Prefix: "agents/assistant.zip" } },
139
+ EntryPoint: ["app.py"],
140
+ Runtime: "PYTHON_3_12",
141
+ });
142
+ });
143
+
87
144
  test("VPC network mode wires NetworkModeConfig from vpcSubnetIds/vpcSecurityGroupIds", () => {
88
145
  const instance = AgentCoreAgent({
89
146
  ...baseProps,
@@ -4,6 +4,8 @@ import {
4
4
  Role_Policy,
5
5
  Runtime,
6
6
  Runtime_AgentRuntimeArtifact,
7
+ Runtime_Code,
8
+ Runtime_CodeConfiguration,
7
9
  Runtime_ContainerConfiguration,
8
10
  Runtime_NetworkConfiguration,
9
11
  Runtime_VpcConfig,
@@ -13,6 +15,20 @@ import {
13
15
  GatewayTarget,
14
16
  WorkloadIdentity,
15
17
  } from "../generated";
18
+
19
+ /**
20
+ * Managed language runtimes AgentCore can run a code-config zip on. Inlined
21
+ * from the generated `Runtime_AgentManagedRuntimeType` CFN enum (which the
22
+ * generated barrel exports as a type declaration only), matching how
23
+ * `protocolConfiguration`/`gatewayAuthorizerType` inline their enums below.
24
+ */
25
+ export type AgentManagedRuntime =
26
+ | "NODE_22"
27
+ | "PYTHON_3_10"
28
+ | "PYTHON_3_11"
29
+ | "PYTHON_3_12"
30
+ | "PYTHON_3_13"
31
+ | "PYTHON_3_14";
16
32
  import { agentCoreTrustPolicy } from "./agentcore-trust-policy";
17
33
 
18
34
  /**
@@ -31,6 +47,26 @@ function toRuntimeIdentifier(name: string): string {
31
47
  return identifier.slice(0, 48);
32
48
  }
33
49
 
50
+ /**
51
+ * Managed-runtime code artifact — the S3-zip alternative to `containerUri`.
52
+ * Mirrors CFN `Runtime.CodeConfiguration`: AgentCore runs a zipped agent on
53
+ * a managed language runtime, no container image to build or host. This is
54
+ * how a Strands agent actually ships (a Python zip in S3), which is why the
55
+ * composite offers it alongside the container path.
56
+ */
57
+ export interface AgentCoreCodeArtifact {
58
+ /** S3 bucket holding the agent's zipped code. */
59
+ s3Bucket: string;
60
+ /** S3 key (or prefix) of the zip within `s3Bucket`. */
61
+ s3Prefix: string;
62
+ /** Optional S3 object version id, pinning a specific upload. */
63
+ s3VersionId?: string;
64
+ /** Managed runtime the zip runs on, e.g. `"PYTHON_3_12"`. Mirrors the generated CFN enum. */
65
+ runtime: AgentManagedRuntime;
66
+ /** Entry point, 1-2 items — e.g. `["app.py"]` or `["python", "app.py"]` (CFN bounds the list to 2). */
67
+ entryPoint: string[];
68
+ }
69
+
34
70
  export interface AgentCoreAgentProps {
35
71
  /**
36
72
  * Base name for the agent's resources. `toRuntimeIdentifier(name)` derives
@@ -38,8 +74,16 @@ export interface AgentCoreAgentProps {
38
74
  * WorkloadIdentity use `name` as-is (hyphens are valid there).
39
75
  */
40
76
  name: string;
41
- /** ECR image URI the Runtime runs, e.g. `"123456789012.dkr.ecr.us-east-1.amazonaws.com/agent:latest"`. */
42
- containerUri: string;
77
+ /**
78
+ * ECR image URI the Runtime runs, e.g. `"123456789012.dkr.ecr.us-east-1.amazonaws.com/agent:latest"`.
79
+ * Supply exactly one of `containerUri` or `code`.
80
+ */
81
+ containerUri?: string;
82
+ /**
83
+ * S3-zip code artifact run on a managed runtime — the alternative to
84
+ * `containerUri`. Supply exactly one of the two.
85
+ */
86
+ code?: AgentCoreCodeArtifact;
43
87
  /** Runtime network mode. Default: "PUBLIC". */
44
88
  networkMode?: "PUBLIC" | "VPC";
45
89
  /** Subnets for the Runtime's ENIs. Required when `networkMode` is "VPC". */
@@ -106,6 +150,12 @@ export type AgentCoreAgentResult = {
106
150
  */
107
151
  export const AgentCoreAgent = Composite<AgentCoreAgentProps, AgentCoreAgentResult>((props) => {
108
152
  const { defaults } = props;
153
+ // Exactly one artifact source. Both-or-neither is a modeling mistake CFN
154
+ // would also reject (AgentRuntimeArtifact is a one-of), caught here so the
155
+ // error names the composite prop rather than a raw CFN validation string.
156
+ if ((props.containerUri === undefined) === (props.code === undefined)) {
157
+ throw new Error("AgentCoreAgent requires exactly one of containerUri or code");
158
+ }
109
159
  const networkMode = props.networkMode ?? "PUBLIC";
110
160
  // Check presence, not `.length`: a cross-stack value (Fn::Split of a Parameter,
111
161
  // the shape stackOutput/Ref/Split produce) is a truthy intrinsic object with no
@@ -146,13 +196,32 @@ export const AgentCoreAgent = Composite<AgentCoreAgentProps, AgentCoreAgentResul
146
196
  : undefined,
147
197
  });
148
198
 
149
- const runtime = new Runtime(mergeDefaults({
150
- AgentRuntimeName: runtimeName,
151
- AgentRuntimeArtifact: new Runtime_AgentRuntimeArtifact({
199
+ // CFN `Code.S3` is a free-form location object in the generated type; its
200
+ // keys (Bucket/Prefix/VersionId) come straight from the CloudFormation
201
+ // schema for AWS::BedrockAgentCore::Runtime.
202
+ const artifact = props.code
203
+ ? new Runtime_AgentRuntimeArtifact({
204
+ CodeConfiguration: new Runtime_CodeConfiguration({
205
+ Code: new Runtime_Code({
206
+ S3: {
207
+ Bucket: props.code.s3Bucket,
208
+ Prefix: props.code.s3Prefix,
209
+ ...(props.code.s3VersionId !== undefined ? { VersionId: props.code.s3VersionId } : {}),
210
+ },
211
+ }),
212
+ EntryPoint: props.code.entryPoint,
213
+ Runtime: props.code.runtime,
214
+ }),
215
+ })
216
+ : new Runtime_AgentRuntimeArtifact({
152
217
  ContainerConfiguration: new Runtime_ContainerConfiguration({
153
- ContainerUri: props.containerUri,
218
+ ContainerUri: props.containerUri as string,
154
219
  }),
155
- }),
220
+ });
221
+
222
+ const runtime = new Runtime(mergeDefaults({
223
+ AgentRuntimeName: runtimeName,
224
+ AgentRuntimeArtifact: artifact,
156
225
  RoleArn: role.Arn,
157
226
  NetworkConfiguration: networkConfiguration,
158
227
  ProtocolConfiguration: props.protocolConfiguration ?? "MCP",
@@ -13923,6 +13923,37 @@ export declare class ExperimentTemplate {
13923
13923
  readonly Id: string;
13924
13924
  }
13925
13925
 
13926
+ export declare class ExperimentTrialComponent {
13927
+ constructor(props: {
13928
+ /** The name of the trial component. The name must be unique in your AWS account and is not case-sensitive. */
13929
+ TrialComponentName: string;
13930
+ /** The Amazon Resource Name (ARN) of the trial component. */
13931
+ Arn?: string;
13932
+ /** When the component was created. */
13933
+ CreationTime?: string;
13934
+ /** The name of the component as displayed. The name doesn't need to be unique. If DisplayName isn't specified, TrialComponentName is displayed. */
13935
+ DisplayName?: string;
13936
+ /** When the component ended. */
13937
+ EndTime?: string;
13938
+ /** When the component was last modified. */
13939
+ LastModifiedTime?: string;
13940
+ /** The Amazon Resource Name (ARN) of the lineage group. */
13941
+ LineageGroupArn?: string;
13942
+ /** Metadata properties of the tracking entity, trial, or trial component. */
13943
+ MetadataProperties?: Record<string, unknown>;
13944
+ /** When the component started. */
13945
+ StartTime?: string;
13946
+ /** The status of the trial component. */
13947
+ Status?: Record<string, unknown>;
13948
+ /** A list of tags to associate with the component. */
13949
+ Tags?: Record<string, unknown>[];
13950
+ }, attributes?: CFResourceAttributes);
13951
+ readonly Arn: string;
13952
+ readonly CreationTime: string;
13953
+ readonly LastModifiedTime: string;
13954
+ readonly LineageGroupArn: string;
13955
+ }
13956
+
13926
13957
  export declare class Export {
13927
13958
  constructor(props: {
13928
13959
  Export: Export_Export;
@@ -22905,6 +22936,34 @@ export declare class MonitoringSchedule {
22905
22936
  readonly MonitoringScheduleArn: string;
22906
22937
  }
22907
22938
 
22939
+ export declare class MonitoringScheduleAlert {
22940
+ constructor(props: {
22941
+ /** Within EvaluationPeriod, how many execution failures will raise an alert. */
22942
+ DatapointsToAlert: number;
22943
+ /** The number of most recent monitoring executions to consider when evaluating alert status. */
22944
+ EvaluationPeriod: number;
22945
+ /** The name of the monitoring alert. */
22946
+ MonitoringAlertName: string;
22947
+ /** The name of the monitoring schedule. */
22948
+ MonitoringScheduleName: string;
22949
+ /** A list of alert actions taken in response to an alert going into InAlert status. */
22950
+ Actions?: MonitoringScheduleAlert_MonitoringAlertActions;
22951
+ /** The current status of the alert. */
22952
+ AlertStatus?: "InAlert" | "OK";
22953
+ /** The Amazon Resource Name (ARN) of the monitoring schedule alert. */
22954
+ Arn?: string;
22955
+ /** A timestamp that indicates when the alert was created. */
22956
+ CreationTime?: string;
22957
+ /** A timestamp that indicates when the alert was last updated. */
22958
+ LastModifiedTime?: string;
22959
+ }, attributes?: CFResourceAttributes);
22960
+ readonly Actions: MonitoringScheduleAlert_MonitoringAlertActions;
22961
+ readonly AlertStatus: "InAlert" | "OK";
22962
+ readonly Arn: string;
22963
+ readonly CreationTime: string;
22964
+ readonly LastModifiedTime: string;
22965
+ }
22966
+
22908
22967
  export declare class MonitoringSubscription {
22909
22968
  constructor(props: {
22910
22969
  /** The ID of the distribution that you are enabling metrics for. */
@@ -91054,6 +91113,13 @@ export declare class ModelCardExportOutputConfig {
91054
91113
  });
91055
91114
  }
91056
91115
 
91116
+ export declare class ModelDashboardIndicatorAction {
91117
+ constructor(props: {
91118
+ /** Indicates whether the alert action is turned on. */
91119
+ Enabled?: boolean;
91120
+ });
91121
+ }
91122
+
91057
91123
  export declare class ModelDataQuality {
91058
91124
  constructor(props: {
91059
91125
  Constraints?: ModelPackage_MetricsSource;
@@ -92044,6 +92110,12 @@ export declare class Monitoring {
92044
92110
  });
92045
92111
  }
92046
92112
 
92113
+ export declare class MonitoringAlertActions {
92114
+ constructor(props: {
92115
+ ModelDashboardIndicator?: MonitoringScheduleAlert_ModelDashboardIndicatorAction;
92116
+ });
92117
+ }
92118
+
92047
92119
  export declare class MonitoringAppSpecification {
92048
92120
  constructor(props: {
92049
92121
  /** The container image to be run by the monitoring job. */
@@ -92213,6 +92285,19 @@ export declare class MonitoringSchedule_Tag {
92213
92285
  });
92214
92286
  }
92215
92287
 
92288
+ export declare class MonitoringScheduleAlert_ModelDashboardIndicatorAction {
92289
+ constructor(props: {
92290
+ /** Indicates whether the alert action is turned on. */
92291
+ Enabled?: boolean;
92292
+ });
92293
+ }
92294
+
92295
+ export declare class MonitoringScheduleAlert_MonitoringAlertActions {
92296
+ constructor(props: {
92297
+ ModelDashboardIndicator?: MonitoringScheduleAlert_ModelDashboardIndicatorAction;
92298
+ });
92299
+ }
92300
+
92216
92301
  export declare class MonitoringScheduleConfig {
92217
92302
  constructor(props: {
92218
92303
  MonitoringJobDefinition?: MonitoringSchedule_MonitoringJobDefinition;