@aws-cdk/aws-bedrock-agentcore-alpha 2.253.0-alpha.0 → 2.254.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 +17116 -11830
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +140 -10
- package/lib/evaluation/custom-evaluator.d.ts +9 -0
- package/lib/evaluation/custom-evaluator.js +8 -2
- package/lib/evaluation/data-source.js +1 -1
- package/lib/evaluation/evaluator-base.js +1 -1
- package/lib/evaluation/evaluator-config.js +2 -2
- package/lib/evaluation/evaluator.js +1 -1
- package/lib/evaluation/online-evaluation-base.js +1 -1
- package/lib/evaluation/online-evaluation.d.ts +9 -0
- package/lib/evaluation/online-evaluation.js +8 -2
- package/lib/evaluation/types.js +5 -5
- package/lib/evaluation/validation-helpers.d.ts +8 -0
- package/lib/evaluation/validation-helpers.js +62 -1
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.d.ts +3 -2
- package/lib/gateway/gateway.js +3 -3
- package/lib/gateway/inbound-auth/authorizer.js +4 -4
- package/lib/gateway/inbound-auth/custom-claim.js +1 -1
- package/lib/gateway/interceptor.js +1 -1
- package/lib/gateway/outbound-auth/api-key.d.ts +13 -4
- package/lib/gateway/outbound-auth/api-key.js +63 -21
- package/lib/gateway/outbound-auth/credential-provider.d.ts +48 -4
- package/lib/gateway/outbound-auth/credential-provider.js +49 -2
- package/lib/gateway/outbound-auth/iam-role.d.ts +4 -3
- package/lib/gateway/outbound-auth/iam-role.js +3 -5
- package/lib/gateway/outbound-auth/oauth.d.ts +11 -3
- package/lib/gateway/outbound-auth/oauth.js +70 -20
- package/lib/gateway/perms.d.ts +15 -3
- package/lib/gateway/perms.js +24 -9
- package/lib/gateway/protocol.js +2 -2
- package/lib/gateway/targets/schema/api-schema.js +4 -4
- package/lib/gateway/targets/schema/tool-schema.js +4 -4
- package/lib/gateway/targets/target-base.js +1 -1
- package/lib/gateway/targets/target-configuration.js +6 -6
- package/lib/gateway/targets/target.js +3 -3
- package/lib/identity/api-key-credential-provider.d.ts +217 -0
- package/lib/identity/api-key-credential-provider.js +249 -0
- package/lib/identity/grant-helpers.d.ts +74 -0
- package/lib/identity/grant-helpers.js +132 -0
- package/lib/identity/oauth2-credential-provider.d.ts +679 -0
- package/lib/identity/oauth2-credential-provider.js +863 -0
- package/lib/identity/perms.d.ts +119 -0
- package/lib/identity/perms.js +178 -0
- package/lib/identity/validation-helpers.d.ts +61 -0
- package/lib/identity/validation-helpers.js +156 -0
- package/lib/identity/workload-identity.d.ts +186 -0
- package/lib/identity/workload-identity.js +212 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +8 -1
- 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/memory/validation-helpers.js +2 -2
- package/lib/network/network-configuration.js +4 -4
- package/lib/policy/policy-base.js +1 -1
- package/lib/policy/policy-engine-base.js +1 -1
- package/lib/policy/policy-engine.js +1 -1
- package/lib/policy/policy-statement.d.ts +2 -1
- package/lib/policy/policy-statement.js +14 -12
- package/lib/policy/policy-types.js +1 -1
- package/lib/policy/policy.js +1 -1
- package/lib/runtime/inbound-auth/custom-claim.js +1 -1
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +1 -1
- package/lib/runtime/observability.js +2 -2
- package/lib/runtime/runtime-artifact.d.ts +11 -3
- package/lib/runtime/runtime-artifact.js +12 -4
- 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.js +1 -1
- package/lib/runtime/types.d.ts +7 -1
- package/lib/runtime/types.js +7 -1
- package/lib/tools/browser.js +2 -2
- package/lib/tools/code-interpreter.js +2 -2
- package/package.json +18 -10
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { IResolvable } from 'aws-cdk-lib';
|
|
2
2
|
import type { CfnGatewayTarget } from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
3
|
-
import type { Grant
|
|
4
|
-
import type { ApiKeyCredentialProviderProps } from './api-key';
|
|
3
|
+
import type { Grant } from 'aws-cdk-lib/aws-iam';
|
|
4
|
+
import type { ApiKeyCredentialLocation, ApiKeyCredentialProviderProps } from './api-key';
|
|
5
5
|
import type { OAuthConfiguration } from './oauth';
|
|
6
|
+
import type { IApiKeyCredentialProvider } from '../../identity/api-key-credential-provider';
|
|
7
|
+
import type { IOAuth2CredentialProvider } from '../../identity/oauth2-credential-provider';
|
|
8
|
+
import type { IGateway } from '../gateway-base';
|
|
6
9
|
/******************************************************************************
|
|
7
10
|
* Enums
|
|
8
11
|
*****************************************************************************/
|
|
@@ -40,14 +43,49 @@ export interface ICredentialProviderConfig {
|
|
|
40
43
|
*/
|
|
41
44
|
_render(): CfnGatewayTarget.CredentialProviderConfigurationProperty | IResolvable;
|
|
42
45
|
/**
|
|
43
|
-
* Grant the role the permissions
|
|
46
|
+
* Grant the gateway's execution role the permissions needed for outbound authentication.
|
|
47
|
+
* @param gateway The gateway whose role needs outbound auth permissions [disable-awslint:prefer-ref-interface]
|
|
44
48
|
*/
|
|
45
|
-
grantNeededPermissionsToRole(
|
|
49
|
+
grantNeededPermissionsToRole(gateway: IGateway): Grant | undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Optional gateway settings when binding an {@link IApiKeyCredentialProvider} to a target.
|
|
53
|
+
*/
|
|
54
|
+
export interface FromApiKeyIdentityOptions {
|
|
55
|
+
/**
|
|
56
|
+
* Where to place the API key on outbound requests.
|
|
57
|
+
*
|
|
58
|
+
* @default header `Authorization` with `Bearer ` prefix
|
|
59
|
+
*/
|
|
60
|
+
readonly credentialLocation?: ApiKeyCredentialLocation;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* OAuth scopes (and optional custom parameters) when binding an {@link IOAuth2CredentialProvider} to a gateway target.
|
|
64
|
+
*/
|
|
65
|
+
export interface FromOauthIdentityOptions {
|
|
66
|
+
/**
|
|
67
|
+
* OAuth scopes the gateway should request for this target.
|
|
68
|
+
*/
|
|
69
|
+
readonly scopes: string[];
|
|
70
|
+
/**
|
|
71
|
+
* Additional OAuth parameters for the provider.
|
|
72
|
+
*
|
|
73
|
+
* @default - none
|
|
74
|
+
*/
|
|
75
|
+
readonly customParameters?: {
|
|
76
|
+
[key: string]: string;
|
|
77
|
+
};
|
|
46
78
|
}
|
|
47
79
|
/**
|
|
48
80
|
* Factory class for creating different Gateway Credential Providers
|
|
49
81
|
*/
|
|
50
82
|
export declare abstract class GatewayCredentialProvider {
|
|
83
|
+
/**
|
|
84
|
+
* Create an API key outbound auth configuration from a Token Vault {@link IApiKeyCredentialProvider} construct.
|
|
85
|
+
*
|
|
86
|
+
* Prefer this over {@link GatewayCredentialProvider.fromApiKeyIdentityArn} when the provider is defined in CDK.
|
|
87
|
+
*/
|
|
88
|
+
static fromApiKeyIdentity(provider: IApiKeyCredentialProvider, options?: FromApiKeyIdentityOptions): ICredentialProviderConfig;
|
|
51
89
|
/**
|
|
52
90
|
* Create an API key credential provider from Identity ARN
|
|
53
91
|
* Use this method when you have the Identity ARN as a string
|
|
@@ -55,6 +93,12 @@ export declare abstract class GatewayCredentialProvider {
|
|
|
55
93
|
* @returns ICredentialProviderConfig configured for API key authentication
|
|
56
94
|
*/
|
|
57
95
|
static fromApiKeyIdentityArn(props: ApiKeyCredentialProviderProps): ICredentialProviderConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Create an OAuth outbound auth configuration from a Token Vault {@link IOAuth2CredentialProvider} construct.
|
|
98
|
+
*
|
|
99
|
+
* Prefer this over {@link GatewayCredentialProvider.fromOauthIdentityArn} when the provider is defined in CDK.
|
|
100
|
+
*/
|
|
101
|
+
static fromOauthIdentity(provider: IOAuth2CredentialProvider, options: FromOauthIdentityOptions): ICredentialProviderConfig;
|
|
58
102
|
/**
|
|
59
103
|
* Create an OAuth credential provider from Identity ARN
|
|
60
104
|
* Use this method when you have the Identity ARN as a string
|
|
@@ -31,7 +31,30 @@ var CredentialProviderType;
|
|
|
31
31
|
* Factory class for creating different Gateway Credential Providers
|
|
32
32
|
*/
|
|
33
33
|
class GatewayCredentialProvider {
|
|
34
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.
|
|
34
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.254.0-alpha.0" };
|
|
35
|
+
/**
|
|
36
|
+
* Create an API key outbound auth configuration from a Token Vault {@link IApiKeyCredentialProvider} construct.
|
|
37
|
+
*
|
|
38
|
+
* Prefer this over {@link GatewayCredentialProvider.fromApiKeyIdentityArn} when the provider is defined in CDK.
|
|
39
|
+
*/
|
|
40
|
+
static fromApiKeyIdentity(provider, options = {}) {
|
|
41
|
+
try {
|
|
42
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_IApiKeyCredentialProvider(provider);
|
|
43
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_FromApiKeyIdentityOptions(options);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
47
|
+
Error.captureStackTrace(error, this.fromApiKeyIdentity);
|
|
48
|
+
}
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
const binding = provider.bindForGatewayApiKeyTarget();
|
|
52
|
+
return new api_key_1.ApiKeyCredentialProviderConfiguration({
|
|
53
|
+
providerArn: binding.providerArn,
|
|
54
|
+
secretArn: binding.secretArn,
|
|
55
|
+
credentialLocation: options.credentialLocation,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
35
58
|
/**
|
|
36
59
|
* Create an API key credential provider from Identity ARN
|
|
37
60
|
* Use this method when you have the Identity ARN as a string
|
|
@@ -50,6 +73,30 @@ class GatewayCredentialProvider {
|
|
|
50
73
|
}
|
|
51
74
|
return new api_key_1.ApiKeyCredentialProviderConfiguration(props);
|
|
52
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Create an OAuth outbound auth configuration from a Token Vault {@link IOAuth2CredentialProvider} construct.
|
|
78
|
+
*
|
|
79
|
+
* Prefer this over {@link GatewayCredentialProvider.fromOauthIdentityArn} when the provider is defined in CDK.
|
|
80
|
+
*/
|
|
81
|
+
static fromOauthIdentity(provider, options) {
|
|
82
|
+
try {
|
|
83
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_IOAuth2CredentialProvider(provider);
|
|
84
|
+
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_FromOauthIdentityOptions(options);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
88
|
+
Error.captureStackTrace(error, this.fromOauthIdentity);
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
const binding = provider.bindForGatewayOAuthTarget(options.scopes, options.customParameters);
|
|
93
|
+
return new oauth_1.OAuthCredentialProviderConfiguration({
|
|
94
|
+
providerArn: binding.providerArn,
|
|
95
|
+
secretArn: binding.secretArn,
|
|
96
|
+
scopes: binding.scopes,
|
|
97
|
+
customParameters: binding.customParameters,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
53
100
|
/**
|
|
54
101
|
* Create an OAuth credential provider from Identity ARN
|
|
55
102
|
* Use this method when you have the Identity ARN as a string
|
|
@@ -77,4 +124,4 @@ class GatewayCredentialProvider {
|
|
|
77
124
|
}
|
|
78
125
|
}
|
|
79
126
|
exports.GatewayCredentialProvider = GatewayCredentialProvider;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNyZWRlbnRpYWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSx1Q0FBa0U7QUFDbEUseUNBQW9FO0FBRXBFLG1DQUErRDtBQUsvRDs7K0VBRStFO0FBQy9FOztHQUVHO0FBQ0gsSUFBWSxzQkFlWDtBQWZELFdBQVksc0JBQXNCO0lBQ2hDOztPQUVHO0lBQ0gsNkNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCx5Q0FBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCwrREFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBZlcsc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFlakM7QUF5REQ7O0dBRUc7QUFDSCxNQUFzQix5QkFBeUI7O0lBQzdDOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQzlCLFFBQW1DLEVBQ25DLFVBQXFDLEVBQUU7Ozs7Ozs7Ozs7O1FBRXZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSwrQ0FBcUMsQ0FBQztZQUMvQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7U0FDL0MsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFvQzs7Ozs7Ozs7OztRQUN0RSxPQUFPLElBQUksK0NBQXFDLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekQ7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUM3QixRQUFtQyxFQUNuQyxPQUFpQzs7Ozs7Ozs7Ozs7UUFFakMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLDRDQUFvQyxDQUFDO1lBQzlDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDNUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7U0FDM0MsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUF5Qjs7Ozs7Ozs7OztRQUMxRCxPQUFPLElBQUksNENBQW9DLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDeEQ7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLElBQUksaURBQXNDLEVBQUUsQ0FBQztLQUNyRDs7QUE5REgsOERBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb2x2YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgQ2ZuR2F0ZXdheVRhcmdldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB0eXBlIHsgR3JhbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uLCBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJQcm9wcyB9IGZyb20gJy4vYXBpLWtleSc7XG5pbXBvcnQgeyBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9hcGkta2V5JztcbmltcG9ydCB7IEdhdGV3YXlJYW1Sb2xlQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9pYW0tcm9sZSc7XG5pbXBvcnQgdHlwZSB7IE9BdXRoQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vb2F1dGgnO1xuaW1wb3J0IHsgT0F1dGhDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9vYXV0aCc7XG5pbXBvcnQgdHlwZSB7IElBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9pZGVudGl0eS9hcGkta2V5LWNyZWRlbnRpYWwtcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBJT0F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vaWRlbnRpdHkvb2F1dGgyLWNyZWRlbnRpYWwtcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBJR2F0ZXdheSB9IGZyb20gJy4uL2dhdGV3YXktYmFzZSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bXNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQ3JlZGVudGlhbCBwcm92aWRlciB0eXBlcyBzdXBwb3J0ZWQgYnkgZ2F0ZXdheSB0YXJnZXRcbiAqL1xuZXhwb3J0IGVudW0gQ3JlZGVudGlhbFByb3ZpZGVyVHlwZSB7XG4gIC8qKlxuICAgKiBBUEkgS2V5IGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBBUElfS0VZID0gJ0FQSV9LRVknLFxuXG4gIC8qKlxuICAgKiBPQXV0aCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgT0FVVEggPSAnT0FVVEgnLFxuXG4gIC8qKlxuICAgKiBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgR0FURVdBWV9JQU1fUk9MRSA9ICdHQVRFV0FZX0lBTV9ST0xFJyxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgIENyZWRlbnRpYWwgUHJvdmlkZXJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBBYnN0cmFjdCBpbnRlcmZhY2UgZm9yIGdhdGV3YXkgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbCBwcm92aWRlciB0eXBlXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJUeXBlOiBDcmVkZW50aWFsUHJvdmlkZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGFzIENGTiBQcm9wZXJ0eVxuICAgKiAgQGludGVybmFsXG4gICAqL1xuICBfcmVuZGVyKCk6IENmbkdhdGV3YXlUYXJnZXQuQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvblByb3BlcnR5IHwgSVJlc29sdmFibGU7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnYXRld2F5J3MgZXhlY3V0aW9uIHJvbGUgdGhlIHBlcm1pc3Npb25zIG5lZWRlZCBmb3Igb3V0Ym91bmQgYXV0aGVudGljYXRpb24uXG4gICAqIEBwYXJhbSBnYXRld2F5IFRoZSBnYXRld2F5IHdob3NlIHJvbGUgbmVlZHMgb3V0Ym91bmQgYXV0aCBwZXJtaXNzaW9ucyBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgZ3JhbnROZWVkZWRQZXJtaXNzaW9uc1RvUm9sZShnYXRld2F5OiBJR2F0ZXdheSk6IEdyYW50IHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIE9wdGlvbmFsIGdhdGV3YXkgc2V0dGluZ3Mgd2hlbiBiaW5kaW5nIGFuIHtAbGluayBJQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyfSB0byBhIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9tQXBpS2V5SWRlbnRpdHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBBUEkga2V5IG9uIG91dGJvdW5kIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBoZWFkZXIgYEF1dGhvcml6YXRpb25gIHdpdGggYEJlYXJlciBgIHByZWZpeFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbExvY2F0aW9uPzogQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uO1xufVxuXG4vKipcbiAqIE9BdXRoIHNjb3BlcyAoYW5kIG9wdGlvbmFsIGN1c3RvbSBwYXJhbWV0ZXJzKSB3aGVuIGJpbmRpbmcgYW4ge0BsaW5rIElPQXV0aDJDcmVkZW50aWFsUHJvdmlkZXJ9IHRvIGEgZ2F0ZXdheSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbU9hdXRoSWRlbnRpdHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9BdXRoIHNjb3BlcyB0aGUgZ2F0ZXdheSBzaG91bGQgcmVxdWVzdCBmb3IgdGhpcyB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSBzY29wZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIE9BdXRoIHBhcmFtZXRlcnMgZm9yIHRoZSBwcm92aWRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBGYWN0b3J5IGNsYXNzIGZvciBjcmVhdGluZyBkaWZmZXJlbnQgR2F0ZXdheSBDcmVkZW50aWFsIFByb3ZpZGVyc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQVBJIGtleSBvdXRib3VuZCBhdXRoIGNvbmZpZ3VyYXRpb24gZnJvbSBhIFRva2VuIFZhdWx0IHtAbGluayBJQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyfSBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIFByZWZlciB0aGlzIG92ZXIge0BsaW5rIEdhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUFwaUtleUlkZW50aXR5QXJufSB3aGVuIHRoZSBwcm92aWRlciBpcyBkZWZpbmVkIGluIENESy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFwaUtleUlkZW50aXR5KFxuICAgIHByb3ZpZGVyOiBJQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyLFxuICAgIG9wdGlvbnM6IEZyb21BcGlLZXlJZGVudGl0eU9wdGlvbnMgPSB7fSxcbiAgKTogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gICAgY29uc3QgYmluZGluZyA9IHByb3ZpZGVyLmJpbmRGb3JHYXRld2F5QXBpS2V5VGFyZ2V0KCk7XG4gICAgcmV0dXJuIG5ldyBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3ZpZGVyQXJuOiBiaW5kaW5nLnByb3ZpZGVyQXJuLFxuICAgICAgc2VjcmV0QXJuOiBiaW5kaW5nLnNlY3JldEFybixcbiAgICAgIGNyZWRlbnRpYWxMb2NhdGlvbjogb3B0aW9ucy5jcmVkZW50aWFsTG9jYXRpb24sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEFQSSBrZXkgY3JlZGVudGlhbCBwcm92aWRlciBmcm9tIElkZW50aXR5IEFSTlxuICAgKiBVc2UgdGhpcyBtZXRob2Qgd2hlbiB5b3UgaGF2ZSB0aGUgSWRlbnRpdHkgQVJOIGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBBUEkga2V5IGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICogQHJldHVybnMgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyBjb25maWd1cmVkIGZvciBBUEkga2V5IGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BcGlLZXlJZGVudGl0eUFybihwcm9wczogQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyUHJvcHMpOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIHtcbiAgICByZXR1cm4gbmV3IEFwaUtleUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb24ocHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBPQXV0aCBvdXRib3VuZCBhdXRoIGNvbmZpZ3VyYXRpb24gZnJvbSBhIFRva2VuIFZhdWx0IHtAbGluayBJT0F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyfSBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIFByZWZlciB0aGlzIG92ZXIge0BsaW5rIEdhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbU9hdXRoSWRlbnRpdHlBcm59IHdoZW4gdGhlIHByb3ZpZGVyIGlzIGRlZmluZWQgaW4gQ0RLLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tT2F1dGhJZGVudGl0eShcbiAgICBwcm92aWRlcjogSU9BdXRoMkNyZWRlbnRpYWxQcm92aWRlcixcbiAgICBvcHRpb25zOiBGcm9tT2F1dGhJZGVudGl0eU9wdGlvbnMsXG4gICk6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICAgIGNvbnN0IGJpbmRpbmcgPSBwcm92aWRlci5iaW5kRm9yR2F0ZXdheU9BdXRoVGFyZ2V0KG9wdGlvbnMuc2NvcGVzLCBvcHRpb25zLmN1c3RvbVBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBuZXcgT0F1dGhDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uKHtcbiAgICAgIHByb3ZpZGVyQXJuOiBiaW5kaW5nLnByb3ZpZGVyQXJuLFxuICAgICAgc2VjcmV0QXJuOiBiaW5kaW5nLnNlY3JldEFybixcbiAgICAgIHNjb3BlczogYmluZGluZy5zY29wZXMsXG4gICAgICBjdXN0b21QYXJhbWV0ZXJzOiBiaW5kaW5nLmN1c3RvbVBhcmFtZXRlcnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgZnJvbSBJZGVudGl0eSBBUk5cbiAgICogVXNlIHRoaXMgbWV0aG9kIHdoZW4geW91IGhhdmUgdGhlIElkZW50aXR5IEFSTiBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlclxuICAgKiBAcmV0dXJucyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIGNvbmZpZ3VyZWQgZm9yIE9BdXRoIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PYXV0aElkZW50aXR5QXJuKHByb3BzOiBPQXV0aENvbmZpZ3VyYXRpb24pOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIHtcbiAgICByZXR1cm4gbmV3IE9BdXRoQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbihwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIElBTSByb2xlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICogQHJldHVybnMgSUlhbVJvbGVDcmVkZW50aWFsUHJvdmlkZXIgY29uZmlndXJlZCBmb3IgSUFNIHJvbGUgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUlhbVJvbGUoKTogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5SWFtUm9sZUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZygpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/******************************************************************************
|
|
2
2
|
* IAM Role
|
|
3
3
|
*****************************************************************************/
|
|
4
|
-
import type { Grant
|
|
4
|
+
import type { Grant } from 'aws-cdk-lib/aws-iam';
|
|
5
5
|
import type { ICredentialProviderConfig } from './credential-provider';
|
|
6
6
|
import { CredentialProviderType } from './credential-provider';
|
|
7
|
+
import type { IGateway } from '../gateway-base';
|
|
7
8
|
/**
|
|
8
9
|
* Gateway IAM Role credential provider configuration implementation
|
|
9
10
|
* Can be used with Lambda and Smithy targets
|
|
@@ -22,8 +23,8 @@ export declare class GatewayIamRoleCredentialProviderConfig implements ICredenti
|
|
|
22
23
|
* role to authenticate with the target endpoint. Unlike API Key and OAuth credential providers
|
|
23
24
|
* which require permissions to access external credential stores (Secrets Manager, Token Vault),
|
|
24
25
|
* IAM role authentication leverages AWS IAM's native authentication without additional resources.
|
|
25
|
-
* @param
|
|
26
|
+
* @param _gateway The gateway (unused - no credential provider permissions needed)
|
|
26
27
|
* @returns undefined - no additional credential provider permissions to grant
|
|
27
28
|
*/
|
|
28
|
-
grantNeededPermissionsToRole(
|
|
29
|
+
grantNeededPermissionsToRole(_gateway: IGateway): Grant | undefined;
|
|
29
30
|
}
|
|
@@ -27,14 +27,12 @@ class GatewayIamRoleCredentialProviderConfig {
|
|
|
27
27
|
* role to authenticate with the target endpoint. Unlike API Key and OAuth credential providers
|
|
28
28
|
* which require permissions to access external credential stores (Secrets Manager, Token Vault),
|
|
29
29
|
* IAM role authentication leverages AWS IAM's native authentication without additional resources.
|
|
30
|
-
* @param
|
|
30
|
+
* @param _gateway The gateway (unused - no credential provider permissions needed)
|
|
31
31
|
* @returns undefined - no additional credential provider permissions to grant
|
|
32
32
|
*/
|
|
33
|
-
grantNeededPermissionsToRole(
|
|
34
|
-
if (role) {
|
|
35
|
-
}
|
|
33
|
+
grantNeededPermissionsToRole(_gateway) {
|
|
36
34
|
return undefined;
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
exports.GatewayIamRoleCredentialProviderConfig = GatewayIamRoleCredentialProviderConfig;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXJvbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpYW0tcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7OytFQUUrRTs7O0FBSS9FLCtEQUErRDtBQUcvRDs7OztHQUlHO0FBQ0gsTUFBYSxzQ0FBc0M7SUFDakMsc0JBQXNCLEdBQUcsNENBQXNCLENBQUMsZ0JBQWdCLENBQUM7SUFFakYsaUJBQWdCO0lBRWhCOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU87WUFDTCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO1NBQ3BELENBQUM7S0FDSDtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsNEJBQTRCLENBQUMsUUFBa0I7UUFDN0MsT0FBTyxTQUFTLENBQUM7S0FDbEI7Q0FDRjtBQTFCRCx3RkEwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFNIFJvbGVcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHR5cGUgeyBHcmFudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgeyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IENyZWRlbnRpYWxQcm92aWRlclR5cGUgfSBmcm9tICcuL2NyZWRlbnRpYWwtcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBJR2F0ZXdheSB9IGZyb20gJy4uL2dhdGV3YXktYmFzZSc7XG5cbi8qKlxuICogR2F0ZXdheSBJQU0gUm9sZSBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqIENhbiBiZSB1c2VkIHdpdGggTGFtYmRhIGFuZCBTbWl0aHkgdGFyZ2V0c1xuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBHYXRld2F5SWFtUm9sZUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyBpbXBsZW1lbnRzIElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyVHlwZSA9IENyZWRlbnRpYWxQcm92aWRlclR5cGUuR0FURVdBWV9JQU1fUk9MRTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJUeXBlOiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlclR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOby1vcCBmb3IgSUFNIHJvbGUgYXV0aGVudGljYXRpb24gLSBubyBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFyZSByZXF1aXJlZC5cbiAgICogV2hlbiB1c2luZyBJQU0gcm9sZSBhdXRoZW50aWNhdGlvbiBmb3Igb3V0Ym91bmQgY2FsbHMsIHRoZSBnYXRld2F5IHVzZXMgaXRzIG93biBleGVjdXRpb25cbiAgICogcm9sZSB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgdGFyZ2V0IGVuZHBvaW50LiBVbmxpa2UgQVBJIEtleSBhbmQgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlcnNcbiAgICogd2hpY2ggcmVxdWlyZSBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgZXh0ZXJuYWwgY3JlZGVudGlhbCBzdG9yZXMgKFNlY3JldHMgTWFuYWdlciwgVG9rZW4gVmF1bHQpLFxuICAgKiBJQU0gcm9sZSBhdXRoZW50aWNhdGlvbiBsZXZlcmFnZXMgQVdTIElBTSdzIG5hdGl2ZSBhdXRoZW50aWNhdGlvbiB3aXRob3V0IGFkZGl0aW9uYWwgcmVzb3VyY2VzLlxuICAgKiBAcGFyYW0gX2dhdGV3YXkgVGhlIGdhdGV3YXkgKHVudXNlZCAtIG5vIGNyZWRlbnRpYWwgcHJvdmlkZXIgcGVybWlzc2lvbnMgbmVlZGVkKVxuICAgKiBAcmV0dXJucyB1bmRlZmluZWQgLSBubyBhZGRpdGlvbmFsIGNyZWRlbnRpYWwgcHJvdmlkZXIgcGVybWlzc2lvbnMgdG8gZ3JhbnRcbiAgICovXG4gIGdyYW50TmVlZGVkUGVybWlzc2lvbnNUb1JvbGUoX2dhdGV3YXk6IElHYXRld2F5KTogR3JhbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { IRole } from 'aws-cdk-lib/aws-iam';
|
|
2
1
|
import { Grant } from 'aws-cdk-lib/aws-iam';
|
|
3
2
|
import type { ICredentialProviderConfig } from './credential-provider';
|
|
4
3
|
import { CredentialProviderType } from './credential-provider';
|
|
4
|
+
import type { IGateway } from '../gateway-base';
|
|
5
5
|
/******************************************************************************
|
|
6
6
|
* OAuth
|
|
7
7
|
*****************************************************************************/
|
|
@@ -72,9 +72,17 @@ export declare class OAuthCredentialProviderConfiguration implements ICredential
|
|
|
72
72
|
readonly customParameters?: Record<string, string>;
|
|
73
73
|
constructor(configuration: OAuthConfiguration);
|
|
74
74
|
/**
|
|
75
|
-
* Grant the needed permissions to the role for OAuth authentication
|
|
75
|
+
* Grant the needed permissions to the gateway role for OAuth authentication.
|
|
76
|
+
*
|
|
77
|
+
* Produces four scoped IAM statements matching the console-generated policy:
|
|
78
|
+
* 1. `GetWorkloadAccessToken[ForJWT|ForUserId]` on the workload identity directory ARNs
|
|
79
|
+
* 2. `CompleteResourceTokenAuth` on the token vault, credential provider, directory, and identity ARNs
|
|
80
|
+
* 3. `GetResourceOauth2Token` on the token vault, credential provider, directory, and identity ARNs
|
|
81
|
+
* 4. `secretsmanager:GetSecretValue` on the specific credential secret ARN
|
|
82
|
+
*
|
|
83
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html
|
|
76
84
|
*/
|
|
77
|
-
grantNeededPermissionsToRole(
|
|
85
|
+
grantNeededPermissionsToRole(gateway: IGateway): Grant | undefined;
|
|
78
86
|
/**
|
|
79
87
|
* @internal
|
|
80
88
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OAuthCredentialProviderConfiguration = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
4
5
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
5
6
|
const credential_provider_1 = require("./credential-provider");
|
|
6
7
|
const perms_1 = require("../perms");
|
|
@@ -34,27 +35,76 @@ class OAuthCredentialProviderConfiguration {
|
|
|
34
35
|
this.customParameters = configuration.customParameters;
|
|
35
36
|
}
|
|
36
37
|
/**
|
|
37
|
-
* Grant the needed permissions to the role for OAuth authentication
|
|
38
|
+
* Grant the needed permissions to the gateway role for OAuth authentication.
|
|
39
|
+
*
|
|
40
|
+
* Produces four scoped IAM statements matching the console-generated policy:
|
|
41
|
+
* 1. `GetWorkloadAccessToken[ForJWT|ForUserId]` on the workload identity directory ARNs
|
|
42
|
+
* 2. `CompleteResourceTokenAuth` on the token vault, credential provider, directory, and identity ARNs
|
|
43
|
+
* 3. `GetResourceOauth2Token` on the token vault, credential provider, directory, and identity ARNs
|
|
44
|
+
* 4. `secretsmanager:GetSecretValue` on the specific credential secret ARN
|
|
45
|
+
*
|
|
46
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html
|
|
38
47
|
*/
|
|
39
|
-
grantNeededPermissionsToRole(
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
resources: [this.providerArn],
|
|
47
|
-
}),
|
|
48
|
-
new aws_iam_1.PolicyStatement({
|
|
49
|
-
actions: perms_1.GATEWAY_SECRETS_PERMS,
|
|
50
|
-
resources: [this.secretArn],
|
|
51
|
-
}),
|
|
52
|
-
];
|
|
53
|
-
return aws_iam_1.Grant.addToPrincipal({
|
|
54
|
-
grantee: role,
|
|
55
|
-
actions: statements.flatMap(s => s.actions),
|
|
56
|
-
resourceArns: statements.flatMap(s => s.resources),
|
|
48
|
+
grantNeededPermissionsToRole(gateway) {
|
|
49
|
+
const stack = aws_cdk_lib_1.Stack.of(gateway);
|
|
50
|
+
const directoryArn = stack.formatArn({
|
|
51
|
+
service: 'bedrock-agentcore',
|
|
52
|
+
resource: 'workload-identity-directory',
|
|
53
|
+
resourceName: 'default',
|
|
54
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.SLASH_RESOURCE_NAME,
|
|
57
55
|
});
|
|
56
|
+
const identityWildcardArn = `${directoryArn}/workload-identity/${gateway.name}-*`;
|
|
57
|
+
const tokenVaultArn = stack.formatArn({
|
|
58
|
+
service: 'bedrock-agentcore',
|
|
59
|
+
resource: 'token-vault',
|
|
60
|
+
resourceName: 'default',
|
|
61
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.SLASH_RESOURCE_NAME,
|
|
62
|
+
});
|
|
63
|
+
const credentialAndIdentityArns = [tokenVaultArn, this.providerArn, directoryArn, identityWildcardArn];
|
|
64
|
+
const workloadIdentityGrant = aws_iam_1.Grant.addToPrincipal({
|
|
65
|
+
grantee: gateway.role,
|
|
66
|
+
actions: [...perms_1.GATEWAY_WORKLOAD_IDENTITY_OAUTH_PERMS],
|
|
67
|
+
resourceArns: [directoryArn, identityWildcardArn],
|
|
68
|
+
scope: gateway,
|
|
69
|
+
});
|
|
70
|
+
const completeAuthGrant = aws_iam_1.Grant.addToPrincipal({
|
|
71
|
+
grantee: gateway.role,
|
|
72
|
+
actions: [...perms_1.GATEWAY_OAUTH_COMPLETE_AUTH_PERMS],
|
|
73
|
+
resourceArns: credentialAndIdentityArns,
|
|
74
|
+
scope: gateway,
|
|
75
|
+
});
|
|
76
|
+
const oauthGrant = aws_iam_1.Grant.addToPrincipal({
|
|
77
|
+
grantee: gateway.role,
|
|
78
|
+
actions: [...perms_1.GATEWAY_OAUTH_PERMS],
|
|
79
|
+
resourceArns: credentialAndIdentityArns,
|
|
80
|
+
scope: gateway,
|
|
81
|
+
});
|
|
82
|
+
// The CFN attribute ClientSecretArn is an object { SecretArn: string }, not a
|
|
83
|
+
// plain string, so the Token resolves to an object which cannot be placed in
|
|
84
|
+
// IAM Resource fields. When the caller supplies a literal ARN string (e.g. via
|
|
85
|
+
// fromOauthIdentityArn) we can scope tightly; otherwise fall back to a
|
|
86
|
+
// service-managed prefix wildcard.
|
|
87
|
+
let secretResourceArns;
|
|
88
|
+
if (aws_cdk_lib_1.Token.isUnresolved(this.secretArn)) {
|
|
89
|
+
aws_cdk_lib_1.Annotations.of(gateway).addWarningV2('@aws-cdk/aws-bedrock-agentcore-alpha:wildcardSecretArnGrant', 'The secret ARN is an unresolved token. Granting access using a wildcard prefix (bedrock-agentcore-identity!*). ' +
|
|
90
|
+
'To scope the grant to a specific secret, supply a literal secret ARN via fromOauthIdentityArn.');
|
|
91
|
+
secretResourceArns = [stack.formatArn({
|
|
92
|
+
service: 'secretsmanager',
|
|
93
|
+
resource: 'secret',
|
|
94
|
+
resourceName: 'bedrock-agentcore-identity!*',
|
|
95
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
96
|
+
})];
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
secretResourceArns = [this.secretArn];
|
|
100
|
+
}
|
|
101
|
+
const secretGrant = aws_iam_1.Grant.addToPrincipal({
|
|
102
|
+
grantee: gateway.role,
|
|
103
|
+
actions: [...perms_1.GATEWAY_SECRETS_PERMS],
|
|
104
|
+
resourceArns: secretResourceArns,
|
|
105
|
+
scope: gateway,
|
|
106
|
+
});
|
|
107
|
+
return workloadIdentityGrant.combine(completeAuthGrant).combine(oauthGrant).combine(secretGrant);
|
|
58
108
|
}
|
|
59
109
|
/**
|
|
60
110
|
* @internal
|
|
@@ -73,4 +123,4 @@ class OAuthCredentialProviderConfiguration {
|
|
|
73
123
|
}
|
|
74
124
|
}
|
|
75
125
|
exports.OAuthCredentialProviderConfiguration = OAuthCredentialProviderConfiguration;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBNkQ7QUFFN0QsK0RBQStEO0FBQy9ELG9DQUF1RztBQW9Edkc7Ozs7R0FJRztBQUNILE1BQWEsb0NBQW9DO0lBQy9CLHNCQUFzQixHQUFHLDRDQUFzQixDQUFDLEtBQUssQ0FBQztJQUN0RTs7T0FFRztJQUNhLFdBQVcsQ0FBUztJQUNwQzs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUNsQzs7T0FFRztJQUNhLE1BQU0sQ0FBVztJQUNqQzs7T0FFRztJQUNhLGdCQUFnQixDQUEwQjtJQUUxRCxZQUFZLGFBQWlDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7S0FDeEQ7SUFFRDs7T0FFRztJQUNILDRCQUE0QixDQUFDLElBQVc7UUFDdEMsTUFBTSxVQUFVLEdBQUc7WUFDakIsSUFBSSx5QkFBZSxDQUFDO2dCQUNsQixPQUFPLEVBQUU7b0JBQ1AsR0FBRywyQkFBbUI7b0JBQ3RCLEdBQUcsdUNBQStCO2lCQUNuQztnQkFDRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQzlCLENBQUM7WUFDRixJQUFJLHlCQUFlLENBQUM7Z0JBQ2xCLE9BQU8sRUFBRSw2QkFBcUI7Z0JBQzlCLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDNUIsQ0FBQztTQUNILENBQUM7UUFFRixPQUFPLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDMUIsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDM0MsWUFBWSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ25ELENBQUMsQ0FBQztLQUNKO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsa0JBQWtCLEVBQUU7Z0JBQ2xCLHVCQUF1QixFQUFFO29CQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQkFDeEM7YUFDRjtTQUNGLENBQUM7S0FDSDtDQUNGO0FBbEVELG9GQWtFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEdyYW50LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyBDcmVkZW50aWFsUHJvdmlkZXJUeXBlIH0gZnJvbSAnLi9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IEdBVEVXQVlfT0FVVEhfUEVSTVMsIEdBVEVXQVlfV09SS0xPQURfSURFTlRJVFlfUEVSTVMsIEdBVEVXQVlfU0VDUkVUU19QRVJNUyB9IGZyb20gJy4uL3Blcm1zJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9BdXRoXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogT0F1dGggY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlciBBUk4uXG4gICAqIFRoaXMgaXMgcmV0dXJuZWQgd2hlbiBjcmVhdGluZyB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpiZWRyb2NrLWFnZW50Y29yZTpyZWdpb246YWNjb3VudDp0b2tlbi12YXVsdC9pZC9vYXV0aDJjcmVkZW50aWFscHJvdmlkZXIvbmFtZVxuICAgKiBSZXF1aXJlZDogWWVzXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlckFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGNvbnRhaW5pbmcgT0F1dGggY3JlZGVudGlhbHMgKGNsaWVudCBJRCBhbmQgc2VjcmV0KS5cbiAgICogVGhpcyBpcyByZXR1cm5lZCB3aGVuIGNyZWF0aW5nIHRoZSBPQXV0aCBjcmVkZW50aWFsIHByb3ZpZGVyIHZpYSBDb25zb2xlIG9yIEFQSS5cbiAgICogRm9ybWF0OiBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOnJlZ2lvbjphY2NvdW50OnNlY3JldDpuYW1lXG4gICAqIFJlcXVpcmVkOiBZZXNcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgT0F1dGggc2NvcGVzIGZvciB0aGUgY3JlZGVudGlhbCBwcm92aWRlci5cbiAgICogVGhlc2Ugc2NvcGVzIGRlZmluZSB0aGUgbGV2ZWwgb2YgYWNjZXNzIHJlcXVlc3RlZCBmcm9tIHRoZSBPQXV0aCBwcm92aWRlci5cbiAgICpcbiAgICogQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMCBpdGVtcy4gTWF4aW11bSBudW1iZXIgb2YgMTAwIGl0ZW1zLlxuICAgKiBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDEuIE1heGltdW0gbGVuZ3RoIG9mIDY0LlxuICAgKiBSZXF1aXJlZDogWWVzXG4gICAqL1xuICByZWFkb25seSBzY29wZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHBhcmFtZXRlcnMgZm9yIHRoZSBPQXV0aCBjcmVkZW50aWFsIHByb3ZpZGVyLlxuICAgKiBUaGVzZSBwYXJhbWV0ZXJzIHByb3ZpZGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgT0F1dGggYXV0aGVudGljYXRpb24gcHJvY2Vzcy5cbiAgICpcbiAgICogTWFwIEVudHJpZXM6IE1heGltdW0gbnVtYmVyIG9mIDEwIGl0ZW1zLlxuICAgKiBLZXkgTGVuZ3RoIENvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiAyNTYuXG4gICAqIFZhbHVlIExlbmd0aCBDb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMjA0OC5cbiAgICogUmVxdWlyZWQ6IE5vXG4gICAqL1xuICAvKipcbiAgICogQ3VzdG9tIHBhcmFtZXRlcnMgZm9yIHRoZSBPQXV0aCBmbG93XG4gICAqIEBkZWZhdWx0IC0gTm8gY3VzdG9tIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvblxuICogQ2FuIGJlIHVzZWQgd2l0aCBPcGVuQVBJIHRhcmdldHNcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgT0F1dGhDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uIGltcGxlbWVudHMgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJUeXBlID0gQ3JlZGVudGlhbFByb3ZpZGVyVHlwZS5PQVVUSDtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIE9BdXRoIHByb3ZpZGVyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvdmlkZXJBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWNyZXRBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBPQXV0aCBzY29wZXMgdG8gcmVxdWVzdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjb3Blczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBDdXN0b20gcGFyYW1ldGVycyBmb3IgdGhlIE9BdXRoIGZsb3dcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21QYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWd1cmF0aW9uOiBPQXV0aENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLnByb3ZpZGVyQXJuID0gY29uZmlndXJhdGlvbi5wcm92aWRlckFybjtcbiAgICB0aGlzLnNlY3JldEFybiA9IGNvbmZpZ3VyYXRpb24uc2VjcmV0QXJuO1xuICAgIHRoaXMuc2NvcGVzID0gY29uZmlndXJhdGlvbi5zY29wZXM7XG4gICAgdGhpcy5jdXN0b21QYXJhbWV0ZXJzID0gY29uZmlndXJhdGlvbi5jdXN0b21QYXJhbWV0ZXJzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBuZWVkZWQgcGVybWlzc2lvbnMgdG8gdGhlIHJvbGUgZm9yIE9BdXRoIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBncmFudE5lZWRlZFBlcm1pc3Npb25zVG9Sb2xlKHJvbGU6IElSb2xlKTogR3JhbnQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIC4uLkdBVEVXQVlfT0FVVEhfUEVSTVMsXG4gICAgICAgICAgLi4uR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9QRVJNUyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm92aWRlckFybl0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBHQVRFV0FZX1NFQ1JFVFNfUEVSTVMsXG4gICAgICAgIHJlc291cmNlczogW3RoaXMuc2VjcmV0QXJuXSxcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICByZXR1cm4gR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogcm9sZSxcbiAgICAgIGFjdGlvbnM6IHN0YXRlbWVudHMuZmxhdE1hcChzID0+IHMuYWN0aW9ucyksXG4gICAgICByZXNvdXJjZUFybnM6IHN0YXRlbWVudHMuZmxhdE1hcChzID0+IHMucmVzb3VyY2VzKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyVHlwZTogdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJUeXBlLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyOiB7XG4gICAgICAgIG9hdXRoQ3JlZGVudGlhbFByb3ZpZGVyOiB7XG4gICAgICAgICAgcHJvdmlkZXJBcm46IHRoaXMucHJvdmlkZXJBcm4sXG4gICAgICAgICAgc2NvcGVzOiB0aGlzLnNjb3BlcyxcbiAgICAgICAgICBjdXN0b21QYXJhbWV0ZXJzOiB0aGlzLmN1c3RvbVBhcmFtZXRlcnMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBbUU7QUFDbkUsaURBQTRDO0FBRTVDLCtEQUErRDtBQUUvRCxvQ0FBZ0o7QUFvRGhKOzs7O0dBSUc7QUFDSCxNQUFhLG9DQUFvQztJQUMvQixzQkFBc0IsR0FBRyw0Q0FBc0IsQ0FBQyxLQUFLLENBQUM7SUFDdEU7O09BRUc7SUFDYSxXQUFXLENBQVM7SUFDcEM7O09BRUc7SUFDYSxTQUFTLENBQVM7SUFDbEM7O09BRUc7SUFDYSxNQUFNLENBQVc7SUFDakM7O09BRUc7SUFDYSxnQkFBZ0IsQ0FBMEI7SUFFMUQsWUFBWSxhQUFpQztRQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0tBQ3hEO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILDRCQUE0QixDQUFDLE9BQWlCO1FBQzVDLE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDbkMsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixRQUFRLEVBQUUsNkJBQTZCO1lBQ3ZDLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLFNBQVMsRUFBRSx1QkFBUyxDQUFDLG1CQUFtQjtTQUN6QyxDQUFDLENBQUM7UUFDSCxNQUFNLG1CQUFtQixHQUFHLEdBQUcsWUFBWSxzQkFBc0IsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2xGLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDcEMsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixRQUFRLEVBQUUsYUFBYTtZQUN2QixZQUFZLEVBQUUsU0FBUztZQUN2QixTQUFTLEVBQUUsdUJBQVMsQ0FBQyxtQkFBbUI7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRXZHLE1BQU0scUJBQXFCLEdBQUcsZUFBSyxDQUFDLGNBQWMsQ0FBQztZQUNqRCxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyw2Q0FBcUMsQ0FBQztZQUNuRCxZQUFZLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7WUFDakQsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUM7UUFDSCxNQUFNLGlCQUFpQixHQUFHLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDN0MsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcseUNBQWlDLENBQUM7WUFDL0MsWUFBWSxFQUFFLHlCQUF5QjtZQUN2QyxLQUFLLEVBQUUsT0FBTztTQUNmLENBQUMsQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxjQUFjLENBQUM7WUFDdEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsMkJBQW1CLENBQUM7WUFDakMsWUFBWSxFQUFFLHlCQUF5QjtZQUN2QyxLQUFLLEVBQUUsT0FBTztTQUNmLENBQUMsQ0FBQztRQUNILDhFQUE4RTtRQUM5RSw2RUFBNkU7UUFDN0UsK0VBQStFO1FBQy9FLHVFQUF1RTtRQUN2RSxtQ0FBbUM7UUFDbkMsSUFBSSxrQkFBNEIsQ0FBQztRQUNqQyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLHlCQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FDbEMsNkRBQTZELEVBQzdELGlIQUFpSDtnQkFDakgsZ0dBQWdHLENBQ2pHLENBQUM7WUFDRixrQkFBa0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixZQUFZLEVBQUUsOEJBQThCO29CQUM1QyxTQUFTLEVBQUUsdUJBQVMsQ0FBQyxtQkFBbUI7aUJBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDTixrQkFBa0IsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsZUFBSyxDQUFDLGNBQWMsQ0FBQztZQUN2QyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyw2QkFBcUIsQ0FBQztZQUNuQyxZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2xHO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsa0JBQWtCLEVBQUU7Z0JBQ2xCLHVCQUF1QixFQUFFO29CQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQkFDeEM7YUFDRjtTQUNGLENBQUM7S0FDSDtDQUNGO0FBckhELG9GQXFIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb25zLCBBcm5Gb3JtYXQsIFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEdyYW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSB7IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2NyZWRlbnRpYWwtcHJvdmlkZXInO1xuaW1wb3J0IHsgQ3JlZGVudGlhbFByb3ZpZGVyVHlwZSB9IGZyb20gJy4vY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgdHlwZSB7IElHYXRld2F5IH0gZnJvbSAnLi4vZ2F0ZXdheS1iYXNlJztcbmltcG9ydCB7IEdBVEVXQVlfT0FVVEhfUEVSTVMsIEdBVEVXQVlfT0FVVEhfQ09NUExFVEVfQVVUSF9QRVJNUywgR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9PQVVUSF9QRVJNUywgR0FURVdBWV9TRUNSRVRTX1BFUk1TIH0gZnJvbSAnLi4vcGVybXMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0F1dGhcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBPQXV0aCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBPQXV0aCBjcmVkZW50aWFsIHByb3ZpZGVyIEFSTi5cbiAgICogVGhpcyBpcyByZXR1cm5lZCB3aGVuIGNyZWF0aW5nIHRoZSBPQXV0aCBjcmVkZW50aWFsIHByb3ZpZGVyIHZpYSBDb25zb2xlIG9yIEFQSS5cbiAgICogRm9ybWF0OiBhcm46YXdzOmJlZHJvY2stYWdlbnRjb3JlOnJlZ2lvbjphY2NvdW50OnRva2VuLXZhdWx0L2lkL29hdXRoMmNyZWRlbnRpYWxwcm92aWRlci9uYW1lXG4gICAqIFJlcXVpcmVkOiBZZXNcbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgY29udGFpbmluZyBPQXV0aCBjcmVkZW50aWFscyAoY2xpZW50IElEIGFuZCBzZWNyZXQpLlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgdmlhIENvbnNvbGUgb3IgQVBJLlxuICAgKiBGb3JtYXQ6IGFybjphd3M6c2VjcmV0c21hbmFnZXI6cmVnaW9uOmFjY291bnQ6c2VjcmV0Om5hbWVcbiAgICogUmVxdWlyZWQ6IFllc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPQXV0aCBzY29wZXMgZm9yIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyLlxuICAgKiBUaGVzZSBzY29wZXMgZGVmaW5lIHRoZSBsZXZlbCBvZiBhY2Nlc3MgcmVxdWVzdGVkIGZyb20gdGhlIE9BdXRoIHByb3ZpZGVyLlxuICAgKlxuICAgKiBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAwIGl0ZW1zLiBNYXhpbXVtIG51bWJlciBvZiAxMDAgaXRlbXMuXG4gICAqIExlbmd0aCBDb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgNjQuXG4gICAqIFJlcXVpcmVkOiBZZXNcbiAgICovXG4gIHJlYWRvbmx5IHNjb3Blczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gcGFyYW1ldGVycyBmb3IgdGhlIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIuXG4gICAqIFRoZXNlIHBhcmFtZXRlcnMgcHJvdmlkZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBPQXV0aCBhdXRoZW50aWNhdGlvbiBwcm9jZXNzLlxuICAgKlxuICAgKiBNYXAgRW50cmllczogTWF4aW11bSBudW1iZXIgb2YgMTAgaXRlbXMuXG4gICAqIEtleSBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDEuIE1heGltdW0gbGVuZ3RoIG9mIDI1Ni5cbiAgICogVmFsdWUgTGVuZ3RoIENvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiAyMDQ4LlxuICAgKiBSZXF1aXJlZDogTm9cbiAgICovXG4gIC8qKlxuICAgKiBDdXN0b20gcGFyYW1ldGVycyBmb3IgdGhlIE9BdXRoIGZsb3dcbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogT0F1dGggY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uXG4gKiBDYW4gYmUgdXNlZCB3aXRoIE9wZW5BUEkgdGFyZ2V0c1xuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBPQXV0aENyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb24gaW1wbGVtZW50cyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIHtcbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlclR5cGUgPSBDcmVkZW50aWFsUHJvdmlkZXJUeXBlLk9BVVRIO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgT0F1dGggcHJvdmlkZXJcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm92aWRlckFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE9BdXRoIHNjb3BlcyB0byByZXF1ZXN0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NvcGVzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEN1c3RvbSBwYXJhbWV0ZXJzIGZvciB0aGUgT0F1dGggZmxvd1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbVBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb246IE9BdXRoQ29uZmlndXJhdGlvbikge1xuICAgIHRoaXMucHJvdmlkZXJBcm4gPSBjb25maWd1cmF0aW9uLnByb3ZpZGVyQXJuO1xuICAgIHRoaXMuc2VjcmV0QXJuID0gY29uZmlndXJhdGlvbi5zZWNyZXRBcm47XG4gICAgdGhpcy5zY29wZXMgPSBjb25maWd1cmF0aW9uLnNjb3BlcztcbiAgICB0aGlzLmN1c3RvbVBhcmFtZXRlcnMgPSBjb25maWd1cmF0aW9uLmN1c3RvbVBhcmFtZXRlcnM7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIG5lZWRlZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2F0ZXdheSByb2xlIGZvciBPQXV0aCBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogUHJvZHVjZXMgZm91ciBzY29wZWQgSUFNIHN0YXRlbWVudHMgbWF0Y2hpbmcgdGhlIGNvbnNvbGUtZ2VuZXJhdGVkIHBvbGljeTpcbiAgICogMS4gYEdldFdvcmtsb2FkQWNjZXNzVG9rZW5bRm9ySldUfEZvclVzZXJJZF1gIG9uIHRoZSB3b3JrbG9hZCBpZGVudGl0eSBkaXJlY3RvcnkgQVJOc1xuICAgKiAyLiBgQ29tcGxldGVSZXNvdXJjZVRva2VuQXV0aGAgb24gdGhlIHRva2VuIHZhdWx0LCBjcmVkZW50aWFsIHByb3ZpZGVyLCBkaXJlY3RvcnksIGFuZCBpZGVudGl0eSBBUk5zXG4gICAqIDMuIGBHZXRSZXNvdXJjZU9hdXRoMlRva2VuYCBvbiB0aGUgdG9rZW4gdmF1bHQsIGNyZWRlbnRpYWwgcHJvdmlkZXIsIGRpcmVjdG9yeSwgYW5kIGlkZW50aXR5IEFSTnNcbiAgICogNC4gYHNlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlYCBvbiB0aGUgc3BlY2lmaWMgY3JlZGVudGlhbCBzZWNyZXQgQVJOXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9nYXRld2F5LW91dGJvdW5kLWF1dGguaHRtbFxuICAgKi9cbiAgZ3JhbnROZWVkZWRQZXJtaXNzaW9uc1RvUm9sZShnYXRld2F5OiBJR2F0ZXdheSk6IEdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKGdhdGV3YXkpO1xuICAgIGNvbnN0IGRpcmVjdG9yeUFybiA9IHN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnYmVkcm9jay1hZ2VudGNvcmUnLFxuICAgICAgcmVzb3VyY2U6ICd3b3JrbG9hZC1pZGVudGl0eS1kaXJlY3RvcnknLFxuICAgICAgcmVzb3VyY2VOYW1lOiAnZGVmYXVsdCcsXG4gICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICAgIGNvbnN0IGlkZW50aXR5V2lsZGNhcmRBcm4gPSBgJHtkaXJlY3RvcnlBcm59L3dvcmtsb2FkLWlkZW50aXR5LyR7Z2F0ZXdheS5uYW1lfS0qYDtcbiAgICBjb25zdCB0b2tlblZhdWx0QXJuID0gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdiZWRyb2NrLWFnZW50Y29yZScsXG4gICAgICByZXNvdXJjZTogJ3Rva2VuLXZhdWx0JyxcbiAgICAgIHJlc291cmNlTmFtZTogJ2RlZmF1bHQnLFxuICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgICBjb25zdCBjcmVkZW50aWFsQW5kSWRlbnRpdHlBcm5zID0gW3Rva2VuVmF1bHRBcm4sIHRoaXMucHJvdmlkZXJBcm4sIGRpcmVjdG9yeUFybiwgaWRlbnRpdHlXaWxkY2FyZEFybl07XG5cbiAgICBjb25zdCB3b3JrbG9hZElkZW50aXR5R3JhbnQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBnYXRld2F5LnJvbGUsXG4gICAgICBhY3Rpb25zOiBbLi4uR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9PQVVUSF9QRVJNU10sXG4gICAgICByZXNvdXJjZUFybnM6IFtkaXJlY3RvcnlBcm4sIGlkZW50aXR5V2lsZGNhcmRBcm5dLFxuICAgICAgc2NvcGU6IGdhdGV3YXksXG4gICAgfSk7XG4gICAgY29uc3QgY29tcGxldGVBdXRoR3JhbnQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBnYXRld2F5LnJvbGUsXG4gICAgICBhY3Rpb25zOiBbLi4uR0FURVdBWV9PQVVUSF9DT01QTEVURV9BVVRIX1BFUk1TXSxcbiAgICAgIHJlc291cmNlQXJuczogY3JlZGVudGlhbEFuZElkZW50aXR5QXJucyxcbiAgICAgIHNjb3BlOiBnYXRld2F5LFxuICAgIH0pO1xuICAgIGNvbnN0IG9hdXRoR3JhbnQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBnYXRld2F5LnJvbGUsXG4gICAgICBhY3Rpb25zOiBbLi4uR0FURVdBWV9PQVVUSF9QRVJNU10sXG4gICAgICByZXNvdXJjZUFybnM6IGNyZWRlbnRpYWxBbmRJZGVudGl0eUFybnMsXG4gICAgICBzY29wZTogZ2F0ZXdheSxcbiAgICB9KTtcbiAgICAvLyBUaGUgQ0ZOIGF0dHJpYnV0ZSBDbGllbnRTZWNyZXRBcm4gaXMgYW4gb2JqZWN0IHsgU2VjcmV0QXJuOiBzdHJpbmcgfSwgbm90IGFcbiAgICAvLyBwbGFpbiBzdHJpbmcsIHNvIHRoZSBUb2tlbiByZXNvbHZlcyB0byBhbiBvYmplY3Qgd2hpY2ggY2Fubm90IGJlIHBsYWNlZCBpblxuICAgIC8vIElBTSBSZXNvdXJjZSBmaWVsZHMuIFdoZW4gdGhlIGNhbGxlciBzdXBwbGllcyBhIGxpdGVyYWwgQVJOIHN0cmluZyAoZS5nLiB2aWFcbiAgICAvLyBmcm9tT2F1dGhJZGVudGl0eUFybikgd2UgY2FuIHNjb3BlIHRpZ2h0bHk7IG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gYVxuICAgIC8vIHNlcnZpY2UtbWFuYWdlZCBwcmVmaXggd2lsZGNhcmQuXG4gICAgbGV0IHNlY3JldFJlc291cmNlQXJuczogc3RyaW5nW107XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLnNlY3JldEFybikpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKGdhdGV3YXkpLmFkZFdhcm5pbmdWMihcbiAgICAgICAgJ0Bhd3MtY2RrL2F3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYTp3aWxkY2FyZFNlY3JldEFybkdyYW50JyxcbiAgICAgICAgJ1RoZSBzZWNyZXQgQVJOIGlzIGFuIHVucmVzb2x2ZWQgdG9rZW4uIEdyYW50aW5nIGFjY2VzcyB1c2luZyBhIHdpbGRjYXJkIHByZWZpeCAoYmVkcm9jay1hZ2VudGNvcmUtaWRlbnRpdHkhKikuICcgK1xuICAgICAgICAnVG8gc2NvcGUgdGhlIGdyYW50IHRvIGEgc3BlY2lmaWMgc2VjcmV0LCBzdXBwbHkgYSBsaXRlcmFsIHNlY3JldCBBUk4gdmlhIGZyb21PYXV0aElkZW50aXR5QXJuLicsXG4gICAgICApO1xuICAgICAgc2VjcmV0UmVzb3VyY2VBcm5zID0gW3N0YWNrLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdzZWNyZXRzbWFuYWdlcicsXG4gICAgICAgIHJlc291cmNlOiAnc2VjcmV0JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiAnYmVkcm9jay1hZ2VudGNvcmUtaWRlbnRpdHkhKicsXG4gICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgICB9KV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlY3JldFJlc291cmNlQXJucyA9IFt0aGlzLnNlY3JldEFybl07XG4gICAgfVxuICAgIGNvbnN0IHNlY3JldEdyYW50ID0gR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ2F0ZXdheS5yb2xlLFxuICAgICAgYWN0aW9uczogWy4uLkdBVEVXQVlfU0VDUkVUU19QRVJNU10sXG4gICAgICByZXNvdXJjZUFybnM6IHNlY3JldFJlc291cmNlQXJucyxcbiAgICAgIHNjb3BlOiBnYXRld2F5LFxuICAgIH0pO1xuICAgIHJldHVybiB3b3JrbG9hZElkZW50aXR5R3JhbnQuY29tYmluZShjb21wbGV0ZUF1dGhHcmFudCkuY29tYmluZShvYXV0aEdyYW50KS5jb21iaW5lKHNlY3JldEdyYW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyVHlwZTogdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJUeXBlLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyOiB7XG4gICAgICAgIG9hdXRoQ3JlZGVudGlhbFByb3ZpZGVyOiB7XG4gICAgICAgICAgcHJvdmlkZXJBcm46IHRoaXMucHJvdmlkZXJBcm4sXG4gICAgICAgICAgc2NvcGVzOiB0aGlzLnNjb3BlcyxcbiAgICAgICAgICBjdXN0b21QYXJhbWV0ZXJzOiB0aGlzLmN1c3RvbVBhcmFtZXRlcnMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/lib/gateway/perms.d.ts
CHANGED
|
@@ -20,15 +20,25 @@ export declare const GATEWAY_KMS_KEY_PERMS: string[];
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const GATEWAY_ASSUME_ROLE: string[];
|
|
22
22
|
/**
|
|
23
|
-
* Outbound auth - Workload identity permissions
|
|
23
|
+
* Outbound auth - Workload identity permissions (API key targets)
|
|
24
24
|
* Used to obtain access tokens for workload identity
|
|
25
25
|
*/
|
|
26
26
|
export declare const GATEWAY_WORKLOAD_IDENTITY_PERMS: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Outbound auth - Workload identity permissions (OAuth targets)
|
|
29
|
+
* OAuth flows additionally require JWT-based and user-ID-based token exchange
|
|
30
|
+
*/
|
|
31
|
+
export declare const GATEWAY_WORKLOAD_IDENTITY_OAUTH_PERMS: string[];
|
|
27
32
|
/**
|
|
28
33
|
* Outbound auth - OAuth permissions
|
|
29
|
-
* Used to obtain OAuth tokens for target authentication
|
|
34
|
+
* Used to obtain OAuth tokens and complete token auth for target authentication
|
|
30
35
|
*/
|
|
31
36
|
export declare const GATEWAY_OAUTH_PERMS: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Outbound auth - OAuth complete token auth permissions
|
|
39
|
+
* Used to complete the OAuth token authorization flow
|
|
40
|
+
*/
|
|
41
|
+
export declare const GATEWAY_OAUTH_COMPLETE_AUTH_PERMS: string[];
|
|
32
42
|
/**
|
|
33
43
|
* Outbound auth - API Key permissions
|
|
34
44
|
* Used to retrieve API keys for target authentication
|
|
@@ -36,7 +46,9 @@ export declare const GATEWAY_OAUTH_PERMS: string[];
|
|
|
36
46
|
export declare const GATEWAY_API_KEY_PERMS: string[];
|
|
37
47
|
/**
|
|
38
48
|
* Secrets Manager permissions
|
|
39
|
-
* Required for
|
|
49
|
+
* Required for reading credential secrets backing Token Vault providers.
|
|
50
|
+
*
|
|
51
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html
|
|
40
52
|
*/
|
|
41
53
|
export declare const GATEWAY_SECRETS_PERMS: string[];
|
|
42
54
|
/******************************************************************************
|
package/lib/gateway/perms.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Data Plane Permissions
|
|
4
4
|
*****************************************************************************/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GATEWAY_SYNC_PERMS = exports.GATEWAY_MANAGE_PERMS = exports.GATEWAY_DELETE_PERMS = exports.GATEWAY_UPDATE_PERMS = exports.GATEWAY_CREATE_PERMS = exports.GATEWAY_LIST_PERMS = exports.GATEWAY_GET_PERMS = exports.GATEWAY_SECRETS_PERMS = exports.GATEWAY_API_KEY_PERMS = exports.GATEWAY_OAUTH_PERMS = exports.GATEWAY_WORKLOAD_IDENTITY_PERMS = exports.GATEWAY_ASSUME_ROLE = exports.GATEWAY_KMS_KEY_PERMS = exports.GATEWAY_INVOKE_PERMS = void 0;
|
|
6
|
+
exports.GATEWAY_SYNC_PERMS = exports.GATEWAY_MANAGE_PERMS = exports.GATEWAY_DELETE_PERMS = exports.GATEWAY_UPDATE_PERMS = exports.GATEWAY_CREATE_PERMS = exports.GATEWAY_LIST_PERMS = exports.GATEWAY_GET_PERMS = exports.GATEWAY_SECRETS_PERMS = exports.GATEWAY_API_KEY_PERMS = exports.GATEWAY_OAUTH_COMPLETE_AUTH_PERMS = exports.GATEWAY_OAUTH_PERMS = exports.GATEWAY_WORKLOAD_IDENTITY_OAUTH_PERMS = exports.GATEWAY_WORKLOAD_IDENTITY_PERMS = exports.GATEWAY_ASSUME_ROLE = exports.GATEWAY_KMS_KEY_PERMS = exports.GATEWAY_INVOKE_PERMS = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Permissions to invoke the gateway
|
|
9
9
|
* Used by agents or other services that need to call the gateway
|
|
@@ -34,19 +34,35 @@ exports.GATEWAY_KMS_KEY_PERMS = [
|
|
|
34
34
|
*/
|
|
35
35
|
exports.GATEWAY_ASSUME_ROLE = ['sts:AssumeRole'];
|
|
36
36
|
/**
|
|
37
|
-
* Outbound auth - Workload identity permissions
|
|
37
|
+
* Outbound auth - Workload identity permissions (API key targets)
|
|
38
38
|
* Used to obtain access tokens for workload identity
|
|
39
39
|
*/
|
|
40
40
|
exports.GATEWAY_WORKLOAD_IDENTITY_PERMS = [
|
|
41
41
|
'bedrock-agentcore:GetWorkloadAccessToken',
|
|
42
42
|
];
|
|
43
|
+
/**
|
|
44
|
+
* Outbound auth - Workload identity permissions (OAuth targets)
|
|
45
|
+
* OAuth flows additionally require JWT-based and user-ID-based token exchange
|
|
46
|
+
*/
|
|
47
|
+
exports.GATEWAY_WORKLOAD_IDENTITY_OAUTH_PERMS = [
|
|
48
|
+
'bedrock-agentcore:GetWorkloadAccessToken',
|
|
49
|
+
'bedrock-agentcore:GetWorkloadAccessTokenForJWT',
|
|
50
|
+
'bedrock-agentcore:GetWorkloadAccessTokenForUserId',
|
|
51
|
+
];
|
|
43
52
|
/**
|
|
44
53
|
* Outbound auth - OAuth permissions
|
|
45
|
-
* Used to obtain OAuth tokens for target authentication
|
|
54
|
+
* Used to obtain OAuth tokens and complete token auth for target authentication
|
|
46
55
|
*/
|
|
47
56
|
exports.GATEWAY_OAUTH_PERMS = [
|
|
48
57
|
'bedrock-agentcore:GetResourceOauth2Token',
|
|
49
58
|
];
|
|
59
|
+
/**
|
|
60
|
+
* Outbound auth - OAuth complete token auth permissions
|
|
61
|
+
* Used to complete the OAuth token authorization flow
|
|
62
|
+
*/
|
|
63
|
+
exports.GATEWAY_OAUTH_COMPLETE_AUTH_PERMS = [
|
|
64
|
+
'bedrock-agentcore:CompleteResourceTokenAuth',
|
|
65
|
+
];
|
|
50
66
|
/**
|
|
51
67
|
* Outbound auth - API Key permissions
|
|
52
68
|
* Used to retrieve API keys for target authentication
|
|
@@ -56,12 +72,11 @@ exports.GATEWAY_API_KEY_PERMS = [
|
|
|
56
72
|
];
|
|
57
73
|
/**
|
|
58
74
|
* Secrets Manager permissions
|
|
59
|
-
* Required for
|
|
75
|
+
* Required for reading credential secrets backing Token Vault providers.
|
|
76
|
+
*
|
|
77
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html
|
|
60
78
|
*/
|
|
61
|
-
exports.GATEWAY_SECRETS_PERMS = [
|
|
62
|
-
'secretsmanager:GetSecretValue',
|
|
63
|
-
'secretsmanager:DescribeSecret',
|
|
64
|
-
];
|
|
79
|
+
exports.GATEWAY_SECRETS_PERMS = ['secretsmanager:GetSecretValue'];
|
|
65
80
|
/******************************************************************************
|
|
66
81
|
* Control Plane Permissions
|
|
67
82
|
*****************************************************************************/
|
|
@@ -106,4 +121,4 @@ exports.GATEWAY_MANAGE_PERMS = [...new Set([...exports.GATEWAY_CREATE_PERMS, ...
|
|
|
106
121
|
* Used to refresh tool catalogs when MCP server tools change
|
|
107
122
|
*/
|
|
108
123
|
exports.GATEWAY_SYNC_PERMS = ['bedrock-agentcore:SynchronizeGatewayTargets'];
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwZXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7O2lGQUVpRjs7O0FBRWpGOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXhFOztpRkFFaUY7QUFFakY7OztHQUdHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRztJQUNuQyxxQkFBcUI7SUFDckIscUNBQXFDO0lBQ3JDLHlCQUF5QjtJQUN6Qix5Q0FBeUM7SUFDekMsYUFBYTtJQUNiLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRXREOzs7R0FHRztBQUNVLFFBQUEsK0JBQStCLEdBQUc7SUFDN0MsMENBQTBDO0NBQzNDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHFDQUFxQyxHQUFHO0lBQ25ELDBDQUEwQztJQUMxQyxnREFBZ0Q7SUFDaEQsbURBQW1EO0NBQ3BELENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLDBDQUEwQztDQUMzQyxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxpQ0FBaUMsR0FBRztJQUMvQyw2Q0FBNkM7Q0FDOUMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMscUNBQXFDO0NBQ3RDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBRXZFOztpRkFFaUY7QUFFakY7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLENBQUMsb0NBQW9DLEVBQUUsOEJBQThCLENBQUMsQ0FBQztBQUV4Rzs7R0FFRztBQUNVLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsZ0NBQWdDO0lBQ2hDLHNDQUFzQztDQUN2QyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLGlDQUFpQztJQUNqQyx1Q0FBdUM7Q0FDeEMsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxpQ0FBaUM7SUFDakMsdUNBQXVDO0NBQ3hDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsaUNBQWlDO0lBQ2pDLHVDQUF1QztDQUN4QyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsNEJBQW9CLEVBQUUsR0FBRyw0QkFBb0IsRUFBRSxHQUFHLDRCQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTlIOzs7R0FHRztBQUNVLFFBQUEsa0JBQWtCLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqIERhdGEgUGxhbmUgUGVybWlzc2lvbnNcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIFBlcm1pc3Npb25zIHRvIGludm9rZSB0aGUgZ2F0ZXdheVxuICogVXNlZCBieSBhZ2VudHMgb3Igb3RoZXIgc2VydmljZXMgdGhhdCBuZWVkIHRvIGNhbGwgdGhlIGdhdGV3YXlcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfSU5WT0tFX1BFUk1TID0gWydiZWRyb2NrLWFnZW50Y29yZTpJbnZva2VHYXRld2F5J107XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogRXhlY3V0aW9uIFJvbGUgUGVybWlzc2lvbnNcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEtNUyBwZXJtaXNzaW9ucyBmb3IgZW5jcnlwdGlvblxuICogUmVxdWlyZWQgd2hlbiB1c2luZyBLTVMga2V5cyBmb3IgZW5jcnlwdGlvblxuICovXG5leHBvcnQgY29uc3QgR0FURVdBWV9LTVNfS0VZX1BFUk1TID0gW1xuICAna21zOkdlbmVyYXRlRGF0YUtleScsXG4gICdrbXM6R2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dCcsXG4gICdrbXM6R2VuZXJhdGVEYXRhS2V5UGFpcicsXG4gICdrbXM6R2VuZXJhdGVEYXRhS2V5UGFpcldpdGhvdXRQbGFpbnRleHQnLFxuICAna21zOkRlY3J5cHQnLFxuICAna21zOkVuY3J5cHQnLFxuICAna21zOlJlRW5jcnlwdEZyb20nLFxuICAna21zOlJlRW5jcnlwdFRvJyxcbiAgJ2ttczpDcmVhdGVHcmFudCcsXG4gICdrbXM6RGVzY3JpYmVLZXknLFxuXTtcblxuLyoqXG4gKiBBc3N1bWUgcm9sZSBwZXJtaXNzaW9uXG4gKiBSZXF1aXJlZCBmb3IgdGhlIGdhdGV3YXkgc2VydmljZSB0byBhc3N1bWUgdGhlIGV4ZWN1dGlvbiByb2xlXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFV0FZX0FTU1VNRV9ST0xFID0gWydzdHM6QXNzdW1lUm9sZSddO1xuXG4vKipcbiAqIE91dGJvdW5kIGF1dGggLSBXb3JrbG9hZCBpZGVudGl0eSBwZXJtaXNzaW9ucyAoQVBJIGtleSB0YXJnZXRzKVxuICogVXNlZCB0byBvYnRhaW4gYWNjZXNzIHRva2VucyBmb3Igd29ya2xvYWQgaWRlbnRpdHlcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfV09SS0xPQURfSURFTlRJVFlfUEVSTVMgPSBbXG4gICdiZWRyb2NrLWFnZW50Y29yZTpHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuJyxcbl07XG5cbi8qKlxuICogT3V0Ym91bmQgYXV0aCAtIFdvcmtsb2FkIGlkZW50aXR5IHBlcm1pc3Npb25zIChPQXV0aCB0YXJnZXRzKVxuICogT0F1dGggZmxvd3MgYWRkaXRpb25hbGx5IHJlcXVpcmUgSldULWJhc2VkIGFuZCB1c2VyLUlELWJhc2VkIHRva2VuIGV4Y2hhbmdlXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFV0FZX1dPUktMT0FEX0lERU5USVRZX09BVVRIX1BFUk1TID0gW1xuICAnYmVkcm9jay1hZ2VudGNvcmU6R2V0V29ya2xvYWRBY2Nlc3NUb2tlbicsXG4gICdiZWRyb2NrLWFnZW50Y29yZTpHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUJyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkdldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JVc2VySWQnLFxuXTtcblxuLyoqXG4gKiBPdXRib3VuZCBhdXRoIC0gT0F1dGggcGVybWlzc2lvbnNcbiAqIFVzZWQgdG8gb2J0YWluIE9BdXRoIHRva2VucyBhbmQgY29tcGxldGUgdG9rZW4gYXV0aCBmb3IgdGFyZ2V0IGF1dGhlbnRpY2F0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFV0FZX09BVVRIX1BFUk1TID0gW1xuICAnYmVkcm9jay1hZ2VudGNvcmU6R2V0UmVzb3VyY2VPYXV0aDJUb2tlbicsXG5dO1xuXG4vKipcbiAqIE91dGJvdW5kIGF1dGggLSBPQXV0aCBjb21wbGV0ZSB0b2tlbiBhdXRoIHBlcm1pc3Npb25zXG4gKiBVc2VkIHRvIGNvbXBsZXRlIHRoZSBPQXV0aCB0b2tlbiBhdXRob3JpemF0aW9uIGZsb3dcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfT0FVVEhfQ09NUExFVEVfQVVUSF9QRVJNUyA9IFtcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkNvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgnLFxuXTtcblxuLyoqXG4gKiBPdXRib3VuZCBhdXRoIC0gQVBJIEtleSBwZXJtaXNzaW9uc1xuICogVXNlZCB0byByZXRyaWV2ZSBBUEkga2V5cyBmb3IgdGFyZ2V0IGF1dGhlbnRpY2F0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFV0FZX0FQSV9LRVlfUEVSTVMgPSBbXG4gICdiZWRyb2NrLWFnZW50Y29yZTpHZXRSZXNvdXJjZUFwaUtleScsXG5dO1xuXG4vKipcbiAqIFNlY3JldHMgTWFuYWdlciBwZXJtaXNzaW9uc1xuICogUmVxdWlyZWQgZm9yIHJlYWRpbmcgY3JlZGVudGlhbCBzZWNyZXRzIGJhY2tpbmcgVG9rZW4gVmF1bHQgcHJvdmlkZXJzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9nYXRld2F5LW91dGJvdW5kLWF1dGguaHRtbFxuICovXG5leHBvcnQgY29uc3QgR0FURVdBWV9TRUNSRVRTX1BFUk1TID0gWydzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZSddO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqIENvbnRyb2wgUGxhbmUgUGVybWlzc2lvbnNcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEdldCBwZXJtaXNzaW9ucyBmb3IgZ2F0ZXdheSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfR0VUX1BFUk1TID0gWydiZWRyb2NrLWFnZW50Y29yZTpHZXRHYXRld2F5VGFyZ2V0JywgJ2JlZHJvY2stYWdlbnRjb3JlOkdldEdhdGV3YXknXTtcblxuLyoqXG4gKiBMaXN0IHBlcm1pc3Npb25zIGZvciBnYXRld2F5IHJlc291cmNlc1xuICovXG5leHBvcnQgY29uc3QgR0FURVdBWV9MSVNUX1BFUk1TID0gW1xuICAnYmVkcm9jay1hZ2VudGNvcmU6TGlzdEdhdGV3YXlzJyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RHYXRld2F5VGFyZ2V0cycsXG5dO1xuXG4vKipcbiAqIENyZWF0ZSBwZXJtaXNzaW9ucyBmb3IgZ2F0ZXdheSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfQ1JFQVRFX1BFUk1TID0gW1xuICAnYmVkcm9jay1hZ2VudGNvcmU6Q3JlYXRlR2F0ZXdheScsXG4gICdiZWRyb2NrLWFnZW50Y29yZTpDcmVhdGVHYXRld2F5VGFyZ2V0Jyxcbl07XG5cbi8qKlxuICogVXBkYXRlIHBlcm1pc3Npb25zIGZvciBnYXRld2F5IHJlc291cmNlc1xuICovXG5leHBvcnQgY29uc3QgR0FURVdBWV9VUERBVEVfUEVSTVMgPSBbXG4gICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVHYXRld2F5JyxcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOlVwZGF0ZUdhdGV3YXlUYXJnZXQnLFxuXTtcblxuLyoqXG4gKiBEZWxldGUgcGVybWlzc2lvbnMgZm9yIGdhdGV3YXkgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFV0FZX0RFTEVURV9QRVJNUyA9IFtcbiAgJ2JlZHJvY2stYWdlbnRjb3JlOkRlbGV0ZUdhdGV3YXknLFxuICAnYmVkcm9jay1hZ2VudGNvcmU6RGVsZXRlR2F0ZXdheVRhcmdldCcsXG5dO1xuXG4vKipcbiAqIENvbWJpbmVkIG1hbmFnZSBwZXJtaXNzaW9ucyAoY3JlYXRlLCB1cGRhdGUsIGRlbGV0ZSlcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfTUFOQUdFX1BFUk1TID0gWy4uLm5ldyBTZXQoWy4uLkdBVEVXQVlfQ1JFQVRFX1BFUk1TLCAuLi5HQVRFV0FZX1VQREFURV9QRVJNUywgLi4uR0FURVdBWV9ERUxFVEVfUEVSTVNdKV07XG5cbi8qKlxuICogU3luY2hyb25pemF0aW9uIHBlcm1pc3Npb25zIGZvciBNQ1Agc2VydmVyIHRhcmdldHNcbiAqIFVzZWQgdG8gcmVmcmVzaCB0b29sIGNhdGFsb2dzIHdoZW4gTUNQIHNlcnZlciB0b29scyBjaGFuZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IEdBVEVXQVlfU1lOQ19QRVJNUyA9IFsnYmVkcm9jay1hZ2VudGNvcmU6U3luY2hyb25pemVHYXRld2F5VGFyZ2V0cyddO1xuIl19
|
package/lib/gateway/protocol.js
CHANGED
|
@@ -21,7 +21,7 @@ var GatewayProtocolType;
|
|
|
21
21
|
* Factory class for instantiating Gateway Protocols
|
|
22
22
|
*/
|
|
23
23
|
class GatewayProtocol {
|
|
24
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.254.0-alpha.0" };
|
|
25
25
|
/**
|
|
26
26
|
* Create an MCP protocol configuration
|
|
27
27
|
* @param props - Optional MCP configuration properties
|
|
@@ -75,7 +75,7 @@ var McpGatewaySearchType;
|
|
|
75
75
|
* MCP (Model Context Protocol) configuration implementation
|
|
76
76
|
*/
|
|
77
77
|
class McpProtocolConfiguration {
|
|
78
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.
|
|
78
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.254.0-alpha.0" };
|
|
79
79
|
protocolType;
|
|
80
80
|
/**
|
|
81
81
|
* The supported MCP protocol versions
|
|
@@ -15,7 +15,7 @@ const base_schema_1 = require("./base-schema");
|
|
|
15
15
|
* Represents the concept of an API Schema for a Gateway Target.
|
|
16
16
|
*/
|
|
17
17
|
class ApiSchema extends base_schema_1.TargetSchema {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.254.0-alpha.0" };
|
|
19
19
|
/**
|
|
20
20
|
* Creates an API Schema from a local file.
|
|
21
21
|
* @param path - the path to the local file containing the OpenAPI schema for the action group
|
|
@@ -73,7 +73,7 @@ exports.ApiSchema = ApiSchema;
|
|
|
73
73
|
class AssetApiSchema extends ApiSchema {
|
|
74
74
|
path;
|
|
75
75
|
options;
|
|
76
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.
|
|
76
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.254.0-alpha.0" };
|
|
77
77
|
asset;
|
|
78
78
|
constructor(path, options = {}) {
|
|
79
79
|
super();
|
|
@@ -135,7 +135,7 @@ exports.AssetApiSchema = AssetApiSchema;
|
|
|
135
135
|
*/
|
|
136
136
|
class InlineApiSchema extends ApiSchema {
|
|
137
137
|
schema;
|
|
138
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.
|
|
138
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.254.0-alpha.0" };
|
|
139
139
|
constructor(schema) {
|
|
140
140
|
super(undefined, undefined, schema);
|
|
141
141
|
this.schema = schema;
|
|
@@ -165,7 +165,7 @@ exports.InlineApiSchema = InlineApiSchema;
|
|
|
165
165
|
class S3ApiSchema extends ApiSchema {
|
|
166
166
|
location;
|
|
167
167
|
bucketOwnerAccountId;
|
|
168
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.
|
|
168
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.254.0-alpha.0" };
|
|
169
169
|
constructor(location, bucketOwnerAccountId) {
|
|
170
170
|
super(location, bucketOwnerAccountId, undefined);
|
|
171
171
|
this.location = location;
|