@aws-cdk/aws-bedrock-agentcore-alpha 2.253.1-alpha.0 → 2.255.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 +16960 -11718
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +57 -2910
- 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/perms.d.ts +0 -6
- package/lib/policy/perms.js +1 -7
- 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
- package/rosetta/policy.ts-fixture +11 -0
|
@@ -24,7 +24,7 @@ var GatewayAuthorizerType;
|
|
|
24
24
|
* Custom JWT authorizer configuration implementation
|
|
25
25
|
*/
|
|
26
26
|
class CustomJwtAuthorizer {
|
|
27
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CustomJwtAuthorizer", version: "2.
|
|
27
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CustomJwtAuthorizer", version: "2.255.0-alpha.0" };
|
|
28
28
|
authorizerType = GatewayAuthorizerType.CUSTOM_JWT;
|
|
29
29
|
discoveryUrl;
|
|
30
30
|
allowedAudience;
|
|
@@ -73,7 +73,7 @@ exports.CustomJwtAuthorizer = CustomJwtAuthorizer;
|
|
|
73
73
|
*
|
|
74
74
|
*/
|
|
75
75
|
class IamAuthorizer {
|
|
76
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.IamAuthorizer", version: "2.
|
|
76
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.IamAuthorizer", version: "2.255.0-alpha.0" };
|
|
77
77
|
authorizerType = GatewayAuthorizerType.AWS_IAM;
|
|
78
78
|
/**
|
|
79
79
|
* @internal
|
|
@@ -92,7 +92,7 @@ exports.IamAuthorizer = IamAuthorizer;
|
|
|
92
92
|
* No authorization configuration implementation
|
|
93
93
|
*/
|
|
94
94
|
class NoAuthAuthorizer {
|
|
95
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NoAuthAuthorizer", version: "2.
|
|
95
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NoAuthAuthorizer", version: "2.255.0-alpha.0" };
|
|
96
96
|
authorizerType = GatewayAuthorizerType.NONE;
|
|
97
97
|
/**
|
|
98
98
|
* @internal
|
|
@@ -106,7 +106,7 @@ exports.NoAuthAuthorizer = NoAuthAuthorizer;
|
|
|
106
106
|
* Factory class for creating Gateway Authorizers
|
|
107
107
|
*/
|
|
108
108
|
class GatewayAuthorizer {
|
|
109
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayAuthorizer", version: "2.
|
|
109
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayAuthorizer", version: "2.255.0-alpha.0" };
|
|
110
110
|
/**
|
|
111
111
|
* AWS IAM authorizer instance
|
|
112
112
|
*/
|
|
@@ -29,7 +29,7 @@ class GatewayCustomClaim {
|
|
|
29
29
|
valueType;
|
|
30
30
|
operator;
|
|
31
31
|
value;
|
|
32
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCustomClaim", version: "2.
|
|
32
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCustomClaim", version: "2.255.0-alpha.0" };
|
|
33
33
|
/**
|
|
34
34
|
* Create a custom claim with a string value.
|
|
35
35
|
* String claims must use the EQUALS operator.
|
|
@@ -34,7 +34,7 @@ var InterceptionPoint;
|
|
|
34
34
|
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-interceptors.html
|
|
35
35
|
*/
|
|
36
36
|
class LambdaInterceptor {
|
|
37
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaInterceptor", version: "2.
|
|
37
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaInterceptor", version: "2.255.0-alpha.0" };
|
|
38
38
|
/**
|
|
39
39
|
* Create a REQUEST interceptor that executes before the gateway calls the target
|
|
40
40
|
*
|
|
@@ -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
|
* API KEY
|
|
7
7
|
*****************************************************************************/
|
|
@@ -65,7 +65,9 @@ export declare class ApiKeyCredentialLocation {
|
|
|
65
65
|
private constructor();
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
* API
|
|
68
|
+
* API key credential provider ARNs for gateway outbound auth (Token Vault identity).
|
|
69
|
+
*
|
|
70
|
+
* Pass this to {@link GatewayCredentialProvider.fromApiKeyIdentityArn} or to {@link ApiKeyCredentialProviderConfiguration}.
|
|
69
71
|
*/
|
|
70
72
|
export interface ApiKeyCredentialProviderProps {
|
|
71
73
|
/**
|
|
@@ -109,9 +111,16 @@ export declare class ApiKeyCredentialProviderConfiguration implements ICredentia
|
|
|
109
111
|
readonly credentialLocation: ApiKeyCredentialLocation;
|
|
110
112
|
constructor(configuration: ApiKeyCredentialProviderProps);
|
|
111
113
|
/**
|
|
112
|
-
* Grant the needed permissions to the role for API key authentication
|
|
114
|
+
* Grant the needed permissions to the gateway role for API key authentication.
|
|
115
|
+
*
|
|
116
|
+
* Produces three scoped IAM statements matching the console-generated policy:
|
|
117
|
+
* 1. `GetWorkloadAccessToken` on the workload identity directory ARNs
|
|
118
|
+
* 2. `GetResourceApiKey` on the token vault, credential provider, directory, and identity ARNs
|
|
119
|
+
* 3. `secretsmanager:GetSecretValue` on the specific credential secret ARN
|
|
120
|
+
*
|
|
121
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html
|
|
113
122
|
*/
|
|
114
|
-
grantNeededPermissionsToRole(
|
|
123
|
+
grantNeededPermissionsToRole(gateway: IGateway): Grant | undefined;
|
|
115
124
|
/**
|
|
116
125
|
* @internal
|
|
117
126
|
*/
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ApiKeyCredentialProviderConfiguration = exports.ApiKeyCredentialLocation = exports.ApiKeyCredentialLocationType = void 0;
|
|
4
4
|
const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
7
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
8
|
const credential_provider_1 = require("./credential-provider");
|
|
8
9
|
const perms_1 = require("../perms");
|
|
@@ -19,7 +20,7 @@ var ApiKeyCredentialLocationType;
|
|
|
19
20
|
* API Key location within the request
|
|
20
21
|
*/
|
|
21
22
|
class ApiKeyCredentialLocation {
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyCredentialLocation", version: "2.
|
|
23
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyCredentialLocation", version: "2.255.0-alpha.0" };
|
|
23
24
|
/**
|
|
24
25
|
* Create a header-based API key credential location
|
|
25
26
|
* @param config - Optional configuration for the credential location
|
|
@@ -98,27 +99,68 @@ class ApiKeyCredentialProviderConfiguration {
|
|
|
98
99
|
this.credentialLocation = configuration.credentialLocation ?? ApiKeyCredentialLocation.header();
|
|
99
100
|
}
|
|
100
101
|
/**
|
|
101
|
-
* Grant the needed permissions to the role for API key authentication
|
|
102
|
+
* Grant the needed permissions to the gateway role for API key authentication.
|
|
103
|
+
*
|
|
104
|
+
* Produces three scoped IAM statements matching the console-generated policy:
|
|
105
|
+
* 1. `GetWorkloadAccessToken` on the workload identity directory ARNs
|
|
106
|
+
* 2. `GetResourceApiKey` on the token vault, credential provider, directory, and identity ARNs
|
|
107
|
+
* 3. `secretsmanager:GetSecretValue` on the specific credential secret ARN
|
|
108
|
+
*
|
|
109
|
+
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-outbound-auth.html
|
|
102
110
|
*/
|
|
103
|
-
grantNeededPermissionsToRole(
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
resources: [this.providerArn],
|
|
111
|
-
}),
|
|
112
|
-
new aws_iam_1.PolicyStatement({
|
|
113
|
-
actions: perms_1.GATEWAY_SECRETS_PERMS,
|
|
114
|
-
resources: [this.secretArn],
|
|
115
|
-
}),
|
|
116
|
-
];
|
|
117
|
-
return aws_iam_1.Grant.addToPrincipal({
|
|
118
|
-
grantee: role,
|
|
119
|
-
actions: statements.flatMap(s => s.actions),
|
|
120
|
-
resourceArns: statements.flatMap(s => s.resources),
|
|
111
|
+
grantNeededPermissionsToRole(gateway) {
|
|
112
|
+
const stack = aws_cdk_lib_1.Stack.of(gateway);
|
|
113
|
+
const directoryArn = stack.formatArn({
|
|
114
|
+
service: 'bedrock-agentcore',
|
|
115
|
+
resource: 'workload-identity-directory',
|
|
116
|
+
resourceName: 'default',
|
|
117
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.SLASH_RESOURCE_NAME,
|
|
121
118
|
});
|
|
119
|
+
const identityWildcardArn = `${directoryArn}/workload-identity/${gateway.name}-*`;
|
|
120
|
+
const tokenVaultArn = stack.formatArn({
|
|
121
|
+
service: 'bedrock-agentcore',
|
|
122
|
+
resource: 'token-vault',
|
|
123
|
+
resourceName: 'default',
|
|
124
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.SLASH_RESOURCE_NAME,
|
|
125
|
+
});
|
|
126
|
+
const workloadIdentityGrant = aws_iam_1.Grant.addToPrincipal({
|
|
127
|
+
grantee: gateway.role,
|
|
128
|
+
actions: [...perms_1.GATEWAY_WORKLOAD_IDENTITY_PERMS],
|
|
129
|
+
resourceArns: [directoryArn, identityWildcardArn],
|
|
130
|
+
scope: gateway,
|
|
131
|
+
});
|
|
132
|
+
const apiKeyGrant = aws_iam_1.Grant.addToPrincipal({
|
|
133
|
+
grantee: gateway.role,
|
|
134
|
+
actions: [...perms_1.GATEWAY_API_KEY_PERMS],
|
|
135
|
+
resourceArns: [tokenVaultArn, this.providerArn, directoryArn, identityWildcardArn],
|
|
136
|
+
scope: gateway,
|
|
137
|
+
});
|
|
138
|
+
// The CFN attribute ApiKeySecretArn is an object { SecretArn: string }, not a
|
|
139
|
+
// plain string, so the Token resolves to an object which cannot be placed in
|
|
140
|
+
// IAM Resource fields. When the caller supplies a literal ARN string (e.g. via
|
|
141
|
+
// fromApiKeyIdentityArn) we can scope tightly; otherwise fall back to a
|
|
142
|
+
// service-managed prefix wildcard.
|
|
143
|
+
let secretResourceArns;
|
|
144
|
+
if (aws_cdk_lib_1.Token.isUnresolved(this.secretArn)) {
|
|
145
|
+
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!*). ' +
|
|
146
|
+
'To scope the grant to a specific secret, supply a literal secret ARN via fromApiKeyIdentityArn.');
|
|
147
|
+
secretResourceArns = [stack.formatArn({
|
|
148
|
+
service: 'secretsmanager',
|
|
149
|
+
resource: 'secret',
|
|
150
|
+
resourceName: 'bedrock-agentcore-identity!*',
|
|
151
|
+
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
152
|
+
})];
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
secretResourceArns = [this.secretArn];
|
|
156
|
+
}
|
|
157
|
+
const secretGrant = aws_iam_1.Grant.addToPrincipal({
|
|
158
|
+
grantee: gateway.role,
|
|
159
|
+
actions: [...perms_1.GATEWAY_SECRETS_PERMS],
|
|
160
|
+
resourceArns: secretResourceArns,
|
|
161
|
+
scope: gateway,
|
|
162
|
+
});
|
|
163
|
+
return workloadIdentityGrant.combine(apiKeyGrant).combine(secretGrant);
|
|
122
164
|
}
|
|
123
165
|
/**
|
|
124
166
|
* @internal
|
|
@@ -138,4 +180,4 @@ class ApiKeyCredentialProviderConfiguration {
|
|
|
138
180
|
}
|
|
139
181
|
}
|
|
140
182
|
exports.ApiKeyCredentialProviderConfiguration = ApiKeyCredentialProviderConfiguration;
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwaS1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxpREFBNkQ7QUFFN0QsK0RBQStEO0FBQy9ELG9DQUF5RztBQTZCekc7OztHQUdHO0FBQ0gsSUFBWSw0QkFHWDtBQUhELFdBQVksNEJBQTRCO0lBQ3RDLGlEQUFpQixDQUFBO0lBQ2pCLG1FQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyw0QkFBNEIsNENBQTVCLDRCQUE0QixRQUd2QztBQUVEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7O0lBQ25DOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQXNDOzs7Ozs7Ozs7O1FBQ3pELE9BQU8sSUFBSSx3QkFBd0IsQ0FDakMsNEJBQTRCLENBQUMsTUFBTSxFQUNuQyxNQUFNLEVBQUUsdUJBQXVCLElBQUksZUFBZSxFQUNsRCxNQUFNLEVBQUUsZ0JBQWdCLElBQUksU0FBUyxDQUN0QyxDQUFDO0tBQ0g7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFzQzs7Ozs7Ozs7OztRQUNqRSxPQUFPLElBQUksd0JBQXdCLENBQ2pDLDRCQUE0QixDQUFDLGVBQWUsRUFDNUMsTUFBTSxFQUFFLHVCQUF1QixJQUFJLFNBQVMsRUFDNUMsTUFBTSxFQUFFLGdCQUFnQixDQUN6QixDQUFDO0tBQ0g7SUFFRDs7T0FFRztJQUNhLHVCQUF1QixDQUFTO0lBQ2hEOztPQUVHO0lBQ2EsZ0JBQWdCLENBQVU7SUFDMUM7O09BRUc7SUFDYSxzQkFBc0IsQ0FBUztJQUUvQyxZQUNFLHNCQUE4QixFQUM5Qix1QkFBK0IsRUFDL0IsZ0JBQXlCO1FBRXpCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0tBQzFDOztBQWhESCw0REFpREM7QUE2QkQ7Ozs7R0FJRztBQUNILE1BQWEscUNBQXFDO0lBQ2hDLHNCQUFzQixHQUFHLDRDQUFzQixDQUFDLE9BQU8sQ0FBQztJQUN4RTs7T0FFRztJQUNhLFdBQVcsQ0FBUztJQUNwQzs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUNsQzs7T0FFRztJQUNhLGtCQUFrQixDQUEyQjtJQUU3RCxZQUFZLGFBQTRDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUNqRztJQUVEOztPQUVHO0lBQ0gsNEJBQTRCLENBQUMsSUFBVztRQUN0QyxNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJLHlCQUFlLENBQUM7Z0JBQ2xCLE9BQU8sRUFBRTtvQkFDUCxHQUFHLDZCQUFxQjtvQkFDeEIsR0FBRyx1Q0FBK0I7aUJBQ25DO2dCQUNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDOUIsQ0FBQztZQUNGLElBQUkseUJBQWUsQ0FBQztnQkFDbEIsT0FBTyxFQUFFLDZCQUFxQjtnQkFDOUIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUM1QixDQUFDO1NBQ0gsQ0FBQztRQUVGLE9BQU8sZUFBSyxDQUFDLGNBQWMsQ0FBQztZQUMxQixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMzQyxZQUFZLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDbkQsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPO1lBQ0wsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtZQUNuRCxrQkFBa0IsRUFBRTtnQkFDbEIsd0JBQXdCLEVBQUU7b0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtvQkFDbEUsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QjtvQkFDeEUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQjtpQkFDM0Q7YUFDRjtTQUNGLENBQUM7S0FDSDtDQUNGO0FBOURELHNGQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEdyYW50LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyBDcmVkZW50aWFsUHJvdmlkZXJUeXBlIH0gZnJvbSAnLi9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IEdBVEVXQVlfQVBJX0tFWV9QRVJNUywgR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9QRVJNUywgR0FURVdBWV9TRUNSRVRTX1BFUk1TIH0gZnJvbSAnLi4vcGVybXMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBLRVlcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQVBJIEtleSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlLZXlBZGRpdGlvbmFsQ29uZmlndXJhdGlvbiB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjcmVkZW50aWFsIHBhcmFtZXRlciBmb3IgdGhlIEFQSSBrZXkuXG4gICAqIFRoaXMgcGFyYW1ldGVyIG5hbWUgaXMgdXNlZCB3aGVuIHNlbmRpbmcgdGhlIEFQSSBrZXkgdG8gdGhlIHRhcmdldCBlbmRwb2ludC5cbiAgICpcbiAgICogTGVuZ3RoIENvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiA2NC5cbiAgICogQGRlZmF1bHQgLSAnQXV0aG9yaXphdGlvbicgZm9yIEhFQURFUiwgJ2FwaV9rZXknIGZvciBRVUVSWV9QQVJBTUVURVJcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJlZml4IGZvciB0aGUgQVBJIGtleSBjcmVkZW50aWFsLlxuICAgKiBUaGlzIHByZWZpeCBpcyBhZGRlZCB0byB0aGUgQVBJIGtleSB3aGVuIHNlbmRpbmcgaXQgdG8gdGhlIHRhcmdldCBlbmRwb2ludC5cbiAgICpcbiAgICogTGVuZ3RoIENvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiA2NC5cbiAgICogQGRlZmF1bHQgLSAnQmVhcmVyICcgZm9yIEhFQURFUiwgbm8gcHJlZml4IGZvciBRVUVSWV9QQVJBTUVURVJcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcmVmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQVBJIEtleSBjcmVkZW50aWFsIGxvY2F0aW9uIHR5cGVcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZW51bSBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb25UeXBlIHtcbiAgSEVBREVSID0gJ0hFQURFUicsXG4gIFFVRVJZX1BBUkFNRVRFUiA9ICdRVUVSWV9QQVJBTUVURVInLFxufVxuXG4vKipcbiAqIEFQSSBLZXkgbG9jYXRpb24gd2l0aGluIHRoZSByZXF1ZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb24ge1xuICAvKipcbiAgICogQ3JlYXRlIGEgaGVhZGVyLWJhc2VkIEFQSSBrZXkgY3JlZGVudGlhbCBsb2NhdGlvblxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNyZWRlbnRpYWwgbG9jYXRpb25cbiAgICogQHJldHVybnMgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uIGNvbmZpZ3VyZWQgZm9yIGhlYWRlciBwbGFjZW1lbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGVhZGVyKGNvbmZpZz86IEFwaUtleUFkZGl0aW9uYWxDb25maWd1cmF0aW9uKSB7XG4gICAgcmV0dXJuIG5ldyBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb24oXG4gICAgICBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb25UeXBlLkhFQURFUixcbiAgICAgIGNvbmZpZz8uY3JlZGVudGlhbFBhcmFtZXRlck5hbWUgPz8gJ0F1dGhvcml6YXRpb24nLFxuICAgICAgY29uZmlnPy5jcmVkZW50aWFsUHJlZml4ID8/ICdCZWFyZXIgJyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHF1ZXJ5IHBhcmFtZXRlci1iYXNlZCBBUEkga2V5IGNyZWRlbnRpYWwgbG9jYXRpb25cbiAgICogQHBhcmFtIGNvbmZpZyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjcmVkZW50aWFsIGxvY2F0aW9uXG4gICAqIEByZXR1cm5zIEFwaUtleUNyZWRlbnRpYWxMb2NhdGlvbiBjb25maWd1cmVkIGZvciBxdWVyeSBwYXJhbWV0ZXIgcGxhY2VtZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHF1ZXJ5UGFyYW1ldGVyKGNvbmZpZz86IEFwaUtleUFkZGl0aW9uYWxDb25maWd1cmF0aW9uKSB7XG4gICAgcmV0dXJuIG5ldyBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb24oXG4gICAgICBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb25UeXBlLlFVRVJZX1BBUkFNRVRFUixcbiAgICAgIGNvbmZpZz8uY3JlZGVudGlhbFBhcmFtZXRlck5hbWUgPz8gJ2FwaV9rZXknLFxuICAgICAgY29uZmlnPy5jcmVkZW50aWFsUHJlZml4LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNyZWRlbnRpYWwgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFBhcmFtZXRlck5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwcmVmaXggZm9yIHRoZSBjcmVkZW50aWFsIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGNyZWRlbnRpYWwgbG9jYXRpb24gKEhFQURFUiBvciBRVUVSWV9QQVJBTUVURVIpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbExvY2F0aW9uVHlwZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgY3JlZGVudGlhbExvY2F0aW9uVHlwZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFByZWZpeD86IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5jcmVkZW50aWFsTG9jYXRpb25UeXBlID0gY3JlZGVudGlhbExvY2F0aW9uVHlwZTtcbiAgICB0aGlzLmNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lID0gY3JlZGVudGlhbFBhcmFtZXRlck5hbWU7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJlZml4ID0gY3JlZGVudGlhbFByZWZpeDtcbiAgfVxufVxuXG4vKipcbiAqIEFQSSBLZXkgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUtleUNyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBUEkga2V5IGNyZWRlbnRpYWwgcHJvdmlkZXIgQVJOLlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIEFQSSBrZXkgY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpiZWRyb2NrLWFnZW50Y29yZTpyZWdpb246YWNjb3VudDp0b2tlbi12YXVsdC9pZC9hcGlrZXljcmVkZW50aWFscHJvdmlkZXIvbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBjb250YWluaW5nIHRoZSBBUEkga2V5LlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIEFQSSBrZXkgY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpyZWdpb246YWNjb3VudDpzZWNyZXQ6bmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGUgQVBJIGtleSBjcmVkZW50aWFsLlxuICAgKiBUaGlzIGZpZWxkIHNwZWNpZmllcyB3aGVyZSBpbiB0aGUgcmVxdWVzdCB0aGUgQVBJIGtleSBzaG91bGQgYmUgcGxhY2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEhFQURFUlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbExvY2F0aW9uPzogQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uO1xufVxuXG4vKipcbiAqIEFQSSBLZXkgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uXG4gKiBDYW4gYmUgdXNlZCB3aXRoIE9wZW5BUEkgdGFyZ2V0c1xuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uIGltcGxlbWVudHMgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJUeXBlID0gQ3JlZGVudGlhbFByb3ZpZGVyVHlwZS5BUElfS0VZO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgQVBJIGtleSBwcm92aWRlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3ZpZGVyQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIEFQSSBrZXkgY3JlZGVudGlhbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxMb2NhdGlvbjogQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb246IEFwaUtleUNyZWRlbnRpYWxQcm92aWRlclByb3BzKSB7XG4gICAgdGhpcy5wcm92aWRlckFybiA9IGNvbmZpZ3VyYXRpb24ucHJvdmlkZXJBcm47XG4gICAgdGhpcy5zZWNyZXRBcm4gPSBjb25maWd1cmF0aW9uLnNlY3JldEFybjtcbiAgICB0aGlzLmNyZWRlbnRpYWxMb2NhdGlvbiA9IGNvbmZpZ3VyYXRpb24uY3JlZGVudGlhbExvY2F0aW9uID8/IEFwaUtleUNyZWRlbnRpYWxMb2NhdGlvbi5oZWFkZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgbmVlZGVkIHBlcm1pc3Npb25zIHRvIHRoZSByb2xlIGZvciBBUEkga2V5IGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBncmFudE5lZWRlZFBlcm1pc3Npb25zVG9Sb2xlKHJvbGU6IElSb2xlKTogR3JhbnQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIC4uLkdBVEVXQVlfQVBJX0tFWV9QRVJNUyxcbiAgICAgICAgICAuLi5HQVRFV0FZX1dPUktMT0FEX0lERU5USVRZX1BFUk1TLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFt0aGlzLnByb3ZpZGVyQXJuXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IEdBVEVXQVlfU0VDUkVUU19QRVJNUyxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5zZWNyZXRBcm5dLFxuICAgICAgfSksXG4gICAgXTtcblxuICAgIHJldHVybiBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogc3RhdGVtZW50cy5mbGF0TWFwKHMgPT4gcy5hY3Rpb25zKSxcbiAgICAgIHJlc291cmNlQXJuczogc3RhdGVtZW50cy5mbGF0TWFwKHMgPT4gcy5yZXNvdXJjZXMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJUeXBlOiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlclR5cGUsXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXI6IHtcbiAgICAgICAgYXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyOiB7XG4gICAgICAgICAgcHJvdmlkZXJBcm46IHRoaXMucHJvdmlkZXJBcm4sXG4gICAgICAgICAgY3JlZGVudGlhbExvY2F0aW9uOiB0aGlzLmNyZWRlbnRpYWxMb2NhdGlvbi5jcmVkZW50aWFsTG9jYXRpb25UeXBlLFxuICAgICAgICAgIGNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lOiB0aGlzLmNyZWRlbnRpYWxMb2NhdGlvbi5jcmVkZW50aWFsUGFyYW1ldGVyTmFtZSxcbiAgICAgICAgICBjcmVkZW50aWFsUHJlZml4OiB0aGlzLmNyZWRlbnRpYWxMb2NhdGlvbi5jcmVkZW50aWFsUHJlZml4LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwaS1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUU7QUFDbkUsaURBQTRDO0FBRTVDLCtEQUErRDtBQUUvRCxvQ0FBeUc7QUE2QnpHOzs7R0FHRztBQUNILElBQVksNEJBR1g7QUFIRCxXQUFZLDRCQUE0QjtJQUN0QyxpREFBaUIsQ0FBQTtJQUNqQixtRUFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBSFcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUFHdkM7QUFFRDs7R0FFRztBQUNILE1BQWEsd0JBQXdCOztJQUNuQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFzQzs7Ozs7Ozs7OztRQUN6RCxPQUFPLElBQUksd0JBQXdCLENBQ2pDLDRCQUE0QixDQUFDLE1BQU0sRUFDbkMsTUFBTSxFQUFFLHVCQUF1QixJQUFJLGVBQWUsRUFDbEQsTUFBTSxFQUFFLGdCQUFnQixJQUFJLFNBQVMsQ0FDdEMsQ0FBQztLQUNIO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBc0M7Ozs7Ozs7Ozs7UUFDakUsT0FBTyxJQUFJLHdCQUF3QixDQUNqQyw0QkFBNEIsQ0FBQyxlQUFlLEVBQzVDLE1BQU0sRUFBRSx1QkFBdUIsSUFBSSxTQUFTLEVBQzVDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FDekIsQ0FBQztLQUNIO0lBRUQ7O09BRUc7SUFDYSx1QkFBdUIsQ0FBUztJQUNoRDs7T0FFRztJQUNhLGdCQUFnQixDQUFVO0lBQzFDOztPQUVHO0lBQ2Esc0JBQXNCLENBQVM7SUFFL0MsWUFDRSxzQkFBOEIsRUFDOUIsdUJBQStCLEVBQy9CLGdCQUF5QjtRQUV6QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDckQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztLQUMxQzs7QUFoREgsNERBaURDO0FBK0JEOzs7O0dBSUc7QUFDSCxNQUFhLHFDQUFxQztJQUNoQyxzQkFBc0IsR0FBRyw0Q0FBc0IsQ0FBQyxPQUFPLENBQUM7SUFDeEU7O09BRUc7SUFDYSxXQUFXLENBQVM7SUFDcEM7O09BRUc7SUFDYSxTQUFTLENBQVM7SUFDbEM7O09BRUc7SUFDYSxrQkFBa0IsQ0FBMkI7SUFFN0QsWUFBWSxhQUE0QztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhLENBQUMsa0JBQWtCLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDakc7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCw0QkFBNEIsQ0FBQyxPQUFpQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ25DLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsUUFBUSxFQUFFLDZCQUE2QjtZQUN2QyxZQUFZLEVBQUUsU0FBUztZQUN2QixTQUFTLEVBQUUsdUJBQVMsQ0FBQyxtQkFBbUI7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLFlBQVksc0JBQXNCLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNsRixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsUUFBUSxFQUFFLGFBQWE7WUFDdkIsWUFBWSxFQUFFLFNBQVM7WUFDdkIsU0FBUyxFQUFFLHVCQUFTLENBQUMsbUJBQW1CO1NBQ3pDLENBQUMsQ0FBQztRQUVILE1BQU0scUJBQXFCLEdBQUcsZUFBSyxDQUFDLGNBQWMsQ0FBQztZQUNqRCxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyx1Q0FBK0IsQ0FBQztZQUM3QyxZQUFZLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7WUFDakQsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLDZCQUFxQixDQUFDO1lBQ25DLFlBQVksRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztZQUNsRixLQUFLLEVBQUUsT0FBTztTQUNmLENBQUMsQ0FBQztRQUNILDhFQUE4RTtRQUM5RSw2RUFBNkU7UUFDN0UsK0VBQStFO1FBQy9FLHdFQUF3RTtRQUN4RSxtQ0FBbUM7UUFDbkMsSUFBSSxrQkFBNEIsQ0FBQztRQUNqQyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLHlCQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FDbEMsNkRBQTZELEVBQzdELGlIQUFpSDtnQkFDakgsaUdBQWlHLENBQ2xHLENBQUM7WUFDRixrQkFBa0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixZQUFZLEVBQUUsOEJBQThCO29CQUM1QyxTQUFTLEVBQUUsdUJBQVMsQ0FBQyxtQkFBbUI7aUJBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDTixrQkFBa0IsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsZUFBSyxDQUFDLGNBQWMsQ0FBQztZQUN2QyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyw2QkFBcUIsQ0FBQztZQUNuQyxZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsa0JBQWtCLEVBQUU7Z0JBQ2xCLHdCQUF3QixFQUFFO29CQUN4QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQzdCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7b0JBQ2xFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUI7b0JBQ3hFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0I7aUJBQzNEO2FBQ0Y7U0FDRixDQUFDO0tBQ0g7Q0FDRjtBQXpHRCxzRkF5R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9ucywgQXJuRm9ybWF0LCBTdGFjaywgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBHcmFudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgeyBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9jcmVkZW50aWFsLXByb3ZpZGVyJztcbmltcG9ydCB7IENyZWRlbnRpYWxQcm92aWRlclR5cGUgfSBmcm9tICcuL2NyZWRlbnRpYWwtcHJvdmlkZXInO1xuaW1wb3J0IHR5cGUgeyBJR2F0ZXdheSB9IGZyb20gJy4uL2dhdGV3YXktYmFzZSc7XG5pbXBvcnQgeyBHQVRFV0FZX0FQSV9LRVlfUEVSTVMsIEdBVEVXQVlfV09SS0xPQURfSURFTlRJVFlfUEVSTVMsIEdBVEVXQVlfU0VDUkVUU19QRVJNUyB9IGZyb20gJy4uL3Blcm1zJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkgS0VZXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEFQSSBLZXkgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpS2V5QWRkaXRpb25hbENvbmZpZ3VyYXRpb24ge1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY3JlZGVudGlhbCBwYXJhbWV0ZXIgZm9yIHRoZSBBUEkga2V5LlxuICAgKiBUaGlzIHBhcmFtZXRlciBuYW1lIGlzIHVzZWQgd2hlbiBzZW5kaW5nIHRoZSBBUEkga2V5IHRvIHRoZSB0YXJnZXQgZW5kcG9pbnQuXG4gICAqXG4gICAqIExlbmd0aCBDb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgNjQuXG4gICAqIEBkZWZhdWx0IC0gJ0F1dGhvcml6YXRpb24nIGZvciBIRUFERVIsICdhcGlfa2V5JyBmb3IgUVVFUllfUEFSQU1FVEVSXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUGFyYW1ldGVyTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByZWZpeCBmb3IgdGhlIEFQSSBrZXkgY3JlZGVudGlhbC5cbiAgICogVGhpcyBwcmVmaXggaXMgYWRkZWQgdG8gdGhlIEFQSSBrZXkgd2hlbiBzZW5kaW5nIGl0IHRvIHRoZSB0YXJnZXQgZW5kcG9pbnQuXG4gICAqXG4gICAqIExlbmd0aCBDb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgNjQuXG4gICAqIEBkZWZhdWx0IC0gJ0JlYXJlciAnIGZvciBIRUFERVIsIG5vIHByZWZpeCBmb3IgUVVFUllfUEFSQU1FVEVSXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFQSSBLZXkgY3JlZGVudGlhbCBsb2NhdGlvbiB0eXBlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGVudW0gQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uVHlwZSB7XG4gIEhFQURFUiA9ICdIRUFERVInLFxuICBRVUVSWV9QQVJBTUVURVIgPSAnUVVFUllfUEFSQU1FVEVSJyxcbn1cblxuLyoqXG4gKiBBUEkgS2V5IGxvY2F0aW9uIHdpdGhpbiB0aGUgcmVxdWVzdFxuICovXG5leHBvcnQgY2xhc3MgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIGhlYWRlci1iYXNlZCBBUEkga2V5IGNyZWRlbnRpYWwgbG9jYXRpb25cbiAgICogQHBhcmFtIGNvbmZpZyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjcmVkZW50aWFsIGxvY2F0aW9uXG4gICAqIEByZXR1cm5zIEFwaUtleUNyZWRlbnRpYWxMb2NhdGlvbiBjb25maWd1cmVkIGZvciBoZWFkZXIgcGxhY2VtZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhlYWRlcihjb25maWc/OiBBcGlLZXlBZGRpdGlvbmFsQ29uZmlndXJhdGlvbikge1xuICAgIHJldHVybiBuZXcgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uKFxuICAgICAgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uVHlwZS5IRUFERVIsXG4gICAgICBjb25maWc/LmNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lID8/ICdBdXRob3JpemF0aW9uJyxcbiAgICAgIGNvbmZpZz8uY3JlZGVudGlhbFByZWZpeCA/PyAnQmVhcmVyICcsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBxdWVyeSBwYXJhbWV0ZXItYmFzZWQgQVBJIGtleSBjcmVkZW50aWFsIGxvY2F0aW9uXG4gICAqIEBwYXJhbSBjb25maWcgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgY3JlZGVudGlhbCBsb2NhdGlvblxuICAgKiBAcmV0dXJucyBBcGlLZXlDcmVkZW50aWFsTG9jYXRpb24gY29uZmlndXJlZCBmb3IgcXVlcnkgcGFyYW1ldGVyIHBsYWNlbWVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBxdWVyeVBhcmFtZXRlcihjb25maWc/OiBBcGlLZXlBZGRpdGlvbmFsQ29uZmlndXJhdGlvbikge1xuICAgIHJldHVybiBuZXcgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uKFxuICAgICAgQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uVHlwZS5RVUVSWV9QQVJBTUVURVIsXG4gICAgICBjb25maWc/LmNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lID8/ICdhcGlfa2V5JyxcbiAgICAgIGNvbmZpZz8uY3JlZGVudGlhbFByZWZpeCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjcmVkZW50aWFsIHBhcmFtZXRlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcHJlZml4IGZvciB0aGUgY3JlZGVudGlhbCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjcmVkZW50aWFsIGxvY2F0aW9uIChIRUFERVIgb3IgUVVFUllfUEFSQU1FVEVSKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxMb2NhdGlvblR5cGU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIGNyZWRlbnRpYWxMb2NhdGlvblR5cGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsUGFyYW1ldGVyTmFtZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxQcmVmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHRoaXMuY3JlZGVudGlhbExvY2F0aW9uVHlwZSA9IGNyZWRlbnRpYWxMb2NhdGlvblR5cGU7XG4gICAgdGhpcy5jcmVkZW50aWFsUGFyYW1ldGVyTmFtZSA9IGNyZWRlbnRpYWxQYXJhbWV0ZXJOYW1lO1xuICAgIHRoaXMuY3JlZGVudGlhbFByZWZpeCA9IGNyZWRlbnRpYWxQcmVmaXg7XG4gIH1cbn1cblxuLyoqXG4gKiBBUEkga2V5IGNyZWRlbnRpYWwgcHJvdmlkZXIgQVJOcyBmb3IgZ2F0ZXdheSBvdXRib3VuZCBhdXRoIChUb2tlbiBWYXVsdCBpZGVudGl0eSkuXG4gKlxuICogUGFzcyB0aGlzIHRvIHtAbGluayBHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21BcGlLZXlJZGVudGl0eUFybn0gb3IgdG8ge0BsaW5rIEFwaUtleUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUtleUNyZWRlbnRpYWxQcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBUEkga2V5IGNyZWRlbnRpYWwgcHJvdmlkZXIgQVJOLlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIEFQSSBrZXkgY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpiZWRyb2NrLWFnZW50Y29yZTpyZWdpb246YWNjb3VudDp0b2tlbi12YXVsdC9pZC9hcGlrZXljcmVkZW50aWFscHJvdmlkZXIvbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBjb250YWluaW5nIHRoZSBBUEkga2V5LlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIEFQSSBrZXkgY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpyZWdpb246YWNjb3VudDpzZWNyZXQ6bmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGUgQVBJIGtleSBjcmVkZW50aWFsLlxuICAgKiBUaGlzIGZpZWxkIHNwZWNpZmllcyB3aGVyZSBpbiB0aGUgcmVxdWVzdCB0aGUgQVBJIGtleSBzaG91bGQgYmUgcGxhY2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEhFQURFUlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbExvY2F0aW9uPzogQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uO1xufVxuXG4vKipcbiAqIEFQSSBLZXkgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uXG4gKiBDYW4gYmUgdXNlZCB3aXRoIE9wZW5BUEkgdGFyZ2V0c1xuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uIGltcGxlbWVudHMgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB7XG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJUeXBlID0gQ3JlZGVudGlhbFByb3ZpZGVyVHlwZS5BUElfS0VZO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgQVBJIGtleSBwcm92aWRlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3ZpZGVyQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIEFQSSBrZXkgY3JlZGVudGlhbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxMb2NhdGlvbjogQXBpS2V5Q3JlZGVudGlhbExvY2F0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb246IEFwaUtleUNyZWRlbnRpYWxQcm92aWRlclByb3BzKSB7XG4gICAgdGhpcy5wcm92aWRlckFybiA9IGNvbmZpZ3VyYXRpb24ucHJvdmlkZXJBcm47XG4gICAgdGhpcy5zZWNyZXRBcm4gPSBjb25maWd1cmF0aW9uLnNlY3JldEFybjtcbiAgICB0aGlzLmNyZWRlbnRpYWxMb2NhdGlvbiA9IGNvbmZpZ3VyYXRpb24uY3JlZGVudGlhbExvY2F0aW9uID8/IEFwaUtleUNyZWRlbnRpYWxMb2NhdGlvbi5oZWFkZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgbmVlZGVkIHBlcm1pc3Npb25zIHRvIHRoZSBnYXRld2F5IHJvbGUgZm9yIEFQSSBrZXkgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIFByb2R1Y2VzIHRocmVlIHNjb3BlZCBJQU0gc3RhdGVtZW50cyBtYXRjaGluZyB0aGUgY29uc29sZS1nZW5lcmF0ZWQgcG9saWN5OlxuICAgKiAxLiBgR2V0V29ya2xvYWRBY2Nlc3NUb2tlbmAgb24gdGhlIHdvcmtsb2FkIGlkZW50aXR5IGRpcmVjdG9yeSBBUk5zXG4gICAqIDIuIGBHZXRSZXNvdXJjZUFwaUtleWAgb24gdGhlIHRva2VuIHZhdWx0LCBjcmVkZW50aWFsIHByb3ZpZGVyLCBkaXJlY3RvcnksIGFuZCBpZGVudGl0eSBBUk5zXG4gICAqIDMuIGBzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZWAgb24gdGhlIHNwZWNpZmljIGNyZWRlbnRpYWwgc2VjcmV0IEFSTlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS1vdXRib3VuZC1hdXRoLmh0bWxcbiAgICovXG4gIGdyYW50TmVlZGVkUGVybWlzc2lvbnNUb1JvbGUoZ2F0ZXdheTogSUdhdGV3YXkpOiBHcmFudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihnYXRld2F5KTtcbiAgICBjb25zdCBkaXJlY3RvcnlBcm4gPSBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2JlZHJvY2stYWdlbnRjb3JlJyxcbiAgICAgIHJlc291cmNlOiAnd29ya2xvYWQtaWRlbnRpdHktZGlyZWN0b3J5JyxcbiAgICAgIHJlc291cmNlTmFtZTogJ2RlZmF1bHQnLFxuICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgICBjb25zdCBpZGVudGl0eVdpbGRjYXJkQXJuID0gYCR7ZGlyZWN0b3J5QXJufS93b3JrbG9hZC1pZGVudGl0eS8ke2dhdGV3YXkubmFtZX0tKmA7XG4gICAgY29uc3QgdG9rZW5WYXVsdEFybiA9IHN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnYmVkcm9jay1hZ2VudGNvcmUnLFxuICAgICAgcmVzb3VyY2U6ICd0b2tlbi12YXVsdCcsXG4gICAgICByZXNvdXJjZU5hbWU6ICdkZWZhdWx0JyxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3JrbG9hZElkZW50aXR5R3JhbnQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBnYXRld2F5LnJvbGUsXG4gICAgICBhY3Rpb25zOiBbLi4uR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9QRVJNU10sXG4gICAgICByZXNvdXJjZUFybnM6IFtkaXJlY3RvcnlBcm4sIGlkZW50aXR5V2lsZGNhcmRBcm5dLFxuICAgICAgc2NvcGU6IGdhdGV3YXksXG4gICAgfSk7XG4gICAgY29uc3QgYXBpS2V5R3JhbnQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBnYXRld2F5LnJvbGUsXG4gICAgICBhY3Rpb25zOiBbLi4uR0FURVdBWV9BUElfS0VZX1BFUk1TXSxcbiAgICAgIHJlc291cmNlQXJuczogW3Rva2VuVmF1bHRBcm4sIHRoaXMucHJvdmlkZXJBcm4sIGRpcmVjdG9yeUFybiwgaWRlbnRpdHlXaWxkY2FyZEFybl0sXG4gICAgICBzY29wZTogZ2F0ZXdheSxcbiAgICB9KTtcbiAgICAvLyBUaGUgQ0ZOIGF0dHJpYnV0ZSBBcGlLZXlTZWNyZXRBcm4gaXMgYW4gb2JqZWN0IHsgU2VjcmV0QXJuOiBzdHJpbmcgfSwgbm90IGFcbiAgICAvLyBwbGFpbiBzdHJpbmcsIHNvIHRoZSBUb2tlbiByZXNvbHZlcyB0byBhbiBvYmplY3Qgd2hpY2ggY2Fubm90IGJlIHBsYWNlZCBpblxuICAgIC8vIElBTSBSZXNvdXJjZSBmaWVsZHMuIFdoZW4gdGhlIGNhbGxlciBzdXBwbGllcyBhIGxpdGVyYWwgQVJOIHN0cmluZyAoZS5nLiB2aWFcbiAgICAvLyBmcm9tQXBpS2V5SWRlbnRpdHlBcm4pIHdlIGNhbiBzY29wZSB0aWdodGx5OyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvIGFcbiAgICAvLyBzZXJ2aWNlLW1hbmFnZWQgcHJlZml4IHdpbGRjYXJkLlxuICAgIGxldCBzZWNyZXRSZXNvdXJjZUFybnM6IHN0cmluZ1tdO1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5zZWNyZXRBcm4pKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZihnYXRld2F5KS5hZGRXYXJuaW5nVjIoXG4gICAgICAgICdAYXdzLWNkay9hd3MtYmVkcm9jay1hZ2VudGNvcmUtYWxwaGE6d2lsZGNhcmRTZWNyZXRBcm5HcmFudCcsXG4gICAgICAgICdUaGUgc2VjcmV0IEFSTiBpcyBhbiB1bnJlc29sdmVkIHRva2VuLiBHcmFudGluZyBhY2Nlc3MgdXNpbmcgYSB3aWxkY2FyZCBwcmVmaXggKGJlZHJvY2stYWdlbnRjb3JlLWlkZW50aXR5ISopLiAnICtcbiAgICAgICAgJ1RvIHNjb3BlIHRoZSBncmFudCB0byBhIHNwZWNpZmljIHNlY3JldCwgc3VwcGx5IGEgbGl0ZXJhbCBzZWNyZXQgQVJOIHZpYSBmcm9tQXBpS2V5SWRlbnRpdHlBcm4uJyxcbiAgICAgICk7XG4gICAgICBzZWNyZXRSZXNvdXJjZUFybnMgPSBbc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ3NlY3JldHNtYW5hZ2VyJyxcbiAgICAgICAgcmVzb3VyY2U6ICdzZWNyZXQnLFxuICAgICAgICByZXNvdXJjZU5hbWU6ICdiZWRyb2NrLWFnZW50Y29yZS1pZGVudGl0eSEqJyxcbiAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgIH0pXTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VjcmV0UmVzb3VyY2VBcm5zID0gW3RoaXMuc2VjcmV0QXJuXTtcbiAgICB9XG4gICAgY29uc3Qgc2VjcmV0R3JhbnQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiBnYXRld2F5LnJvbGUsXG4gICAgICBhY3Rpb25zOiBbLi4uR0FURVdBWV9TRUNSRVRTX1BFUk1TXSxcbiAgICAgIHJlc291cmNlQXJuczogc2VjcmV0UmVzb3VyY2VBcm5zLFxuICAgICAgc2NvcGU6IGdhdGV3YXksXG4gICAgfSk7XG4gICAgcmV0dXJuIHdvcmtsb2FkSWRlbnRpdHlHcmFudC5jb21iaW5lKGFwaUtleUdyYW50KS5jb21iaW5lKHNlY3JldEdyYW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9yZW5kZXIoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyVHlwZTogdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJUeXBlLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyOiB7XG4gICAgICAgIGFwaUtleUNyZWRlbnRpYWxQcm92aWRlcjoge1xuICAgICAgICAgIHByb3ZpZGVyQXJuOiB0aGlzLnByb3ZpZGVyQXJuLFxuICAgICAgICAgIGNyZWRlbnRpYWxMb2NhdGlvbjogdGhpcy5jcmVkZW50aWFsTG9jYXRpb24uY3JlZGVudGlhbExvY2F0aW9uVHlwZSxcbiAgICAgICAgICBjcmVkZW50aWFsUGFyYW1ldGVyTmFtZTogdGhpcy5jcmVkZW50aWFsTG9jYXRpb24uY3JlZGVudGlhbFBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgY3JlZGVudGlhbFByZWZpeDogdGhpcy5jcmVkZW50aWFsTG9jYXRpb24uY3JlZGVudGlhbFByZWZpeCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -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.255.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
|
*/
|