@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.
- package/dist/composites/agentcore-agent.d.ts +36 -2
- package/dist/composites/agentcore-agent.d.ts.map +1 -1
- package/dist/generated/index.d.ts +6 -0
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/integrity.json +4 -4
- package/dist/manifest.json +1 -1
- package/dist/meta.json +131 -0
- package/dist/types/index.d.ts +85 -0
- package/package.json +2 -2
- package/src/composites/agentcore-agent.test.ts +57 -0
- package/src/composites/agentcore-agent.ts +76 -7
- package/src/generated/index.d.ts +85 -0
- package/src/generated/index.ts +6 -0
- package/src/generated/lexicon-aws.json +131 -0
package/dist/integrity.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
5
|
-
"meta.json": "
|
|
6
|
-
"types/index.d.ts": "
|
|
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": "
|
|
61
|
+
"composite": "e6965db540d6499399a0db7a00c4c5b2ce3209378f498d859b516c1d05742ccd"
|
|
62
62
|
}
|
package/dist/manifest.json
CHANGED
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",
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
-
/**
|
|
42
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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",
|
package/src/generated/index.d.ts
CHANGED
|
@@ -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;
|