@aws-cdk/aws-bedrock-agentcore-alpha 2.236.0-alpha.0 → 2.237.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.jsii +663 -173
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +23 -1
  4. package/README.md +129 -4
  5. package/lib/common/types.d.ts +35 -0
  6. package/lib/common/types.js +41 -0
  7. package/lib/gateway/gateway-base.js +1 -1
  8. package/lib/gateway/gateway.js +1 -1
  9. package/lib/gateway/inbound-auth/authorizer.d.ts +25 -0
  10. package/lib/gateway/inbound-auth/authorizer.js +17 -7
  11. package/lib/gateway/inbound-auth/custom-claim.d.ts +50 -0
  12. package/lib/gateway/inbound-auth/custom-claim.js +127 -0
  13. package/lib/gateway/interceptor.js +1 -1
  14. package/lib/gateway/outbound-auth/api-key.js +1 -1
  15. package/lib/gateway/outbound-auth/credential-provider.js +1 -1
  16. package/lib/gateway/protocol.js +2 -2
  17. package/lib/gateway/targets/schema/api-schema.js +7 -6
  18. package/lib/gateway/targets/schema/tool-schema.js +7 -6
  19. package/lib/gateway/targets/target-base.js +1 -1
  20. package/lib/gateway/targets/target-configuration.js +5 -5
  21. package/lib/gateway/targets/target.js +1 -1
  22. package/lib/index.d.ts +4 -1
  23. package/lib/index.js +8 -2
  24. package/lib/memory/memory-strategy.js +1 -1
  25. package/lib/memory/memory.js +2 -2
  26. package/lib/memory/strategies/managed-strategy.js +1 -1
  27. package/lib/memory/strategies/self-managed-strategy.js +1 -1
  28. package/lib/network/network-configuration.js +4 -4
  29. package/lib/runtime/inbound-auth/custom-claim.d.ts +50 -0
  30. package/lib/runtime/inbound-auth/custom-claim.js +127 -0
  31. package/lib/runtime/{runtime-authorizer-configuration.d.ts → inbound-auth/runtime-authorizer-configuration.d.ts} +10 -3
  32. package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +183 -0
  33. package/lib/runtime/runtime-artifact.js +1 -1
  34. package/lib/runtime/runtime-base.js +1 -1
  35. package/lib/runtime/runtime-endpoint-base.js +1 -1
  36. package/lib/runtime/runtime-endpoint.js +1 -1
  37. package/lib/runtime/runtime.d.ts +1 -1
  38. package/lib/runtime/runtime.js +2 -2
  39. package/lib/tools/browser.js +2 -2
  40. package/lib/tools/code-interpreter.js +2 -2
  41. package/package.json +9 -9
  42. package/lib/runtime/runtime-authorizer-configuration.js +0 -159
Binary file
package/.warnings.jsii.js CHANGED
@@ -92,6 +92,8 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterNetworkConfiguratio
92
92
  }
93
93
  function _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeNetworkConfiguration(p) {
94
94
  }
95
+ function _aws_cdk_aws_bedrock_agentcore_alpha_CustomClaimOperator(p) {
96
+ }
95
97
  function _aws_cdk_aws_bedrock_agentcore_alpha_ProtocolType(p) {
96
98
  }
97
99
  function _aws_cdk_aws_bedrock_agentcore_alpha_RequestHeaderConfiguration(p) {
@@ -120,6 +122,8 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_AgentCoreRuntime(p) {
120
122
  }
121
123
  function _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeArtifact(p) {
122
124
  }
125
+ function _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeCustomClaim(p) {
126
+ }
123
127
  function _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeAuthorizerConfiguration(p) {
124
128
  }
125
129
  function _aws_cdk_aws_bedrock_agentcore_alpha_IRuntimeEndpoint(p) {
@@ -363,6 +367,18 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizerType(p) {
363
367
  function _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayAuthorizerConfig(p) {
364
368
  }
365
369
  function _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtConfiguration(p) {
370
+ if (p == null)
371
+ return;
372
+ visitedObjects.add(p);
373
+ try {
374
+ if (p.customClaims != null)
375
+ for (const o of p.customClaims)
376
+ if (!visitedObjects.has(o))
377
+ _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCustomClaim(o);
378
+ }
379
+ finally {
380
+ visitedObjects.delete(p);
381
+ }
366
382
  }
367
383
  function _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtAuthorizer(p) {
368
384
  }
@@ -377,6 +393,10 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_CognitoAuthorizerProps(p) {
377
393
  for (const o of p.allowedClients)
378
394
  if (!visitedObjects.has(o))
379
395
  require("aws-cdk-lib/.warnings.jsii.js").aws_cdk_lib_aws_cognito_IUserPoolClient(o);
396
+ if (p.customClaims != null)
397
+ for (const o of p.customClaims)
398
+ if (!visitedObjects.has(o))
399
+ _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCustomClaim(o);
380
400
  }
381
401
  finally {
382
402
  visitedObjects.delete(p);
@@ -384,6 +404,8 @@ function _aws_cdk_aws_bedrock_agentcore_alpha_CognitoAuthorizerProps(p) {
384
404
  }
385
405
  function _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizer(p) {
386
406
  }
407
+ function _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCustomClaim(p) {
408
+ }
387
409
  function _aws_cdk_aws_bedrock_agentcore_alpha_CredentialProviderType(p) {
388
410
  }
389
411
  function _aws_cdk_aws_bedrock_agentcore_alpha_ICredentialProviderConfig(p) {
@@ -622,4 +644,4 @@ class DeprecationError extends Error {
622
644
  });
623
645
  }
624
646
  }
625
- module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_bedrock_agentcore_alpha_IMemory, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryBase, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryProps, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Memory, _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig, _aws_cdk_aws_bedrock_agentcore_alpha_EpisodicReflectionConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_TriggerConditions, _aws_cdk_aws_bedrock_agentcore_alpha_InvocationConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyType, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_IMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps, _aws_cdk_aws_bedrock_agentcore_alpha_NetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_RequestHeaderConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LifecycleConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IBedrockAgentRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeBase, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_AgentCoreRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeArtifact, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeAuthorizerConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IRuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointBase, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointProps, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeProps, _aws_cdk_aws_bedrock_agentcore_alpha_AddEndpointOptions, _aws_cdk_aws_bedrock_agentcore_alpha_Runtime, _aws_cdk_aws_bedrock_agentcore_alpha_ICodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserSigning, _aws_cdk_aws_bedrock_agentcore_alpha_IBrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_RecordingConfig, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayExceptionLevel, _aws_cdk_aws_bedrock_agentcore_alpha_IGateway, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayBase, _aws_cdk_aws_bedrock_agentcore_alpha_AddLambdaTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddOpenApiTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddSmithyTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddMcpServerTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Gateway, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptionPoint, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorOptions, _aws_cdk_aws_bedrock_agentcore_alpha_IInterceptor, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorBindConfig, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaInterceptor, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayProtocolConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProtocol, _aws_cdk_aws_bedrock_agentcore_alpha_MCPProtocolVersion, _aws_cdk_aws_bedrock_agentcore_alpha_McpGatewaySearchType, _aws_cdk_aws_bedrock_agentcore_alpha_McpConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpProtocolConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizerType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayAuthorizerConfig, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_IamAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CognitoAuthorizerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CredentialProviderType, _aws_cdk_aws_bedrock_agentcore_alpha_ICredentialProviderConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCredentialProvider, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyAdditionalConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialLocation, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialProviderProps, _aws_cdk_aws_bedrock_agentcore_alpha_OAuthConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_IMcpGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetBase, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetLambdaProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetOpenApiProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetSmithyProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetMcpServerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_TargetConfigurationConfig, _aws_cdk_aws_bedrock_agentcore_alpha_ITargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_OpenApiTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SmithyTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpServerTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinitionType, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ToolSchema };
647
+ module.exports = { print, getPropertyDescriptor, DeprecationError, _aws_cdk_aws_bedrock_agentcore_alpha_IMemory, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryBase, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryProps, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Memory, _aws_cdk_aws_bedrock_agentcore_alpha_OverrideConfig, _aws_cdk_aws_bedrock_agentcore_alpha_EpisodicReflectionConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_ManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_TriggerConditions, _aws_cdk_aws_bedrock_agentcore_alpha_InvocationConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedStrategyProps, _aws_cdk_aws_bedrock_agentcore_alpha_SelfManagedMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyType, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategyCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_IMemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_MemoryStrategy, _aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps, _aws_cdk_aws_bedrock_agentcore_alpha_NetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeNetworkConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CustomClaimOperator, _aws_cdk_aws_bedrock_agentcore_alpha_ProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_RequestHeaderConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LifecycleConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IBedrockAgentRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeBase, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_AgentCoreRuntime, _aws_cdk_aws_bedrock_agentcore_alpha_AgentRuntimeArtifact, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeCustomClaim, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeAuthorizerConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_IRuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointBase, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointProps, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpoint, _aws_cdk_aws_bedrock_agentcore_alpha_RuntimeProps, _aws_cdk_aws_bedrock_agentcore_alpha_AddEndpointOptions, _aws_cdk_aws_bedrock_agentcore_alpha_Runtime, _aws_cdk_aws_bedrock_agentcore_alpha_ICodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_CodeInterpreterCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserSigning, _aws_cdk_aws_bedrock_agentcore_alpha_IBrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomBase, _aws_cdk_aws_bedrock_agentcore_alpha_RecordingConfig, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomProps, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustomAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_BrowserCustom, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayExceptionLevel, _aws_cdk_aws_bedrock_agentcore_alpha_IGateway, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayBase, _aws_cdk_aws_bedrock_agentcore_alpha_AddLambdaTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddOpenApiTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddSmithyTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_AddMcpServerTargetOptions, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_Gateway, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptionPoint, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorOptions, _aws_cdk_aws_bedrock_agentcore_alpha_IInterceptor, _aws_cdk_aws_bedrock_agentcore_alpha_InterceptorBindConfig, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaInterceptor, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayProtocolConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayProtocol, _aws_cdk_aws_bedrock_agentcore_alpha_MCPProtocolVersion, _aws_cdk_aws_bedrock_agentcore_alpha_McpGatewaySearchType, _aws_cdk_aws_bedrock_agentcore_alpha_McpConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpProtocolConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizerType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayAuthorizerConfig, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_IamAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_CognitoAuthorizerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayAuthorizer, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCustomClaim, _aws_cdk_aws_bedrock_agentcore_alpha_CredentialProviderType, _aws_cdk_aws_bedrock_agentcore_alpha_ICredentialProviderConfig, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayCredentialProvider, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyAdditionalConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialLocation, _aws_cdk_aws_bedrock_agentcore_alpha_ApiKeyCredentialProviderProps, _aws_cdk_aws_bedrock_agentcore_alpha_OAuthConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProtocolType, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetType, _aws_cdk_aws_bedrock_agentcore_alpha_IGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_IMcpGatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetBase, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetCommonProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetLambdaProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetOpenApiProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetSmithyProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetMcpServerProps, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTargetAttributes, _aws_cdk_aws_bedrock_agentcore_alpha_GatewayTarget, _aws_cdk_aws_bedrock_agentcore_alpha_TargetConfigurationConfig, _aws_cdk_aws_bedrock_agentcore_alpha_ITargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_LambdaTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_OpenApiTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_SmithyTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_McpServerTargetConfiguration, _aws_cdk_aws_bedrock_agentcore_alpha_ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ApiSchema, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinitionType, _aws_cdk_aws_bedrock_agentcore_alpha_SchemaDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolDefinition, _aws_cdk_aws_bedrock_agentcore_alpha_ToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_AssetToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_InlineToolSchema, _aws_cdk_aws_bedrock_agentcore_alpha_S3ToolSchema };
package/README.md CHANGED
@@ -469,16 +469,34 @@ const repository = new ecr.Repository(this, "TestRepository", {
469
469
  });
470
470
  const agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, "v1.0.0");
471
471
 
472
+ // Optional: Create custom claims for additional validation
473
+ const customClaims = [
474
+ agentcore.RuntimeCustomClaim.withStringValue('department', 'engineering'),
475
+ agentcore.RuntimeCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),
476
+ agentcore.RuntimeCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),
477
+ ];
478
+
472
479
  const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
473
480
  runtimeName: "myAgent",
474
481
  agentRuntimeArtifact: agentRuntimeArtifact,
475
482
  authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingCognito(
476
483
  userPool, // User Pool (required)
477
484
  [userPoolClient, anotherUserPoolClient], // User Pool Clients
485
+ ["audience1"], // Allowed Audiences (optional)
486
+ ["read", "write"], // Allowed Scopes (optional)
487
+ customClaims, // Custom claims (optional) - see Custom Claims Validation section
478
488
  ),
479
489
  });
480
490
  ```
481
491
 
492
+ You can configure:
493
+
494
+ - User Pool: The Cognito User Pool that issues JWT tokens
495
+ - User Pool Clients: One or more Cognito User Pool App Clients that are allowed to access the runtime
496
+ - Allowed audiences: Used to validate that the audiences specified in the Cognito token match or are a subset of the audiences specified in the AgentCore Runtime
497
+ - Allowed scopes: Allow access only if the token contains at least one of the required scopes configured here
498
+ - Custom claims: A set of rules to match specific claims in the incoming token against predefined values for validating JWT tokens
499
+
482
500
  #### JWT Authentication
483
501
 
484
502
  To configure custom JWT authentication with your own OpenID Connect (OIDC) provider:
@@ -495,13 +513,77 @@ const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
495
513
  authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingJWT(
496
514
  "https://example.com/.well-known/openid-configuration", // Discovery URL (required)
497
515
  ["client1", "client2"], // Allowed Client IDs (optional)
498
- ["audience1"] // Allowed Audiences (optional)
516
+ ["audience1"], // Allowed Audiences (optional)
517
+ ["read", "write"], // Allowed Scopes (optional)
518
+ // Custom claims (optional) - see Custom Claims Validation section below
499
519
  ),
500
520
  });
501
521
  ```
502
522
 
523
+ You can configure:
524
+
525
+ - Discovery URL: Enter the Discovery URL from your identity provider (e.g. Okta, Cognito, etc.), typically found in that provider's documentation. This allows your Agent or Tool to fetch login, downstream resource token, and verification settings.
526
+ - Allowed audiences: This is used to validate that the audiences specified for the OAuth token matches or are a subset of the audiences specified in the AgentCore Runtime.
527
+ - Allowed clients: This is used to validate that the public identifier of the client, as specified in the authorization token, is allowed to access the AgentCore Runtime.
528
+ - Allowed scopes: Allow access only if the token contains at least one of the required scopes configured here.
529
+ - Custom claims: A set of rules to match specific claims in the incoming token against predefined values for validating JWT tokens.
530
+
503
531
  **Note**: The discovery URL must end with `/.well-known/openid-configuration`.
504
532
 
533
+ ##### Custom Claims Validation
534
+
535
+ Custom claims allow you to validate additional fields in JWT tokens beyond the standard audience, client, and scope validations. You can create custom claims using the `RuntimeCustomClaim` class:
536
+
537
+ ```typescript fixture=default
538
+ const repository = new ecr.Repository(this, "TestRepository", {
539
+ repositoryName: "test-agent-runtime",
540
+ });
541
+ const agentRuntimeArtifact = agentcore.AgentRuntimeArtifact.fromEcrRepository(repository, "v1.0.0");
542
+
543
+ // String claim - validates that the claim exactly equals the specified value
544
+ // Uses EQUALS operator automatically
545
+ const departmentClaim = agentcore.RuntimeCustomClaim.withStringValue('department', 'engineering');
546
+
547
+ // String array claim with CONTAINS operator (default)
548
+ // Validates that the claim array contains a specific string value
549
+ // IMPORTANT: CONTAINS requires exactly one value in the array parameter
550
+ const rolesClaim = agentcore.RuntimeCustomClaim.withStringArrayValue('roles', ['admin']);
551
+
552
+ // String array claim with CONTAINS_ANY operator
553
+ // Validates that the claim array contains at least one of the specified values
554
+ // Use this when you want to check for multiple possible values
555
+ const permissionsClaim = agentcore.RuntimeCustomClaim.withStringArrayValue(
556
+ 'permissions',
557
+ ['read', 'write'],
558
+ agentcore.CustomClaimOperator.CONTAINS_ANY
559
+ );
560
+
561
+ // Use custom claims in authorizer configuration
562
+ const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
563
+ runtimeName: "myAgent",
564
+ agentRuntimeArtifact: agentRuntimeArtifact,
565
+ authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingJWT(
566
+ "https://example.com/.well-known/openid-configuration",
567
+ ["client1", "client2"],
568
+ ["audience1"],
569
+ ["read", "write"],
570
+ [departmentClaim, rolesClaim, permissionsClaim] // Custom claims
571
+ ),
572
+ });
573
+ ```
574
+
575
+ **Custom Claim Rules**:
576
+
577
+ - **String claims**: Must use the `EQUALS` operator (automatically set). The claim value must exactly match the specified string.
578
+ - **String array claims**: Can use `CONTAINS` (default) or `CONTAINS_ANY` operators:
579
+ - **`CONTAINS`**: Checks if the claim array contains a specific string value. **Requires exactly one value** in the array parameter. For example, `['admin']` will check if the token's claim array contains the string `'admin'`.
580
+ - **`CONTAINS_ANY`**: Checks if the claim array contains at least one of the provided string values. Use this when you want to validate against multiple possible values. For example, `['read', 'write']` will check if the token's claim array contains either `'read'` or `'write'`.
581
+
582
+ **Example Use Cases**:
583
+
584
+ - Use `CONTAINS` when you need to verify a user has a specific role: `RuntimeCustomClaim.withStringArrayValue('roles', ['admin'])`
585
+ - Use `CONTAINS_ANY` when you need to verify a user has any of several permissions: `RuntimeCustomClaim.withStringArrayValue('permissions', ['read', 'write'], CustomClaimOperator.CONTAINS_ANY)`
586
+
505
587
  #### OAuth Authentication
506
588
 
507
589
  To configure OAuth 2.0 authentication:
@@ -516,8 +598,11 @@ const runtime = new agentcore.Runtime(this, "MyAgentRuntime", {
516
598
  runtimeName: "myAgent",
517
599
  agentRuntimeArtifact: agentRuntimeArtifact,
518
600
  authorizerConfiguration: agentcore.RuntimeAuthorizerConfiguration.usingOAuth(
519
- "https://github.com/.well-known/openid-configuration",
520
- "oauth_client_123",
601
+ "https://github.com/.well-known/openid-configuration", // Discovery URL (required)
602
+ "oauth_client_123", // OAuth Client ID (required)
603
+ ["audience1"], // Allowed Audiences (optional)
604
+ ["openid", "profile"], // Allowed Scopes (optional)
605
+ // Custom claims (optional) - see Custom Claims Validation section
521
606
  ),
522
607
  });
523
608
  ```
@@ -1132,21 +1217,33 @@ your AgentCore gateway. By default, if not provided, the construct will create a
1132
1217
  **JSON Web Token (JWT)** – A secure and compact token used for authorization. After creating the JWT, you specify it as the authorization
1133
1218
  configuration when you create the gateway. You can create a JWT with any of the identity providers at Provider setup and configuration.
1134
1219
 
1135
- You can configure a custom authorization provider using the `inboundAuthorizer` property with `GatewayAuthorizer.usingCustomJwt()`.
1220
+ You can configure a custom authorization provider using the `authorizerConfiguration` property with `GatewayAuthorizer.usingCustomJwt()`.
1136
1221
  You need to specify an OAuth discovery server and client IDs/audiences when you create the gateway. You can specify the following:
1137
1222
 
1138
1223
  - Discovery Url — String that must match the pattern ^.+/\.well-known/openid-configuration$ for OpenID Connect discovery URLs
1139
1224
  - At least one of the below options depending on the chosen identity provider.
1140
1225
  - Allowed audiences — List of allowed audiences for JWT tokens
1141
1226
  - Allowed clients — List of allowed client identifiers
1227
+ - Allowed scopes — List of allowed scopes for JWT tokens
1228
+ - Custom claims — Optional custom claim validations (see Custom Claims Validation section below)
1142
1229
 
1143
1230
  ```typescript fixture=default
1231
+
1232
+ // Optional: Create custom claims (CustomClaimOperator and GatewayCustomClaim from agentcore)
1233
+ const customClaims = [
1234
+ agentcore.GatewayCustomClaim.withStringValue('department', 'engineering'),
1235
+ agentcore.GatewayCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),
1236
+ agentcore.GatewayCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),
1237
+ ];
1238
+
1144
1239
  const gateway = new agentcore.Gateway(this, "MyGateway", {
1145
1240
  gatewayName: "my-gateway",
1146
1241
  authorizerConfiguration: agentcore.GatewayAuthorizer.usingCustomJwt({
1147
1242
  discoveryUrl: "https://auth.example.com/.well-known/openid-configuration",
1148
1243
  allowedAudience: ["my-app"],
1149
1244
  allowedClients: ["my-client-id"],
1245
+ allowedScopes: ["read", "write"],
1246
+ customClaims: customClaims, // Optional custom claims
1150
1247
  }),
1151
1248
  });
1152
1249
  ```
@@ -1188,6 +1285,31 @@ const oauthScopes = gateway.oauthScopes;
1188
1285
  // oauthScopes are in the format: ['{resourceServerId}/read', '{resourceServerId}/write']
1189
1286
  ```
1190
1287
 
1288
+ **Using Cognito User Pool Explicitly with Custom Claims** – You can also use an existing Cognito User Pool with custom claims:
1289
+
1290
+ ```typescript fixture=default
1291
+ declare const userPool: cognito.UserPool;
1292
+ declare const userPoolClient: cognito.UserPoolClient;
1293
+
1294
+ // Optional: Create custom claims (CustomClaimOperator and GatewayCustomClaim from agentcore)
1295
+ const customClaims = [
1296
+ agentcore.GatewayCustomClaim.withStringValue('department', 'engineering'),
1297
+ agentcore.GatewayCustomClaim.withStringArrayValue('roles', ['admin'], agentcore.CustomClaimOperator.CONTAINS),
1298
+ agentcore.GatewayCustomClaim.withStringArrayValue('permissions', ['read', 'write'], agentcore.CustomClaimOperator.CONTAINS_ANY),
1299
+ ];
1300
+
1301
+ const gateway = new agentcore.Gateway(this, "MyGateway", {
1302
+ gatewayName: "my-gateway",
1303
+ authorizerConfiguration: agentcore.GatewayAuthorizer.usingCognito({
1304
+ userPool: userPool,
1305
+ allowedClients: [userPoolClient],
1306
+ allowedAudiences: ["audience1"],
1307
+ allowedScopes: ["read", "write"],
1308
+ customClaims: customClaims, // Optional custom claims
1309
+ }),
1310
+ });
1311
+ ```
1312
+
1191
1313
  To authenticate with the gateway, request an access token using the client credentials flow and use it to call Gateway endpoints. For more information about the token endpoint, see [The token issuer endpoint](https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html).
1192
1314
 
1193
1315
  The following is an example of a token request using curl:
@@ -1225,6 +1347,7 @@ const gateway = new agentcore.Gateway(this, "MyGateway", {
1225
1347
  discoveryUrl: "https://auth.example.com/.well-known/openid-configuration",
1226
1348
  allowedAudience: ["my-app"],
1227
1349
  allowedClients: ["my-client-id"],
1350
+ allowedScopes: ["read", "write"],
1228
1351
  }),
1229
1352
  kmsKey: encryptionKey,
1230
1353
  exceptionLevel: agentcore.GatewayExceptionLevel.DEBUG,
@@ -1255,6 +1378,7 @@ const gateway = new agentcore.Gateway(this, "MyGateway", {
1255
1378
  discoveryUrl: "https://auth.example.com/.well-known/openid-configuration",
1256
1379
  allowedAudience: ["my-app"],
1257
1380
  allowedClients: ["my-client-id"],
1381
+ allowedScopes: ["read", "write"],
1258
1382
  }),
1259
1383
  role: executionRole,
1260
1384
  });
@@ -1278,6 +1402,7 @@ const gateway = new agentcore.Gateway(this, "MyGateway", {
1278
1402
  discoveryUrl: "https://auth.example.com/.well-known/openid-configuration",
1279
1403
  allowedAudience: ["my-app"],
1280
1404
  allowedClients: ["my-client-id"],
1405
+ allowedScopes: ["read", "write"],
1281
1406
  }),
1282
1407
  });
1283
1408
 
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+ /**
14
+ * Custom claim value type.
15
+ * Shared by Runtime and Gateway custom claim implementations.
16
+ * @internal
17
+ */
18
+ export declare enum CustomClaimValueType {
19
+ /** String value type */
20
+ STRING = "STRING",
21
+ /** String array value type */
22
+ STRING_ARRAY = "STRING_ARRAY"
23
+ }
24
+ /**
25
+ * Custom claim match operator.
26
+ * Shared by Runtime and Gateway custom claim implementations.
27
+ */
28
+ export declare enum CustomClaimOperator {
29
+ /** Equals operator - used for STRING type claims */
30
+ EQUALS = "EQUALS",
31
+ /** Contains operator - used for STRING_ARRAY type claims. Checks if the claim array contains a specific string value. */
32
+ CONTAINS = "CONTAINS",
33
+ /** ContainsAny operator - used for STRING_ARRAY type claims. Checks if the claim array contains any of the provided string values. */
34
+ CONTAINS_ANY = "CONTAINS_ANY"
35
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CustomClaimOperator = exports.CustomClaimValueType = void 0;
16
+ /**
17
+ * Custom claim value type.
18
+ * Shared by Runtime and Gateway custom claim implementations.
19
+ * @internal
20
+ */
21
+ var CustomClaimValueType;
22
+ (function (CustomClaimValueType) {
23
+ /** String value type */
24
+ CustomClaimValueType["STRING"] = "STRING";
25
+ /** String array value type */
26
+ CustomClaimValueType["STRING_ARRAY"] = "STRING_ARRAY";
27
+ })(CustomClaimValueType || (exports.CustomClaimValueType = CustomClaimValueType = {}));
28
+ /**
29
+ * Custom claim match operator.
30
+ * Shared by Runtime and Gateway custom claim implementations.
31
+ */
32
+ var CustomClaimOperator;
33
+ (function (CustomClaimOperator) {
34
+ /** Equals operator - used for STRING type claims */
35
+ CustomClaimOperator["EQUALS"] = "EQUALS";
36
+ /** Contains operator - used for STRING_ARRAY type claims. Checks if the claim array contains a specific string value. */
37
+ CustomClaimOperator["CONTAINS"] = "CONTAINS";
38
+ /** ContainsAny operator - used for STRING_ARRAY type claims. Checks if the claim array contains any of the provided string values. */
39
+ CustomClaimOperator["CONTAINS_ANY"] = "CONTAINS_ANY";
40
+ })(CustomClaimOperator || (exports.CustomClaimOperator = CustomClaimOperator = {}));
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7O0dBSUc7QUFDSCxJQUFZLG9CQUtYO0FBTEQsV0FBWSxvQkFBb0I7SUFDOUIsd0JBQXdCO0lBQ3hCLHlDQUFpQixDQUFBO0lBQ2pCLDhCQUE4QjtJQUM5QixxREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBTFcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFLL0I7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLG1CQU9YO0FBUEQsV0FBWSxtQkFBbUI7SUFDN0Isb0RBQW9EO0lBQ3BELHdDQUFpQixDQUFBO0lBQ2pCLHlIQUF5SDtJQUN6SCw0Q0FBcUIsQ0FBQTtJQUNyQixzSUFBc0k7SUFDdEksb0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVBXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBTzlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyoqXG4gKiBDdXN0b20gY2xhaW0gdmFsdWUgdHlwZS5cbiAqIFNoYXJlZCBieSBSdW50aW1lIGFuZCBHYXRld2F5IGN1c3RvbSBjbGFpbSBpbXBsZW1lbnRhdGlvbnMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGVudW0gQ3VzdG9tQ2xhaW1WYWx1ZVR5cGUge1xuICAvKiogU3RyaW5nIHZhbHVlIHR5cGUgKi9cbiAgU1RSSU5HID0gJ1NUUklORycsXG4gIC8qKiBTdHJpbmcgYXJyYXkgdmFsdWUgdHlwZSAqL1xuICBTVFJJTkdfQVJSQVkgPSAnU1RSSU5HX0FSUkFZJyxcbn1cblxuLyoqXG4gKiBDdXN0b20gY2xhaW0gbWF0Y2ggb3BlcmF0b3IuXG4gKiBTaGFyZWQgYnkgUnVudGltZSBhbmQgR2F0ZXdheSBjdXN0b20gY2xhaW0gaW1wbGVtZW50YXRpb25zLlxuICovXG5leHBvcnQgZW51bSBDdXN0b21DbGFpbU9wZXJhdG9yIHtcbiAgLyoqIEVxdWFscyBvcGVyYXRvciAtIHVzZWQgZm9yIFNUUklORyB0eXBlIGNsYWltcyAqL1xuICBFUVVBTFMgPSAnRVFVQUxTJyxcbiAgLyoqIENvbnRhaW5zIG9wZXJhdG9yIC0gdXNlZCBmb3IgU1RSSU5HX0FSUkFZIHR5cGUgY2xhaW1zLiBDaGVja3MgaWYgdGhlIGNsYWltIGFycmF5IGNvbnRhaW5zIGEgc3BlY2lmaWMgc3RyaW5nIHZhbHVlLiAqL1xuICBDT05UQUlOUyA9ICdDT05UQUlOUycsXG4gIC8qKiBDb250YWluc0FueSBvcGVyYXRvciAtIHVzZWQgZm9yIFNUUklOR19BUlJBWSB0eXBlIGNsYWltcy4gQ2hlY2tzIGlmIHRoZSBjbGFpbSBhcnJheSBjb250YWlucyBhbnkgb2YgdGhlIHByb3ZpZGVkIHN0cmluZyB2YWx1ZXMuICovXG4gIENPTlRBSU5TX0FOWSA9ICdDT05UQUlOU19BTlknLFxufVxuIl19
@@ -25,7 +25,7 @@ var GatewayExceptionLevel;
25
25
  * Base Class
26
26
  *****************************************************************************/
27
27
  class GatewayBase extends aws_cdk_lib_1.Resource {
28
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase", version: "2.236.0-alpha.0" };
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase", version: "2.237.0-alpha.0" };
29
29
  constructor(scope, id, props = {}) {
30
30
  super(scope, id, props);
31
31
  }
@@ -91,7 +91,7 @@ let Gateway = (() => {
91
91
  Gateway = _classThis = _classDescriptor.value;
92
92
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
93
93
  }
94
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Gateway", version: "2.236.0-alpha.0" };
94
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Gateway", version: "2.237.0-alpha.0" };
95
95
  /** Uniquely identifies this class. */
96
96
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.Gateway';
97
97
  /**
@@ -1,4 +1,5 @@
1
1
  import { IUserPoolClient, IUserPool } from 'aws-cdk-lib/aws-cognito';
2
+ import { GatewayCustomClaim } from './custom-claim';
2
3
  /******************************************************************************
3
4
  * Authorizer Configuration
4
5
  *****************************************************************************/
@@ -50,6 +51,17 @@ export interface CustomJwtConfiguration {
50
51
  * @default - No client ID validation
51
52
  */
52
53
  readonly allowedClients?: string[];
54
+ /**
55
+ * Represents individual scopes that are validated in the incoming JWT token validation process.
56
+ * @default - No scope validation
57
+ */
58
+ readonly allowedScopes?: string[];
59
+ /**
60
+ * Custom claims for additional JWT token validation.
61
+ * Allows you to validate additional fields in JWT tokens beyond the standard audience, client, and scope validations.
62
+ * @default - No custom claim validation
63
+ */
64
+ readonly customClaims?: GatewayCustomClaim[];
53
65
  }
54
66
  /**
55
67
  * Custom JWT authorizer configuration implementation
@@ -59,6 +71,8 @@ export declare class CustomJwtAuthorizer implements IGatewayAuthorizerConfig {
59
71
  private readonly discoveryUrl;
60
72
  private readonly allowedAudience?;
61
73
  private readonly allowedClients?;
74
+ private readonly allowedScopes?;
75
+ private readonly customClaims?;
62
76
  constructor(config: CustomJwtConfiguration);
63
77
  /**
64
78
  * @internal
@@ -97,6 +111,17 @@ export interface CognitoAuthorizerProps {
97
111
  * @default - No audience validation
98
112
  */
99
113
  readonly allowedAudiences?: string[];
114
+ /**
115
+ * The allowed scopes for JWT validation
116
+ * @default - No scope validation
117
+ */
118
+ readonly allowedScopes?: string[];
119
+ /**
120
+ * Custom claims for additional JWT token validation.
121
+ * Allows you to validate additional fields in JWT tokens beyond the standard audience, client, and scope validations.
122
+ * @default - No custom claim validation
123
+ */
124
+ readonly customClaims?: GatewayCustomClaim[];
100
125
  }
101
126
  /**
102
127
  * Factory class for creating Gateway Authorizers
@@ -21,11 +21,13 @@ var GatewayAuthorizerType;
21
21
  * Custom JWT authorizer configuration implementation
22
22
  */
23
23
  class CustomJwtAuthorizer {
24
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CustomJwtAuthorizer", version: "2.236.0-alpha.0" };
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CustomJwtAuthorizer", version: "2.237.0-alpha.0" };
25
25
  authorizerType = GatewayAuthorizerType.CUSTOM_JWT;
26
26
  discoveryUrl;
27
27
  allowedAudience;
28
28
  allowedClients;
29
+ allowedScopes;
30
+ customClaims;
29
31
  constructor(config) {
30
32
  try {
31
33
  jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_CustomJwtConfiguration(config);
@@ -39,6 +41,8 @@ class CustomJwtAuthorizer {
39
41
  this.discoveryUrl = config.discoveryUrl;
40
42
  this.allowedAudience = config.allowedAudience;
41
43
  this.allowedClients = config.allowedClients;
44
+ this.allowedScopes = config.allowedScopes;
45
+ this.customClaims = config.customClaims;
42
46
  }
43
47
  /**
44
48
  * @internal
@@ -49,6 +53,10 @@ class CustomJwtAuthorizer {
49
53
  discoveryUrl: this.discoveryUrl,
50
54
  ...(this.allowedAudience && { allowedAudience: this.allowedAudience }),
51
55
  ...(this.allowedClients && { allowedClients: this.allowedClients }),
56
+ ...(this.allowedScopes && { allowedScopes: this.allowedScopes }),
57
+ ...(this.customClaims && this.customClaims.length > 0 && {
58
+ customClaims: this.customClaims.map(claim => claim._render()),
59
+ }),
52
60
  },
53
61
  };
54
62
  }
@@ -62,7 +70,7 @@ exports.CustomJwtAuthorizer = CustomJwtAuthorizer;
62
70
  *
63
71
  */
64
72
  class IamAuthorizer {
65
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.IamAuthorizer", version: "2.236.0-alpha.0" };
73
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.IamAuthorizer", version: "2.237.0-alpha.0" };
66
74
  authorizerType = GatewayAuthorizerType.AWS_IAM;
67
75
  /**
68
76
  * @internal
@@ -78,7 +86,7 @@ exports.IamAuthorizer = IamAuthorizer;
78
86
  * Factory class for creating Gateway Authorizers
79
87
  */
80
88
  class GatewayAuthorizer {
81
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayAuthorizer", version: "2.236.0-alpha.0" };
89
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayAuthorizer", version: "2.237.0-alpha.0" };
82
90
  /**
83
91
  * AWS IAM authorizer instance
84
92
  */
@@ -100,9 +108,9 @@ class GatewayAuthorizer {
100
108
  }
101
109
  throw error;
102
110
  }
103
- // At least one of allowedAudience or allowedClients must be defined for CUSTOM_JWT authorizer
104
- if (!configuration.allowedAudience && !configuration.allowedClients) {
105
- throw new validation_helpers_1.ValidationError('At least one of allowedAudience or allowedClients must be defined for CUSTOM_JWT authorizer');
111
+ // At least one of allowedAudience, allowedClients, allowedScopes, or customClaims must be defined for CUSTOM_JWT authorizer
112
+ if (!configuration.allowedAudience && !configuration.allowedClients && !configuration.allowedScopes && !configuration.customClaims) {
113
+ throw new validation_helpers_1.ValidationError('At least one of allowedAudience, allowedClients, allowedScopes, or customClaims must be defined for CUSTOM_JWT authorizer');
106
114
  }
107
115
  return new CustomJwtAuthorizer(configuration);
108
116
  }
@@ -126,8 +134,10 @@ class GatewayAuthorizer {
126
134
  discoveryUrl: discoveryUrl,
127
135
  allowedClients: props.allowedClients?.flatMap((client) => client.userPoolClientId),
128
136
  allowedAudience: props.allowedAudiences,
137
+ allowedScopes: props.allowedScopes,
138
+ customClaims: props.customClaims,
129
139
  });
130
140
  }
131
141
  }
132
142
  exports.GatewayAuthorizer = GatewayAuthorizer;
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dGhvcml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw4REFBd0Q7QUFFeEQ7OytFQUUrRTtBQUUvRTs7R0FFRztBQUNILElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQixpQ0FBaUM7SUFDakMsa0RBQXlCLENBQUE7SUFDekIsOEJBQThCO0lBQzlCLDRDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxxQkFBcUIscUNBQXJCLHFCQUFxQixRQUtoQztBQStDRDs7R0FFRztBQUNILE1BQWEsbUJBQW1COztJQUNkLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7SUFDakQsWUFBWSxDQUFTO0lBQ3JCLGVBQWUsQ0FBWTtJQUMzQixjQUFjLENBQVk7SUFFM0MsWUFBWSxNQUE4Qjs7Ozs7OytDQU4vQixtQkFBbUI7Ozs7UUFPNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7S0FDN0M7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixPQUFPO1lBQ0wsbUJBQW1CLEVBQUU7Z0JBQ25CLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN0RSxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDcEU7U0FDRixDQUFDO0tBQ0g7O0FBdkJILGtEQXdCQztBQUVEOzsrRUFFK0U7QUFFL0U7OztHQUdHO0FBQ0gsTUFBYSxhQUFhOztJQUNSLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxPQUFPO1FBQ0wsMkRBQTJEO1FBQzNELCtEQUErRDtRQUMvRCxPQUFPLFNBQVMsQ0FBQztLQUNsQjs7QUFWSCxzQ0FXQztBQXNCRDs7R0FFRztBQUNILE1BQXNCLGlCQUFpQjs7SUFDckM7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVztRQUN2QixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7S0FDNUI7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFxQzs7Ozs7Ozs7OztRQUNoRSw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEUsTUFBTSxJQUFJLG9DQUFlLENBQUMsNkZBQTZGLENBQUMsQ0FBQztRQUMzSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQy9DO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBNkI7Ozs7Ozs7Ozs7UUFDdEQsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sa0JBQWtCLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxtQ0FBbUMsQ0FBQztRQUVwSixPQUFPLElBQUksbUJBQW1CLENBQUM7WUFDN0IsWUFBWSxFQUFFLFlBQVk7WUFDMUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDbEYsZUFBZSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDeEMsQ0FBQyxDQUFDO0tBQ0o7O0FBbENILDhDQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElVc2VyUG9vbENsaWVudCwgSVVzZXJQb29sIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZ25pdG8nO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6ZXIgQ29uZmlndXJhdGlvblxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEdhdGV3YXkgYXV0aG9yaXplciB0eXBlXG4gKi9cbmV4cG9ydCBlbnVtIEdhdGV3YXlBdXRob3JpemVyVHlwZSB7XG4gIC8qKiBDdXN0b20gSldUIGF1dGhvcml6ZXIgdHlwZSAqL1xuICBDVVNUT01fSldUID0gJ0NVU1RPTV9KV1QnLFxuICAvKiogQVdTIElBTSBhdXRob3JpemVyIHR5cGUgKi9cbiAgQVdTX0lBTSA9ICdBV1NfSUFNJyxcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBpbnRlcmZhY2UgZm9yIGdhdGV3YXkgYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdhdGV3YXlBdXRob3JpemVyQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemVyIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJUeXBlOiBHYXRld2F5QXV0aG9yaXplclR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemVyIGNvbmZpZ3VyYXRpb24gaW4gQ0ZOIGZvcm1hdFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9yZW5kZXIoKTogYW55O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b20gSldUXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEN1c3RvbSBKV1QgYXV0aG9yaXplciBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tSnd0Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGlzIFVSTCBpcyB1c2VkIHRvIGZldGNoIE9wZW5JRCBDb25uZWN0IGNvbmZpZ3VyYXRpb24gb3IgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgbWV0YWRhdGFcbiAgICogZm9yIHZhbGlkYXRpbmcgaW5jb21pbmcgdG9rZW5zLlxuICAgKlxuICAgKiBQYXR0ZXJuOiAuKy9cXC53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uXG4gICAqIFJlcXVpcmVkOiBZZXNcbiAgICovXG4gIHJlYWRvbmx5IGRpc2NvdmVyeVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGluZGl2aWR1YWwgYXVkaWVuY2UgdmFsdWVzIHRoYXQgYXJlIHZhbGlkYXRlZCBpbiB0aGUgaW5jb21pbmcgSldUIHRva2VuIHZhbGlkYXRpb24gcHJvY2Vzcy5cbiAgICogQGRlZmF1bHQgLSBObyBhdWRpZW5jZSB2YWxpZGF0aW9uXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBpbmRpdmlkdWFsIGNsaWVudCBJRHMgdGhhdCBhcmUgdmFsaWRhdGVkIGluIHRoZSBpbmNvbWluZyBKV1QgdG9rZW4gdmFsaWRhdGlvbiBwcm9jZXNzLlxuICAgKiBAZGVmYXVsdCAtIE5vIGNsaWVudCBJRCB2YWxpZGF0aW9uXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkQ2xpZW50cz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEN1c3RvbSBKV1QgYXV0aG9yaXplciBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Kd3RBdXRob3JpemVyIGltcGxlbWVudHMgSUdhdGV3YXlBdXRob3JpemVyQ29uZmlnIHtcbiAgcHVibGljIHJlYWRvbmx5IGF1dGhvcml6ZXJUeXBlID0gR2F0ZXdheUF1dGhvcml6ZXJUeXBlLkNVU1RPTV9KV1Q7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzY292ZXJ5VXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZENsaWVudHM/OiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEN1c3RvbUp3dENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLmRpc2NvdmVyeVVybCA9IGNvbmZpZy5kaXNjb3ZlcnlVcmw7XG4gICAgdGhpcy5hbGxvd2VkQXVkaWVuY2UgPSBjb25maWcuYWxsb3dlZEF1ZGllbmNlO1xuICAgIHRoaXMuYWxsb3dlZENsaWVudHMgPSBjb25maWcuYWxsb3dlZENsaWVudHM7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21Kd3RBdXRob3JpemVyOiB7XG4gICAgICAgIGRpc2NvdmVyeVVybDogdGhpcy5kaXNjb3ZlcnlVcmwsXG4gICAgICAgIC4uLih0aGlzLmFsbG93ZWRBdWRpZW5jZSAmJiB7IGFsbG93ZWRBdWRpZW5jZTogdGhpcy5hbGxvd2VkQXVkaWVuY2UgfSksXG4gICAgICAgIC4uLih0aGlzLmFsbG93ZWRDbGllbnRzICYmIHsgYWxsb3dlZENsaWVudHM6IHRoaXMuYWxsb3dlZENsaWVudHMgfSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVdTIElBTVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEFXUyBJQU0gYXV0aG9yaXplciBjb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uXG4gKlxuICovXG5leHBvcnQgY2xhc3MgSWFtQXV0aG9yaXplciBpbXBsZW1lbnRzIElHYXRld2F5QXV0aG9yaXplckNvbmZpZyB7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemVyVHlwZSA9IEdhdGV3YXlBdXRob3JpemVyVHlwZS5BV1NfSUFNO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9yZW5kZXIoKTogYW55IHtcbiAgICAvLyBBV1MgSUFNIGF1dGhvcml6ZXIgZG9lc24ndCBuZWVkIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvblxuICAgIC8vIFJldHVybiBudWxsIG9yIHVuZGVmaW5lZCB0byBpbmRpY2F0ZSBubyBjb25maWd1cmF0aW9uIG5lZWRlZFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFjdG9yeVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9BdXRob3JpemVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIENvZ25pdG8gVXNlciBQb29sIHRvIHVzZSBmb3IgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2w7XG4gIC8qKlxuICAgKiBUaGUgYWxsb3dlZCBVc2VyIFBvb2wgY2xpZW50c1xuICAgKiBAZGVmYXVsdCAtIEFsbCBjbGllbnRzIGFyZSBhbGxvd2VkXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkQ2xpZW50cz86IElVc2VyUG9vbENsaWVudFtdO1xuICAvKipcbiAgICogVGhlIGFsbG93ZWQgYXVkaWVuY2VzIGZvciBKV1QgdmFsaWRhdGlvblxuICAgKiBAZGVmYXVsdCAtIE5vIGF1ZGllbmNlIHZhbGlkYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRBdWRpZW5jZXM/OiBzdHJpbmdbXTtcbn1cbi8qKlxuICogRmFjdG9yeSBjbGFzcyBmb3IgY3JlYXRpbmcgR2F0ZXdheSBBdXRob3JpemVyc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2F0ZXdheUF1dGhvcml6ZXIge1xuICAvKipcbiAgICogQVdTIElBTSBhdXRob3JpemVyIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nQXdzSWFtKCk6IElHYXRld2F5QXV0aG9yaXplckNvbmZpZyB7XG4gICAgcmV0dXJuIG5ldyBJYW1BdXRob3JpemVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY3VzdG9tIEpXVCBhdXRob3JpemVyXG4gICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIC0gVGhlIEpXVCBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIElHYXRld2F5QXV0aG9yaXplckNvbmZpZyBjb25maWd1cmVkIGZvciBjdXN0b20gSldUXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nQ3VzdG9tSnd0KGNvbmZpZ3VyYXRpb246IEN1c3RvbUp3dENvbmZpZ3VyYXRpb24pOiBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWcge1xuICAgIC8vIEF0IGxlYXN0IG9uZSBvZiBhbGxvd2VkQXVkaWVuY2Ugb3IgYWxsb3dlZENsaWVudHMgbXVzdCBiZSBkZWZpbmVkIGZvciBDVVNUT01fSldUIGF1dGhvcml6ZXJcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24uYWxsb3dlZEF1ZGllbmNlICYmICFjb25maWd1cmF0aW9uLmFsbG93ZWRDbGllbnRzKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdBdCBsZWFzdCBvbmUgb2YgYWxsb3dlZEF1ZGllbmNlIG9yIGFsbG93ZWRDbGllbnRzIG11c3QgYmUgZGVmaW5lZCBmb3IgQ1VTVE9NX0pXVCBhdXRob3JpemVyJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ3VzdG9tSnd0QXV0aG9yaXplcihjb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBKV1QgYXV0aG9yaXplciBmcm9tIENvZ25pdG8gVXNlciBQb29sXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBDb2duaXRvIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQ3VzdG9tSnd0QXV0aG9yaXplciBjb25maWd1cmVkIGZvciBDb2duaXRvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nQ29nbml0byhwcm9wczogQ29nbml0b0F1dGhvcml6ZXJQcm9wcyk6IElHYXRld2F5QXV0aG9yaXplckNvbmZpZyB7XG4gICAgY29uc3QgZGlzY292ZXJ5VXJsID0gYGh0dHBzOi8vY29nbml0by1pZHAuJHtwcm9wcy51c2VyUG9vbC5lbnYucmVnaW9ufS5hbWF6b25hd3MuY29tLyR7cHJvcHMudXNlclBvb2wudXNlclBvb2xJZH0vLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25gO1xuXG4gICAgcmV0dXJuIG5ldyBDdXN0b21Kd3RBdXRob3JpemVyKHtcbiAgICAgIGRpc2NvdmVyeVVybDogZGlzY292ZXJ5VXJsLFxuICAgICAgYWxsb3dlZENsaWVudHM6IHByb3BzLmFsbG93ZWRDbGllbnRzPy5mbGF0TWFwKChjbGllbnQpID0+IGNsaWVudC51c2VyUG9vbENsaWVudElkKSxcbiAgICAgIGFsbG93ZWRBdWRpZW5jZTogcHJvcHMuYWxsb3dlZEF1ZGllbmNlcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dGhvcml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw4REFBd0Q7QUFHeEQ7OytFQUUrRTtBQUUvRTs7R0FFRztBQUNILElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQixpQ0FBaUM7SUFDakMsa0RBQXlCLENBQUE7SUFDekIsOEJBQThCO0lBQzlCLDRDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxxQkFBcUIscUNBQXJCLHFCQUFxQixRQUtoQztBQTRERDs7R0FFRztBQUNILE1BQWEsbUJBQW1COztJQUNkLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7SUFDakQsWUFBWSxDQUFTO0lBQ3JCLGVBQWUsQ0FBWTtJQUMzQixjQUFjLENBQVk7SUFDMUIsYUFBYSxDQUFZO0lBQ3pCLFlBQVksQ0FBd0I7SUFFckQsWUFBWSxNQUE4Qjs7Ozs7OytDQVIvQixtQkFBbUI7Ozs7UUFTNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztLQUN6QztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLE9BQU87WUFDTCxtQkFBbUIsRUFBRTtnQkFDbkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3RFLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNoRSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUk7b0JBQ3ZELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDOUQsQ0FBQzthQUNIO1NBQ0YsQ0FBQztLQUNIOztBQS9CSCxrREFnQ0M7QUFFRDs7K0VBRStFO0FBRS9FOzs7R0FHRztBQUNILE1BQWEsYUFBYTs7SUFDUixjQUFjLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDO0lBRS9EOztPQUVHO0lBQ0gsT0FBTztRQUNMLDJEQUEyRDtRQUMzRCwrREFBK0Q7UUFDL0QsT0FBTyxTQUFTLENBQUM7S0FDbEI7O0FBVkgsc0NBV0M7QUFpQ0Q7O0dBRUc7QUFDSCxNQUFzQixpQkFBaUI7O0lBQ3JDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVc7UUFDdkIsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0tBQzVCO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBcUM7Ozs7Ozs7Ozs7UUFDaEUsNEhBQTRIO1FBQzVILElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbkksTUFBTSxJQUFJLG9DQUFlLENBQUMsMkhBQTJILENBQUMsQ0FBQztRQUN6SixDQUFDO1FBQ0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQy9DO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBNkI7Ozs7Ozs7Ozs7UUFDdEQsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sa0JBQWtCLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxtQ0FBbUMsQ0FBQztRQUVwSixPQUFPLElBQUksbUJBQW1CLENBQUM7WUFDN0IsWUFBWSxFQUFFLFlBQVk7WUFDMUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDbEYsZUFBZSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDdkMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtTQUNqQyxDQUFDLENBQUM7S0FDSjs7QUFwQ0gsOENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVVzZXJQb29sQ2xpZW50LCBJVXNlclBvb2wgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi92YWxpZGF0aW9uLWhlbHBlcnMnO1xuaW1wb3J0IHsgR2F0ZXdheUN1c3RvbUNsYWltIH0gZnJvbSAnLi9jdXN0b20tY2xhaW0nO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXplciBDb25maWd1cmF0aW9uXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogR2F0ZXdheSBhdXRob3JpemVyIHR5cGVcbiAqL1xuZXhwb3J0IGVudW0gR2F0ZXdheUF1dGhvcml6ZXJUeXBlIHtcbiAgLyoqIEN1c3RvbSBKV1QgYXV0aG9yaXplciB0eXBlICovXG4gIENVU1RPTV9KV1QgPSAnQ1VTVE9NX0pXVCcsXG4gIC8qKiBBV1MgSUFNIGF1dGhvcml6ZXIgdHlwZSAqL1xuICBBV1NfSUFNID0gJ0FXU19JQU0nLFxufVxuXG4vKipcbiAqIEFic3RyYWN0IGludGVyZmFjZSBmb3IgZ2F0ZXdheSBhdXRob3JpemVyIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWcge1xuICAvKipcbiAgICogVGhlIGF1dGhvcml6ZXIgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplclR5cGU6IEdhdGV3YXlBdXRob3JpemVyVHlwZTtcblxuICAvKipcbiAgICogVGhlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBpbiBDRk4gZm9ybWF0XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnk7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbSBKV1RcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQ3VzdG9tIEpXVCBhdXRob3JpemVyIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Kd3RDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoaXMgVVJMIGlzIHVzZWQgdG8gZmV0Y2ggT3BlbklEIENvbm5lY3QgY29uZmlndXJhdGlvbiBvciBhdXRob3JpemF0aW9uIHNlcnZlciBtZXRhZGF0YVxuICAgKiBmb3IgdmFsaWRhdGluZyBpbmNvbWluZyB0b2tlbnMuXG4gICAqXG4gICAqIFBhdHRlcm46IC4rL1xcLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb25cbiAgICogUmVxdWlyZWQ6IFllc1xuICAgKi9cbiAgcmVhZG9ubHkgZGlzY292ZXJ5VXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgaW5kaXZpZHVhbCBhdWRpZW5jZSB2YWx1ZXMgdGhhdCBhcmUgdmFsaWRhdGVkIGluIHRoZSBpbmNvbWluZyBKV1QgdG9rZW4gdmFsaWRhdGlvbiBwcm9jZXNzLlxuICAgKiBAZGVmYXVsdCAtIE5vIGF1ZGllbmNlIHZhbGlkYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRBdWRpZW5jZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGluZGl2aWR1YWwgY2xpZW50IElEcyB0aGF0IGFyZSB2YWxpZGF0ZWQgaW4gdGhlIGluY29taW5nIEpXVCB0b2tlbiB2YWxpZGF0aW9uIHByb2Nlc3MuXG4gICAqIEBkZWZhdWx0IC0gTm8gY2xpZW50IElEIHZhbGlkYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRDbGllbnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgaW5kaXZpZHVhbCBzY29wZXMgdGhhdCBhcmUgdmFsaWRhdGVkIGluIHRoZSBpbmNvbWluZyBKV1QgdG9rZW4gdmFsaWRhdGlvbiBwcm9jZXNzLlxuICAgKiBAZGVmYXVsdCAtIE5vIHNjb3BlIHZhbGlkYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ3VzdG9tIGNsYWltcyBmb3IgYWRkaXRpb25hbCBKV1QgdG9rZW4gdmFsaWRhdGlvbi5cbiAgICogQWxsb3dzIHlvdSB0byB2YWxpZGF0ZSBhZGRpdGlvbmFsIGZpZWxkcyBpbiBKV1QgdG9rZW5zIGJleW9uZCB0aGUgc3RhbmRhcmQgYXVkaWVuY2UsIGNsaWVudCwgYW5kIHNjb3BlIHZhbGlkYXRpb25zLlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBjbGFpbSB2YWxpZGF0aW9uXG4gICAqL1xuICByZWFkb25seSBjdXN0b21DbGFpbXM/OiBHYXRld2F5Q3VzdG9tQ2xhaW1bXTtcbn1cblxuLyoqXG4gKiBDdXN0b20gSldUIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBpbXBsZW1lbnRhdGlvblxuICovXG5leHBvcnQgY2xhc3MgQ3VzdG9tSnd0QXV0aG9yaXplciBpbXBsZW1lbnRzIElHYXRld2F5QXV0aG9yaXplckNvbmZpZyB7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemVyVHlwZSA9IEdhdGV3YXlBdXRob3JpemVyVHlwZS5DVVNUT01fSldUO1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc2NvdmVyeVVybDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRBdWRpZW5jZT86IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRDbGllbnRzPzogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IEdhdGV3YXlDdXN0b21DbGFpbVtdO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ3VzdG9tSnd0Q29uZmlndXJhdGlvbikge1xuICAgIHRoaXMuZGlzY292ZXJ5VXJsID0gY29uZmlnLmRpc2NvdmVyeVVybDtcbiAgICB0aGlzLmFsbG93ZWRBdWRpZW5jZSA9IGNvbmZpZy5hbGxvd2VkQXVkaWVuY2U7XG4gICAgdGhpcy5hbGxvd2VkQ2xpZW50cyA9IGNvbmZpZy5hbGxvd2VkQ2xpZW50cztcbiAgICB0aGlzLmFsbG93ZWRTY29wZXMgPSBjb25maWcuYWxsb3dlZFNjb3BlcztcbiAgICB0aGlzLmN1c3RvbUNsYWltcyA9IGNvbmZpZy5jdXN0b21DbGFpbXM7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21Kd3RBdXRob3JpemVyOiB7XG4gICAgICAgIGRpc2NvdmVyeVVybDogdGhpcy5kaXNjb3ZlcnlVcmwsXG4gICAgICAgIC4uLih0aGlzLmFsbG93ZWRBdWRpZW5jZSAmJiB7IGFsbG93ZWRBdWRpZW5jZTogdGhpcy5hbGxvd2VkQXVkaWVuY2UgfSksXG4gICAgICAgIC4uLih0aGlzLmFsbG93ZWRDbGllbnRzICYmIHsgYWxsb3dlZENsaWVudHM6IHRoaXMuYWxsb3dlZENsaWVudHMgfSksXG4gICAgICAgIC4uLih0aGlzLmFsbG93ZWRTY29wZXMgJiYgeyBhbGxvd2VkU2NvcGVzOiB0aGlzLmFsbG93ZWRTY29wZXMgfSksXG4gICAgICAgIC4uLih0aGlzLmN1c3RvbUNsYWltcyAmJiB0aGlzLmN1c3RvbUNsYWltcy5sZW5ndGggPiAwICYmIHtcbiAgICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zLm1hcChjbGFpbSA9PiBjbGFpbS5fcmVuZGVyKCkpLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBV1MgSUFNXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQVdTIElBTSBhdXRob3JpemVyIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBJYW1BdXRob3JpemVyIGltcGxlbWVudHMgSUdhdGV3YXlBdXRob3JpemVyQ29uZmlnIHtcbiAgcHVibGljIHJlYWRvbmx5IGF1dGhvcml6ZXJUeXBlID0gR2F0ZXdheUF1dGhvcml6ZXJUeXBlLkFXU19JQU07XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnkge1xuICAgIC8vIEFXUyBJQU0gYXV0aG9yaXplciBkb2Vzbid0IG5lZWQgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uXG4gICAgLy8gUmV0dXJuIG51bGwgb3IgdW5kZWZpbmVkIHRvIGluZGljYXRlIG5vIGNvbmZpZ3VyYXRpb24gbmVlZGVkXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWN0b3J5XG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0F1dGhvcml6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBVc2VyIFBvb2wgdG8gdXNlIGZvciBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2w6IElVc2VyUG9vbDtcbiAgLyoqXG4gICAqIFRoZSBhbGxvd2VkIFVzZXIgUG9vbCBjbGllbnRzXG4gICAqIEBkZWZhdWx0IC0gQWxsIGNsaWVudHMgYXJlIGFsbG93ZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRDbGllbnRzPzogSVVzZXJQb29sQ2xpZW50W107XG4gIC8qKlxuICAgKiBUaGUgYWxsb3dlZCBhdWRpZW5jZXMgZm9yIEpXVCB2YWxpZGF0aW9uXG4gICAqIEBkZWZhdWx0IC0gTm8gYXVkaWVuY2UgdmFsaWRhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEF1ZGllbmNlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGFsbG93ZWQgc2NvcGVzIGZvciBKV1QgdmFsaWRhdGlvblxuICAgKiBAZGVmYXVsdCAtIE5vIHNjb3BlIHZhbGlkYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEN1c3RvbSBjbGFpbXMgZm9yIGFkZGl0aW9uYWwgSldUIHRva2VuIHZhbGlkYXRpb24uXG4gICAqIEFsbG93cyB5b3UgdG8gdmFsaWRhdGUgYWRkaXRpb25hbCBmaWVsZHMgaW4gSldUIHRva2VucyBiZXlvbmQgdGhlIHN0YW5kYXJkIGF1ZGllbmNlLCBjbGllbnQsIGFuZCBzY29wZSB2YWxpZGF0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gY2xhaW0gdmFsaWRhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tQ2xhaW1zPzogR2F0ZXdheUN1c3RvbUNsYWltW107XG59XG4vKipcbiAqIEZhY3RvcnkgY2xhc3MgZm9yIGNyZWF0aW5nIEdhdGV3YXkgQXV0aG9yaXplcnNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdhdGV3YXlBdXRob3JpemVyIHtcbiAgLyoqXG4gICAqIEFXUyBJQU0gYXV0aG9yaXplciBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ0F3c0lhbSgpOiBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWcge1xuICAgIHJldHVybiBuZXcgSWFtQXV0aG9yaXplcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGN1c3RvbSBKV1QgYXV0aG9yaXplclxuICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiAtIFRoZSBKV1QgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJucyBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWcgY29uZmlndXJlZCBmb3IgY3VzdG9tIEpXVFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ0N1c3RvbUp3dChjb25maWd1cmF0aW9uOiBDdXN0b21Kd3RDb25maWd1cmF0aW9uKTogSUdhdGV3YXlBdXRob3JpemVyQ29uZmlnIHtcbiAgICAvLyBBdCBsZWFzdCBvbmUgb2YgYWxsb3dlZEF1ZGllbmNlLCBhbGxvd2VkQ2xpZW50cywgYWxsb3dlZFNjb3Blcywgb3IgY3VzdG9tQ2xhaW1zIG11c3QgYmUgZGVmaW5lZCBmb3IgQ1VTVE9NX0pXVCBhdXRob3JpemVyXG4gICAgaWYgKCFjb25maWd1cmF0aW9uLmFsbG93ZWRBdWRpZW5jZSAmJiAhY29uZmlndXJhdGlvbi5hbGxvd2VkQ2xpZW50cyAmJiAhY29uZmlndXJhdGlvbi5hbGxvd2VkU2NvcGVzICYmICFjb25maWd1cmF0aW9uLmN1c3RvbUNsYWltcykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignQXQgbGVhc3Qgb25lIG9mIGFsbG93ZWRBdWRpZW5jZSwgYWxsb3dlZENsaWVudHMsIGFsbG93ZWRTY29wZXMsIG9yIGN1c3RvbUNsYWltcyBtdXN0IGJlIGRlZmluZWQgZm9yIENVU1RPTV9KV1QgYXV0aG9yaXplcicpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEN1c3RvbUp3dEF1dGhvcml6ZXIoY29uZmlndXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgSldUIGF1dGhvcml6ZXIgZnJvbSBDb2duaXRvIFVzZXIgUG9vbFxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgQ29nbml0byBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIEN1c3RvbUp3dEF1dGhvcml6ZXIgY29uZmlndXJlZCBmb3IgQ29nbml0b1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ0NvZ25pdG8ocHJvcHM6IENvZ25pdG9BdXRob3JpemVyUHJvcHMpOiBJR2F0ZXdheUF1dGhvcml6ZXJDb25maWcge1xuICAgIGNvbnN0IGRpc2NvdmVyeVVybCA9IGBodHRwczovL2NvZ25pdG8taWRwLiR7cHJvcHMudXNlclBvb2wuZW52LnJlZ2lvbn0uYW1hem9uYXdzLmNvbS8ke3Byb3BzLnVzZXJQb29sLnVzZXJQb29sSWR9Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYDtcblxuICAgIHJldHVybiBuZXcgQ3VzdG9tSnd0QXV0aG9yaXplcih7XG4gICAgICBkaXNjb3ZlcnlVcmw6IGRpc2NvdmVyeVVybCxcbiAgICAgIGFsbG93ZWRDbGllbnRzOiBwcm9wcy5hbGxvd2VkQ2xpZW50cz8uZmxhdE1hcCgoY2xpZW50KSA9PiBjbGllbnQudXNlclBvb2xDbGllbnRJZCksXG4gICAgICBhbGxvd2VkQXVkaWVuY2U6IHByb3BzLmFsbG93ZWRBdWRpZW5jZXMsXG4gICAgICBhbGxvd2VkU2NvcGVzOiBwcm9wcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgY3VzdG9tQ2xhaW1zOiBwcm9wcy5jdXN0b21DbGFpbXMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+ import { CfnGateway } from 'aws-cdk-lib/aws-bedrockagentcore';
14
+ import { CustomClaimOperator } from '../../common/types';
15
+ /**
16
+ * Represents a custom claim validation configuration for Gateway JWT authorizers.
17
+ * Custom claims allow you to validate additional fields in JWT tokens beyond
18
+ * the standard audience, client, and scope validations.
19
+ */
20
+ export declare class GatewayCustomClaim {
21
+ private readonly name;
22
+ private readonly valueType;
23
+ private readonly operator;
24
+ private readonly value;
25
+ /**
26
+ * Create a custom claim with a string value.
27
+ * String claims must use the EQUALS operator.
28
+ *
29
+ * @param name The name of the claim in the JWT token
30
+ * @param value The string value to match (must exactly equal)
31
+ * @returns A GatewayCustomClaim configured for string validation
32
+ */
33
+ static withStringValue(name: string, value: string): GatewayCustomClaim;
34
+ /**
35
+ * Create a custom claim with a string array value.
36
+ * String array claims can use CONTAINS (default) or CONTAINS_ANY operator.
37
+ *
38
+ * @param name The name of the claim in the JWT token
39
+ * @param values The array of string values to match. For CONTAINS operator, must contain exactly one value.
40
+ * @param operator The match operator (defaults to CONTAINS)
41
+ * @returns A GatewayCustomClaim configured for string array validation
42
+ */
43
+ static withStringArrayValue(name: string, values: string[], operator?: CustomClaimOperator): GatewayCustomClaim;
44
+ private constructor();
45
+ /**
46
+ * Render the custom claim as a CloudFormation property
47
+ * @internal
48
+ */
49
+ _render(): CfnGateway.CustomClaimValidationTypeProperty;
50
+ }