@aws-cdk/aws-bedrock-agentcore-alpha 2.236.0-alpha.0 → 2.237.0-alpha.0
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/.jsii +663 -173
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +23 -1
- package/README.md +129 -4
- package/lib/common/types.d.ts +35 -0
- package/lib/common/types.js +41 -0
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.js +1 -1
- package/lib/gateway/inbound-auth/authorizer.d.ts +25 -0
- package/lib/gateway/inbound-auth/authorizer.js +17 -7
- package/lib/gateway/inbound-auth/custom-claim.d.ts +50 -0
- package/lib/gateway/inbound-auth/custom-claim.js +127 -0
- package/lib/gateway/interceptor.js +1 -1
- package/lib/gateway/outbound-auth/api-key.js +1 -1
- package/lib/gateway/outbound-auth/credential-provider.js +1 -1
- package/lib/gateway/protocol.js +2 -2
- package/lib/gateway/targets/schema/api-schema.js +7 -6
- package/lib/gateway/targets/schema/tool-schema.js +7 -6
- package/lib/gateway/targets/target-base.js +1 -1
- package/lib/gateway/targets/target-configuration.js +5 -5
- package/lib/gateway/targets/target.js +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +8 -2
- package/lib/memory/memory-strategy.js +1 -1
- package/lib/memory/memory.js +2 -2
- package/lib/memory/strategies/managed-strategy.js +1 -1
- package/lib/memory/strategies/self-managed-strategy.js +1 -1
- package/lib/network/network-configuration.js +4 -4
- package/lib/runtime/inbound-auth/custom-claim.d.ts +50 -0
- package/lib/runtime/inbound-auth/custom-claim.js +127 -0
- package/lib/runtime/{runtime-authorizer-configuration.d.ts → inbound-auth/runtime-authorizer-configuration.d.ts} +10 -3
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +183 -0
- package/lib/runtime/runtime-artifact.js +1 -1
- package/lib/runtime/runtime-base.js +1 -1
- package/lib/runtime/runtime-endpoint-base.js +1 -1
- package/lib/runtime/runtime-endpoint.js +1 -1
- package/lib/runtime/runtime.d.ts +1 -1
- package/lib/runtime/runtime.js +2 -2
- package/lib/tools/browser.js +2 -2
- package/lib/tools/code-interpreter.js +2 -2
- package/package.json +9 -9
- package/lib/runtime/runtime-authorizer-configuration.js +0 -159
|
@@ -25,7 +25,7 @@ const PROMPT_MAX_LENGTH = 30000;
|
|
|
25
25
|
* with specific models and prompt templates.
|
|
26
26
|
*/
|
|
27
27
|
class ManagedMemoryStrategy {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.237.0-alpha.0" };
|
|
29
29
|
name;
|
|
30
30
|
description;
|
|
31
31
|
/**
|
|
@@ -86,7 +86,7 @@ const DEFAULT_TOKEN_BASED_TRIGGER = 100;
|
|
|
86
86
|
* Use AgentCore memory for event storage with custom triggers. Define memory processing logic in your own environment.
|
|
87
87
|
*/
|
|
88
88
|
class SelfManagedMemoryStrategy {
|
|
89
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.
|
|
89
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.237.0-alpha.0" };
|
|
90
90
|
name;
|
|
91
91
|
description;
|
|
92
92
|
strategyType;
|
|
@@ -8,7 +8,7 @@ const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
|
8
8
|
* Abstract base class for network configuration.
|
|
9
9
|
*/
|
|
10
10
|
class NetworkConfiguration {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.237.0-alpha.0" };
|
|
12
12
|
/**
|
|
13
13
|
* The network mode to use.
|
|
14
14
|
* Configure the security level for agent
|
|
@@ -87,7 +87,7 @@ exports.NetworkConfiguration = NetworkConfiguration;
|
|
|
87
87
|
* Network configuration for the Browser tool.
|
|
88
88
|
*/
|
|
89
89
|
class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
90
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.
|
|
90
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.237.0-alpha.0" };
|
|
91
91
|
/**
|
|
92
92
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
93
93
|
* @returns A BrowserNetworkConfiguration.
|
|
@@ -133,7 +133,7 @@ exports.BrowserNetworkConfiguration = BrowserNetworkConfiguration;
|
|
|
133
133
|
* Network configuration for the Code Interpreter tool.
|
|
134
134
|
*/
|
|
135
135
|
class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
136
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.
|
|
136
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.237.0-alpha.0" };
|
|
137
137
|
/**
|
|
138
138
|
* Creates a public network configuration.
|
|
139
139
|
* @returns A CodeInterpreterNetworkConfiguration.
|
|
@@ -187,7 +187,7 @@ exports.CodeInterpreterNetworkConfiguration = CodeInterpreterNetworkConfiguratio
|
|
|
187
187
|
* Network configuration for the Runtime.
|
|
188
188
|
*/
|
|
189
189
|
class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
190
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.
|
|
190
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.237.0-alpha.0" };
|
|
191
191
|
/**
|
|
192
192
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
193
193
|
* @returns A RuntimeNetworkConfiguration.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
5
|
+
* with the License. A copy of the License is located at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
10
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
|
+
* and limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
import { CfnRuntime } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
14
|
+
import { CustomClaimOperator } from '../../common/types';
|
|
15
|
+
/**
|
|
16
|
+
* Represents a custom claim validation configuration for Runtime JWT authorizers.
|
|
17
|
+
* Custom claims allow you to validate additional fields in JWT tokens beyond
|
|
18
|
+
* the standard audience, client, and scope validations.
|
|
19
|
+
*/
|
|
20
|
+
export declare class RuntimeCustomClaim {
|
|
21
|
+
private readonly name;
|
|
22
|
+
private readonly valueType;
|
|
23
|
+
private readonly operator;
|
|
24
|
+
private readonly value;
|
|
25
|
+
/**
|
|
26
|
+
* Create a custom claim with a string value.
|
|
27
|
+
* String claims must use the EQUALS operator.
|
|
28
|
+
*
|
|
29
|
+
* @param name The name of the claim in the JWT token
|
|
30
|
+
* @param value The string value to match (must exactly equal)
|
|
31
|
+
* @returns A RuntimeCustomClaim configured for string validation
|
|
32
|
+
*/
|
|
33
|
+
static withStringValue(name: string, value: string): RuntimeCustomClaim;
|
|
34
|
+
/**
|
|
35
|
+
* Create a custom claim with a string array value.
|
|
36
|
+
* String array claims can use CONTAINS (default) or CONTAINS_ANY operator.
|
|
37
|
+
*
|
|
38
|
+
* @param name The name of the claim in the JWT token
|
|
39
|
+
* @param values The array of string values to match. For CONTAINS operator, must contain exactly one value.
|
|
40
|
+
* @param operator The match operator (defaults to CONTAINS)
|
|
41
|
+
* @returns A RuntimeCustomClaim configured for string array validation
|
|
42
|
+
*/
|
|
43
|
+
static withStringArrayValue(name: string, values: string[], operator?: CustomClaimOperator): RuntimeCustomClaim;
|
|
44
|
+
private constructor();
|
|
45
|
+
/**
|
|
46
|
+
* Render the custom claim as a CloudFormation property
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
_render(): CfnRuntime.CustomClaimValidationTypeProperty;
|
|
50
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuntimeCustomClaim = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
10
|
+
* with the License. A copy of the License is located at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
15
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
16
|
+
* and limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
19
|
+
const types_1 = require("../../common/types");
|
|
20
|
+
const validation_helpers_1 = require("../validation-helpers");
|
|
21
|
+
/**
|
|
22
|
+
* Represents a custom claim validation configuration for Runtime JWT authorizers.
|
|
23
|
+
* Custom claims allow you to validate additional fields in JWT tokens beyond
|
|
24
|
+
* the standard audience, client, and scope validations.
|
|
25
|
+
*/
|
|
26
|
+
class RuntimeCustomClaim {
|
|
27
|
+
name;
|
|
28
|
+
valueType;
|
|
29
|
+
operator;
|
|
30
|
+
value;
|
|
31
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeCustomClaim", version: "2.237.0-alpha.0" };
|
|
32
|
+
/**
|
|
33
|
+
* Create a custom claim with a string value.
|
|
34
|
+
* String claims must use the EQUALS operator.
|
|
35
|
+
*
|
|
36
|
+
* @param name The name of the claim in the JWT token
|
|
37
|
+
* @param value The string value to match (must exactly equal)
|
|
38
|
+
* @returns A RuntimeCustomClaim configured for string validation
|
|
39
|
+
*/
|
|
40
|
+
static withStringValue(name, value) {
|
|
41
|
+
return new RuntimeCustomClaim(name, types_1.CustomClaimValueType.STRING, types_1.CustomClaimOperator.EQUALS, value);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a custom claim with a string array value.
|
|
45
|
+
* String array claims can use CONTAINS (default) or CONTAINS_ANY operator.
|
|
46
|
+
*
|
|
47
|
+
* @param name The name of the claim in the JWT token
|
|
48
|
+
* @param values The array of string values to match. For CONTAINS operator, must contain exactly one value.
|
|
49
|
+
* @param operator The match operator (defaults to CONTAINS)
|
|
50
|
+
* @returns A RuntimeCustomClaim configured for string array validation
|
|
51
|
+
*/
|
|
52
|
+
static withStringArrayValue(name, values, operator = types_1.CustomClaimOperator.CONTAINS) {
|
|
53
|
+
try {
|
|
54
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_CustomClaimOperator(operator);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
58
|
+
Error.captureStackTrace(error, this.withStringArrayValue);
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
// Validate operator is valid for STRING_ARRAY type
|
|
63
|
+
if (operator !== types_1.CustomClaimOperator.CONTAINS && operator !== types_1.CustomClaimOperator.CONTAINS_ANY) {
|
|
64
|
+
throw new validation_helpers_1.ValidationError(`Custom claim '${name}': STRING_ARRAY type only supports CONTAINS or CONTAINS_ANY operators, got ${operator}`);
|
|
65
|
+
}
|
|
66
|
+
return new RuntimeCustomClaim(name, types_1.CustomClaimValueType.STRING_ARRAY, operator, values);
|
|
67
|
+
}
|
|
68
|
+
constructor(name, valueType, operator, value) {
|
|
69
|
+
this.name = name;
|
|
70
|
+
this.valueType = valueType;
|
|
71
|
+
this.operator = operator;
|
|
72
|
+
this.value = value;
|
|
73
|
+
if (aws_cdk_lib_1.Token.isUnresolved(value)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
// Validate that value matches the valueType
|
|
77
|
+
if (valueType === types_1.CustomClaimValueType.STRING && typeof value !== 'string') {
|
|
78
|
+
throw new validation_helpers_1.ValidationError(`Custom claim '${name}': STRING type requires a string value, got ${typeof value}`);
|
|
79
|
+
}
|
|
80
|
+
if (valueType === types_1.CustomClaimValueType.STRING_ARRAY && !Array.isArray(value)) {
|
|
81
|
+
throw new validation_helpers_1.ValidationError(`Custom claim '${name}': STRING_ARRAY type requires an array value, got ${typeof value}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Render the custom claim as a CloudFormation property
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
_render() {
|
|
89
|
+
// Build the claim match value based on operator and value type
|
|
90
|
+
let claimMatchValue;
|
|
91
|
+
if (this.valueType === types_1.CustomClaimValueType.STRING) {
|
|
92
|
+
// STRING type always uses matchValueString with EQUALS operator
|
|
93
|
+
claimMatchValue = {
|
|
94
|
+
matchValueString: this.value,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// STRING_ARRAY type: CONTAINS uses matchValueString, CONTAINS_ANY uses matchValueStringList
|
|
99
|
+
if (this.operator === types_1.CustomClaimOperator.CONTAINS) {
|
|
100
|
+
// CONTAINS requires a single string value (check if claim array contains this string)
|
|
101
|
+
const values = this.value;
|
|
102
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(values[0]) && values.length !== 1) {
|
|
103
|
+
throw new validation_helpers_1.ValidationError(`Custom claim '${this.name}': CONTAINS operator requires exactly one value, got ${values.length} values`);
|
|
104
|
+
}
|
|
105
|
+
claimMatchValue = {
|
|
106
|
+
matchValueString: values[0],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// CONTAINS_ANY uses matchValueStringList
|
|
111
|
+
claimMatchValue = {
|
|
112
|
+
matchValueStringList: this.value,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
inboundTokenClaimName: this.name,
|
|
118
|
+
inboundTokenClaimValueType: this.valueType,
|
|
119
|
+
authorizingClaimMatchValue: {
|
|
120
|
+
claimMatchOperator: this.operator,
|
|
121
|
+
claimMatchValue: claimMatchValue,
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.RuntimeCustomClaim = RuntimeCustomClaim;
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNsYWltLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3VzdG9tLWNsYWltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFFcEMsOENBQStFO0FBQy9FLDhEQUF3RDtBQUV4RDs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBa0I7SUFxQ1Y7SUFDQTtJQUNBO0lBQ0E7O0lBdkNuQjs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN2RCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLDRCQUFvQixDQUFDLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDckc7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsSUFBWSxFQUNaLE1BQWdCLEVBQ2hCLFdBQWdDLDJCQUFtQixDQUFDLFFBQVE7Ozs7Ozs7Ozs7UUFFNUQsbURBQW1EO1FBQ25ELElBQUksUUFBUSxLQUFLLDJCQUFtQixDQUFDLFFBQVEsSUFBSSxRQUFRLEtBQUssMkJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0YsTUFBTSxJQUFJLG9DQUFlLENBQ3ZCLGlCQUFpQixJQUFJLDhFQUE4RSxRQUFRLEVBQUUsQ0FDOUcsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLDRCQUFvQixDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDMUY7SUFFRCxZQUNtQixJQUFZLEVBQ1osU0FBK0IsRUFDL0IsUUFBNkIsRUFDN0IsS0FBd0I7UUFIeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBRXpDLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUNELDRDQUE0QztRQUM1QyxJQUFJLFNBQVMsS0FBSyw0QkFBb0IsQ0FBQyxNQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0UsTUFBTSxJQUFJLG9DQUFlLENBQUMsaUJBQWlCLElBQUksK0NBQStDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoSCxDQUFDO1FBQ0QsSUFBSSxTQUFTLEtBQUssNEJBQW9CLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdFLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLGlCQUFpQixJQUFJLHFEQUFxRCxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEgsQ0FBQztLQUNGO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNaLCtEQUErRDtRQUMvRCxJQUFJLGVBQXVELENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLDRCQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELGdFQUFnRTtZQUNoRSxlQUFlLEdBQUc7Z0JBQ2hCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFlO2FBQ3ZDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLDRGQUE0RjtZQUM1RixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssMkJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25ELHNGQUFzRjtnQkFDdEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQWlCLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMxRCxNQUFNLElBQUksb0NBQWUsQ0FDdkIsaUJBQWlCLElBQUksQ0FBQyxJQUFJLHdEQUF3RCxNQUFNLENBQUMsTUFBTSxTQUFTLENBQ3pHLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxlQUFlLEdBQUc7b0JBQ2hCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQzVCLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04seUNBQXlDO2dCQUN6QyxlQUFlLEdBQUc7b0JBQ2hCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxLQUFpQjtpQkFDN0MsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTztZQUNMLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2hDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzFDLDBCQUEwQixFQUFFO2dCQUMxQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDakMsZUFBZSxFQUFFLGVBQWU7YUFDakM7U0FDRixDQUFDO0tBQ0g7O0FBL0ZILGdEQWdHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ2ZuUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB7IEN1c3RvbUNsYWltT3BlcmF0b3IsIEN1c3RvbUNsYWltVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3R5cGVzJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3ZhbGlkYXRpb24taGVscGVycyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGN1c3RvbSBjbGFpbSB2YWxpZGF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIFJ1bnRpbWUgSldUIGF1dGhvcml6ZXJzLlxuICogQ3VzdG9tIGNsYWltcyBhbGxvdyB5b3UgdG8gdmFsaWRhdGUgYWRkaXRpb25hbCBmaWVsZHMgaW4gSldUIHRva2VucyBiZXlvbmRcbiAqIHRoZSBzdGFuZGFyZCBhdWRpZW5jZSwgY2xpZW50LCBhbmQgc2NvcGUgdmFsaWRhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBSdW50aW1lQ3VzdG9tQ2xhaW0ge1xuICAvKipcbiAgICogQ3JlYXRlIGEgY3VzdG9tIGNsYWltIHdpdGggYSBzdHJpbmcgdmFsdWUuXG4gICAqIFN0cmluZyBjbGFpbXMgbXVzdCB1c2UgdGhlIEVRVUFMUyBvcGVyYXRvci5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNsYWltIGluIHRoZSBKV1QgdG9rZW5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBzdHJpbmcgdmFsdWUgdG8gbWF0Y2ggKG11c3QgZXhhY3RseSBlcXVhbClcbiAgICogQHJldHVybnMgQSBSdW50aW1lQ3VzdG9tQ2xhaW0gY29uZmlndXJlZCBmb3Igc3RyaW5nIHZhbGlkYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aFN0cmluZ1ZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFJ1bnRpbWVDdXN0b21DbGFpbSB7XG4gICAgcmV0dXJuIG5ldyBSdW50aW1lQ3VzdG9tQ2xhaW0obmFtZSwgQ3VzdG9tQ2xhaW1WYWx1ZVR5cGUuU1RSSU5HLCBDdXN0b21DbGFpbU9wZXJhdG9yLkVRVUFMUywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGN1c3RvbSBjbGFpbSB3aXRoIGEgc3RyaW5nIGFycmF5IHZhbHVlLlxuICAgKiBTdHJpbmcgYXJyYXkgY2xhaW1zIGNhbiB1c2UgQ09OVEFJTlMgKGRlZmF1bHQpIG9yIENPTlRBSU5TX0FOWSBvcGVyYXRvci5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNsYWltIGluIHRoZSBKV1QgdG9rZW5cbiAgICogQHBhcmFtIHZhbHVlcyBUaGUgYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcyB0byBtYXRjaC4gRm9yIENPTlRBSU5TIG9wZXJhdG9yLCBtdXN0IGNvbnRhaW4gZXhhY3RseSBvbmUgdmFsdWUuXG4gICAqIEBwYXJhbSBvcGVyYXRvciBUaGUgbWF0Y2ggb3BlcmF0b3IgKGRlZmF1bHRzIHRvIENPTlRBSU5TKVxuICAgKiBAcmV0dXJucyBBIFJ1bnRpbWVDdXN0b21DbGFpbSBjb25maWd1cmVkIGZvciBzdHJpbmcgYXJyYXkgdmFsaWRhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoU3RyaW5nQXJyYXlWYWx1ZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSxcbiAgICBvcGVyYXRvcjogQ3VzdG9tQ2xhaW1PcGVyYXRvciA9IEN1c3RvbUNsYWltT3BlcmF0b3IuQ09OVEFJTlMsXG4gICk6IFJ1bnRpbWVDdXN0b21DbGFpbSB7XG4gICAgLy8gVmFsaWRhdGUgb3BlcmF0b3IgaXMgdmFsaWQgZm9yIFNUUklOR19BUlJBWSB0eXBlXG4gICAgaWYgKG9wZXJhdG9yICE9PSBDdXN0b21DbGFpbU9wZXJhdG9yLkNPTlRBSU5TICYmIG9wZXJhdG9yICE9PSBDdXN0b21DbGFpbU9wZXJhdG9yLkNPTlRBSU5TX0FOWSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEN1c3RvbSBjbGFpbSAnJHtuYW1lfSc6IFNUUklOR19BUlJBWSB0eXBlIG9ubHkgc3VwcG9ydHMgQ09OVEFJTlMgb3IgQ09OVEFJTlNfQU5ZIG9wZXJhdG9ycywgZ290ICR7b3BlcmF0b3J9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUnVudGltZUN1c3RvbUNsYWltKG5hbWUsIEN1c3RvbUNsYWltVmFsdWVUeXBlLlNUUklOR19BUlJBWSwgb3BlcmF0b3IsIHZhbHVlcyk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVUeXBlOiBDdXN0b21DbGFpbVZhbHVlVHlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZXJhdG9yOiBDdXN0b21DbGFpbU9wZXJhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICApIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBWYWxpZGF0ZSB0aGF0IHZhbHVlIG1hdGNoZXMgdGhlIHZhbHVlVHlwZVxuICAgIGlmICh2YWx1ZVR5cGUgPT09IEN1c3RvbUNsYWltVmFsdWVUeXBlLlNUUklORyAmJiB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBDdXN0b20gY2xhaW0gJyR7bmFtZX0nOiBTVFJJTkcgdHlwZSByZXF1aXJlcyBhIHN0cmluZyB2YWx1ZSwgZ290ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgIH1cbiAgICBpZiAodmFsdWVUeXBlID09PSBDdXN0b21DbGFpbVZhbHVlVHlwZS5TVFJJTkdfQVJSQVkgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBDdXN0b20gY2xhaW0gJyR7bmFtZX0nOiBTVFJJTkdfQVJSQVkgdHlwZSByZXF1aXJlcyBhbiBhcnJheSB2YWx1ZSwgZ290ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGN1c3RvbSBjbGFpbSBhcyBhIENsb3VkRm9ybWF0aW9uIHByb3BlcnR5XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5DdXN0b21DbGFpbVZhbGlkYXRpb25UeXBlUHJvcGVydHkge1xuICAgIC8vIEJ1aWxkIHRoZSBjbGFpbSBtYXRjaCB2YWx1ZSBiYXNlZCBvbiBvcGVyYXRvciBhbmQgdmFsdWUgdHlwZVxuICAgIGxldCBjbGFpbU1hdGNoVmFsdWU6IENmblJ1bnRpbWUuQ2xhaW1NYXRjaFZhbHVlVHlwZVByb3BlcnR5O1xuICAgIGlmICh0aGlzLnZhbHVlVHlwZSA9PT0gQ3VzdG9tQ2xhaW1WYWx1ZVR5cGUuU1RSSU5HKSB7XG4gICAgICAvLyBTVFJJTkcgdHlwZSBhbHdheXMgdXNlcyBtYXRjaFZhbHVlU3RyaW5nIHdpdGggRVFVQUxTIG9wZXJhdG9yXG4gICAgICBjbGFpbU1hdGNoVmFsdWUgPSB7XG4gICAgICAgIG1hdGNoVmFsdWVTdHJpbmc6IHRoaXMudmFsdWUgYXMgc3RyaW5nLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU1RSSU5HX0FSUkFZIHR5cGU6IENPTlRBSU5TIHVzZXMgbWF0Y2hWYWx1ZVN0cmluZywgQ09OVEFJTlNfQU5ZIHVzZXMgbWF0Y2hWYWx1ZVN0cmluZ0xpc3RcbiAgICAgIGlmICh0aGlzLm9wZXJhdG9yID09PSBDdXN0b21DbGFpbU9wZXJhdG9yLkNPTlRBSU5TKSB7XG4gICAgICAgIC8vIENPTlRBSU5TIHJlcXVpcmVzIGEgc2luZ2xlIHN0cmluZyB2YWx1ZSAoY2hlY2sgaWYgY2xhaW0gYXJyYXkgY29udGFpbnMgdGhpcyBzdHJpbmcpXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmFsdWUgYXMgc3RyaW5nW107XG4gICAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlc1swXSkgJiYgdmFsdWVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBgQ3VzdG9tIGNsYWltICcke3RoaXMubmFtZX0nOiBDT05UQUlOUyBvcGVyYXRvciByZXF1aXJlcyBleGFjdGx5IG9uZSB2YWx1ZSwgZ290ICR7dmFsdWVzLmxlbmd0aH0gdmFsdWVzYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNsYWltTWF0Y2hWYWx1ZSA9IHtcbiAgICAgICAgICBtYXRjaFZhbHVlU3RyaW5nOiB2YWx1ZXNbMF0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDT05UQUlOU19BTlkgdXNlcyBtYXRjaFZhbHVlU3RyaW5nTGlzdFxuICAgICAgICBjbGFpbU1hdGNoVmFsdWUgPSB7XG4gICAgICAgICAgbWF0Y2hWYWx1ZVN0cmluZ0xpc3Q6IHRoaXMudmFsdWUgYXMgc3RyaW5nW10sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGluYm91bmRUb2tlbkNsYWltTmFtZTogdGhpcy5uYW1lLFxuICAgICAgaW5ib3VuZFRva2VuQ2xhaW1WYWx1ZVR5cGU6IHRoaXMudmFsdWVUeXBlLFxuICAgICAgYXV0aG9yaXppbmdDbGFpbU1hdGNoVmFsdWU6IHtcbiAgICAgICAgY2xhaW1NYXRjaE9wZXJhdG9yOiB0aGlzLm9wZXJhdG9yLFxuICAgICAgICBjbGFpbU1hdGNoVmFsdWU6IGNsYWltTWF0Y2hWYWx1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { CfnRuntime } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
14
14
|
import { IUserPool, IUserPoolClient } from 'aws-cdk-lib/aws-cognito';
|
|
15
|
+
import { RuntimeCustomClaim } from './custom-claim';
|
|
15
16
|
/**
|
|
16
17
|
* Abstract base class for runtime authorizer configurations.
|
|
17
18
|
* Provides static factory methods to create different authentication types.
|
|
@@ -31,9 +32,11 @@ export declare abstract class RuntimeAuthorizerConfiguration {
|
|
|
31
32
|
* @param discoveryUrl The OIDC discovery URL (must end with /.well-known/openid-configuration)
|
|
32
33
|
* @param allowedClients Optional array of allowed client IDs
|
|
33
34
|
* @param allowedAudience Optional array of allowed audiences
|
|
35
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
36
|
+
* @param customClaims Optional array of custom claim validations
|
|
34
37
|
* @returns RuntimeAuthorizerConfiguration for JWT authentication
|
|
35
38
|
*/
|
|
36
|
-
static usingJWT(discoveryUrl: string, allowedClients?: string[], allowedAudience?: string[]): RuntimeAuthorizerConfiguration;
|
|
39
|
+
static usingJWT(discoveryUrl: string, allowedClients?: string[], allowedAudience?: string[], allowedScopes?: string[], customClaims?: RuntimeCustomClaim[]): RuntimeAuthorizerConfiguration;
|
|
37
40
|
/**
|
|
38
41
|
* Use AWS Cognito User Pool authentication.
|
|
39
42
|
* Validates Cognito-issued JWT tokens.
|
|
@@ -41,9 +44,11 @@ export declare abstract class RuntimeAuthorizerConfiguration {
|
|
|
41
44
|
* @param userPool The Cognito User Pool
|
|
42
45
|
* @param userPoolClients The Cognito User Pool App Clients
|
|
43
46
|
* @param allowedAudience Optional array of allowed audiences
|
|
47
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
48
|
+
* @param customClaims Optional array of custom claim validations
|
|
44
49
|
* @returns RuntimeAuthorizerConfiguration for Cognito authentication
|
|
45
50
|
*/
|
|
46
|
-
static usingCognito(userPool: IUserPool, userPoolClients: IUserPoolClient[], allowedAudience?: string[]): RuntimeAuthorizerConfiguration;
|
|
51
|
+
static usingCognito(userPool: IUserPool, userPoolClients: IUserPoolClient[], allowedAudience?: string[], allowedScopes?: string[], customClaims?: RuntimeCustomClaim[]): RuntimeAuthorizerConfiguration;
|
|
47
52
|
/**
|
|
48
53
|
* Use OAuth 2.0 authentication.
|
|
49
54
|
* Supports various OAuth providers.
|
|
@@ -51,9 +56,11 @@ export declare abstract class RuntimeAuthorizerConfiguration {
|
|
|
51
56
|
* @param discoveryUrl The OIDC discovery URL (must end with /.well-known/openid-configuration)
|
|
52
57
|
* @param clientId OAuth client ID
|
|
53
58
|
* @param allowedAudience Optional array of allowed audiences
|
|
59
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
60
|
+
* @param customClaims Optional array of custom claim validations
|
|
54
61
|
* @returns RuntimeAuthorizerConfiguration for OAuth authentication
|
|
55
62
|
*/
|
|
56
|
-
static usingOAuth(discoveryUrl: string, clientId: string, allowedAudience?: string[]): RuntimeAuthorizerConfiguration;
|
|
63
|
+
static usingOAuth(discoveryUrl: string, clientId: string, allowedAudience?: string[], allowedScopes?: string[], customClaims?: RuntimeCustomClaim[]): RuntimeAuthorizerConfiguration;
|
|
57
64
|
/**
|
|
58
65
|
* Render the authorizer configuration for CloudFormation
|
|
59
66
|
* @internal
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuntimeAuthorizerConfiguration = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
/**
|
|
6
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
9
|
+
* with the License. A copy of the License is located at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
14
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
15
|
+
* and limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
18
|
+
const validation_helpers_1 = require("../validation-helpers");
|
|
19
|
+
/**
|
|
20
|
+
* Abstract base class for runtime authorizer configurations.
|
|
21
|
+
* Provides static factory methods to create different authentication types.
|
|
22
|
+
*/
|
|
23
|
+
class RuntimeAuthorizerConfiguration {
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.237.0-alpha.0" };
|
|
25
|
+
/**
|
|
26
|
+
* Use IAM authentication (default).
|
|
27
|
+
* Requires AWS credentials to sign requests using SigV4.
|
|
28
|
+
*
|
|
29
|
+
* @returns RuntimeAuthorizerConfiguration for IAM authentication
|
|
30
|
+
*/
|
|
31
|
+
static usingIAM() {
|
|
32
|
+
return new IamAuthorizerConfiguration();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Use custom JWT authentication.
|
|
36
|
+
* Validates JWT tokens against the specified OIDC provider.
|
|
37
|
+
*
|
|
38
|
+
* @param discoveryUrl The OIDC discovery URL (must end with /.well-known/openid-configuration)
|
|
39
|
+
* @param allowedClients Optional array of allowed client IDs
|
|
40
|
+
* @param allowedAudience Optional array of allowed audiences
|
|
41
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
42
|
+
* @param customClaims Optional array of custom claim validations
|
|
43
|
+
* @returns RuntimeAuthorizerConfiguration for JWT authentication
|
|
44
|
+
*/
|
|
45
|
+
static usingJWT(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims) {
|
|
46
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(discoveryUrl) && !discoveryUrl.endsWith('/.well-known/openid-configuration')) {
|
|
47
|
+
throw new validation_helpers_1.ValidationError('JWT discovery URL must end with /.well-known/openid-configuration');
|
|
48
|
+
}
|
|
49
|
+
return new JwtAuthorizerConfiguration(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Use AWS Cognito User Pool authentication.
|
|
53
|
+
* Validates Cognito-issued JWT tokens.
|
|
54
|
+
*
|
|
55
|
+
* @param userPool The Cognito User Pool
|
|
56
|
+
* @param userPoolClients The Cognito User Pool App Clients
|
|
57
|
+
* @param allowedAudience Optional array of allowed audiences
|
|
58
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
59
|
+
* @param customClaims Optional array of custom claim validations
|
|
60
|
+
* @returns RuntimeAuthorizerConfiguration for Cognito authentication
|
|
61
|
+
*/
|
|
62
|
+
static usingCognito(userPool, userPoolClients, allowedAudience, allowedScopes, customClaims) {
|
|
63
|
+
return new CognitoAuthorizerConfiguration(userPool, userPoolClients, allowedAudience, allowedScopes, customClaims);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Use OAuth 2.0 authentication.
|
|
67
|
+
* Supports various OAuth providers.
|
|
68
|
+
*
|
|
69
|
+
* @param discoveryUrl The OIDC discovery URL (must end with /.well-known/openid-configuration)
|
|
70
|
+
* @param clientId OAuth client ID
|
|
71
|
+
* @param allowedAudience Optional array of allowed audiences
|
|
72
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
73
|
+
* @param customClaims Optional array of custom claim validations
|
|
74
|
+
* @returns RuntimeAuthorizerConfiguration for OAuth authentication
|
|
75
|
+
*/
|
|
76
|
+
static usingOAuth(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims) {
|
|
77
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(discoveryUrl) && !discoveryUrl.endsWith('/.well-known/openid-configuration')) {
|
|
78
|
+
throw new validation_helpers_1.ValidationError('OAuth discovery URL must end with /.well-known/openid-configuration');
|
|
79
|
+
}
|
|
80
|
+
return new OAuthAuthorizerConfiguration(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.RuntimeAuthorizerConfiguration = RuntimeAuthorizerConfiguration;
|
|
84
|
+
/**
|
|
85
|
+
* IAM authorizer configuration
|
|
86
|
+
*/
|
|
87
|
+
class IamAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
88
|
+
_render() {
|
|
89
|
+
// For IAM authentication, return undefined to let AWS service use default
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* JWT authorizer configuration
|
|
95
|
+
*/
|
|
96
|
+
class JwtAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
97
|
+
discoveryUrl;
|
|
98
|
+
allowedClients;
|
|
99
|
+
allowedAudience;
|
|
100
|
+
allowedScopes;
|
|
101
|
+
customClaims;
|
|
102
|
+
constructor(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims) {
|
|
103
|
+
super();
|
|
104
|
+
this.discoveryUrl = discoveryUrl;
|
|
105
|
+
this.allowedClients = allowedClients;
|
|
106
|
+
this.allowedAudience = allowedAudience;
|
|
107
|
+
this.allowedScopes = allowedScopes;
|
|
108
|
+
this.customClaims = customClaims;
|
|
109
|
+
}
|
|
110
|
+
_render() {
|
|
111
|
+
return {
|
|
112
|
+
customJwtAuthorizer: {
|
|
113
|
+
discoveryUrl: this.discoveryUrl,
|
|
114
|
+
allowedClients: this.allowedClients,
|
|
115
|
+
allowedAudience: this.allowedAudience,
|
|
116
|
+
allowedScopes: this.allowedScopes,
|
|
117
|
+
customClaims: this.customClaims && this.customClaims.length > 0 ? this.customClaims.map(claim => claim._render()) : undefined,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Cognito authorizer configuration
|
|
124
|
+
*/
|
|
125
|
+
class CognitoAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
126
|
+
userPool;
|
|
127
|
+
userPoolClients;
|
|
128
|
+
allowedAudience;
|
|
129
|
+
allowedScopes;
|
|
130
|
+
customClaims;
|
|
131
|
+
constructor(userPool, userPoolClients, allowedAudience, allowedScopes, customClaims) {
|
|
132
|
+
super();
|
|
133
|
+
this.userPool = userPool;
|
|
134
|
+
this.userPoolClients = userPoolClients;
|
|
135
|
+
this.allowedAudience = allowedAudience;
|
|
136
|
+
this.allowedScopes = allowedScopes;
|
|
137
|
+
this.customClaims = customClaims;
|
|
138
|
+
}
|
|
139
|
+
_render() {
|
|
140
|
+
const discoveryUrl = `https://cognito-idp.${this.userPool.env.region}.amazonaws.com/${this.userPool.userPoolId}/.well-known/openid-configuration`;
|
|
141
|
+
// Use JWT format for Cognito (CloudFormation expects JWT format)
|
|
142
|
+
return {
|
|
143
|
+
customJwtAuthorizer: {
|
|
144
|
+
discoveryUrl: discoveryUrl,
|
|
145
|
+
allowedClients: this.userPoolClients.map(client => client.userPoolClientId),
|
|
146
|
+
allowedAudience: this.allowedAudience,
|
|
147
|
+
allowedScopes: this.allowedScopes,
|
|
148
|
+
customClaims: this.customClaims && this.customClaims.length > 0 ? this.customClaims.map(claim => claim._render()) : undefined,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* OAuth authorizer configuration
|
|
155
|
+
*/
|
|
156
|
+
class OAuthAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
157
|
+
discoveryUrl;
|
|
158
|
+
clientId;
|
|
159
|
+
allowedAudience;
|
|
160
|
+
allowedScopes;
|
|
161
|
+
customClaims;
|
|
162
|
+
constructor(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims) {
|
|
163
|
+
super();
|
|
164
|
+
this.discoveryUrl = discoveryUrl;
|
|
165
|
+
this.clientId = clientId;
|
|
166
|
+
this.allowedAudience = allowedAudience;
|
|
167
|
+
this.allowedScopes = allowedScopes;
|
|
168
|
+
this.customClaims = customClaims;
|
|
169
|
+
}
|
|
170
|
+
_render() {
|
|
171
|
+
// OAuth is also represented as JWT in CloudFormation
|
|
172
|
+
return {
|
|
173
|
+
customJwtAuthorizer: {
|
|
174
|
+
discoveryUrl: this.discoveryUrl,
|
|
175
|
+
allowedClients: [this.clientId],
|
|
176
|
+
allowedAudience: this.allowedAudience,
|
|
177
|
+
allowedScopes: this.allowedScopes,
|
|
178
|
+
customClaims: this.customClaims && this.customClaims.length > 0 ? this.customClaims.map(claim => claim._render()) : undefined,
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1hdXRob3JpemVyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydW50aW1lLWF1dGhvcml6ZXItY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFHcEMsOERBQXdEO0FBR3hEOzs7R0FHRztBQUNILE1BQXNCLDhCQUE4Qjs7SUFDbEQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPLElBQUksMEJBQTBCLEVBQUUsQ0FBQztLQUN6QztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUNwQixZQUFvQixFQUNwQixjQUF5QixFQUN6QixlQUEwQixFQUMxQixhQUF3QixFQUN4QixZQUFtQztRQUVuQyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxNQUFNLElBQUksb0NBQWUsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFDRCxPQUFPLElBQUksMEJBQTBCLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ25IO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLFFBQW1CLEVBQ25CLGVBQWtDLEVBQ2xDLGVBQTBCLEVBQzFCLGFBQXdCLEVBQ3hCLFlBQW1DO1FBRW5DLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDcEg7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FDdEIsWUFBb0IsRUFDcEIsUUFBZ0IsRUFDaEIs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LEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUM5SDtTQUNGLENBQUM7S0FDSDtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLDRCQUE2QixTQUFRLDhCQUE4QjtJQUVwRDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTG5CLFlBQ21CLFlBQW9CLEVBQ3BCLFFBQWdCLEVBQ2hCLGVBQTBCLEVBQzFCLGFBQXdCLEVBQ3hCLFlBQW1DO1FBRXBELEtBQUssRUFBRSxDQUFDO1FBTlMsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBVztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7S0FHckQ7SUFFTSxPQUFPO1FBQ1oscURBQXFEO1FBQ3JELE9BQU87WUFDTCxtQkFBbUIsRUFBRTtnQkFDbkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMvQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQzlIO1NBQ0YsQ0FBQztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmblJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgeyBJVXNlclBvb2wsIElVc2VyUG9vbENsaWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3ZhbGlkYXRpb24taGVscGVycyc7XG5pbXBvcnQgeyBSdW50aW1lQ3VzdG9tQ2xhaW0gfSBmcm9tICcuL2N1c3RvbS1jbGFpbSc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgcnVudGltZSBhdXRob3JpemVyIGNvbmZpZ3VyYXRpb25zLlxuICogUHJvdmlkZXMgc3RhdGljIGZhY3RvcnkgbWV0aG9kcyB0byBjcmVhdGUgZGlmZmVyZW50IGF1dGhlbnRpY2F0aW9uIHR5cGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBJQU0gYXV0aGVudGljYXRpb24gKGRlZmF1bHQpLlxuICAgKiBSZXF1aXJlcyBBV1MgY3JlZGVudGlhbHMgdG8gc2lnbiByZXF1ZXN0cyB1c2luZyBTaWdWNC5cbiAgICpcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBJQU0gYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdJQU0oKTogUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IElhbUF1dGhvcml6ZXJDb25maWd1cmF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGN1c3RvbSBKV1QgYXV0aGVudGljYXRpb24uXG4gICAqIFZhbGlkYXRlcyBKV1QgdG9rZW5zIGFnYWluc3QgdGhlIHNwZWNpZmllZCBPSURDIHByb3ZpZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gZGlzY292ZXJ5VXJsIFRoZSBPSURDIGRpc2NvdmVyeSBVUkwgKG11c3QgZW5kIHdpdGggLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uKVxuICAgKiBAcGFyYW0gYWxsb3dlZENsaWVudHMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBjbGllbnQgSURzXG4gICAqIEBwYXJhbSBhbGxvd2VkQXVkaWVuY2UgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBhdWRpZW5jZXNcbiAgICogQHBhcmFtIGFsbG93ZWRTY29wZXMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBzY29wZXNcbiAgICogQHBhcmFtIGN1c3RvbUNsYWltcyBPcHRpb25hbCBhcnJheSBvZiBjdXN0b20gY2xhaW0gdmFsaWRhdGlvbnNcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBKV1QgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdKV1QoXG4gICAgZGlzY292ZXJ5VXJsOiBzdHJpbmcsXG4gICAgYWxsb3dlZENsaWVudHM/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoZGlzY292ZXJ5VXJsKSAmJiAhZGlzY292ZXJ5VXJsLmVuZHNXaXRoKCcvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignSldUIGRpc2NvdmVyeSBVUkwgbXVzdCBlbmQgd2l0aCAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBKd3RBdXRob3JpemVyQ29uZmlndXJhdGlvbihkaXNjb3ZlcnlVcmwsIGFsbG93ZWRDbGllbnRzLCBhbGxvd2VkQXVkaWVuY2UsIGFsbG93ZWRTY29wZXMsIGN1c3RvbUNsYWltcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIEFXUyBDb2duaXRvIFVzZXIgUG9vbCBhdXRoZW50aWNhdGlvbi5cbiAgICogVmFsaWRhdGVzIENvZ25pdG8taXNzdWVkIEpXVCB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyUG9vbCBUaGUgQ29nbml0byBVc2VyIFBvb2xcbiAgICogQHBhcmFtIHVzZXJQb29sQ2xpZW50cyBUaGUgQ29nbml0byBVc2VyIFBvb2wgQXBwIENsaWVudHNcbiAgICogQHBhcmFtIGFsbG93ZWRBdWRpZW5jZSBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIGF1ZGllbmNlc1xuICAgKiBAcGFyYW0gYWxsb3dlZFNjb3BlcyBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIHNjb3Blc1xuICAgKiBAcGFyYW0gY3VzdG9tQ2xhaW1zIE9wdGlvbmFsIGFycmF5IG9mIGN1c3RvbSBjbGFpbSB2YWxpZGF0aW9uc1xuICAgKiBAcmV0dXJucyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZm9yIENvZ25pdG8gYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdDb2duaXRvKFxuICAgIHVzZXJQb29sOiBJVXNlclBvb2wsXG4gICAgdXNlclBvb2xDbGllbnRzOiBJVXNlclBvb2xDbGllbnRbXSxcbiAgICBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb2duaXRvQXV0aG9yaXplckNvbmZpZ3VyYXRpb24odXNlclBvb2wsIHVzZXJQb29sQ2xpZW50cywgYWxsb3dlZEF1ZGllbmNlLCBhbGxvd2VkU2NvcGVzLCBjdXN0b21DbGFpbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBPQXV0aCAyLjAgYXV0aGVudGljYXRpb24uXG4gICAqIFN1cHBvcnRzIHZhcmlvdXMgT0F1dGggcHJvdmlkZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gZGlzY292ZXJ5VXJsIFRoZSBPSURDIGRpc2NvdmVyeSBVUkwgKG11c3QgZW5kIHdpdGggLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uKVxuICAgKiBAcGFyYW0gY2xpZW50SWQgT0F1dGggY2xpZW50IElEXG4gICAqIEBwYXJhbSBhbGxvd2VkQXVkaWVuY2UgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBhdWRpZW5jZXNcbiAgICogQHBhcmFtIGFsbG93ZWRTY29wZXMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBzY29wZXNcbiAgICogQHBhcmFtIGN1c3RvbUNsYWltcyBPcHRpb25hbCBhcnJheSBvZiBjdXN0b20gY2xhaW0gdmFsaWRhdGlvbnNcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBPQXV0aCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ09BdXRoKFxuICAgIGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApOiBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGRpc2NvdmVyeVVybCkgJiYgIWRpc2NvdmVyeVVybC5lbmRzV2l0aCgnLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJykpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ09BdXRoIGRpc2NvdmVyeSBVUkwgbXVzdCBlbmQgd2l0aCAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPQXV0aEF1dGhvcml6ZXJDb25maWd1cmF0aW9uKGRpc2NvdmVyeVVybCwgY2xpZW50SWQsIGFsbG93ZWRBdWRpZW5jZSwgYWxsb3dlZFNjb3BlcywgY3VzdG9tQ2xhaW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcigpOiBDZm5SdW50aW1lLkF1dGhvcml6ZXJDb25maWd1cmF0aW9uUHJvcGVydHkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSUFNIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBJYW1BdXRob3JpemVyQ29uZmlndXJhdGlvbiBleHRlbmRzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIHB1YmxpYyBfcmVuZGVyKCk6IHVuZGVmaW5lZCB7XG4gICAgLy8gRm9yIElBTSBhdXRoZW50aWNhdGlvbiwgcmV0dXJuIHVuZGVmaW5lZCB0byBsZXQgQVdTIHNlcnZpY2UgdXNlIGRlZmF1bHRcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogSldUIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBKd3RBdXRob3JpemVyQ29uZmlndXJhdGlvbiBleHRlbmRzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzY292ZXJ5VXJsOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQ2xpZW50cz86IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DbGFpbXM/OiBSdW50aW1lQ3VzdG9tQ2xhaW1bXSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQXV0aG9yaXplckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUp3dEF1dGhvcml6ZXI6IHtcbiAgICAgICAgZGlzY292ZXJ5VXJsOiB0aGlzLmRpc2NvdmVyeVVybCxcbiAgICAgICAgYWxsb3dlZENsaWVudHM6IHRoaXMuYWxsb3dlZENsaWVudHMsXG4gICAgICAgIGFsbG93ZWRBdWRpZW5jZTogdGhpcy5hbGxvd2VkQXVkaWVuY2UsXG4gICAgICAgIGFsbG93ZWRTY29wZXM6IHRoaXMuYWxsb3dlZFNjb3BlcyxcbiAgICAgICAgY3VzdG9tQ2xhaW1zOiB0aGlzLmN1c3RvbUNsYWltcyAmJiB0aGlzLmN1c3RvbUNsYWltcy5sZW5ndGggPiAwID8gdGhpcy5jdXN0b21DbGFpbXMubWFwKGNsYWltID0+IGNsYWltLl9yZW5kZXIoKSkgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb2duaXRvIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBDb2duaXRvQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUG9vbENsaWVudHM6IElVc2VyUG9vbENsaWVudFtdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DbGFpbXM/OiBSdW50aW1lQ3VzdG9tQ2xhaW1bXSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQXV0aG9yaXplckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3QgZGlzY292ZXJ5VXJsID0gYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLnVzZXJQb29sLmVudi5yZWdpb259LmFtYXpvbmF3cy5jb20vJHt0aGlzLnVzZXJQb29sLnVzZXJQb29sSWR9Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYDtcblxuICAgIC8vIFVzZSBKV1QgZm9ybWF0IGZvciBDb2duaXRvIChDbG91ZEZvcm1hdGlvbiBleHBlY3RzIEpXVCBmb3JtYXQpXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUp3dEF1dGhvcml6ZXI6IHtcbiAgICAgICAgZGlzY292ZXJ5VXJsOiBkaXNjb3ZlcnlVcmwsXG4gICAgICAgIGFsbG93ZWRDbGllbnRzOiB0aGlzLnVzZXJQb29sQ2xpZW50cy5tYXAoY2xpZW50ID0+IGNsaWVudC51c2VyUG9vbENsaWVudElkKSxcbiAgICAgICAgYWxsb3dlZEF1ZGllbmNlOiB0aGlzLmFsbG93ZWRBdWRpZW5jZSxcbiAgICAgICAgYWxsb3dlZFNjb3BlczogdGhpcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zICYmIHRoaXMuY3VzdG9tQ2xhaW1zLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbUNsYWltcy5tYXAoY2xhaW0gPT4gY2xhaW0uX3JlbmRlcigpKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE9BdXRoIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBPQXV0aEF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNjb3ZlcnlVcmw6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudElkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BdXRob3JpemVyQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICAvLyBPQXV0aCBpcyBhbHNvIHJlcHJlc2VudGVkIGFzIEpXVCBpbiBDbG91ZEZvcm1hdGlvblxuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21Kd3RBdXRob3JpemVyOiB7XG4gICAgICAgIGRpc2NvdmVyeVVybDogdGhpcy5kaXNjb3ZlcnlVcmwsXG4gICAgICAgIGFsbG93ZWRDbGllbnRzOiBbdGhpcy5jbGllbnRJZF0sXG4gICAgICAgIGFsbG93ZWRBdWRpZW5jZTogdGhpcy5hbGxvd2VkQXVkaWVuY2UsXG4gICAgICAgIGFsbG93ZWRTY29wZXM6IHRoaXMuYWxsb3dlZFNjb3BlcyxcbiAgICAgICAgY3VzdG9tQ2xhaW1zOiB0aGlzLmN1c3RvbUNsYWltcyAmJiB0aGlzLmN1c3RvbUNsYWltcy5sZW5ndGggPiAwID8gdGhpcy5jdXN0b21DbGFpbXMubWFwKGNsYWltID0+IGNsYWltLl9yZW5kZXIoKSkgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -47,7 +47,7 @@ var AgentCoreRuntime;
|
|
|
47
47
|
* Provides methods to reference container images from ECR repositories or local assets.
|
|
48
48
|
*/
|
|
49
49
|
class AgentRuntimeArtifact {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.237.0-alpha.0" };
|
|
51
51
|
/**
|
|
52
52
|
* Reference an image in an ECR repository
|
|
53
53
|
*/
|
|
@@ -26,7 +26,7 @@ const validation_helpers_1 = require("./validation-helpers");
|
|
|
26
26
|
* Base class for Agent Runtime
|
|
27
27
|
*/
|
|
28
28
|
class RuntimeBase extends aws_cdk_lib_1.Resource {
|
|
29
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeBase", version: "2.
|
|
29
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeBase", version: "2.237.0-alpha.0" };
|
|
30
30
|
/**
|
|
31
31
|
* An accessor for the Connections object that will fail if this Runtime does not have a VPC
|
|
32
32
|
* configured.
|
|
@@ -22,7 +22,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
22
22
|
* Base class for Runtime Endpoint
|
|
23
23
|
*/
|
|
24
24
|
class RuntimeEndpointBase extends aws_cdk_lib_1.Resource {
|
|
25
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpointBase", version: "2.
|
|
25
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpointBase", version: "2.237.0-alpha.0" };
|
|
26
26
|
constructor(scope, id, props = {}) {
|
|
27
27
|
super(scope, id, props);
|
|
28
28
|
}
|
|
@@ -67,7 +67,7 @@ let RuntimeEndpoint = (() => {
|
|
|
67
67
|
RuntimeEndpoint = _classThis = _classDescriptor.value;
|
|
68
68
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
69
69
|
}
|
|
70
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpoint", version: "2.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpoint", version: "2.237.0-alpha.0" };
|
|
71
71
|
/** Uniquely identifies this class. */
|
|
72
72
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.RuntimeEndpoint';
|
|
73
73
|
/**
|
package/lib/runtime/runtime.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
|
+
import { RuntimeAuthorizerConfiguration } from './inbound-auth/runtime-authorizer-configuration';
|
|
3
4
|
import { AgentRuntimeArtifact } from './runtime-artifact';
|
|
4
|
-
import { RuntimeAuthorizerConfiguration } from './runtime-authorizer-configuration';
|
|
5
5
|
import { RuntimeBase, IBedrockAgentRuntime, AgentRuntimeAttributes } from './runtime-base';
|
|
6
6
|
import { RuntimeEndpoint } from './runtime-endpoint';
|
|
7
7
|
import { LifecycleConfiguration, ProtocolType, RequestHeaderConfiguration } from './types';
|