aws-cdk-lib 2.165.0__py3-none-any.whl → 2.167.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (60) hide show
  1. aws_cdk/__init__.py +1 -1
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.165.0.jsii.tgz → aws-cdk-lib@2.167.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +9 -0
  5. aws_cdk/aws_appsync/__init__.py +2271 -359
  6. aws_cdk/aws_backup/__init__.py +57 -31
  7. aws_cdk/aws_bedrock/__init__.py +994 -197
  8. aws_cdk/aws_cleanrooms/__init__.py +66 -5
  9. aws_cdk/aws_cloudfront/__init__.py +21 -3
  10. aws_cdk/aws_cloudfront/experimental/__init__.py +3 -3
  11. aws_cdk/aws_codebuild/__init__.py +59 -29
  12. aws_cdk/aws_codepipeline/__init__.py +98 -5
  13. aws_cdk/aws_codestar/__init__.py +1 -1
  14. aws_cdk/aws_cognito/__init__.py +0 -8
  15. aws_cdk/aws_connect/__init__.py +1 -1
  16. aws_cdk/aws_datasync/__init__.py +60 -7
  17. aws_cdk/aws_devopsguru/__init__.py +2 -2
  18. aws_cdk/aws_dms/__init__.py +762 -0
  19. aws_cdk/aws_dynamodb/__init__.py +13 -8
  20. aws_cdk/aws_ec2/__init__.py +316 -11
  21. aws_cdk/aws_ecs/__init__.py +20 -7
  22. aws_cdk/aws_elasticache/__init__.py +16 -9
  23. aws_cdk/aws_elasticloadbalancingv2/__init__.py +73 -46
  24. aws_cdk/aws_emrserverless/__init__.py +35 -33
  25. aws_cdk/aws_events/__init__.py +25 -30
  26. aws_cdk/aws_gamelift/__init__.py +52 -40
  27. aws_cdk/aws_inspectorv2/__init__.py +6 -12
  28. aws_cdk/aws_kinesis/__init__.py +297 -1
  29. aws_cdk/aws_kms/__init__.py +2 -0
  30. aws_cdk/aws_lambda/__init__.py +339 -22
  31. aws_cdk/aws_lambda_nodejs/__init__.py +3 -3
  32. aws_cdk/aws_logs/__init__.py +214 -0
  33. aws_cdk/aws_m2/__init__.py +58 -58
  34. aws_cdk/aws_mediapackagev2/__init__.py +191 -0
  35. aws_cdk/aws_networkfirewall/__init__.py +14 -5
  36. aws_cdk/aws_nimblestudio/__init__.py +6 -103
  37. aws_cdk/aws_opensearchservice/__init__.py +969 -0
  38. aws_cdk/aws_pipes/__init__.py +1 -1
  39. aws_cdk/aws_qbusiness/__init__.py +2 -0
  40. aws_cdk/aws_quicksight/__init__.py +481 -10
  41. aws_cdk/aws_rds/__init__.py +667 -16
  42. aws_cdk/aws_route53/__init__.py +38 -12
  43. aws_cdk/aws_s3_assets/__init__.py +37 -0
  44. aws_cdk/aws_s3_deployment/__init__.py +18 -7
  45. aws_cdk/aws_sagemaker/__init__.py +61 -25
  46. aws_cdk/aws_secretsmanager/__init__.py +2 -1
  47. aws_cdk/aws_servicecatalog/__init__.py +52 -4
  48. aws_cdk/aws_ses/__init__.py +22 -1
  49. aws_cdk/aws_sqs/__init__.py +12 -9
  50. aws_cdk/aws_stepfunctions/__init__.py +8 -0
  51. aws_cdk/aws_synthetics/__init__.py +133 -1
  52. aws_cdk/aws_timestream/__init__.py +41 -0
  53. aws_cdk/aws_wisdom/__init__.py +2348 -54
  54. aws_cdk/triggers/__init__.py +3 -3
  55. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/METADATA +1 -1
  56. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/RECORD +60 -60
  57. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/WHEEL +1 -1
  58. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/LICENSE +0 -0
  59. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/NOTICE +0 -0
  60. {aws_cdk_lib-2.165.0.dist-info → aws_cdk_lib-2.167.0.dist-info}/top_level.txt +0 -0
@@ -972,6 +972,7 @@ from .. import (
972
972
  IResolvable as _IResolvable_da3f097b,
973
973
  IResource as _IResource_c80c4260,
974
974
  ITaggable as _ITaggable_36806126,
975
+ ITaggableV2 as _ITaggableV2_4e6798f8,
975
976
  IgnoreMode as _IgnoreMode_655a98e8,
976
977
  Resource as _Resource_45bc6135,
977
978
  ResourceProps as _ResourceProps_15a65b4e,
@@ -991,6 +992,7 @@ from ..aws_iam import (
991
992
  IRole as _IRole_235f5d8e,
992
993
  Role as _Role_e8c6e11f,
993
994
  )
995
+ from ..aws_kms import IKey as _IKey_5f11635f
994
996
  from ..aws_lambda import IFunction as _IFunction_6adb0ab8
995
997
  from ..aws_logs import (
996
998
  ILogGroup as _ILogGroup_3c4fa718, RetentionDays as _RetentionDays_070f99f0
@@ -2445,16 +2447,16 @@ class CachingConfig:
2445
2447
  )
2446
2448
 
2447
2449
 
2448
- @jsii.implements(_IInspectable_c2943556)
2449
- class CfnApiCache(
2450
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
2451
+ class CfnApi(
2450
2452
  _CfnResource_9df397a6,
2451
2453
  metaclass=jsii.JSIIMeta,
2452
- jsii_type="aws-cdk-lib.aws_appsync.CfnApiCache",
2454
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi",
2453
2455
  ):
2454
- '''The ``AWS::AppSync::ApiCache`` resource represents the input of a ``CreateApiCache`` operation.
2456
+ '''The ``AWS::AppSync::Api`` resource creates an AWS AppSync API that you can use for an AWS AppSync API with your preferred configuration, such as an Event API that provides real-time message publishing and message subscriptions over WebSockets.
2455
2457
 
2456
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html
2457
- :cloudformationResource: AWS::AppSync::ApiCache
2458
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html
2459
+ :cloudformationResource: AWS::AppSync::Api
2458
2460
  :exampleMetadata: fixture=_generated
2459
2461
 
2460
2462
  Example::
@@ -2463,16 +2465,59 @@ class CfnApiCache(
2463
2465
  # The values are placeholders you should change.
2464
2466
  from aws_cdk import aws_appsync as appsync
2465
2467
 
2466
- cfn_api_cache = appsync.CfnApiCache(self, "MyCfnApiCache",
2467
- api_caching_behavior="apiCachingBehavior",
2468
- api_id="apiId",
2469
- ttl=123,
2470
- type="type",
2468
+ cfn_api = appsync.CfnApi(self, "MyCfnApi",
2469
+ name="name",
2471
2470
 
2472
2471
  # the properties below are optional
2473
- at_rest_encryption_enabled=False,
2474
- health_metrics_config="healthMetricsConfig",
2475
- transit_encryption_enabled=False
2472
+ event_config=appsync.CfnApi.EventConfigProperty(
2473
+ auth_providers=[appsync.CfnApi.AuthProviderProperty(
2474
+ auth_type="authType",
2475
+
2476
+ # the properties below are optional
2477
+ cognito_config=appsync.CfnApi.CognitoConfigProperty(
2478
+ aws_region="awsRegion",
2479
+ user_pool_id="userPoolId",
2480
+
2481
+ # the properties below are optional
2482
+ app_id_client_regex="appIdClientRegex"
2483
+ ),
2484
+ lambda_authorizer_config=appsync.CfnApi.LambdaAuthorizerConfigProperty(
2485
+ authorizer_uri="authorizerUri",
2486
+
2487
+ # the properties below are optional
2488
+ authorizer_result_ttl_in_seconds=123,
2489
+ identity_validation_expression="identityValidationExpression"
2490
+ ),
2491
+ open_id_connect_config=appsync.CfnApi.OpenIDConnectConfigProperty(
2492
+ issuer="issuer",
2493
+
2494
+ # the properties below are optional
2495
+ auth_ttl=123,
2496
+ client_id="clientId",
2497
+ iat_ttl=123
2498
+ )
2499
+ )],
2500
+ connection_auth_modes=[appsync.CfnApi.AuthModeProperty(
2501
+ auth_type="authType"
2502
+ )],
2503
+ default_publish_auth_modes=[appsync.CfnApi.AuthModeProperty(
2504
+ auth_type="authType"
2505
+ )],
2506
+ default_subscribe_auth_modes=[appsync.CfnApi.AuthModeProperty(
2507
+ auth_type="authType"
2508
+ )],
2509
+
2510
+ # the properties below are optional
2511
+ log_config=appsync.CfnApi.EventLogConfigProperty(
2512
+ cloud_watch_logs_role_arn="cloudWatchLogsRoleArn",
2513
+ log_level="logLevel"
2514
+ )
2515
+ ),
2516
+ owner_contact="ownerContact",
2517
+ tags=[CfnTag(
2518
+ key="key",
2519
+ value="value"
2520
+ )]
2476
2521
  )
2477
2522
  '''
2478
2523
 
@@ -2481,37 +2526,28 @@ class CfnApiCache(
2481
2526
  scope: _constructs_77d1e7e8.Construct,
2482
2527
  id: builtins.str,
2483
2528
  *,
2484
- api_caching_behavior: builtins.str,
2485
- api_id: builtins.str,
2486
- ttl: jsii.Number,
2487
- type: builtins.str,
2488
- at_rest_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2489
- health_metrics_config: typing.Optional[builtins.str] = None,
2490
- transit_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2529
+ name: builtins.str,
2530
+ event_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.EventConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2531
+ owner_contact: typing.Optional[builtins.str] = None,
2532
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2491
2533
  ) -> None:
2492
2534
  '''
2493
2535
  :param scope: Scope in which this resource is defined.
2494
2536
  :param id: Construct identifier for this resource (unique in its scope).
2495
- :param api_caching_behavior: Caching behavior. - *FULL_REQUEST_CACHING* : All requests are fully cached. - *PER_RESOLVER_CACHING* : Individual resolvers that you specify are cached.
2496
- :param api_id: The GraphQL API ID.
2497
- :param ttl: TTL in seconds for cache entries. Valid values are 1–3,600 seconds.
2498
- :param type: The cache instance type. Valid values are. - ``SMALL`` - ``MEDIUM`` - ``LARGE`` - ``XLARGE`` - ``LARGE_2X`` - ``LARGE_4X`` - ``LARGE_8X`` (not available in all regions) - ``LARGE_12X`` Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: - *T2_SMALL* : A t2.small instance type. - *T2_MEDIUM* : A t2.medium instance type. - *R4_LARGE* : A r4.large instance type. - *R4_XLARGE* : A r4.xlarge instance type. - *R4_2XLARGE* : A r4.2xlarge instance type. - *R4_4XLARGE* : A r4.4xlarge instance type. - *R4_8XLARGE* : A r4.8xlarge instance type.
2499
- :param at_rest_encryption_enabled: At-rest encryption flag for cache. You cannot update this setting after creation.
2500
- :param health_metrics_config: Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:. - *NetworkBandwidthOutAllowanceExceeded* : The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration. - *EngineCPUUtilization* : The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration. Metrics will be recorded by API ID. You can set the value to ``ENABLED`` or ``DISABLED`` .
2501
- :param transit_encryption_enabled: Transit encryption flag when connecting to cache. You cannot update this setting after creation.
2537
+ :param name: The name of the ``Api`` .
2538
+ :param event_config: Describes the authorization configuration for connections, message publishing, message subscriptions, and logging for an Event API.
2539
+ :param owner_contact: The owner contact information for an API resource. This field accepts any string input with a length of 0 - 256 characters.
2540
+ :param tags: A set of tags (key-value pairs) for this API.
2502
2541
  '''
2503
2542
  if __debug__:
2504
- type_hints = typing.get_type_hints(_typecheckingstub__e9d92b7b2abdac7341eb92f7ac10d2d67dd2700af68eaf42c72c47ffdaacc344)
2543
+ type_hints = typing.get_type_hints(_typecheckingstub__9b24e030284e4cb760e04c0345cc69b457962fa5c53b82f009a5c412ad0fa1e5)
2505
2544
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2506
2545
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2507
- props = CfnApiCacheProps(
2508
- api_caching_behavior=api_caching_behavior,
2509
- api_id=api_id,
2510
- ttl=ttl,
2511
- type=type,
2512
- at_rest_encryption_enabled=at_rest_encryption_enabled,
2513
- health_metrics_config=health_metrics_config,
2514
- transit_encryption_enabled=transit_encryption_enabled,
2546
+ props = CfnApiProps(
2547
+ name=name,
2548
+ event_config=event_config,
2549
+ owner_contact=owner_contact,
2550
+ tags=tags,
2515
2551
  )
2516
2552
 
2517
2553
  jsii.create(self.__class__, self, [scope, id, props])
@@ -2523,7 +2559,7 @@ class CfnApiCache(
2523
2559
  :param inspector: tree inspector to collect and process attributes.
2524
2560
  '''
2525
2561
  if __debug__:
2526
- type_hints = typing.get_type_hints(_typecheckingstub__142193172b7ee1304f3b8fd949531b4cfa950ea62d0dc10f9ed5a184a603132d)
2562
+ type_hints = typing.get_type_hints(_typecheckingstub__1a34658e511f6fa9562934d95c768fd4b2af2314ddf2dab2969f39073417c21f)
2527
2563
  check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
2528
2564
  return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
2529
2565
 
@@ -2536,7 +2572,7 @@ class CfnApiCache(
2536
2572
  :param props: -
2537
2573
  '''
2538
2574
  if __debug__:
2539
- type_hints = typing.get_type_hints(_typecheckingstub__1ce863b5f21a86ce886458054cd4de0550269c18eb7c4f3fb37884dc2869845e)
2575
+ type_hints = typing.get_type_hints(_typecheckingstub__80dee192d808ade2b05e0e5eae2e320cb156ff9affe045ecbcaf005a54690f10)
2540
2576
  check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2541
2577
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
2542
2578
 
@@ -2547,309 +2583,1740 @@ class CfnApiCache(
2547
2583
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
2548
2584
 
2549
2585
  @builtins.property
2550
- @jsii.member(jsii_name="attrId")
2551
- def attr_id(self) -> builtins.str:
2552
- '''
2553
- :cloudformationAttribute: Id
2586
+ @jsii.member(jsii_name="attrApiArn")
2587
+ def attr_api_arn(self) -> builtins.str:
2588
+ '''The Amazon Resource Name (ARN) of the AWS AppSync Api.
2589
+
2590
+ :cloudformationAttribute: ApiArn
2554
2591
  '''
2555
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
2592
+ return typing.cast(builtins.str, jsii.get(self, "attrApiArn"))
2556
2593
 
2557
2594
  @builtins.property
2558
- @jsii.member(jsii_name="cfnProperties")
2559
- def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2560
- return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2595
+ @jsii.member(jsii_name="attrApiId")
2596
+ def attr_api_id(self) -> builtins.str:
2597
+ '''The unique identifier for the AWS AppSync Api generated by the service.
2598
+
2599
+ :cloudformationAttribute: ApiId
2600
+ '''
2601
+ return typing.cast(builtins.str, jsii.get(self, "attrApiId"))
2561
2602
 
2562
2603
  @builtins.property
2563
- @jsii.member(jsii_name="apiCachingBehavior")
2564
- def api_caching_behavior(self) -> builtins.str:
2565
- '''Caching behavior.'''
2566
- return typing.cast(builtins.str, jsii.get(self, "apiCachingBehavior"))
2604
+ @jsii.member(jsii_name="attrDns")
2605
+ def attr_dns(self) -> _IResolvable_da3f097b:
2606
+ '''A map of DNS names for the AppSync API.
2567
2607
 
2568
- @api_caching_behavior.setter
2569
- def api_caching_behavior(self, value: builtins.str) -> None:
2570
- if __debug__:
2571
- type_hints = typing.get_type_hints(_typecheckingstub__aee6b3576fbf654864dae4f55fe292d210bf01534f16f80af0ac225f8fa338c9)
2572
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2573
- jsii.set(self, "apiCachingBehavior", value) # pyright: ignore[reportArgumentType]
2608
+ :cloudformationAttribute: Dns
2609
+ '''
2610
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrDns"))
2574
2611
 
2575
2612
  @builtins.property
2576
- @jsii.member(jsii_name="apiId")
2577
- def api_id(self) -> builtins.str:
2578
- '''The GraphQL API ID.'''
2579
- return typing.cast(builtins.str, jsii.get(self, "apiId"))
2613
+ @jsii.member(jsii_name="attrDnsHttp")
2614
+ def attr_dns_http(self) -> builtins.str:
2615
+ '''The domain name of the Api's HTTP endpoint.
2580
2616
 
2581
- @api_id.setter
2582
- def api_id(self, value: builtins.str) -> None:
2583
- if __debug__:
2584
- type_hints = typing.get_type_hints(_typecheckingstub__6c2fdac623dbaddb2a0226d75e6f3ca84c058f3f46b9c9a1289820c1cf0827e1)
2585
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2586
- jsii.set(self, "apiId", value) # pyright: ignore[reportArgumentType]
2617
+ :cloudformationAttribute: Dns.Http
2618
+ '''
2619
+ return typing.cast(builtins.str, jsii.get(self, "attrDnsHttp"))
2587
2620
 
2588
2621
  @builtins.property
2589
- @jsii.member(jsii_name="ttl")
2590
- def ttl(self) -> jsii.Number:
2591
- '''TTL in seconds for cache entries.'''
2592
- return typing.cast(jsii.Number, jsii.get(self, "ttl"))
2622
+ @jsii.member(jsii_name="attrDnsRealtime")
2623
+ def attr_dns_realtime(self) -> builtins.str:
2624
+ '''The domain name of the Api's real-time endpoint.
2593
2625
 
2594
- @ttl.setter
2595
- def ttl(self, value: jsii.Number) -> None:
2596
- if __debug__:
2597
- type_hints = typing.get_type_hints(_typecheckingstub__1893b7ba08236941b8e5bb4704e7fe53f8819086085796443b5d68f513e66eaa)
2598
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2599
- jsii.set(self, "ttl", value) # pyright: ignore[reportArgumentType]
2626
+ :cloudformationAttribute: Dns.Realtime
2627
+ '''
2628
+ return typing.cast(builtins.str, jsii.get(self, "attrDnsRealtime"))
2600
2629
 
2601
2630
  @builtins.property
2602
- @jsii.member(jsii_name="type")
2603
- def type(self) -> builtins.str:
2604
- '''The cache instance type.
2631
+ @jsii.member(jsii_name="cdkTagManager")
2632
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
2633
+ '''Tag Manager which manages the tags for this resource.'''
2634
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
2605
2635
 
2606
- Valid values are.
2607
- '''
2608
- return typing.cast(builtins.str, jsii.get(self, "type"))
2636
+ @builtins.property
2637
+ @jsii.member(jsii_name="cfnProperties")
2638
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2639
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2609
2640
 
2610
- @type.setter
2611
- def type(self, value: builtins.str) -> None:
2641
+ @builtins.property
2642
+ @jsii.member(jsii_name="name")
2643
+ def name(self) -> builtins.str:
2644
+ '''The name of the ``Api`` .'''
2645
+ return typing.cast(builtins.str, jsii.get(self, "name"))
2646
+
2647
+ @name.setter
2648
+ def name(self, value: builtins.str) -> None:
2612
2649
  if __debug__:
2613
- type_hints = typing.get_type_hints(_typecheckingstub__45dc491e21920c6cd0ddecd9aada80283ac759d9eaca52c45a6ce35197166e9d)
2650
+ type_hints = typing.get_type_hints(_typecheckingstub__2bbcc5e3c150d28701074668c2cc2da51f0ba8e3870f53f61466fcc37a9b9d92)
2614
2651
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2615
- jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]
2652
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
2616
2653
 
2617
2654
  @builtins.property
2618
- @jsii.member(jsii_name="atRestEncryptionEnabled")
2619
- def at_rest_encryption_enabled(
2655
+ @jsii.member(jsii_name="eventConfig")
2656
+ def event_config(
2620
2657
  self,
2621
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2622
- '''At-rest encryption flag for cache.'''
2623
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "atRestEncryptionEnabled"))
2658
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.EventConfigProperty"]]:
2659
+ '''Describes the authorization configuration for connections, message publishing, message subscriptions, and logging for an Event API.'''
2660
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.EventConfigProperty"]], jsii.get(self, "eventConfig"))
2624
2661
 
2625
- @at_rest_encryption_enabled.setter
2626
- def at_rest_encryption_enabled(
2662
+ @event_config.setter
2663
+ def event_config(
2627
2664
  self,
2628
- value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
2665
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.EventConfigProperty"]],
2629
2666
  ) -> None:
2630
2667
  if __debug__:
2631
- type_hints = typing.get_type_hints(_typecheckingstub__93a4abe242f634763c1f128b7e17017d1176924c9b032d5536f4caa3b3fc3bd6)
2668
+ type_hints = typing.get_type_hints(_typecheckingstub__9323cec9a000145849866e550b55f0a549087cc444c4fa5706fdbc7c1455d154)
2632
2669
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2633
- jsii.set(self, "atRestEncryptionEnabled", value) # pyright: ignore[reportArgumentType]
2670
+ jsii.set(self, "eventConfig", value) # pyright: ignore[reportArgumentType]
2634
2671
 
2635
2672
  @builtins.property
2636
- @jsii.member(jsii_name="healthMetricsConfig")
2637
- def health_metrics_config(self) -> typing.Optional[builtins.str]:
2638
- '''Controls how cache health metrics will be emitted to CloudWatch.
2639
-
2640
- Cache health metrics include:.
2641
- '''
2642
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "healthMetricsConfig"))
2673
+ @jsii.member(jsii_name="ownerContact")
2674
+ def owner_contact(self) -> typing.Optional[builtins.str]:
2675
+ '''The owner contact information for an API resource.'''
2676
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ownerContact"))
2643
2677
 
2644
- @health_metrics_config.setter
2645
- def health_metrics_config(self, value: typing.Optional[builtins.str]) -> None:
2678
+ @owner_contact.setter
2679
+ def owner_contact(self, value: typing.Optional[builtins.str]) -> None:
2646
2680
  if __debug__:
2647
- type_hints = typing.get_type_hints(_typecheckingstub__55de0a796fc6cc946fccbec8ff82c493648ae16228267a0627a624d4e64e10dd)
2681
+ type_hints = typing.get_type_hints(_typecheckingstub__b829d518b74ad55cbf9233be61a91ddec84af300e750befd18c27d6ec18db38d)
2648
2682
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2649
- jsii.set(self, "healthMetricsConfig", value) # pyright: ignore[reportArgumentType]
2683
+ jsii.set(self, "ownerContact", value) # pyright: ignore[reportArgumentType]
2650
2684
 
2651
2685
  @builtins.property
2652
- @jsii.member(jsii_name="transitEncryptionEnabled")
2653
- def transit_encryption_enabled(
2654
- self,
2655
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2656
- '''Transit encryption flag when connecting to cache.'''
2657
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "transitEncryptionEnabled"))
2686
+ @jsii.member(jsii_name="tags")
2687
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2688
+ '''A set of tags (key-value pairs) for this API.'''
2689
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
2658
2690
 
2659
- @transit_encryption_enabled.setter
2660
- def transit_encryption_enabled(
2661
- self,
2662
- value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
2663
- ) -> None:
2691
+ @tags.setter
2692
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
2664
2693
  if __debug__:
2665
- type_hints = typing.get_type_hints(_typecheckingstub__eb39499095e917401c885f7c77781744d09df071b1ed62c6f2c32cbbc6fbdb33)
2694
+ type_hints = typing.get_type_hints(_typecheckingstub__a8b30f166f8b9fa0fc02ab2eb4ff33b85277e77827ecebf6d7fd569a6667a8ea)
2666
2695
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2667
- jsii.set(self, "transitEncryptionEnabled", value) # pyright: ignore[reportArgumentType]
2696
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
2668
2697
 
2698
+ @jsii.data_type(
2699
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.AuthModeProperty",
2700
+ jsii_struct_bases=[],
2701
+ name_mapping={"auth_type": "authType"},
2702
+ )
2703
+ class AuthModeProperty:
2704
+ def __init__(self, *, auth_type: typing.Optional[builtins.str] = None) -> None:
2705
+ '''Describes an authorization configuration.
2669
2706
 
2670
- @jsii.data_type(
2671
- jsii_type="aws-cdk-lib.aws_appsync.CfnApiCacheProps",
2672
- jsii_struct_bases=[],
2673
- name_mapping={
2674
- "api_caching_behavior": "apiCachingBehavior",
2675
- "api_id": "apiId",
2676
- "ttl": "ttl",
2677
- "type": "type",
2678
- "at_rest_encryption_enabled": "atRestEncryptionEnabled",
2679
- "health_metrics_config": "healthMetricsConfig",
2680
- "transit_encryption_enabled": "transitEncryptionEnabled",
2681
- },
2682
- )
2683
- class CfnApiCacheProps:
2684
- def __init__(
2685
- self,
2686
- *,
2687
- api_caching_behavior: builtins.str,
2688
- api_id: builtins.str,
2689
- ttl: jsii.Number,
2690
- type: builtins.str,
2691
- at_rest_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2692
- health_metrics_config: typing.Optional[builtins.str] = None,
2693
- transit_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2694
- ) -> None:
2695
- '''Properties for defining a ``CfnApiCache``.
2707
+ Use ``AuthMode`` to specify the publishing and subscription authorization configuration for an Event API.
2696
2708
 
2697
- :param api_caching_behavior: Caching behavior. - *FULL_REQUEST_CACHING* : All requests are fully cached. - *PER_RESOLVER_CACHING* : Individual resolvers that you specify are cached.
2698
- :param api_id: The GraphQL API ID.
2699
- :param ttl: TTL in seconds for cache entries. Valid values are 1–3,600 seconds.
2700
- :param type: The cache instance type. Valid values are. - ``SMALL`` - ``MEDIUM`` - ``LARGE`` - ``XLARGE`` - ``LARGE_2X`` - ``LARGE_4X`` - ``LARGE_8X`` (not available in all regions) - ``LARGE_12X`` Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: - *T2_SMALL* : A t2.small instance type. - *T2_MEDIUM* : A t2.medium instance type. - *R4_LARGE* : A r4.large instance type. - *R4_XLARGE* : A r4.xlarge instance type. - *R4_2XLARGE* : A r4.2xlarge instance type. - *R4_4XLARGE* : A r4.4xlarge instance type. - *R4_8XLARGE* : A r4.8xlarge instance type.
2701
- :param at_rest_encryption_enabled: At-rest encryption flag for cache. You cannot update this setting after creation.
2702
- :param health_metrics_config: Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:. - *NetworkBandwidthOutAllowanceExceeded* : The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration. - *EngineCPUUtilization* : The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration. Metrics will be recorded by API ID. You can set the value to ``ENABLED`` or ``DISABLED`` .
2703
- :param transit_encryption_enabled: Transit encryption flag when connecting to cache. You cannot update this setting after creation.
2709
+ :param auth_type: The authorization type.
2704
2710
 
2705
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html
2706
- :exampleMetadata: fixture=_generated
2711
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authmode.html
2712
+ :exampleMetadata: fixture=_generated
2707
2713
 
2708
- Example::
2714
+ Example::
2709
2715
 
2710
- # The code below shows an example of how to instantiate this type.
2711
- # The values are placeholders you should change.
2712
- from aws_cdk import aws_appsync as appsync
2713
-
2714
- cfn_api_cache_props = appsync.CfnApiCacheProps(
2715
- api_caching_behavior="apiCachingBehavior",
2716
- api_id="apiId",
2717
- ttl=123,
2718
- type="type",
2719
-
2720
- # the properties below are optional
2721
- at_rest_encryption_enabled=False,
2722
- health_metrics_config="healthMetricsConfig",
2723
- transit_encryption_enabled=False
2724
- )
2725
- '''
2726
- if __debug__:
2727
- type_hints = typing.get_type_hints(_typecheckingstub__8f054fa3186eb5f122c20e523bed485713c72511ee3ee94be25733ecad9a348c)
2728
- check_type(argname="argument api_caching_behavior", value=api_caching_behavior, expected_type=type_hints["api_caching_behavior"])
2729
- check_type(argname="argument api_id", value=api_id, expected_type=type_hints["api_id"])
2730
- check_type(argname="argument ttl", value=ttl, expected_type=type_hints["ttl"])
2731
- check_type(argname="argument type", value=type, expected_type=type_hints["type"])
2732
- check_type(argname="argument at_rest_encryption_enabled", value=at_rest_encryption_enabled, expected_type=type_hints["at_rest_encryption_enabled"])
2733
- check_type(argname="argument health_metrics_config", value=health_metrics_config, expected_type=type_hints["health_metrics_config"])
2716
+ # The code below shows an example of how to instantiate this type.
2717
+ # The values are placeholders you should change.
2718
+ from aws_cdk import aws_appsync as appsync
2719
+
2720
+ auth_mode_property = appsync.CfnApi.AuthModeProperty(
2721
+ auth_type="authType"
2722
+ )
2723
+ '''
2724
+ if __debug__:
2725
+ type_hints = typing.get_type_hints(_typecheckingstub__27b661cb5be7fc793a7469c90adcd7629e723a94b2a389fead69d96cfde5dba2)
2726
+ check_type(argname="argument auth_type", value=auth_type, expected_type=type_hints["auth_type"])
2727
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2728
+ if auth_type is not None:
2729
+ self._values["auth_type"] = auth_type
2730
+
2731
+ @builtins.property
2732
+ def auth_type(self) -> typing.Optional[builtins.str]:
2733
+ '''The authorization type.
2734
+
2735
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authmode.html#cfn-appsync-api-authmode-authtype
2736
+ '''
2737
+ result = self._values.get("auth_type")
2738
+ return typing.cast(typing.Optional[builtins.str], result)
2739
+
2740
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2741
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2742
+
2743
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2744
+ return not (rhs == self)
2745
+
2746
+ def __repr__(self) -> str:
2747
+ return "AuthModeProperty(%s)" % ", ".join(
2748
+ k + "=" + repr(v) for k, v in self._values.items()
2749
+ )
2750
+
2751
+ @jsii.data_type(
2752
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.AuthProviderProperty",
2753
+ jsii_struct_bases=[],
2754
+ name_mapping={
2755
+ "auth_type": "authType",
2756
+ "cognito_config": "cognitoConfig",
2757
+ "lambda_authorizer_config": "lambdaAuthorizerConfig",
2758
+ "open_id_connect_config": "openIdConnectConfig",
2759
+ },
2760
+ )
2761
+ class AuthProviderProperty:
2762
+ def __init__(
2763
+ self,
2764
+ *,
2765
+ auth_type: builtins.str,
2766
+ cognito_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.CognitoConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2767
+ lambda_authorizer_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.LambdaAuthorizerConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2768
+ open_id_connect_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.OpenIDConnectConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2769
+ ) -> None:
2770
+ '''Describes an authorization provider.
2771
+
2772
+ :param auth_type: The authorization type.
2773
+ :param cognito_config: Describes an Amazon Cognito user pool configuration.
2774
+ :param lambda_authorizer_config: A ``LambdaAuthorizerConfig`` specifies how to authorize AWS AppSync API access when using the ``AWS_LAMBDA`` authorizer mode. Be aware that an AWS AppSync API can have only one AWS Lambda authorizer configured at a time.
2775
+ :param open_id_connect_config: Describes an OpenID Connect (OIDC) configuration.
2776
+
2777
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authprovider.html
2778
+ :exampleMetadata: fixture=_generated
2779
+
2780
+ Example::
2781
+
2782
+ # The code below shows an example of how to instantiate this type.
2783
+ # The values are placeholders you should change.
2784
+ from aws_cdk import aws_appsync as appsync
2785
+
2786
+ auth_provider_property = appsync.CfnApi.AuthProviderProperty(
2787
+ auth_type="authType",
2788
+
2789
+ # the properties below are optional
2790
+ cognito_config=appsync.CfnApi.CognitoConfigProperty(
2791
+ aws_region="awsRegion",
2792
+ user_pool_id="userPoolId",
2793
+
2794
+ # the properties below are optional
2795
+ app_id_client_regex="appIdClientRegex"
2796
+ ),
2797
+ lambda_authorizer_config=appsync.CfnApi.LambdaAuthorizerConfigProperty(
2798
+ authorizer_uri="authorizerUri",
2799
+
2800
+ # the properties below are optional
2801
+ authorizer_result_ttl_in_seconds=123,
2802
+ identity_validation_expression="identityValidationExpression"
2803
+ ),
2804
+ open_id_connect_config=appsync.CfnApi.OpenIDConnectConfigProperty(
2805
+ issuer="issuer",
2806
+
2807
+ # the properties below are optional
2808
+ auth_ttl=123,
2809
+ client_id="clientId",
2810
+ iat_ttl=123
2811
+ )
2812
+ )
2813
+ '''
2814
+ if __debug__:
2815
+ type_hints = typing.get_type_hints(_typecheckingstub__d3b431432784c1151b3b95b1186edc1bcfaa11a3f70614ce43f998df8d1ae46d)
2816
+ check_type(argname="argument auth_type", value=auth_type, expected_type=type_hints["auth_type"])
2817
+ check_type(argname="argument cognito_config", value=cognito_config, expected_type=type_hints["cognito_config"])
2818
+ check_type(argname="argument lambda_authorizer_config", value=lambda_authorizer_config, expected_type=type_hints["lambda_authorizer_config"])
2819
+ check_type(argname="argument open_id_connect_config", value=open_id_connect_config, expected_type=type_hints["open_id_connect_config"])
2820
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2821
+ "auth_type": auth_type,
2822
+ }
2823
+ if cognito_config is not None:
2824
+ self._values["cognito_config"] = cognito_config
2825
+ if lambda_authorizer_config is not None:
2826
+ self._values["lambda_authorizer_config"] = lambda_authorizer_config
2827
+ if open_id_connect_config is not None:
2828
+ self._values["open_id_connect_config"] = open_id_connect_config
2829
+
2830
+ @builtins.property
2831
+ def auth_type(self) -> builtins.str:
2832
+ '''The authorization type.
2833
+
2834
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authprovider.html#cfn-appsync-api-authprovider-authtype
2835
+ '''
2836
+ result = self._values.get("auth_type")
2837
+ assert result is not None, "Required property 'auth_type' is missing"
2838
+ return typing.cast(builtins.str, result)
2839
+
2840
+ @builtins.property
2841
+ def cognito_config(
2842
+ self,
2843
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.CognitoConfigProperty"]]:
2844
+ '''Describes an Amazon Cognito user pool configuration.
2845
+
2846
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authprovider.html#cfn-appsync-api-authprovider-cognitoconfig
2847
+ '''
2848
+ result = self._values.get("cognito_config")
2849
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.CognitoConfigProperty"]], result)
2850
+
2851
+ @builtins.property
2852
+ def lambda_authorizer_config(
2853
+ self,
2854
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.LambdaAuthorizerConfigProperty"]]:
2855
+ '''A ``LambdaAuthorizerConfig`` specifies how to authorize AWS AppSync API access when using the ``AWS_LAMBDA`` authorizer mode.
2856
+
2857
+ Be aware that an AWS AppSync API can have only one AWS Lambda authorizer configured at a time.
2858
+
2859
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authprovider.html#cfn-appsync-api-authprovider-lambdaauthorizerconfig
2860
+ '''
2861
+ result = self._values.get("lambda_authorizer_config")
2862
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.LambdaAuthorizerConfigProperty"]], result)
2863
+
2864
+ @builtins.property
2865
+ def open_id_connect_config(
2866
+ self,
2867
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.OpenIDConnectConfigProperty"]]:
2868
+ '''Describes an OpenID Connect (OIDC) configuration.
2869
+
2870
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-authprovider.html#cfn-appsync-api-authprovider-openidconnectconfig
2871
+ '''
2872
+ result = self._values.get("open_id_connect_config")
2873
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.OpenIDConnectConfigProperty"]], result)
2874
+
2875
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2876
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2877
+
2878
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2879
+ return not (rhs == self)
2880
+
2881
+ def __repr__(self) -> str:
2882
+ return "AuthProviderProperty(%s)" % ", ".join(
2883
+ k + "=" + repr(v) for k, v in self._values.items()
2884
+ )
2885
+
2886
+ @jsii.data_type(
2887
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.CognitoConfigProperty",
2888
+ jsii_struct_bases=[],
2889
+ name_mapping={
2890
+ "aws_region": "awsRegion",
2891
+ "user_pool_id": "userPoolId",
2892
+ "app_id_client_regex": "appIdClientRegex",
2893
+ },
2894
+ )
2895
+ class CognitoConfigProperty:
2896
+ def __init__(
2897
+ self,
2898
+ *,
2899
+ aws_region: builtins.str,
2900
+ user_pool_id: builtins.str,
2901
+ app_id_client_regex: typing.Optional[builtins.str] = None,
2902
+ ) -> None:
2903
+ '''Describes an Amazon Cognito configuration.
2904
+
2905
+ :param aws_region: The AWS Region in which the user pool was created.
2906
+ :param user_pool_id: The user pool ID.
2907
+ :param app_id_client_regex: A regular expression for validating the incoming Amazon Cognito user pool app client ID. If this value isn't set, no filtering is applied.
2908
+
2909
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-cognitoconfig.html
2910
+ :exampleMetadata: fixture=_generated
2911
+
2912
+ Example::
2913
+
2914
+ # The code below shows an example of how to instantiate this type.
2915
+ # The values are placeholders you should change.
2916
+ from aws_cdk import aws_appsync as appsync
2917
+
2918
+ cognito_config_property = appsync.CfnApi.CognitoConfigProperty(
2919
+ aws_region="awsRegion",
2920
+ user_pool_id="userPoolId",
2921
+
2922
+ # the properties below are optional
2923
+ app_id_client_regex="appIdClientRegex"
2924
+ )
2925
+ '''
2926
+ if __debug__:
2927
+ type_hints = typing.get_type_hints(_typecheckingstub__012c8ad0fa2d1afcda68ca532d5e287baa9e170049fe0c4e05e77dab9f8eb753)
2928
+ check_type(argname="argument aws_region", value=aws_region, expected_type=type_hints["aws_region"])
2929
+ check_type(argname="argument user_pool_id", value=user_pool_id, expected_type=type_hints["user_pool_id"])
2930
+ check_type(argname="argument app_id_client_regex", value=app_id_client_regex, expected_type=type_hints["app_id_client_regex"])
2931
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2932
+ "aws_region": aws_region,
2933
+ "user_pool_id": user_pool_id,
2934
+ }
2935
+ if app_id_client_regex is not None:
2936
+ self._values["app_id_client_regex"] = app_id_client_regex
2937
+
2938
+ @builtins.property
2939
+ def aws_region(self) -> builtins.str:
2940
+ '''The AWS Region in which the user pool was created.
2941
+
2942
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-cognitoconfig.html#cfn-appsync-api-cognitoconfig-awsregion
2943
+ '''
2944
+ result = self._values.get("aws_region")
2945
+ assert result is not None, "Required property 'aws_region' is missing"
2946
+ return typing.cast(builtins.str, result)
2947
+
2948
+ @builtins.property
2949
+ def user_pool_id(self) -> builtins.str:
2950
+ '''The user pool ID.
2951
+
2952
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-cognitoconfig.html#cfn-appsync-api-cognitoconfig-userpoolid
2953
+ '''
2954
+ result = self._values.get("user_pool_id")
2955
+ assert result is not None, "Required property 'user_pool_id' is missing"
2956
+ return typing.cast(builtins.str, result)
2957
+
2958
+ @builtins.property
2959
+ def app_id_client_regex(self) -> typing.Optional[builtins.str]:
2960
+ '''A regular expression for validating the incoming Amazon Cognito user pool app client ID.
2961
+
2962
+ If this value isn't set, no filtering is applied.
2963
+
2964
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-cognitoconfig.html#cfn-appsync-api-cognitoconfig-appidclientregex
2965
+ '''
2966
+ result = self._values.get("app_id_client_regex")
2967
+ return typing.cast(typing.Optional[builtins.str], result)
2968
+
2969
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2970
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2971
+
2972
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2973
+ return not (rhs == self)
2974
+
2975
+ def __repr__(self) -> str:
2976
+ return "CognitoConfigProperty(%s)" % ", ".join(
2977
+ k + "=" + repr(v) for k, v in self._values.items()
2978
+ )
2979
+
2980
+ @jsii.data_type(
2981
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.DnsMapProperty",
2982
+ jsii_struct_bases=[],
2983
+ name_mapping={"http": "http", "realtime": "realtime"},
2984
+ )
2985
+ class DnsMapProperty:
2986
+ def __init__(
2987
+ self,
2988
+ *,
2989
+ http: typing.Optional[builtins.str] = None,
2990
+ realtime: typing.Optional[builtins.str] = None,
2991
+ ) -> None:
2992
+ '''A map of DNS names for the Api.
2993
+
2994
+ :param http: The domain name of the Api's HTTP endpoint.
2995
+ :param realtime: The domain name of the Api's real-time endpoint.
2996
+
2997
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-dnsmap.html
2998
+ :exampleMetadata: fixture=_generated
2999
+
3000
+ Example::
3001
+
3002
+ # The code below shows an example of how to instantiate this type.
3003
+ # The values are placeholders you should change.
3004
+ from aws_cdk import aws_appsync as appsync
3005
+
3006
+ dns_map_property = appsync.CfnApi.DnsMapProperty(
3007
+ http="http",
3008
+ realtime="realtime"
3009
+ )
3010
+ '''
3011
+ if __debug__:
3012
+ type_hints = typing.get_type_hints(_typecheckingstub__312a111f84f5f64be12d3d7c09cc00f4c64e4fe99cd1bf78561ebcfd82084e0c)
3013
+ check_type(argname="argument http", value=http, expected_type=type_hints["http"])
3014
+ check_type(argname="argument realtime", value=realtime, expected_type=type_hints["realtime"])
3015
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3016
+ if http is not None:
3017
+ self._values["http"] = http
3018
+ if realtime is not None:
3019
+ self._values["realtime"] = realtime
3020
+
3021
+ @builtins.property
3022
+ def http(self) -> typing.Optional[builtins.str]:
3023
+ '''The domain name of the Api's HTTP endpoint.
3024
+
3025
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-dnsmap.html#cfn-appsync-api-dnsmap-http
3026
+ '''
3027
+ result = self._values.get("http")
3028
+ return typing.cast(typing.Optional[builtins.str], result)
3029
+
3030
+ @builtins.property
3031
+ def realtime(self) -> typing.Optional[builtins.str]:
3032
+ '''The domain name of the Api's real-time endpoint.
3033
+
3034
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-dnsmap.html#cfn-appsync-api-dnsmap-realtime
3035
+ '''
3036
+ result = self._values.get("realtime")
3037
+ return typing.cast(typing.Optional[builtins.str], result)
3038
+
3039
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3040
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3041
+
3042
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3043
+ return not (rhs == self)
3044
+
3045
+ def __repr__(self) -> str:
3046
+ return "DnsMapProperty(%s)" % ", ".join(
3047
+ k + "=" + repr(v) for k, v in self._values.items()
3048
+ )
3049
+
3050
+ @jsii.data_type(
3051
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.EventConfigProperty",
3052
+ jsii_struct_bases=[],
3053
+ name_mapping={
3054
+ "auth_providers": "authProviders",
3055
+ "connection_auth_modes": "connectionAuthModes",
3056
+ "default_publish_auth_modes": "defaultPublishAuthModes",
3057
+ "default_subscribe_auth_modes": "defaultSubscribeAuthModes",
3058
+ "log_config": "logConfig",
3059
+ },
3060
+ )
3061
+ class EventConfigProperty:
3062
+ def __init__(
3063
+ self,
3064
+ *,
3065
+ auth_providers: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.AuthProviderProperty", typing.Dict[builtins.str, typing.Any]]]]],
3066
+ connection_auth_modes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.AuthModeProperty", typing.Dict[builtins.str, typing.Any]]]]],
3067
+ default_publish_auth_modes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.AuthModeProperty", typing.Dict[builtins.str, typing.Any]]]]],
3068
+ default_subscribe_auth_modes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.AuthModeProperty", typing.Dict[builtins.str, typing.Any]]]]],
3069
+ log_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnApi.EventLogConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3070
+ ) -> None:
3071
+ '''Describes the authorization configuration for connections, message publishing, message subscriptions, and logging for an Event API.
3072
+
3073
+ :param auth_providers: A list of authorization providers.
3074
+ :param connection_auth_modes: A list of valid authorization modes for the Event API connections.
3075
+ :param default_publish_auth_modes: A list of valid authorization modes for the Event API publishing.
3076
+ :param default_subscribe_auth_modes: A list of valid authorization modes for the Event API subscriptions.
3077
+ :param log_config: The CloudWatch Logs configuration for the Event API.
3078
+
3079
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventconfig.html
3080
+ :exampleMetadata: fixture=_generated
3081
+
3082
+ Example::
3083
+
3084
+ # The code below shows an example of how to instantiate this type.
3085
+ # The values are placeholders you should change.
3086
+ from aws_cdk import aws_appsync as appsync
3087
+
3088
+ event_config_property = appsync.CfnApi.EventConfigProperty(
3089
+ auth_providers=[appsync.CfnApi.AuthProviderProperty(
3090
+ auth_type="authType",
3091
+
3092
+ # the properties below are optional
3093
+ cognito_config=appsync.CfnApi.CognitoConfigProperty(
3094
+ aws_region="awsRegion",
3095
+ user_pool_id="userPoolId",
3096
+
3097
+ # the properties below are optional
3098
+ app_id_client_regex="appIdClientRegex"
3099
+ ),
3100
+ lambda_authorizer_config=appsync.CfnApi.LambdaAuthorizerConfigProperty(
3101
+ authorizer_uri="authorizerUri",
3102
+
3103
+ # the properties below are optional
3104
+ authorizer_result_ttl_in_seconds=123,
3105
+ identity_validation_expression="identityValidationExpression"
3106
+ ),
3107
+ open_id_connect_config=appsync.CfnApi.OpenIDConnectConfigProperty(
3108
+ issuer="issuer",
3109
+
3110
+ # the properties below are optional
3111
+ auth_ttl=123,
3112
+ client_id="clientId",
3113
+ iat_ttl=123
3114
+ )
3115
+ )],
3116
+ connection_auth_modes=[appsync.CfnApi.AuthModeProperty(
3117
+ auth_type="authType"
3118
+ )],
3119
+ default_publish_auth_modes=[appsync.CfnApi.AuthModeProperty(
3120
+ auth_type="authType"
3121
+ )],
3122
+ default_subscribe_auth_modes=[appsync.CfnApi.AuthModeProperty(
3123
+ auth_type="authType"
3124
+ )],
3125
+
3126
+ # the properties below are optional
3127
+ log_config=appsync.CfnApi.EventLogConfigProperty(
3128
+ cloud_watch_logs_role_arn="cloudWatchLogsRoleArn",
3129
+ log_level="logLevel"
3130
+ )
3131
+ )
3132
+ '''
3133
+ if __debug__:
3134
+ type_hints = typing.get_type_hints(_typecheckingstub__53f8b01a4596f6e890e45a2870f92278e02fc06e912e096c33920157038135cf)
3135
+ check_type(argname="argument auth_providers", value=auth_providers, expected_type=type_hints["auth_providers"])
3136
+ check_type(argname="argument connection_auth_modes", value=connection_auth_modes, expected_type=type_hints["connection_auth_modes"])
3137
+ check_type(argname="argument default_publish_auth_modes", value=default_publish_auth_modes, expected_type=type_hints["default_publish_auth_modes"])
3138
+ check_type(argname="argument default_subscribe_auth_modes", value=default_subscribe_auth_modes, expected_type=type_hints["default_subscribe_auth_modes"])
3139
+ check_type(argname="argument log_config", value=log_config, expected_type=type_hints["log_config"])
3140
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3141
+ "auth_providers": auth_providers,
3142
+ "connection_auth_modes": connection_auth_modes,
3143
+ "default_publish_auth_modes": default_publish_auth_modes,
3144
+ "default_subscribe_auth_modes": default_subscribe_auth_modes,
3145
+ }
3146
+ if log_config is not None:
3147
+ self._values["log_config"] = log_config
3148
+
3149
+ @builtins.property
3150
+ def auth_providers(
3151
+ self,
3152
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthProviderProperty"]]]:
3153
+ '''A list of authorization providers.
3154
+
3155
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventconfig.html#cfn-appsync-api-eventconfig-authproviders
3156
+ '''
3157
+ result = self._values.get("auth_providers")
3158
+ assert result is not None, "Required property 'auth_providers' is missing"
3159
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthProviderProperty"]]], result)
3160
+
3161
+ @builtins.property
3162
+ def connection_auth_modes(
3163
+ self,
3164
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthModeProperty"]]]:
3165
+ '''A list of valid authorization modes for the Event API connections.
3166
+
3167
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventconfig.html#cfn-appsync-api-eventconfig-connectionauthmodes
3168
+ '''
3169
+ result = self._values.get("connection_auth_modes")
3170
+ assert result is not None, "Required property 'connection_auth_modes' is missing"
3171
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthModeProperty"]]], result)
3172
+
3173
+ @builtins.property
3174
+ def default_publish_auth_modes(
3175
+ self,
3176
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthModeProperty"]]]:
3177
+ '''A list of valid authorization modes for the Event API publishing.
3178
+
3179
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventconfig.html#cfn-appsync-api-eventconfig-defaultpublishauthmodes
3180
+ '''
3181
+ result = self._values.get("default_publish_auth_modes")
3182
+ assert result is not None, "Required property 'default_publish_auth_modes' is missing"
3183
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthModeProperty"]]], result)
3184
+
3185
+ @builtins.property
3186
+ def default_subscribe_auth_modes(
3187
+ self,
3188
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthModeProperty"]]]:
3189
+ '''A list of valid authorization modes for the Event API subscriptions.
3190
+
3191
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventconfig.html#cfn-appsync-api-eventconfig-defaultsubscribeauthmodes
3192
+ '''
3193
+ result = self._values.get("default_subscribe_auth_modes")
3194
+ assert result is not None, "Required property 'default_subscribe_auth_modes' is missing"
3195
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnApi.AuthModeProperty"]]], result)
3196
+
3197
+ @builtins.property
3198
+ def log_config(
3199
+ self,
3200
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.EventLogConfigProperty"]]:
3201
+ '''The CloudWatch Logs configuration for the Event API.
3202
+
3203
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventconfig.html#cfn-appsync-api-eventconfig-logconfig
3204
+ '''
3205
+ result = self._values.get("log_config")
3206
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnApi.EventLogConfigProperty"]], result)
3207
+
3208
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3209
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3210
+
3211
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3212
+ return not (rhs == self)
3213
+
3214
+ def __repr__(self) -> str:
3215
+ return "EventConfigProperty(%s)" % ", ".join(
3216
+ k + "=" + repr(v) for k, v in self._values.items()
3217
+ )
3218
+
3219
+ @jsii.data_type(
3220
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.EventLogConfigProperty",
3221
+ jsii_struct_bases=[],
3222
+ name_mapping={
3223
+ "cloud_watch_logs_role_arn": "cloudWatchLogsRoleArn",
3224
+ "log_level": "logLevel",
3225
+ },
3226
+ )
3227
+ class EventLogConfigProperty:
3228
+ def __init__(
3229
+ self,
3230
+ *,
3231
+ cloud_watch_logs_role_arn: builtins.str,
3232
+ log_level: builtins.str,
3233
+ ) -> None:
3234
+ '''Describes the CloudWatch Logs configuration for the Event API.
3235
+
3236
+ :param cloud_watch_logs_role_arn: The IAM service role that AWS AppSync assumes to publish CloudWatch Logs in your account.
3237
+ :param log_level: The type of information to log for the Event API.
3238
+
3239
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventlogconfig.html
3240
+ :exampleMetadata: fixture=_generated
3241
+
3242
+ Example::
3243
+
3244
+ # The code below shows an example of how to instantiate this type.
3245
+ # The values are placeholders you should change.
3246
+ from aws_cdk import aws_appsync as appsync
3247
+
3248
+ event_log_config_property = appsync.CfnApi.EventLogConfigProperty(
3249
+ cloud_watch_logs_role_arn="cloudWatchLogsRoleArn",
3250
+ log_level="logLevel"
3251
+ )
3252
+ '''
3253
+ if __debug__:
3254
+ type_hints = typing.get_type_hints(_typecheckingstub__5cbb1c5597e58c84a31d8dc10841de6fa70b9c328dacba388a7afdab090b3e6a)
3255
+ check_type(argname="argument cloud_watch_logs_role_arn", value=cloud_watch_logs_role_arn, expected_type=type_hints["cloud_watch_logs_role_arn"])
3256
+ check_type(argname="argument log_level", value=log_level, expected_type=type_hints["log_level"])
3257
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3258
+ "cloud_watch_logs_role_arn": cloud_watch_logs_role_arn,
3259
+ "log_level": log_level,
3260
+ }
3261
+
3262
+ @builtins.property
3263
+ def cloud_watch_logs_role_arn(self) -> builtins.str:
3264
+ '''The IAM service role that AWS AppSync assumes to publish CloudWatch Logs in your account.
3265
+
3266
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventlogconfig.html#cfn-appsync-api-eventlogconfig-cloudwatchlogsrolearn
3267
+ '''
3268
+ result = self._values.get("cloud_watch_logs_role_arn")
3269
+ assert result is not None, "Required property 'cloud_watch_logs_role_arn' is missing"
3270
+ return typing.cast(builtins.str, result)
3271
+
3272
+ @builtins.property
3273
+ def log_level(self) -> builtins.str:
3274
+ '''The type of information to log for the Event API.
3275
+
3276
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-eventlogconfig.html#cfn-appsync-api-eventlogconfig-loglevel
3277
+ '''
3278
+ result = self._values.get("log_level")
3279
+ assert result is not None, "Required property 'log_level' is missing"
3280
+ return typing.cast(builtins.str, result)
3281
+
3282
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3283
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3284
+
3285
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3286
+ return not (rhs == self)
3287
+
3288
+ def __repr__(self) -> str:
3289
+ return "EventLogConfigProperty(%s)" % ", ".join(
3290
+ k + "=" + repr(v) for k, v in self._values.items()
3291
+ )
3292
+
3293
+ @jsii.data_type(
3294
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.LambdaAuthorizerConfigProperty",
3295
+ jsii_struct_bases=[],
3296
+ name_mapping={
3297
+ "authorizer_uri": "authorizerUri",
3298
+ "authorizer_result_ttl_in_seconds": "authorizerResultTtlInSeconds",
3299
+ "identity_validation_expression": "identityValidationExpression",
3300
+ },
3301
+ )
3302
+ class LambdaAuthorizerConfigProperty:
3303
+ def __init__(
3304
+ self,
3305
+ *,
3306
+ authorizer_uri: builtins.str,
3307
+ authorizer_result_ttl_in_seconds: typing.Optional[jsii.Number] = None,
3308
+ identity_validation_expression: typing.Optional[builtins.str] = None,
3309
+ ) -> None:
3310
+ '''A ``LambdaAuthorizerConfig`` specifies how to authorize AWS AppSync API access when using the ``AWS_LAMBDA`` authorizer mode.
3311
+
3312
+ Be aware that an AWS AppSync API can have only one AWS Lambda authorizer configured at a time.
3313
+
3314
+ :param authorizer_uri: The Amazon Resource Name (ARN) of the Lambda function to be called for authorization. This can be a standard Lambda ARN, a version ARN ( ``.../v3`` ), or an alias ARN. *Note* : This Lambda function must have the following resource-based policy assigned to it. When configuring Lambda authorizers in the console, this is done for you. To use the AWS Command Line Interface ( AWS CLI ), run the following: ``aws lambda add-permission --function-name "arn:aws:lambda:us-east-2:111122223333:function:my-function" --statement-id "appsync" --principal appsync.amazonaws.com --action lambda:InvokeFunction``
3315
+ :param authorizer_result_ttl_in_seconds: The number of seconds a response should be cached for. The default is 0 seconds, which disables caching. If you don't specify a value for ``authorizerResultTtlInSeconds`` , the default value is used. The maximum value is one hour (3600 seconds). The Lambda function can override this by returning a ``ttlOverride`` key in its response.
3316
+ :param identity_validation_expression: A regular expression for validation of tokens before the Lambda function is called.
3317
+
3318
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-lambdaauthorizerconfig.html
3319
+ :exampleMetadata: fixture=_generated
3320
+
3321
+ Example::
3322
+
3323
+ # The code below shows an example of how to instantiate this type.
3324
+ # The values are placeholders you should change.
3325
+ from aws_cdk import aws_appsync as appsync
3326
+
3327
+ lambda_authorizer_config_property = appsync.CfnApi.LambdaAuthorizerConfigProperty(
3328
+ authorizer_uri="authorizerUri",
3329
+
3330
+ # the properties below are optional
3331
+ authorizer_result_ttl_in_seconds=123,
3332
+ identity_validation_expression="identityValidationExpression"
3333
+ )
3334
+ '''
3335
+ if __debug__:
3336
+ type_hints = typing.get_type_hints(_typecheckingstub__6eb7eaf1ef726d95b558700ffd22e714695a485aed3b5a3ae796f2a03efae22c)
3337
+ check_type(argname="argument authorizer_uri", value=authorizer_uri, expected_type=type_hints["authorizer_uri"])
3338
+ check_type(argname="argument authorizer_result_ttl_in_seconds", value=authorizer_result_ttl_in_seconds, expected_type=type_hints["authorizer_result_ttl_in_seconds"])
3339
+ check_type(argname="argument identity_validation_expression", value=identity_validation_expression, expected_type=type_hints["identity_validation_expression"])
3340
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3341
+ "authorizer_uri": authorizer_uri,
3342
+ }
3343
+ if authorizer_result_ttl_in_seconds is not None:
3344
+ self._values["authorizer_result_ttl_in_seconds"] = authorizer_result_ttl_in_seconds
3345
+ if identity_validation_expression is not None:
3346
+ self._values["identity_validation_expression"] = identity_validation_expression
3347
+
3348
+ @builtins.property
3349
+ def authorizer_uri(self) -> builtins.str:
3350
+ '''The Amazon Resource Name (ARN) of the Lambda function to be called for authorization.
3351
+
3352
+ This can be a standard Lambda ARN, a version ARN ( ``.../v3`` ), or an alias ARN.
3353
+
3354
+ *Note* : This Lambda function must have the following resource-based policy assigned to it. When configuring Lambda authorizers in the console, this is done for you. To use the AWS Command Line Interface ( AWS CLI ), run the following:
3355
+
3356
+ ``aws lambda add-permission --function-name "arn:aws:lambda:us-east-2:111122223333:function:my-function" --statement-id "appsync" --principal appsync.amazonaws.com --action lambda:InvokeFunction``
3357
+
3358
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-lambdaauthorizerconfig.html#cfn-appsync-api-lambdaauthorizerconfig-authorizeruri
3359
+ '''
3360
+ result = self._values.get("authorizer_uri")
3361
+ assert result is not None, "Required property 'authorizer_uri' is missing"
3362
+ return typing.cast(builtins.str, result)
3363
+
3364
+ @builtins.property
3365
+ def authorizer_result_ttl_in_seconds(self) -> typing.Optional[jsii.Number]:
3366
+ '''The number of seconds a response should be cached for.
3367
+
3368
+ The default is 0 seconds, which disables caching. If you don't specify a value for ``authorizerResultTtlInSeconds`` , the default value is used. The maximum value is one hour (3600 seconds). The Lambda function can override this by returning a ``ttlOverride`` key in its response.
3369
+
3370
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-lambdaauthorizerconfig.html#cfn-appsync-api-lambdaauthorizerconfig-authorizerresultttlinseconds
3371
+ '''
3372
+ result = self._values.get("authorizer_result_ttl_in_seconds")
3373
+ return typing.cast(typing.Optional[jsii.Number], result)
3374
+
3375
+ @builtins.property
3376
+ def identity_validation_expression(self) -> typing.Optional[builtins.str]:
3377
+ '''A regular expression for validation of tokens before the Lambda function is called.
3378
+
3379
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-lambdaauthorizerconfig.html#cfn-appsync-api-lambdaauthorizerconfig-identityvalidationexpression
3380
+ '''
3381
+ result = self._values.get("identity_validation_expression")
3382
+ return typing.cast(typing.Optional[builtins.str], result)
3383
+
3384
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3385
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3386
+
3387
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3388
+ return not (rhs == self)
3389
+
3390
+ def __repr__(self) -> str:
3391
+ return "LambdaAuthorizerConfigProperty(%s)" % ", ".join(
3392
+ k + "=" + repr(v) for k, v in self._values.items()
3393
+ )
3394
+
3395
+ @jsii.data_type(
3396
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApi.OpenIDConnectConfigProperty",
3397
+ jsii_struct_bases=[],
3398
+ name_mapping={
3399
+ "issuer": "issuer",
3400
+ "auth_ttl": "authTtl",
3401
+ "client_id": "clientId",
3402
+ "iat_ttl": "iatTtl",
3403
+ },
3404
+ )
3405
+ class OpenIDConnectConfigProperty:
3406
+ def __init__(
3407
+ self,
3408
+ *,
3409
+ issuer: builtins.str,
3410
+ auth_ttl: typing.Optional[jsii.Number] = None,
3411
+ client_id: typing.Optional[builtins.str] = None,
3412
+ iat_ttl: typing.Optional[jsii.Number] = None,
3413
+ ) -> None:
3414
+ '''Describes an OpenID Connect (OIDC) configuration.
3415
+
3416
+ :param issuer: The issuer for the OIDC configuration. The issuer returned by discovery must exactly match the value of ``iss`` in the ID token.
3417
+ :param auth_ttl: The number of milliseconds that a token is valid after being authenticated.
3418
+ :param client_id: The client identifier of the relying party at the OpenID identity provider. This identifier is typically obtained when the relying party is registered with the OpenID identity provider. You can specify a regular expression so that AWS AppSync can validate against multiple client identifiers at a time.
3419
+ :param iat_ttl: The number of milliseconds that a token is valid after it's issued to a user.
3420
+
3421
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-openidconnectconfig.html
3422
+ :exampleMetadata: fixture=_generated
3423
+
3424
+ Example::
3425
+
3426
+ # The code below shows an example of how to instantiate this type.
3427
+ # The values are placeholders you should change.
3428
+ from aws_cdk import aws_appsync as appsync
3429
+
3430
+ open_iDConnect_config_property = appsync.CfnApi.OpenIDConnectConfigProperty(
3431
+ issuer="issuer",
3432
+
3433
+ # the properties below are optional
3434
+ auth_ttl=123,
3435
+ client_id="clientId",
3436
+ iat_ttl=123
3437
+ )
3438
+ '''
3439
+ if __debug__:
3440
+ type_hints = typing.get_type_hints(_typecheckingstub__560e301b02d9bfc40a0d691fa82c55f336f07c62f130aa6e9464ab1c1b676cf8)
3441
+ check_type(argname="argument issuer", value=issuer, expected_type=type_hints["issuer"])
3442
+ check_type(argname="argument auth_ttl", value=auth_ttl, expected_type=type_hints["auth_ttl"])
3443
+ check_type(argname="argument client_id", value=client_id, expected_type=type_hints["client_id"])
3444
+ check_type(argname="argument iat_ttl", value=iat_ttl, expected_type=type_hints["iat_ttl"])
3445
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3446
+ "issuer": issuer,
3447
+ }
3448
+ if auth_ttl is not None:
3449
+ self._values["auth_ttl"] = auth_ttl
3450
+ if client_id is not None:
3451
+ self._values["client_id"] = client_id
3452
+ if iat_ttl is not None:
3453
+ self._values["iat_ttl"] = iat_ttl
3454
+
3455
+ @builtins.property
3456
+ def issuer(self) -> builtins.str:
3457
+ '''The issuer for the OIDC configuration.
3458
+
3459
+ The issuer returned by discovery must exactly match the value of ``iss`` in the ID token.
3460
+
3461
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-openidconnectconfig.html#cfn-appsync-api-openidconnectconfig-issuer
3462
+ '''
3463
+ result = self._values.get("issuer")
3464
+ assert result is not None, "Required property 'issuer' is missing"
3465
+ return typing.cast(builtins.str, result)
3466
+
3467
+ @builtins.property
3468
+ def auth_ttl(self) -> typing.Optional[jsii.Number]:
3469
+ '''The number of milliseconds that a token is valid after being authenticated.
3470
+
3471
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-openidconnectconfig.html#cfn-appsync-api-openidconnectconfig-authttl
3472
+ '''
3473
+ result = self._values.get("auth_ttl")
3474
+ return typing.cast(typing.Optional[jsii.Number], result)
3475
+
3476
+ @builtins.property
3477
+ def client_id(self) -> typing.Optional[builtins.str]:
3478
+ '''The client identifier of the relying party at the OpenID identity provider.
3479
+
3480
+ This identifier is typically obtained when the relying party is registered with the OpenID identity provider. You can specify a regular expression so that AWS AppSync can validate against multiple client identifiers at a time.
3481
+
3482
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-openidconnectconfig.html#cfn-appsync-api-openidconnectconfig-clientid
3483
+ '''
3484
+ result = self._values.get("client_id")
3485
+ return typing.cast(typing.Optional[builtins.str], result)
3486
+
3487
+ @builtins.property
3488
+ def iat_ttl(self) -> typing.Optional[jsii.Number]:
3489
+ '''The number of milliseconds that a token is valid after it's issued to a user.
3490
+
3491
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-api-openidconnectconfig.html#cfn-appsync-api-openidconnectconfig-iatttl
3492
+ '''
3493
+ result = self._values.get("iat_ttl")
3494
+ return typing.cast(typing.Optional[jsii.Number], result)
3495
+
3496
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3497
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3498
+
3499
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3500
+ return not (rhs == self)
3501
+
3502
+ def __repr__(self) -> str:
3503
+ return "OpenIDConnectConfigProperty(%s)" % ", ".join(
3504
+ k + "=" + repr(v) for k, v in self._values.items()
3505
+ )
3506
+
3507
+
3508
+ @jsii.implements(_IInspectable_c2943556)
3509
+ class CfnApiCache(
3510
+ _CfnResource_9df397a6,
3511
+ metaclass=jsii.JSIIMeta,
3512
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApiCache",
3513
+ ):
3514
+ '''The ``AWS::AppSync::ApiCache`` resource represents the input of a ``CreateApiCache`` operation.
3515
+
3516
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html
3517
+ :cloudformationResource: AWS::AppSync::ApiCache
3518
+ :exampleMetadata: fixture=_generated
3519
+
3520
+ Example::
3521
+
3522
+ # The code below shows an example of how to instantiate this type.
3523
+ # The values are placeholders you should change.
3524
+ from aws_cdk import aws_appsync as appsync
3525
+
3526
+ cfn_api_cache = appsync.CfnApiCache(self, "MyCfnApiCache",
3527
+ api_caching_behavior="apiCachingBehavior",
3528
+ api_id="apiId",
3529
+ ttl=123,
3530
+ type="type",
3531
+
3532
+ # the properties below are optional
3533
+ at_rest_encryption_enabled=False,
3534
+ health_metrics_config="healthMetricsConfig",
3535
+ transit_encryption_enabled=False
3536
+ )
3537
+ '''
3538
+
3539
+ def __init__(
3540
+ self,
3541
+ scope: _constructs_77d1e7e8.Construct,
3542
+ id: builtins.str,
3543
+ *,
3544
+ api_caching_behavior: builtins.str,
3545
+ api_id: builtins.str,
3546
+ ttl: jsii.Number,
3547
+ type: builtins.str,
3548
+ at_rest_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3549
+ health_metrics_config: typing.Optional[builtins.str] = None,
3550
+ transit_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3551
+ ) -> None:
3552
+ '''
3553
+ :param scope: Scope in which this resource is defined.
3554
+ :param id: Construct identifier for this resource (unique in its scope).
3555
+ :param api_caching_behavior: Caching behavior. - *FULL_REQUEST_CACHING* : All requests are fully cached. - *PER_RESOLVER_CACHING* : Individual resolvers that you specify are cached.
3556
+ :param api_id: The GraphQL API ID.
3557
+ :param ttl: TTL in seconds for cache entries. Valid values are 1–3,600 seconds.
3558
+ :param type: The cache instance type. Valid values are. - ``SMALL`` - ``MEDIUM`` - ``LARGE`` - ``XLARGE`` - ``LARGE_2X`` - ``LARGE_4X`` - ``LARGE_8X`` (not available in all regions) - ``LARGE_12X`` Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: - *T2_SMALL* : A t2.small instance type. - *T2_MEDIUM* : A t2.medium instance type. - *R4_LARGE* : A r4.large instance type. - *R4_XLARGE* : A r4.xlarge instance type. - *R4_2XLARGE* : A r4.2xlarge instance type. - *R4_4XLARGE* : A r4.4xlarge instance type. - *R4_8XLARGE* : A r4.8xlarge instance type.
3559
+ :param at_rest_encryption_enabled: At-rest encryption flag for cache. You cannot update this setting after creation.
3560
+ :param health_metrics_config: Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:. - *NetworkBandwidthOutAllowanceExceeded* : The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration. - *EngineCPUUtilization* : The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration. Metrics will be recorded by API ID. You can set the value to ``ENABLED`` or ``DISABLED`` .
3561
+ :param transit_encryption_enabled: Transit encryption flag when connecting to cache. You cannot update this setting after creation.
3562
+ '''
3563
+ if __debug__:
3564
+ type_hints = typing.get_type_hints(_typecheckingstub__e9d92b7b2abdac7341eb92f7ac10d2d67dd2700af68eaf42c72c47ffdaacc344)
3565
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3566
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3567
+ props = CfnApiCacheProps(
3568
+ api_caching_behavior=api_caching_behavior,
3569
+ api_id=api_id,
3570
+ ttl=ttl,
3571
+ type=type,
3572
+ at_rest_encryption_enabled=at_rest_encryption_enabled,
3573
+ health_metrics_config=health_metrics_config,
3574
+ transit_encryption_enabled=transit_encryption_enabled,
3575
+ )
3576
+
3577
+ jsii.create(self.__class__, self, [scope, id, props])
3578
+
3579
+ @jsii.member(jsii_name="inspect")
3580
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3581
+ '''Examines the CloudFormation resource and discloses attributes.
3582
+
3583
+ :param inspector: tree inspector to collect and process attributes.
3584
+ '''
3585
+ if __debug__:
3586
+ type_hints = typing.get_type_hints(_typecheckingstub__142193172b7ee1304f3b8fd949531b4cfa950ea62d0dc10f9ed5a184a603132d)
3587
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3588
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3589
+
3590
+ @jsii.member(jsii_name="renderProperties")
3591
+ def _render_properties(
3592
+ self,
3593
+ props: typing.Mapping[builtins.str, typing.Any],
3594
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3595
+ '''
3596
+ :param props: -
3597
+ '''
3598
+ if __debug__:
3599
+ type_hints = typing.get_type_hints(_typecheckingstub__1ce863b5f21a86ce886458054cd4de0550269c18eb7c4f3fb37884dc2869845e)
3600
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3601
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
3602
+
3603
+ @jsii.python.classproperty
3604
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
3605
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
3606
+ '''The CloudFormation resource type name for this resource class.'''
3607
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
3608
+
3609
+ @builtins.property
3610
+ @jsii.member(jsii_name="attrId")
3611
+ def attr_id(self) -> builtins.str:
3612
+ '''
3613
+ :cloudformationAttribute: Id
3614
+ '''
3615
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
3616
+
3617
+ @builtins.property
3618
+ @jsii.member(jsii_name="cfnProperties")
3619
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3620
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3621
+
3622
+ @builtins.property
3623
+ @jsii.member(jsii_name="apiCachingBehavior")
3624
+ def api_caching_behavior(self) -> builtins.str:
3625
+ '''Caching behavior.'''
3626
+ return typing.cast(builtins.str, jsii.get(self, "apiCachingBehavior"))
3627
+
3628
+ @api_caching_behavior.setter
3629
+ def api_caching_behavior(self, value: builtins.str) -> None:
3630
+ if __debug__:
3631
+ type_hints = typing.get_type_hints(_typecheckingstub__aee6b3576fbf654864dae4f55fe292d210bf01534f16f80af0ac225f8fa338c9)
3632
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3633
+ jsii.set(self, "apiCachingBehavior", value) # pyright: ignore[reportArgumentType]
3634
+
3635
+ @builtins.property
3636
+ @jsii.member(jsii_name="apiId")
3637
+ def api_id(self) -> builtins.str:
3638
+ '''The GraphQL API ID.'''
3639
+ return typing.cast(builtins.str, jsii.get(self, "apiId"))
3640
+
3641
+ @api_id.setter
3642
+ def api_id(self, value: builtins.str) -> None:
3643
+ if __debug__:
3644
+ type_hints = typing.get_type_hints(_typecheckingstub__6c2fdac623dbaddb2a0226d75e6f3ca84c058f3f46b9c9a1289820c1cf0827e1)
3645
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3646
+ jsii.set(self, "apiId", value) # pyright: ignore[reportArgumentType]
3647
+
3648
+ @builtins.property
3649
+ @jsii.member(jsii_name="ttl")
3650
+ def ttl(self) -> jsii.Number:
3651
+ '''TTL in seconds for cache entries.'''
3652
+ return typing.cast(jsii.Number, jsii.get(self, "ttl"))
3653
+
3654
+ @ttl.setter
3655
+ def ttl(self, value: jsii.Number) -> None:
3656
+ if __debug__:
3657
+ type_hints = typing.get_type_hints(_typecheckingstub__1893b7ba08236941b8e5bb4704e7fe53f8819086085796443b5d68f513e66eaa)
3658
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3659
+ jsii.set(self, "ttl", value) # pyright: ignore[reportArgumentType]
3660
+
3661
+ @builtins.property
3662
+ @jsii.member(jsii_name="type")
3663
+ def type(self) -> builtins.str:
3664
+ '''The cache instance type.
3665
+
3666
+ Valid values are.
3667
+ '''
3668
+ return typing.cast(builtins.str, jsii.get(self, "type"))
3669
+
3670
+ @type.setter
3671
+ def type(self, value: builtins.str) -> None:
3672
+ if __debug__:
3673
+ type_hints = typing.get_type_hints(_typecheckingstub__45dc491e21920c6cd0ddecd9aada80283ac759d9eaca52c45a6ce35197166e9d)
3674
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3675
+ jsii.set(self, "type", value) # pyright: ignore[reportArgumentType]
3676
+
3677
+ @builtins.property
3678
+ @jsii.member(jsii_name="atRestEncryptionEnabled")
3679
+ def at_rest_encryption_enabled(
3680
+ self,
3681
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3682
+ '''At-rest encryption flag for cache.'''
3683
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "atRestEncryptionEnabled"))
3684
+
3685
+ @at_rest_encryption_enabled.setter
3686
+ def at_rest_encryption_enabled(
3687
+ self,
3688
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
3689
+ ) -> None:
3690
+ if __debug__:
3691
+ type_hints = typing.get_type_hints(_typecheckingstub__93a4abe242f634763c1f128b7e17017d1176924c9b032d5536f4caa3b3fc3bd6)
3692
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3693
+ jsii.set(self, "atRestEncryptionEnabled", value) # pyright: ignore[reportArgumentType]
3694
+
3695
+ @builtins.property
3696
+ @jsii.member(jsii_name="healthMetricsConfig")
3697
+ def health_metrics_config(self) -> typing.Optional[builtins.str]:
3698
+ '''Controls how cache health metrics will be emitted to CloudWatch.
3699
+
3700
+ Cache health metrics include:.
3701
+ '''
3702
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "healthMetricsConfig"))
3703
+
3704
+ @health_metrics_config.setter
3705
+ def health_metrics_config(self, value: typing.Optional[builtins.str]) -> None:
3706
+ if __debug__:
3707
+ type_hints = typing.get_type_hints(_typecheckingstub__55de0a796fc6cc946fccbec8ff82c493648ae16228267a0627a624d4e64e10dd)
3708
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3709
+ jsii.set(self, "healthMetricsConfig", value) # pyright: ignore[reportArgumentType]
3710
+
3711
+ @builtins.property
3712
+ @jsii.member(jsii_name="transitEncryptionEnabled")
3713
+ def transit_encryption_enabled(
3714
+ self,
3715
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3716
+ '''Transit encryption flag when connecting to cache.'''
3717
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "transitEncryptionEnabled"))
3718
+
3719
+ @transit_encryption_enabled.setter
3720
+ def transit_encryption_enabled(
3721
+ self,
3722
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
3723
+ ) -> None:
3724
+ if __debug__:
3725
+ type_hints = typing.get_type_hints(_typecheckingstub__eb39499095e917401c885f7c77781744d09df071b1ed62c6f2c32cbbc6fbdb33)
3726
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3727
+ jsii.set(self, "transitEncryptionEnabled", value) # pyright: ignore[reportArgumentType]
3728
+
3729
+
3730
+ @jsii.data_type(
3731
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApiCacheProps",
3732
+ jsii_struct_bases=[],
3733
+ name_mapping={
3734
+ "api_caching_behavior": "apiCachingBehavior",
3735
+ "api_id": "apiId",
3736
+ "ttl": "ttl",
3737
+ "type": "type",
3738
+ "at_rest_encryption_enabled": "atRestEncryptionEnabled",
3739
+ "health_metrics_config": "healthMetricsConfig",
3740
+ "transit_encryption_enabled": "transitEncryptionEnabled",
3741
+ },
3742
+ )
3743
+ class CfnApiCacheProps:
3744
+ def __init__(
3745
+ self,
3746
+ *,
3747
+ api_caching_behavior: builtins.str,
3748
+ api_id: builtins.str,
3749
+ ttl: jsii.Number,
3750
+ type: builtins.str,
3751
+ at_rest_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3752
+ health_metrics_config: typing.Optional[builtins.str] = None,
3753
+ transit_encryption_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
3754
+ ) -> None:
3755
+ '''Properties for defining a ``CfnApiCache``.
3756
+
3757
+ :param api_caching_behavior: Caching behavior. - *FULL_REQUEST_CACHING* : All requests are fully cached. - *PER_RESOLVER_CACHING* : Individual resolvers that you specify are cached.
3758
+ :param api_id: The GraphQL API ID.
3759
+ :param ttl: TTL in seconds for cache entries. Valid values are 1–3,600 seconds.
3760
+ :param type: The cache instance type. Valid values are. - ``SMALL`` - ``MEDIUM`` - ``LARGE`` - ``XLARGE`` - ``LARGE_2X`` - ``LARGE_4X`` - ``LARGE_8X`` (not available in all regions) - ``LARGE_12X`` Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: - *T2_SMALL* : A t2.small instance type. - *T2_MEDIUM* : A t2.medium instance type. - *R4_LARGE* : A r4.large instance type. - *R4_XLARGE* : A r4.xlarge instance type. - *R4_2XLARGE* : A r4.2xlarge instance type. - *R4_4XLARGE* : A r4.4xlarge instance type. - *R4_8XLARGE* : A r4.8xlarge instance type.
3761
+ :param at_rest_encryption_enabled: At-rest encryption flag for cache. You cannot update this setting after creation.
3762
+ :param health_metrics_config: Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:. - *NetworkBandwidthOutAllowanceExceeded* : The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration. - *EngineCPUUtilization* : The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration. Metrics will be recorded by API ID. You can set the value to ``ENABLED`` or ``DISABLED`` .
3763
+ :param transit_encryption_enabled: Transit encryption flag when connecting to cache. You cannot update this setting after creation.
3764
+
3765
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html
3766
+ :exampleMetadata: fixture=_generated
3767
+
3768
+ Example::
3769
+
3770
+ # The code below shows an example of how to instantiate this type.
3771
+ # The values are placeholders you should change.
3772
+ from aws_cdk import aws_appsync as appsync
3773
+
3774
+ cfn_api_cache_props = appsync.CfnApiCacheProps(
3775
+ api_caching_behavior="apiCachingBehavior",
3776
+ api_id="apiId",
3777
+ ttl=123,
3778
+ type="type",
3779
+
3780
+ # the properties below are optional
3781
+ at_rest_encryption_enabled=False,
3782
+ health_metrics_config="healthMetricsConfig",
3783
+ transit_encryption_enabled=False
3784
+ )
3785
+ '''
3786
+ if __debug__:
3787
+ type_hints = typing.get_type_hints(_typecheckingstub__8f054fa3186eb5f122c20e523bed485713c72511ee3ee94be25733ecad9a348c)
3788
+ check_type(argname="argument api_caching_behavior", value=api_caching_behavior, expected_type=type_hints["api_caching_behavior"])
3789
+ check_type(argname="argument api_id", value=api_id, expected_type=type_hints["api_id"])
3790
+ check_type(argname="argument ttl", value=ttl, expected_type=type_hints["ttl"])
3791
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
3792
+ check_type(argname="argument at_rest_encryption_enabled", value=at_rest_encryption_enabled, expected_type=type_hints["at_rest_encryption_enabled"])
3793
+ check_type(argname="argument health_metrics_config", value=health_metrics_config, expected_type=type_hints["health_metrics_config"])
2734
3794
  check_type(argname="argument transit_encryption_enabled", value=transit_encryption_enabled, expected_type=type_hints["transit_encryption_enabled"])
2735
3795
  self._values: typing.Dict[builtins.str, typing.Any] = {
2736
- "api_caching_behavior": api_caching_behavior,
3796
+ "api_caching_behavior": api_caching_behavior,
3797
+ "api_id": api_id,
3798
+ "ttl": ttl,
3799
+ "type": type,
3800
+ }
3801
+ if at_rest_encryption_enabled is not None:
3802
+ self._values["at_rest_encryption_enabled"] = at_rest_encryption_enabled
3803
+ if health_metrics_config is not None:
3804
+ self._values["health_metrics_config"] = health_metrics_config
3805
+ if transit_encryption_enabled is not None:
3806
+ self._values["transit_encryption_enabled"] = transit_encryption_enabled
3807
+
3808
+ @builtins.property
3809
+ def api_caching_behavior(self) -> builtins.str:
3810
+ '''Caching behavior.
3811
+
3812
+ - *FULL_REQUEST_CACHING* : All requests are fully cached.
3813
+ - *PER_RESOLVER_CACHING* : Individual resolvers that you specify are cached.
3814
+
3815
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-apicachingbehavior
3816
+ '''
3817
+ result = self._values.get("api_caching_behavior")
3818
+ assert result is not None, "Required property 'api_caching_behavior' is missing"
3819
+ return typing.cast(builtins.str, result)
3820
+
3821
+ @builtins.property
3822
+ def api_id(self) -> builtins.str:
3823
+ '''The GraphQL API ID.
3824
+
3825
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-apiid
3826
+ '''
3827
+ result = self._values.get("api_id")
3828
+ assert result is not None, "Required property 'api_id' is missing"
3829
+ return typing.cast(builtins.str, result)
3830
+
3831
+ @builtins.property
3832
+ def ttl(self) -> jsii.Number:
3833
+ '''TTL in seconds for cache entries.
3834
+
3835
+ Valid values are 1–3,600 seconds.
3836
+
3837
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-ttl
3838
+ '''
3839
+ result = self._values.get("ttl")
3840
+ assert result is not None, "Required property 'ttl' is missing"
3841
+ return typing.cast(jsii.Number, result)
3842
+
3843
+ @builtins.property
3844
+ def type(self) -> builtins.str:
3845
+ '''The cache instance type. Valid values are.
3846
+
3847
+ - ``SMALL``
3848
+ - ``MEDIUM``
3849
+ - ``LARGE``
3850
+ - ``XLARGE``
3851
+ - ``LARGE_2X``
3852
+ - ``LARGE_4X``
3853
+ - ``LARGE_8X`` (not available in all regions)
3854
+ - ``LARGE_12X``
3855
+
3856
+ Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used.
3857
+
3858
+ The following legacy instance types are available, but their use is discouraged:
3859
+
3860
+ - *T2_SMALL* : A t2.small instance type.
3861
+ - *T2_MEDIUM* : A t2.medium instance type.
3862
+ - *R4_LARGE* : A r4.large instance type.
3863
+ - *R4_XLARGE* : A r4.xlarge instance type.
3864
+ - *R4_2XLARGE* : A r4.2xlarge instance type.
3865
+ - *R4_4XLARGE* : A r4.4xlarge instance type.
3866
+ - *R4_8XLARGE* : A r4.8xlarge instance type.
3867
+
3868
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-type
3869
+ '''
3870
+ result = self._values.get("type")
3871
+ assert result is not None, "Required property 'type' is missing"
3872
+ return typing.cast(builtins.str, result)
3873
+
3874
+ @builtins.property
3875
+ def at_rest_encryption_enabled(
3876
+ self,
3877
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3878
+ '''At-rest encryption flag for cache.
3879
+
3880
+ You cannot update this setting after creation.
3881
+
3882
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-atrestencryptionenabled
3883
+ '''
3884
+ result = self._values.get("at_rest_encryption_enabled")
3885
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
3886
+
3887
+ @builtins.property
3888
+ def health_metrics_config(self) -> typing.Optional[builtins.str]:
3889
+ '''Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:.
3890
+
3891
+ - *NetworkBandwidthOutAllowanceExceeded* : The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.
3892
+ - *EngineCPUUtilization* : The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.
3893
+
3894
+ Metrics will be recorded by API ID. You can set the value to ``ENABLED`` or ``DISABLED`` .
3895
+
3896
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-healthmetricsconfig
3897
+ '''
3898
+ result = self._values.get("health_metrics_config")
3899
+ return typing.cast(typing.Optional[builtins.str], result)
3900
+
3901
+ @builtins.property
3902
+ def transit_encryption_enabled(
3903
+ self,
3904
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3905
+ '''Transit encryption flag when connecting to cache.
3906
+
3907
+ You cannot update this setting after creation.
3908
+
3909
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-transitencryptionenabled
3910
+ '''
3911
+ result = self._values.get("transit_encryption_enabled")
3912
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
3913
+
3914
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3915
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3916
+
3917
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3918
+ return not (rhs == self)
3919
+
3920
+ def __repr__(self) -> str:
3921
+ return "CfnApiCacheProps(%s)" % ", ".join(
3922
+ k + "=" + repr(v) for k, v in self._values.items()
3923
+ )
3924
+
3925
+
3926
+ @jsii.implements(_IInspectable_c2943556)
3927
+ class CfnApiKey(
3928
+ _CfnResource_9df397a6,
3929
+ metaclass=jsii.JSIIMeta,
3930
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApiKey",
3931
+ ):
3932
+ '''The ``AWS::AppSync::ApiKey`` resource creates a unique key that you can distribute to clients who are executing GraphQL operations with AWS AppSync that require an API key.
3933
+
3934
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html
3935
+ :cloudformationResource: AWS::AppSync::ApiKey
3936
+ :exampleMetadata: fixture=_generated
3937
+
3938
+ Example::
3939
+
3940
+ # The code below shows an example of how to instantiate this type.
3941
+ # The values are placeholders you should change.
3942
+ from aws_cdk import aws_appsync as appsync
3943
+
3944
+ cfn_api_key = appsync.CfnApiKey(self, "MyCfnApiKey",
3945
+ api_id="apiId",
3946
+
3947
+ # the properties below are optional
3948
+ description="description",
3949
+ expires=123
3950
+ )
3951
+ '''
3952
+
3953
+ def __init__(
3954
+ self,
3955
+ scope: _constructs_77d1e7e8.Construct,
3956
+ id: builtins.str,
3957
+ *,
3958
+ api_id: builtins.str,
3959
+ description: typing.Optional[builtins.str] = None,
3960
+ expires: typing.Optional[jsii.Number] = None,
3961
+ ) -> None:
3962
+ '''
3963
+ :param scope: Scope in which this resource is defined.
3964
+ :param id: Construct identifier for this resource (unique in its scope).
3965
+ :param api_id: Unique AWS AppSync GraphQL API ID for this API key.
3966
+ :param description: Unique description of your API key.
3967
+ :param expires: The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.
3968
+ '''
3969
+ if __debug__:
3970
+ type_hints = typing.get_type_hints(_typecheckingstub__e6065dd18c9d420fd4fcd70aced8416006f044f82aecff54150165e832539a8e)
3971
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3972
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3973
+ props = CfnApiKeyProps(api_id=api_id, description=description, expires=expires)
3974
+
3975
+ jsii.create(self.__class__, self, [scope, id, props])
3976
+
3977
+ @jsii.member(jsii_name="inspect")
3978
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3979
+ '''Examines the CloudFormation resource and discloses attributes.
3980
+
3981
+ :param inspector: tree inspector to collect and process attributes.
3982
+ '''
3983
+ if __debug__:
3984
+ type_hints = typing.get_type_hints(_typecheckingstub__1f8f02bc91fc0b32c990b8d08a5d7a0ef78a88363920fa69d4196dcc7f2ecfb3)
3985
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3986
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3987
+
3988
+ @jsii.member(jsii_name="renderProperties")
3989
+ def _render_properties(
3990
+ self,
3991
+ props: typing.Mapping[builtins.str, typing.Any],
3992
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3993
+ '''
3994
+ :param props: -
3995
+ '''
3996
+ if __debug__:
3997
+ type_hints = typing.get_type_hints(_typecheckingstub__a844b496712966f29aae49f2f831e6a85c7acf03c2ce61c94162ccf13c5efd6d)
3998
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3999
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
4000
+
4001
+ @jsii.python.classproperty
4002
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
4003
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
4004
+ '''The CloudFormation resource type name for this resource class.'''
4005
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
4006
+
4007
+ @builtins.property
4008
+ @jsii.member(jsii_name="attrApiKey")
4009
+ def attr_api_key(self) -> builtins.str:
4010
+ '''The API key.
4011
+
4012
+ :cloudformationAttribute: ApiKey
4013
+ '''
4014
+ return typing.cast(builtins.str, jsii.get(self, "attrApiKey"))
4015
+
4016
+ @builtins.property
4017
+ @jsii.member(jsii_name="attrApiKeyId")
4018
+ def attr_api_key_id(self) -> builtins.str:
4019
+ '''The API key ID.
4020
+
4021
+ :cloudformationAttribute: ApiKeyId
4022
+ '''
4023
+ return typing.cast(builtins.str, jsii.get(self, "attrApiKeyId"))
4024
+
4025
+ @builtins.property
4026
+ @jsii.member(jsii_name="attrArn")
4027
+ def attr_arn(self) -> builtins.str:
4028
+ '''The Amazon Resource Name (ARN) of the API key, such as ``arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/apikey/apikeya1bzhi`` .
4029
+
4030
+ :cloudformationAttribute: Arn
4031
+ '''
4032
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
4033
+
4034
+ @builtins.property
4035
+ @jsii.member(jsii_name="cfnProperties")
4036
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4037
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4038
+
4039
+ @builtins.property
4040
+ @jsii.member(jsii_name="apiId")
4041
+ def api_id(self) -> builtins.str:
4042
+ '''Unique AWS AppSync GraphQL API ID for this API key.'''
4043
+ return typing.cast(builtins.str, jsii.get(self, "apiId"))
4044
+
4045
+ @api_id.setter
4046
+ def api_id(self, value: builtins.str) -> None:
4047
+ if __debug__:
4048
+ type_hints = typing.get_type_hints(_typecheckingstub__3c1cce5f76a6037620e1cc2e57750c81cc5161ff526ce78123f0cd9f25c8e856)
4049
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4050
+ jsii.set(self, "apiId", value) # pyright: ignore[reportArgumentType]
4051
+
4052
+ @builtins.property
4053
+ @jsii.member(jsii_name="description")
4054
+ def description(self) -> typing.Optional[builtins.str]:
4055
+ '''Unique description of your API key.'''
4056
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
4057
+
4058
+ @description.setter
4059
+ def description(self, value: typing.Optional[builtins.str]) -> None:
4060
+ if __debug__:
4061
+ type_hints = typing.get_type_hints(_typecheckingstub__08afa042939638da41f04c7165f811f5081bd3c8943f787591f098aa4a3b8699)
4062
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4063
+ jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
4064
+
4065
+ @builtins.property
4066
+ @jsii.member(jsii_name="expires")
4067
+ def expires(self) -> typing.Optional[jsii.Number]:
4068
+ '''The time after which the API key expires.'''
4069
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "expires"))
4070
+
4071
+ @expires.setter
4072
+ def expires(self, value: typing.Optional[jsii.Number]) -> None:
4073
+ if __debug__:
4074
+ type_hints = typing.get_type_hints(_typecheckingstub__8b034facb88dea82241969fd1a22a5bbaccf03068403021106e073c92112ab45)
4075
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4076
+ jsii.set(self, "expires", value) # pyright: ignore[reportArgumentType]
4077
+
4078
+
4079
+ @jsii.data_type(
4080
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApiKeyProps",
4081
+ jsii_struct_bases=[],
4082
+ name_mapping={
4083
+ "api_id": "apiId",
4084
+ "description": "description",
4085
+ "expires": "expires",
4086
+ },
4087
+ )
4088
+ class CfnApiKeyProps:
4089
+ def __init__(
4090
+ self,
4091
+ *,
4092
+ api_id: builtins.str,
4093
+ description: typing.Optional[builtins.str] = None,
4094
+ expires: typing.Optional[jsii.Number] = None,
4095
+ ) -> None:
4096
+ '''Properties for defining a ``CfnApiKey``.
4097
+
4098
+ :param api_id: Unique AWS AppSync GraphQL API ID for this API key.
4099
+ :param description: Unique description of your API key.
4100
+ :param expires: The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.
4101
+
4102
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html
4103
+ :exampleMetadata: fixture=_generated
4104
+
4105
+ Example::
4106
+
4107
+ # The code below shows an example of how to instantiate this type.
4108
+ # The values are placeholders you should change.
4109
+ from aws_cdk import aws_appsync as appsync
4110
+
4111
+ cfn_api_key_props = appsync.CfnApiKeyProps(
4112
+ api_id="apiId",
4113
+
4114
+ # the properties below are optional
4115
+ description="description",
4116
+ expires=123
4117
+ )
4118
+ '''
4119
+ if __debug__:
4120
+ type_hints = typing.get_type_hints(_typecheckingstub__1688db2b7835c85b4e2cd69655b5d25321ff2aa2ea9e1b2a0612caff34184549)
4121
+ check_type(argname="argument api_id", value=api_id, expected_type=type_hints["api_id"])
4122
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
4123
+ check_type(argname="argument expires", value=expires, expected_type=type_hints["expires"])
4124
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2737
4125
  "api_id": api_id,
2738
- "ttl": ttl,
2739
- "type": type,
2740
4126
  }
2741
- if at_rest_encryption_enabled is not None:
2742
- self._values["at_rest_encryption_enabled"] = at_rest_encryption_enabled
2743
- if health_metrics_config is not None:
2744
- self._values["health_metrics_config"] = health_metrics_config
2745
- if transit_encryption_enabled is not None:
2746
- self._values["transit_encryption_enabled"] = transit_encryption_enabled
4127
+ if description is not None:
4128
+ self._values["description"] = description
4129
+ if expires is not None:
4130
+ self._values["expires"] = expires
2747
4131
 
2748
4132
  @builtins.property
2749
- def api_caching_behavior(self) -> builtins.str:
2750
- '''Caching behavior.
2751
-
2752
- - *FULL_REQUEST_CACHING* : All requests are fully cached.
2753
- - *PER_RESOLVER_CACHING* : Individual resolvers that you specify are cached.
4133
+ def api_id(self) -> builtins.str:
4134
+ '''Unique AWS AppSync GraphQL API ID for this API key.
2754
4135
 
2755
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-apicachingbehavior
4136
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apiid
2756
4137
  '''
2757
- result = self._values.get("api_caching_behavior")
2758
- assert result is not None, "Required property 'api_caching_behavior' is missing"
4138
+ result = self._values.get("api_id")
4139
+ assert result is not None, "Required property 'api_id' is missing"
2759
4140
  return typing.cast(builtins.str, result)
2760
4141
 
2761
4142
  @builtins.property
2762
- def api_id(self) -> builtins.str:
2763
- '''The GraphQL API ID.
4143
+ def description(self) -> typing.Optional[builtins.str]:
4144
+ '''Unique description of your API key.
4145
+
4146
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description
4147
+ '''
4148
+ result = self._values.get("description")
4149
+ return typing.cast(typing.Optional[builtins.str], result)
4150
+
4151
+ @builtins.property
4152
+ def expires(self) -> typing.Optional[jsii.Number]:
4153
+ '''The time after which the API key expires.
4154
+
4155
+ The date is represented as seconds since the epoch, rounded down to the nearest hour.
4156
+
4157
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires
4158
+ '''
4159
+ result = self._values.get("expires")
4160
+ return typing.cast(typing.Optional[jsii.Number], result)
4161
+
4162
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4163
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4164
+
4165
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4166
+ return not (rhs == self)
4167
+
4168
+ def __repr__(self) -> str:
4169
+ return "CfnApiKeyProps(%s)" % ", ".join(
4170
+ k + "=" + repr(v) for k, v in self._values.items()
4171
+ )
4172
+
4173
+
4174
+ @jsii.data_type(
4175
+ jsii_type="aws-cdk-lib.aws_appsync.CfnApiProps",
4176
+ jsii_struct_bases=[],
4177
+ name_mapping={
4178
+ "name": "name",
4179
+ "event_config": "eventConfig",
4180
+ "owner_contact": "ownerContact",
4181
+ "tags": "tags",
4182
+ },
4183
+ )
4184
+ class CfnApiProps:
4185
+ def __init__(
4186
+ self,
4187
+ *,
4188
+ name: builtins.str,
4189
+ event_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.EventConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
4190
+ owner_contact: typing.Optional[builtins.str] = None,
4191
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4192
+ ) -> None:
4193
+ '''Properties for defining a ``CfnApi``.
2764
4194
 
2765
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-apiid
2766
- '''
2767
- result = self._values.get("api_id")
2768
- assert result is not None, "Required property 'api_id' is missing"
2769
- return typing.cast(builtins.str, result)
4195
+ :param name: The name of the ``Api`` .
4196
+ :param event_config: Describes the authorization configuration for connections, message publishing, message subscriptions, and logging for an Event API.
4197
+ :param owner_contact: The owner contact information for an API resource. This field accepts any string input with a length of 0 - 256 characters.
4198
+ :param tags: A set of tags (key-value pairs) for this API.
2770
4199
 
2771
- @builtins.property
2772
- def ttl(self) -> jsii.Number:
2773
- '''TTL in seconds for cache entries.
4200
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html
4201
+ :exampleMetadata: fixture=_generated
2774
4202
 
2775
- Valid values are 1–3,600 seconds.
4203
+ Example::
2776
4204
 
2777
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-ttl
4205
+ # The code below shows an example of how to instantiate this type.
4206
+ # The values are placeholders you should change.
4207
+ from aws_cdk import aws_appsync as appsync
4208
+
4209
+ cfn_api_props = appsync.CfnApiProps(
4210
+ name="name",
4211
+
4212
+ # the properties below are optional
4213
+ event_config=appsync.CfnApi.EventConfigProperty(
4214
+ auth_providers=[appsync.CfnApi.AuthProviderProperty(
4215
+ auth_type="authType",
4216
+
4217
+ # the properties below are optional
4218
+ cognito_config=appsync.CfnApi.CognitoConfigProperty(
4219
+ aws_region="awsRegion",
4220
+ user_pool_id="userPoolId",
4221
+
4222
+ # the properties below are optional
4223
+ app_id_client_regex="appIdClientRegex"
4224
+ ),
4225
+ lambda_authorizer_config=appsync.CfnApi.LambdaAuthorizerConfigProperty(
4226
+ authorizer_uri="authorizerUri",
4227
+
4228
+ # the properties below are optional
4229
+ authorizer_result_ttl_in_seconds=123,
4230
+ identity_validation_expression="identityValidationExpression"
4231
+ ),
4232
+ open_id_connect_config=appsync.CfnApi.OpenIDConnectConfigProperty(
4233
+ issuer="issuer",
4234
+
4235
+ # the properties below are optional
4236
+ auth_ttl=123,
4237
+ client_id="clientId",
4238
+ iat_ttl=123
4239
+ )
4240
+ )],
4241
+ connection_auth_modes=[appsync.CfnApi.AuthModeProperty(
4242
+ auth_type="authType"
4243
+ )],
4244
+ default_publish_auth_modes=[appsync.CfnApi.AuthModeProperty(
4245
+ auth_type="authType"
4246
+ )],
4247
+ default_subscribe_auth_modes=[appsync.CfnApi.AuthModeProperty(
4248
+ auth_type="authType"
4249
+ )],
4250
+
4251
+ # the properties below are optional
4252
+ log_config=appsync.CfnApi.EventLogConfigProperty(
4253
+ cloud_watch_logs_role_arn="cloudWatchLogsRoleArn",
4254
+ log_level="logLevel"
4255
+ )
4256
+ ),
4257
+ owner_contact="ownerContact",
4258
+ tags=[CfnTag(
4259
+ key="key",
4260
+ value="value"
4261
+ )]
4262
+ )
2778
4263
  '''
2779
- result = self._values.get("ttl")
2780
- assert result is not None, "Required property 'ttl' is missing"
2781
- return typing.cast(jsii.Number, result)
4264
+ if __debug__:
4265
+ type_hints = typing.get_type_hints(_typecheckingstub__a6f1c28efbfb84e165cbbde9374da4810d0b8c625b2f4460dc4514b583cc8bc1)
4266
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
4267
+ check_type(argname="argument event_config", value=event_config, expected_type=type_hints["event_config"])
4268
+ check_type(argname="argument owner_contact", value=owner_contact, expected_type=type_hints["owner_contact"])
4269
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
4270
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4271
+ "name": name,
4272
+ }
4273
+ if event_config is not None:
4274
+ self._values["event_config"] = event_config
4275
+ if owner_contact is not None:
4276
+ self._values["owner_contact"] = owner_contact
4277
+ if tags is not None:
4278
+ self._values["tags"] = tags
2782
4279
 
2783
4280
  @builtins.property
2784
- def type(self) -> builtins.str:
2785
- '''The cache instance type. Valid values are.
2786
-
2787
- - ``SMALL``
2788
- - ``MEDIUM``
2789
- - ``LARGE``
2790
- - ``XLARGE``
2791
- - ``LARGE_2X``
2792
- - ``LARGE_4X``
2793
- - ``LARGE_8X`` (not available in all regions)
2794
- - ``LARGE_12X``
2795
-
2796
- Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used.
2797
-
2798
- The following legacy instance types are available, but their use is discouraged:
2799
-
2800
- - *T2_SMALL* : A t2.small instance type.
2801
- - *T2_MEDIUM* : A t2.medium instance type.
2802
- - *R4_LARGE* : A r4.large instance type.
2803
- - *R4_XLARGE* : A r4.xlarge instance type.
2804
- - *R4_2XLARGE* : A r4.2xlarge instance type.
2805
- - *R4_4XLARGE* : A r4.4xlarge instance type.
2806
- - *R4_8XLARGE* : A r4.8xlarge instance type.
4281
+ def name(self) -> builtins.str:
4282
+ '''The name of the ``Api`` .
2807
4283
 
2808
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-type
4284
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html#cfn-appsync-api-name
2809
4285
  '''
2810
- result = self._values.get("type")
2811
- assert result is not None, "Required property 'type' is missing"
4286
+ result = self._values.get("name")
4287
+ assert result is not None, "Required property 'name' is missing"
2812
4288
  return typing.cast(builtins.str, result)
2813
4289
 
2814
4290
  @builtins.property
2815
- def at_rest_encryption_enabled(
4291
+ def event_config(
2816
4292
  self,
2817
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2818
- '''At-rest encryption flag for cache.
2819
-
2820
- You cannot update this setting after creation.
4293
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnApi.EventConfigProperty]]:
4294
+ '''Describes the authorization configuration for connections, message publishing, message subscriptions, and logging for an Event API.
2821
4295
 
2822
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-atrestencryptionenabled
4296
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html#cfn-appsync-api-eventconfig
2823
4297
  '''
2824
- result = self._values.get("at_rest_encryption_enabled")
2825
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
4298
+ result = self._values.get("event_config")
4299
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnApi.EventConfigProperty]], result)
2826
4300
 
2827
4301
  @builtins.property
2828
- def health_metrics_config(self) -> typing.Optional[builtins.str]:
2829
- '''Controls how cache health metrics will be emitted to CloudWatch. Cache health metrics include:.
2830
-
2831
- - *NetworkBandwidthOutAllowanceExceeded* : The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.
2832
- - *EngineCPUUtilization* : The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.
4302
+ def owner_contact(self) -> typing.Optional[builtins.str]:
4303
+ '''The owner contact information for an API resource.
2833
4304
 
2834
- Metrics will be recorded by API ID. You can set the value to ``ENABLED`` or ``DISABLED`` .
4305
+ This field accepts any string input with a length of 0 - 256 characters.
2835
4306
 
2836
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-healthmetricsconfig
4307
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html#cfn-appsync-api-ownercontact
2837
4308
  '''
2838
- result = self._values.get("health_metrics_config")
4309
+ result = self._values.get("owner_contact")
2839
4310
  return typing.cast(typing.Optional[builtins.str], result)
2840
4311
 
2841
4312
  @builtins.property
2842
- def transit_encryption_enabled(
2843
- self,
2844
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2845
- '''Transit encryption flag when connecting to cache.
2846
-
2847
- You cannot update this setting after creation.
4313
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
4314
+ '''A set of tags (key-value pairs) for this API.
2848
4315
 
2849
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-transitencryptionenabled
4316
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-api.html#cfn-appsync-api-tags
2850
4317
  '''
2851
- result = self._values.get("transit_encryption_enabled")
2852
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
4318
+ result = self._values.get("tags")
4319
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2853
4320
 
2854
4321
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2855
4322
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -2858,21 +4325,23 @@ class CfnApiCacheProps:
2858
4325
  return not (rhs == self)
2859
4326
 
2860
4327
  def __repr__(self) -> str:
2861
- return "CfnApiCacheProps(%s)" % ", ".join(
4328
+ return "CfnApiProps(%s)" % ", ".join(
2862
4329
  k + "=" + repr(v) for k, v in self._values.items()
2863
4330
  )
2864
4331
 
2865
4332
 
2866
- @jsii.implements(_IInspectable_c2943556)
2867
- class CfnApiKey(
4333
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
4334
+ class CfnChannelNamespace(
2868
4335
  _CfnResource_9df397a6,
2869
4336
  metaclass=jsii.JSIIMeta,
2870
- jsii_type="aws-cdk-lib.aws_appsync.CfnApiKey",
4337
+ jsii_type="aws-cdk-lib.aws_appsync.CfnChannelNamespace",
2871
4338
  ):
2872
- '''The ``AWS::AppSync::ApiKey`` resource creates a unique key that you can distribute to clients who are executing GraphQL operations with AWS AppSync that require an API key.
4339
+ '''The ``AWS::AppSync::ChannelNamespace`` resource creates a channel namespace associated with an ``Api`` .
2873
4340
 
2874
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html
2875
- :cloudformationResource: AWS::AppSync::ApiKey
4341
+ The ``ChannelNamespace`` contains the definitions for code handlers for the ``Api`` .
4342
+
4343
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html
4344
+ :cloudformationResource: AWS::AppSync::ChannelNamespace
2876
4345
  :exampleMetadata: fixture=_generated
2877
4346
 
2878
4347
  Example::
@@ -2881,12 +4350,23 @@ class CfnApiKey(
2881
4350
  # The values are placeholders you should change.
2882
4351
  from aws_cdk import aws_appsync as appsync
2883
4352
 
2884
- cfn_api_key = appsync.CfnApiKey(self, "MyCfnApiKey",
4353
+ cfn_channel_namespace = appsync.CfnChannelNamespace(self, "MyCfnChannelNamespace",
2885
4354
  api_id="apiId",
4355
+ name="name",
2886
4356
 
2887
4357
  # the properties below are optional
2888
- description="description",
2889
- expires=123
4358
+ code_handlers="codeHandlers",
4359
+ code_s3_location="codeS3Location",
4360
+ publish_auth_modes=[appsync.CfnChannelNamespace.AuthModeProperty(
4361
+ auth_type="authType"
4362
+ )],
4363
+ subscribe_auth_modes=[appsync.CfnChannelNamespace.AuthModeProperty(
4364
+ auth_type="authType"
4365
+ )],
4366
+ tags=[CfnTag(
4367
+ key="key",
4368
+ value="value"
4369
+ )]
2890
4370
  )
2891
4371
  '''
2892
4372
 
@@ -2896,21 +4376,37 @@ class CfnApiKey(
2896
4376
  id: builtins.str,
2897
4377
  *,
2898
4378
  api_id: builtins.str,
2899
- description: typing.Optional[builtins.str] = None,
2900
- expires: typing.Optional[jsii.Number] = None,
4379
+ name: builtins.str,
4380
+ code_handlers: typing.Optional[builtins.str] = None,
4381
+ code_s3_location: typing.Optional[builtins.str] = None,
4382
+ publish_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnChannelNamespace.AuthModeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4383
+ subscribe_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnChannelNamespace.AuthModeProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4384
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2901
4385
  ) -> None:
2902
4386
  '''
2903
4387
  :param scope: Scope in which this resource is defined.
2904
4388
  :param id: Construct identifier for this resource (unique in its scope).
2905
- :param api_id: Unique AWS AppSync GraphQL API ID for this API key.
2906
- :param description: Unique description of your API key.
2907
- :param expires: The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.
4389
+ :param api_id: The ``Api`` ID.
4390
+ :param name: The name of the channel namespace. This name must be unique within the ``Api`` .
4391
+ :param code_handlers: The event handler functions that run custom business logic to process published events and subscribe requests.
4392
+ :param code_s3_location: The Amazon S3 endpoint where the code is located.
4393
+ :param publish_auth_modes: The authorization mode to use for publishing messages on the channel namespace. This configuration overrides the default ``Api`` authorization configuration.
4394
+ :param subscribe_auth_modes: The authorization mode to use for subscribing to messages on the channel namespace. This configuration overrides the default ``Api`` authorization configuration.
4395
+ :param tags: A set of tags (key-value pairs) for this channel namespace.
2908
4396
  '''
2909
4397
  if __debug__:
2910
- type_hints = typing.get_type_hints(_typecheckingstub__e6065dd18c9d420fd4fcd70aced8416006f044f82aecff54150165e832539a8e)
4398
+ type_hints = typing.get_type_hints(_typecheckingstub__a093c57f7353830d56f8cde41e8653e333d0f0b91da87dd9ca86d72460c39119)
2911
4399
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2912
4400
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2913
- props = CfnApiKeyProps(api_id=api_id, description=description, expires=expires)
4401
+ props = CfnChannelNamespaceProps(
4402
+ api_id=api_id,
4403
+ name=name,
4404
+ code_handlers=code_handlers,
4405
+ code_s3_location=code_s3_location,
4406
+ publish_auth_modes=publish_auth_modes,
4407
+ subscribe_auth_modes=subscribe_auth_modes,
4408
+ tags=tags,
4409
+ )
2914
4410
 
2915
4411
  jsii.create(self.__class__, self, [scope, id, props])
2916
4412
 
@@ -2921,7 +4417,7 @@ class CfnApiKey(
2921
4417
  :param inspector: tree inspector to collect and process attributes.
2922
4418
  '''
2923
4419
  if __debug__:
2924
- type_hints = typing.get_type_hints(_typecheckingstub__1f8f02bc91fc0b32c990b8d08a5d7a0ef78a88363920fa69d4196dcc7f2ecfb3)
4420
+ type_hints = typing.get_type_hints(_typecheckingstub__3ad9494241faa332c831f07b3784d74ff448ddf3fa3baab7ab580ea1404552c3)
2925
4421
  check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
2926
4422
  return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
2927
4423
 
@@ -2934,7 +4430,7 @@ class CfnApiKey(
2934
4430
  :param props: -
2935
4431
  '''
2936
4432
  if __debug__:
2937
- type_hints = typing.get_type_hints(_typecheckingstub__a844b496712966f29aae49f2f831e6a85c7acf03c2ce61c94162ccf13c5efd6d)
4433
+ type_hints = typing.get_type_hints(_typecheckingstub__f22e76dc0a889c34e986bed6da737321c1aa8a5ae15fc27cbba163171fcdaa23)
2938
4434
  check_type(argname="argument props", value=props, expected_type=type_hints["props"])
2939
4435
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
2940
4436
 
@@ -2945,31 +4441,19 @@ class CfnApiKey(
2945
4441
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
2946
4442
 
2947
4443
  @builtins.property
2948
- @jsii.member(jsii_name="attrApiKey")
2949
- def attr_api_key(self) -> builtins.str:
2950
- '''The API key.
2951
-
2952
- :cloudformationAttribute: ApiKey
2953
- '''
2954
- return typing.cast(builtins.str, jsii.get(self, "attrApiKey"))
2955
-
2956
- @builtins.property
2957
- @jsii.member(jsii_name="attrApiKeyId")
2958
- def attr_api_key_id(self) -> builtins.str:
2959
- '''The API key ID.
4444
+ @jsii.member(jsii_name="attrChannelNamespaceArn")
4445
+ def attr_channel_namespace_arn(self) -> builtins.str:
4446
+ '''The Amazon Resource Name (ARN) of the channel namespace.
2960
4447
 
2961
- :cloudformationAttribute: ApiKeyId
4448
+ :cloudformationAttribute: ChannelNamespaceArn
2962
4449
  '''
2963
- return typing.cast(builtins.str, jsii.get(self, "attrApiKeyId"))
4450
+ return typing.cast(builtins.str, jsii.get(self, "attrChannelNamespaceArn"))
2964
4451
 
2965
4452
  @builtins.property
2966
- @jsii.member(jsii_name="attrArn")
2967
- def attr_arn(self) -> builtins.str:
2968
- '''The Amazon Resource Name (ARN) of the API key, such as ``arn:aws:appsync:us-east-1:123456789012:apis/graphqlapiid/apikey/apikeya1bzhi`` .
2969
-
2970
- :cloudformationAttribute: Arn
2971
- '''
2972
- return typing.cast(builtins.str, jsii.get(self, "attrArn"))
4453
+ @jsii.member(jsii_name="cdkTagManager")
4454
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
4455
+ '''Tag Manager which manages the tags for this resource.'''
4456
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
2973
4457
 
2974
4458
  @builtins.property
2975
4459
  @jsii.member(jsii_name="cfnProperties")
@@ -2979,67 +4463,194 @@ class CfnApiKey(
2979
4463
  @builtins.property
2980
4464
  @jsii.member(jsii_name="apiId")
2981
4465
  def api_id(self) -> builtins.str:
2982
- '''Unique AWS AppSync GraphQL API ID for this API key.'''
4466
+ '''The ``Api`` ID.'''
2983
4467
  return typing.cast(builtins.str, jsii.get(self, "apiId"))
2984
4468
 
2985
4469
  @api_id.setter
2986
4470
  def api_id(self, value: builtins.str) -> None:
2987
4471
  if __debug__:
2988
- type_hints = typing.get_type_hints(_typecheckingstub__3c1cce5f76a6037620e1cc2e57750c81cc5161ff526ce78123f0cd9f25c8e856)
4472
+ type_hints = typing.get_type_hints(_typecheckingstub__8201c39b111fb5af50817714169cd23209a7d5463c3149a06b402732f7af580e)
2989
4473
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2990
4474
  jsii.set(self, "apiId", value) # pyright: ignore[reportArgumentType]
2991
4475
 
2992
4476
  @builtins.property
2993
- @jsii.member(jsii_name="description")
2994
- def description(self) -> typing.Optional[builtins.str]:
2995
- '''Unique description of your API key.'''
2996
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
4477
+ @jsii.member(jsii_name="name")
4478
+ def name(self) -> builtins.str:
4479
+ '''The name of the channel namespace.'''
4480
+ return typing.cast(builtins.str, jsii.get(self, "name"))
2997
4481
 
2998
- @description.setter
2999
- def description(self, value: typing.Optional[builtins.str]) -> None:
4482
+ @name.setter
4483
+ def name(self, value: builtins.str) -> None:
3000
4484
  if __debug__:
3001
- type_hints = typing.get_type_hints(_typecheckingstub__08afa042939638da41f04c7165f811f5081bd3c8943f787591f098aa4a3b8699)
4485
+ type_hints = typing.get_type_hints(_typecheckingstub__cc847adc224bbc3257fda0edc3e1e2ffa88ecece56b3863f1e87260c9d4103f2)
3002
4486
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3003
- jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
4487
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
3004
4488
 
3005
4489
  @builtins.property
3006
- @jsii.member(jsii_name="expires")
3007
- def expires(self) -> typing.Optional[jsii.Number]:
3008
- '''The time after which the API key expires.'''
3009
- return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "expires"))
4490
+ @jsii.member(jsii_name="codeHandlers")
4491
+ def code_handlers(self) -> typing.Optional[builtins.str]:
4492
+ '''The event handler functions that run custom business logic to process published events and subscribe requests.'''
4493
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "codeHandlers"))
4494
+
4495
+ @code_handlers.setter
4496
+ def code_handlers(self, value: typing.Optional[builtins.str]) -> None:
4497
+ if __debug__:
4498
+ type_hints = typing.get_type_hints(_typecheckingstub__aaac6b0f9e0f2f86d3b90444a82806e153092dec34e803bf21f2a307b6660597)
4499
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4500
+ jsii.set(self, "codeHandlers", value) # pyright: ignore[reportArgumentType]
4501
+
4502
+ @builtins.property
4503
+ @jsii.member(jsii_name="codeS3Location")
4504
+ def code_s3_location(self) -> typing.Optional[builtins.str]:
4505
+ '''The Amazon S3 endpoint where the code is located.'''
4506
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "codeS3Location"))
4507
+
4508
+ @code_s3_location.setter
4509
+ def code_s3_location(self, value: typing.Optional[builtins.str]) -> None:
4510
+ if __debug__:
4511
+ type_hints = typing.get_type_hints(_typecheckingstub__0253aa38ea0ac168a1bb603d6239ae0cf4ece50f9019b6a9b531fc609610605a)
4512
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4513
+ jsii.set(self, "codeS3Location", value) # pyright: ignore[reportArgumentType]
4514
+
4515
+ @builtins.property
4516
+ @jsii.member(jsii_name="publishAuthModes")
4517
+ def publish_auth_modes(
4518
+ self,
4519
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnChannelNamespace.AuthModeProperty"]]]]:
4520
+ '''The authorization mode to use for publishing messages on the channel namespace.'''
4521
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnChannelNamespace.AuthModeProperty"]]]], jsii.get(self, "publishAuthModes"))
4522
+
4523
+ @publish_auth_modes.setter
4524
+ def publish_auth_modes(
4525
+ self,
4526
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnChannelNamespace.AuthModeProperty"]]]],
4527
+ ) -> None:
4528
+ if __debug__:
4529
+ type_hints = typing.get_type_hints(_typecheckingstub__58ae5ceea0ea0efa0414e907917c0f46364396fc667a67ea5eb4524ac6fa4d5d)
4530
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4531
+ jsii.set(self, "publishAuthModes", value) # pyright: ignore[reportArgumentType]
4532
+
4533
+ @builtins.property
4534
+ @jsii.member(jsii_name="subscribeAuthModes")
4535
+ def subscribe_auth_modes(
4536
+ self,
4537
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnChannelNamespace.AuthModeProperty"]]]]:
4538
+ '''The authorization mode to use for subscribing to messages on the channel namespace.'''
4539
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnChannelNamespace.AuthModeProperty"]]]], jsii.get(self, "subscribeAuthModes"))
4540
+
4541
+ @subscribe_auth_modes.setter
4542
+ def subscribe_auth_modes(
4543
+ self,
4544
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnChannelNamespace.AuthModeProperty"]]]],
4545
+ ) -> None:
4546
+ if __debug__:
4547
+ type_hints = typing.get_type_hints(_typecheckingstub__fc62b054d5e5897ab522adeae0e075f829ec43715bace1f3db8e88e5980f2476)
4548
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4549
+ jsii.set(self, "subscribeAuthModes", value) # pyright: ignore[reportArgumentType]
4550
+
4551
+ @builtins.property
4552
+ @jsii.member(jsii_name="tags")
4553
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
4554
+ '''A set of tags (key-value pairs) for this channel namespace.'''
4555
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
4556
+
4557
+ @tags.setter
4558
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
4559
+ if __debug__:
4560
+ type_hints = typing.get_type_hints(_typecheckingstub__3273a2539d741466392c98ae069010c1b8fcca3604cfaf7fc6da4382ae1eecd7)
4561
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4562
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
4563
+
4564
+ @jsii.data_type(
4565
+ jsii_type="aws-cdk-lib.aws_appsync.CfnChannelNamespace.AuthModeProperty",
4566
+ jsii_struct_bases=[],
4567
+ name_mapping={"auth_type": "authType"},
4568
+ )
4569
+ class AuthModeProperty:
4570
+ def __init__(self, *, auth_type: typing.Optional[builtins.str] = None) -> None:
4571
+ '''Describes an authorization configuration.
4572
+
4573
+ Use ``AuthMode`` to specify the publishing and subscription authorization configuration for an Event API.
4574
+
4575
+ :param auth_type: The authorization type.
4576
+
4577
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-channelnamespace-authmode.html
4578
+ :exampleMetadata: fixture=_generated
4579
+
4580
+ Example::
4581
+
4582
+ # The code below shows an example of how to instantiate this type.
4583
+ # The values are placeholders you should change.
4584
+ from aws_cdk import aws_appsync as appsync
4585
+
4586
+ auth_mode_property = appsync.CfnChannelNamespace.AuthModeProperty(
4587
+ auth_type="authType"
4588
+ )
4589
+ '''
4590
+ if __debug__:
4591
+ type_hints = typing.get_type_hints(_typecheckingstub__1f188b8b6c402829b1c2c91be4530734973b0af72e7cec71bb11fffe3160f50f)
4592
+ check_type(argname="argument auth_type", value=auth_type, expected_type=type_hints["auth_type"])
4593
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4594
+ if auth_type is not None:
4595
+ self._values["auth_type"] = auth_type
4596
+
4597
+ @builtins.property
4598
+ def auth_type(self) -> typing.Optional[builtins.str]:
4599
+ '''The authorization type.
4600
+
4601
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-channelnamespace-authmode.html#cfn-appsync-channelnamespace-authmode-authtype
4602
+ '''
4603
+ result = self._values.get("auth_type")
4604
+ return typing.cast(typing.Optional[builtins.str], result)
4605
+
4606
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4607
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4608
+
4609
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4610
+ return not (rhs == self)
3010
4611
 
3011
- @expires.setter
3012
- def expires(self, value: typing.Optional[jsii.Number]) -> None:
3013
- if __debug__:
3014
- type_hints = typing.get_type_hints(_typecheckingstub__8b034facb88dea82241969fd1a22a5bbaccf03068403021106e073c92112ab45)
3015
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3016
- jsii.set(self, "expires", value) # pyright: ignore[reportArgumentType]
4612
+ def __repr__(self) -> str:
4613
+ return "AuthModeProperty(%s)" % ", ".join(
4614
+ k + "=" + repr(v) for k, v in self._values.items()
4615
+ )
3017
4616
 
3018
4617
 
3019
4618
  @jsii.data_type(
3020
- jsii_type="aws-cdk-lib.aws_appsync.CfnApiKeyProps",
4619
+ jsii_type="aws-cdk-lib.aws_appsync.CfnChannelNamespaceProps",
3021
4620
  jsii_struct_bases=[],
3022
4621
  name_mapping={
3023
4622
  "api_id": "apiId",
3024
- "description": "description",
3025
- "expires": "expires",
4623
+ "name": "name",
4624
+ "code_handlers": "codeHandlers",
4625
+ "code_s3_location": "codeS3Location",
4626
+ "publish_auth_modes": "publishAuthModes",
4627
+ "subscribe_auth_modes": "subscribeAuthModes",
4628
+ "tags": "tags",
3026
4629
  },
3027
4630
  )
3028
- class CfnApiKeyProps:
4631
+ class CfnChannelNamespaceProps:
3029
4632
  def __init__(
3030
4633
  self,
3031
4634
  *,
3032
4635
  api_id: builtins.str,
3033
- description: typing.Optional[builtins.str] = None,
3034
- expires: typing.Optional[jsii.Number] = None,
4636
+ name: builtins.str,
4637
+ code_handlers: typing.Optional[builtins.str] = None,
4638
+ code_s3_location: typing.Optional[builtins.str] = None,
4639
+ publish_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnChannelNamespace.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4640
+ subscribe_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnChannelNamespace.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4641
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3035
4642
  ) -> None:
3036
- '''Properties for defining a ``CfnApiKey``.
4643
+ '''Properties for defining a ``CfnChannelNamespace``.
3037
4644
 
3038
- :param api_id: Unique AWS AppSync GraphQL API ID for this API key.
3039
- :param description: Unique description of your API key.
3040
- :param expires: The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour.
4645
+ :param api_id: The ``Api`` ID.
4646
+ :param name: The name of the channel namespace. This name must be unique within the ``Api`` .
4647
+ :param code_handlers: The event handler functions that run custom business logic to process published events and subscribe requests.
4648
+ :param code_s3_location: The Amazon S3 endpoint where the code is located.
4649
+ :param publish_auth_modes: The authorization mode to use for publishing messages on the channel namespace. This configuration overrides the default ``Api`` authorization configuration.
4650
+ :param subscribe_auth_modes: The authorization mode to use for subscribing to messages on the channel namespace. This configuration overrides the default ``Api`` authorization configuration.
4651
+ :param tags: A set of tags (key-value pairs) for this channel namespace.
3041
4652
 
3042
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html
4653
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html
3043
4654
  :exampleMetadata: fixture=_generated
3044
4655
 
3045
4656
  Example::
@@ -3048,56 +4659,123 @@ class CfnApiKeyProps:
3048
4659
  # The values are placeholders you should change.
3049
4660
  from aws_cdk import aws_appsync as appsync
3050
4661
 
3051
- cfn_api_key_props = appsync.CfnApiKeyProps(
4662
+ cfn_channel_namespace_props = appsync.CfnChannelNamespaceProps(
3052
4663
  api_id="apiId",
4664
+ name="name",
3053
4665
 
3054
4666
  # the properties below are optional
3055
- description="description",
3056
- expires=123
4667
+ code_handlers="codeHandlers",
4668
+ code_s3_location="codeS3Location",
4669
+ publish_auth_modes=[appsync.CfnChannelNamespace.AuthModeProperty(
4670
+ auth_type="authType"
4671
+ )],
4672
+ subscribe_auth_modes=[appsync.CfnChannelNamespace.AuthModeProperty(
4673
+ auth_type="authType"
4674
+ )],
4675
+ tags=[CfnTag(
4676
+ key="key",
4677
+ value="value"
4678
+ )]
3057
4679
  )
3058
4680
  '''
3059
4681
  if __debug__:
3060
- type_hints = typing.get_type_hints(_typecheckingstub__1688db2b7835c85b4e2cd69655b5d25321ff2aa2ea9e1b2a0612caff34184549)
4682
+ type_hints = typing.get_type_hints(_typecheckingstub__3eedc5c3e1f83f431aa7bafffc93ab91843ace16bf993fccc5f6f8fe7b37f62c)
3061
4683
  check_type(argname="argument api_id", value=api_id, expected_type=type_hints["api_id"])
3062
- check_type(argname="argument description", value=description, expected_type=type_hints["description"])
3063
- check_type(argname="argument expires", value=expires, expected_type=type_hints["expires"])
4684
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
4685
+ check_type(argname="argument code_handlers", value=code_handlers, expected_type=type_hints["code_handlers"])
4686
+ check_type(argname="argument code_s3_location", value=code_s3_location, expected_type=type_hints["code_s3_location"])
4687
+ check_type(argname="argument publish_auth_modes", value=publish_auth_modes, expected_type=type_hints["publish_auth_modes"])
4688
+ check_type(argname="argument subscribe_auth_modes", value=subscribe_auth_modes, expected_type=type_hints["subscribe_auth_modes"])
4689
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
3064
4690
  self._values: typing.Dict[builtins.str, typing.Any] = {
3065
4691
  "api_id": api_id,
4692
+ "name": name,
3066
4693
  }
3067
- if description is not None:
3068
- self._values["description"] = description
3069
- if expires is not None:
3070
- self._values["expires"] = expires
4694
+ if code_handlers is not None:
4695
+ self._values["code_handlers"] = code_handlers
4696
+ if code_s3_location is not None:
4697
+ self._values["code_s3_location"] = code_s3_location
4698
+ if publish_auth_modes is not None:
4699
+ self._values["publish_auth_modes"] = publish_auth_modes
4700
+ if subscribe_auth_modes is not None:
4701
+ self._values["subscribe_auth_modes"] = subscribe_auth_modes
4702
+ if tags is not None:
4703
+ self._values["tags"] = tags
3071
4704
 
3072
4705
  @builtins.property
3073
4706
  def api_id(self) -> builtins.str:
3074
- '''Unique AWS AppSync GraphQL API ID for this API key.
4707
+ '''The ``Api`` ID.
3075
4708
 
3076
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apiid
4709
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-apiid
3077
4710
  '''
3078
4711
  result = self._values.get("api_id")
3079
4712
  assert result is not None, "Required property 'api_id' is missing"
3080
4713
  return typing.cast(builtins.str, result)
3081
4714
 
3082
4715
  @builtins.property
3083
- def description(self) -> typing.Optional[builtins.str]:
3084
- '''Unique description of your API key.
4716
+ def name(self) -> builtins.str:
4717
+ '''The name of the channel namespace.
3085
4718
 
3086
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description
4719
+ This name must be unique within the ``Api`` .
4720
+
4721
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-name
3087
4722
  '''
3088
- result = self._values.get("description")
4723
+ result = self._values.get("name")
4724
+ assert result is not None, "Required property 'name' is missing"
4725
+ return typing.cast(builtins.str, result)
4726
+
4727
+ @builtins.property
4728
+ def code_handlers(self) -> typing.Optional[builtins.str]:
4729
+ '''The event handler functions that run custom business logic to process published events and subscribe requests.
4730
+
4731
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-codehandlers
4732
+ '''
4733
+ result = self._values.get("code_handlers")
3089
4734
  return typing.cast(typing.Optional[builtins.str], result)
3090
4735
 
3091
4736
  @builtins.property
3092
- def expires(self) -> typing.Optional[jsii.Number]:
3093
- '''The time after which the API key expires.
4737
+ def code_s3_location(self) -> typing.Optional[builtins.str]:
4738
+ '''The Amazon S3 endpoint where the code is located.
3094
4739
 
3095
- The date is represented as seconds since the epoch, rounded down to the nearest hour.
4740
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-codes3location
4741
+ '''
4742
+ result = self._values.get("code_s3_location")
4743
+ return typing.cast(typing.Optional[builtins.str], result)
3096
4744
 
3097
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires
4745
+ @builtins.property
4746
+ def publish_auth_modes(
4747
+ self,
4748
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnChannelNamespace.AuthModeProperty]]]]:
4749
+ '''The authorization mode to use for publishing messages on the channel namespace.
4750
+
4751
+ This configuration overrides the default ``Api`` authorization configuration.
4752
+
4753
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-publishauthmodes
3098
4754
  '''
3099
- result = self._values.get("expires")
3100
- return typing.cast(typing.Optional[jsii.Number], result)
4755
+ result = self._values.get("publish_auth_modes")
4756
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnChannelNamespace.AuthModeProperty]]]], result)
4757
+
4758
+ @builtins.property
4759
+ def subscribe_auth_modes(
4760
+ self,
4761
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnChannelNamespace.AuthModeProperty]]]]:
4762
+ '''The authorization mode to use for subscribing to messages on the channel namespace.
4763
+
4764
+ This configuration overrides the default ``Api`` authorization configuration.
4765
+
4766
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-subscribeauthmodes
4767
+ '''
4768
+ result = self._values.get("subscribe_auth_modes")
4769
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnChannelNamespace.AuthModeProperty]]]], result)
4770
+
4771
+ @builtins.property
4772
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
4773
+ '''A set of tags (key-value pairs) for this channel namespace.
4774
+
4775
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-channelnamespace.html#cfn-appsync-channelnamespace-tags
4776
+ '''
4777
+ result = self._values.get("tags")
4778
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
3101
4779
 
3102
4780
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
3103
4781
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -3106,7 +4784,7 @@ class CfnApiKeyProps:
3106
4784
  return not (rhs == self)
3107
4785
 
3108
4786
  def __repr__(self) -> str:
3109
- return "CfnApiKeyProps(%s)" % ", ".join(
4787
+ return "CfnChannelNamespaceProps(%s)" % ", ".join(
3110
4788
  k + "=" + repr(v) for k, v in self._values.items()
3111
4789
  )
3112
4790
 
@@ -9778,6 +11456,7 @@ class Code(metaclass=jsii.JSIIAbstractClass, jsii_type="aws-cdk-lib.aws_appsync.
9778
11456
  *,
9779
11457
  deploy_time: typing.Optional[builtins.bool] = None,
9780
11458
  readers: typing.Optional[typing.Sequence[_IGrantable_71c4f5de]] = None,
11459
+ source_kms_key: typing.Optional[_IKey_5f11635f] = None,
9781
11460
  asset_hash: typing.Optional[builtins.str] = None,
9782
11461
  asset_hash_type: typing.Optional[_AssetHashType_05b67f2d] = None,
9783
11462
  bundling: typing.Optional[typing.Union[_BundlingOptions_588cc936, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -9790,6 +11469,7 @@ class Code(metaclass=jsii.JSIIAbstractClass, jsii_type="aws-cdk-lib.aws_appsync.
9790
11469
  :param path: The path to the source code file.
9791
11470
  :param deploy_time: Whether or not the asset needs to exist beyond deployment time; i.e. are copied over to a different location and not needed afterwards. Setting this property to true has an impact on the lifecycle of the asset, because we will assume that it is safe to delete after the CloudFormation deployment succeeds. For example, Lambda Function assets are copied over to Lambda during deployment. Therefore, it is not necessary to store the asset in S3, so we consider those deployTime assets. Default: false
9792
11471
  :param readers: A list of principals that should be able to read this asset from S3. You can use ``asset.grantRead(principal)`` to grant read permissions later. Default: - No principals that can read file asset.
11472
+ :param source_kms_key: The ARN of the KMS key used to encrypt the handler code. Default: - the default server-side encryption with Amazon S3 managed keys(SSE-S3) key will be used.
9793
11473
  :param asset_hash: Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. For consistency, this custom hash will be SHA256 hashed and encoded as hex. The resulting hash will be the asset hash. NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated. Default: - based on ``assetHashType``
9794
11474
  :param asset_hash_type: Specifies the type of hash to calculate for this asset. If ``assetHash`` is configured, this option must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: - the default is ``AssetHashType.SOURCE``, but if ``assetHash`` is explicitly specified this value defaults to ``AssetHashType.CUSTOM``.
9795
11475
  :param bundling: Bundle the asset by executing a command in a Docker container or a custom bundling provider. The asset path will be mounted at ``/asset-input``. The Docker container is responsible for putting content at ``/asset-output``. The content at ``/asset-output`` will be zipped and used as the final asset. Default: - uploaded as-is to S3 if the asset is a regular file or a .zip file, archived into a .zip file and uploaded to S3 otherwise
@@ -9803,6 +11483,7 @@ class Code(metaclass=jsii.JSIIAbstractClass, jsii_type="aws-cdk-lib.aws_appsync.
9803
11483
  options = _AssetOptions_2aa69621(
9804
11484
  deploy_time=deploy_time,
9805
11485
  readers=readers,
11486
+ source_kms_key=source_kms_key,
9806
11487
  asset_hash=asset_hash,
9807
11488
  asset_hash_type=asset_hash_type,
9808
11489
  bundling=bundling,
@@ -15177,9 +16858,11 @@ class AssetCode(
15177
16858
  import aws_cdk as cdk
15178
16859
  from aws_cdk import aws_appsync as appsync
15179
16860
  from aws_cdk import aws_iam as iam
16861
+ from aws_cdk import aws_kms as kms
15180
16862
 
15181
16863
  # docker_image: cdk.DockerImage
15182
16864
  # grantable: iam.IGrantable
16865
+ # key: kms.Key
15183
16866
  # local_bundling: cdk.ILocalBundling
15184
16867
 
15185
16868
  asset_code = appsync.AssetCode("path",
@@ -15215,7 +16898,8 @@ class AssetCode(
15215
16898
  exclude=["exclude"],
15216
16899
  follow_symlinks=cdk.SymlinkFollowMode.NEVER,
15217
16900
  ignore_mode=cdk.IgnoreMode.GLOB,
15218
- readers=[grantable]
16901
+ readers=[grantable],
16902
+ source_kMSKey=key
15219
16903
  )
15220
16904
  '''
15221
16905
 
@@ -15225,6 +16909,7 @@ class AssetCode(
15225
16909
  *,
15226
16910
  deploy_time: typing.Optional[builtins.bool] = None,
15227
16911
  readers: typing.Optional[typing.Sequence[_IGrantable_71c4f5de]] = None,
16912
+ source_kms_key: typing.Optional[_IKey_5f11635f] = None,
15228
16913
  asset_hash: typing.Optional[builtins.str] = None,
15229
16914
  asset_hash_type: typing.Optional[_AssetHashType_05b67f2d] = None,
15230
16915
  bundling: typing.Optional[typing.Union[_BundlingOptions_588cc936, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -15236,6 +16921,7 @@ class AssetCode(
15236
16921
  :param path: The path to the asset file.
15237
16922
  :param deploy_time: Whether or not the asset needs to exist beyond deployment time; i.e. are copied over to a different location and not needed afterwards. Setting this property to true has an impact on the lifecycle of the asset, because we will assume that it is safe to delete after the CloudFormation deployment succeeds. For example, Lambda Function assets are copied over to Lambda during deployment. Therefore, it is not necessary to store the asset in S3, so we consider those deployTime assets. Default: false
15238
16923
  :param readers: A list of principals that should be able to read this asset from S3. You can use ``asset.grantRead(principal)`` to grant read permissions later. Default: - No principals that can read file asset.
16924
+ :param source_kms_key: The ARN of the KMS key used to encrypt the handler code. Default: - the default server-side encryption with Amazon S3 managed keys(SSE-S3) key will be used.
15239
16925
  :param asset_hash: Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. For consistency, this custom hash will be SHA256 hashed and encoded as hex. The resulting hash will be the asset hash. NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated. Default: - based on ``assetHashType``
15240
16926
  :param asset_hash_type: Specifies the type of hash to calculate for this asset. If ``assetHash`` is configured, this option must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: - the default is ``AssetHashType.SOURCE``, but if ``assetHash`` is explicitly specified this value defaults to ``AssetHashType.CUSTOM``.
15241
16927
  :param bundling: Bundle the asset by executing a command in a Docker container or a custom bundling provider. The asset path will be mounted at ``/asset-input``. The Docker container is responsible for putting content at ``/asset-output``. The content at ``/asset-output`` will be zipped and used as the final asset. Default: - uploaded as-is to S3 if the asset is a regular file or a .zip file, archived into a .zip file and uploaded to S3 otherwise
@@ -15249,6 +16935,7 @@ class AssetCode(
15249
16935
  options = _AssetOptions_2aa69621(
15250
16936
  deploy_time=deploy_time,
15251
16937
  readers=readers,
16938
+ source_kms_key=source_kms_key,
15252
16939
  asset_hash=asset_hash,
15253
16940
  asset_hash_type=asset_hash_type,
15254
16941
  bundling=bundling,
@@ -17767,10 +19454,14 @@ __all__ = [
17767
19454
  "BaseDataSourceProps",
17768
19455
  "BaseResolverProps",
17769
19456
  "CachingConfig",
19457
+ "CfnApi",
17770
19458
  "CfnApiCache",
17771
19459
  "CfnApiCacheProps",
17772
19460
  "CfnApiKey",
17773
19461
  "CfnApiKeyProps",
19462
+ "CfnApiProps",
19463
+ "CfnChannelNamespace",
19464
+ "CfnChannelNamespaceProps",
17774
19465
  "CfnDataSource",
17775
19466
  "CfnDataSourceProps",
17776
19467
  "CfnDomainName",
@@ -18043,6 +19734,126 @@ def _typecheckingstub__16c48e7a47c60140291c83d5eea69a6e25ec7462e7a0080eaf553e500
18043
19734
  """Type checking stubs"""
18044
19735
  pass
18045
19736
 
19737
+ def _typecheckingstub__9b24e030284e4cb760e04c0345cc69b457962fa5c53b82f009a5c412ad0fa1e5(
19738
+ scope: _constructs_77d1e7e8.Construct,
19739
+ id: builtins.str,
19740
+ *,
19741
+ name: builtins.str,
19742
+ event_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.EventConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
19743
+ owner_contact: typing.Optional[builtins.str] = None,
19744
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
19745
+ ) -> None:
19746
+ """Type checking stubs"""
19747
+ pass
19748
+
19749
+ def _typecheckingstub__1a34658e511f6fa9562934d95c768fd4b2af2314ddf2dab2969f39073417c21f(
19750
+ inspector: _TreeInspector_488e0dd5,
19751
+ ) -> None:
19752
+ """Type checking stubs"""
19753
+ pass
19754
+
19755
+ def _typecheckingstub__80dee192d808ade2b05e0e5eae2e320cb156ff9affe045ecbcaf005a54690f10(
19756
+ props: typing.Mapping[builtins.str, typing.Any],
19757
+ ) -> None:
19758
+ """Type checking stubs"""
19759
+ pass
19760
+
19761
+ def _typecheckingstub__2bbcc5e3c150d28701074668c2cc2da51f0ba8e3870f53f61466fcc37a9b9d92(
19762
+ value: builtins.str,
19763
+ ) -> None:
19764
+ """Type checking stubs"""
19765
+ pass
19766
+
19767
+ def _typecheckingstub__9323cec9a000145849866e550b55f0a549087cc444c4fa5706fdbc7c1455d154(
19768
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnApi.EventConfigProperty]],
19769
+ ) -> None:
19770
+ """Type checking stubs"""
19771
+ pass
19772
+
19773
+ def _typecheckingstub__b829d518b74ad55cbf9233be61a91ddec84af300e750befd18c27d6ec18db38d(
19774
+ value: typing.Optional[builtins.str],
19775
+ ) -> None:
19776
+ """Type checking stubs"""
19777
+ pass
19778
+
19779
+ def _typecheckingstub__a8b30f166f8b9fa0fc02ab2eb4ff33b85277e77827ecebf6d7fd569a6667a8ea(
19780
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
19781
+ ) -> None:
19782
+ """Type checking stubs"""
19783
+ pass
19784
+
19785
+ def _typecheckingstub__27b661cb5be7fc793a7469c90adcd7629e723a94b2a389fead69d96cfde5dba2(
19786
+ *,
19787
+ auth_type: typing.Optional[builtins.str] = None,
19788
+ ) -> None:
19789
+ """Type checking stubs"""
19790
+ pass
19791
+
19792
+ def _typecheckingstub__d3b431432784c1151b3b95b1186edc1bcfaa11a3f70614ce43f998df8d1ae46d(
19793
+ *,
19794
+ auth_type: builtins.str,
19795
+ cognito_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.CognitoConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
19796
+ lambda_authorizer_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.LambdaAuthorizerConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
19797
+ open_id_connect_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.OpenIDConnectConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
19798
+ ) -> None:
19799
+ """Type checking stubs"""
19800
+ pass
19801
+
19802
+ def _typecheckingstub__012c8ad0fa2d1afcda68ca532d5e287baa9e170049fe0c4e05e77dab9f8eb753(
19803
+ *,
19804
+ aws_region: builtins.str,
19805
+ user_pool_id: builtins.str,
19806
+ app_id_client_regex: typing.Optional[builtins.str] = None,
19807
+ ) -> None:
19808
+ """Type checking stubs"""
19809
+ pass
19810
+
19811
+ def _typecheckingstub__312a111f84f5f64be12d3d7c09cc00f4c64e4fe99cd1bf78561ebcfd82084e0c(
19812
+ *,
19813
+ http: typing.Optional[builtins.str] = None,
19814
+ realtime: typing.Optional[builtins.str] = None,
19815
+ ) -> None:
19816
+ """Type checking stubs"""
19817
+ pass
19818
+
19819
+ def _typecheckingstub__53f8b01a4596f6e890e45a2870f92278e02fc06e912e096c33920157038135cf(
19820
+ *,
19821
+ auth_providers: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.AuthProviderProperty, typing.Dict[builtins.str, typing.Any]]]]],
19822
+ connection_auth_modes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]],
19823
+ default_publish_auth_modes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]],
19824
+ default_subscribe_auth_modes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]],
19825
+ log_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.EventLogConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
19826
+ ) -> None:
19827
+ """Type checking stubs"""
19828
+ pass
19829
+
19830
+ def _typecheckingstub__5cbb1c5597e58c84a31d8dc10841de6fa70b9c328dacba388a7afdab090b3e6a(
19831
+ *,
19832
+ cloud_watch_logs_role_arn: builtins.str,
19833
+ log_level: builtins.str,
19834
+ ) -> None:
19835
+ """Type checking stubs"""
19836
+ pass
19837
+
19838
+ def _typecheckingstub__6eb7eaf1ef726d95b558700ffd22e714695a485aed3b5a3ae796f2a03efae22c(
19839
+ *,
19840
+ authorizer_uri: builtins.str,
19841
+ authorizer_result_ttl_in_seconds: typing.Optional[jsii.Number] = None,
19842
+ identity_validation_expression: typing.Optional[builtins.str] = None,
19843
+ ) -> None:
19844
+ """Type checking stubs"""
19845
+ pass
19846
+
19847
+ def _typecheckingstub__560e301b02d9bfc40a0d691fa82c55f336f07c62f130aa6e9464ab1c1b676cf8(
19848
+ *,
19849
+ issuer: builtins.str,
19850
+ auth_ttl: typing.Optional[jsii.Number] = None,
19851
+ client_id: typing.Optional[builtins.str] = None,
19852
+ iat_ttl: typing.Optional[jsii.Number] = None,
19853
+ ) -> None:
19854
+ """Type checking stubs"""
19855
+ pass
19856
+
18046
19857
  def _typecheckingstub__e9d92b7b2abdac7341eb92f7ac10d2d67dd2700af68eaf42c72c47ffdaacc344(
18047
19858
  scope: _constructs_77d1e7e8.Construct,
18048
19859
  id: builtins.str,
@@ -18175,6 +19986,105 @@ def _typecheckingstub__1688db2b7835c85b4e2cd69655b5d25321ff2aa2ea9e1b2a0612caff3
18175
19986
  """Type checking stubs"""
18176
19987
  pass
18177
19988
 
19989
+ def _typecheckingstub__a6f1c28efbfb84e165cbbde9374da4810d0b8c625b2f4460dc4514b583cc8bc1(
19990
+ *,
19991
+ name: builtins.str,
19992
+ event_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnApi.EventConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
19993
+ owner_contact: typing.Optional[builtins.str] = None,
19994
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
19995
+ ) -> None:
19996
+ """Type checking stubs"""
19997
+ pass
19998
+
19999
+ def _typecheckingstub__a093c57f7353830d56f8cde41e8653e333d0f0b91da87dd9ca86d72460c39119(
20000
+ scope: _constructs_77d1e7e8.Construct,
20001
+ id: builtins.str,
20002
+ *,
20003
+ api_id: builtins.str,
20004
+ name: builtins.str,
20005
+ code_handlers: typing.Optional[builtins.str] = None,
20006
+ code_s3_location: typing.Optional[builtins.str] = None,
20007
+ publish_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnChannelNamespace.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
20008
+ subscribe_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnChannelNamespace.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
20009
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
20010
+ ) -> None:
20011
+ """Type checking stubs"""
20012
+ pass
20013
+
20014
+ def _typecheckingstub__3ad9494241faa332c831f07b3784d74ff448ddf3fa3baab7ab580ea1404552c3(
20015
+ inspector: _TreeInspector_488e0dd5,
20016
+ ) -> None:
20017
+ """Type checking stubs"""
20018
+ pass
20019
+
20020
+ def _typecheckingstub__f22e76dc0a889c34e986bed6da737321c1aa8a5ae15fc27cbba163171fcdaa23(
20021
+ props: typing.Mapping[builtins.str, typing.Any],
20022
+ ) -> None:
20023
+ """Type checking stubs"""
20024
+ pass
20025
+
20026
+ def _typecheckingstub__8201c39b111fb5af50817714169cd23209a7d5463c3149a06b402732f7af580e(
20027
+ value: builtins.str,
20028
+ ) -> None:
20029
+ """Type checking stubs"""
20030
+ pass
20031
+
20032
+ def _typecheckingstub__cc847adc224bbc3257fda0edc3e1e2ffa88ecece56b3863f1e87260c9d4103f2(
20033
+ value: builtins.str,
20034
+ ) -> None:
20035
+ """Type checking stubs"""
20036
+ pass
20037
+
20038
+ def _typecheckingstub__aaac6b0f9e0f2f86d3b90444a82806e153092dec34e803bf21f2a307b6660597(
20039
+ value: typing.Optional[builtins.str],
20040
+ ) -> None:
20041
+ """Type checking stubs"""
20042
+ pass
20043
+
20044
+ def _typecheckingstub__0253aa38ea0ac168a1bb603d6239ae0cf4ece50f9019b6a9b531fc609610605a(
20045
+ value: typing.Optional[builtins.str],
20046
+ ) -> None:
20047
+ """Type checking stubs"""
20048
+ pass
20049
+
20050
+ def _typecheckingstub__58ae5ceea0ea0efa0414e907917c0f46364396fc667a67ea5eb4524ac6fa4d5d(
20051
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnChannelNamespace.AuthModeProperty]]]],
20052
+ ) -> None:
20053
+ """Type checking stubs"""
20054
+ pass
20055
+
20056
+ def _typecheckingstub__fc62b054d5e5897ab522adeae0e075f829ec43715bace1f3db8e88e5980f2476(
20057
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnChannelNamespace.AuthModeProperty]]]],
20058
+ ) -> None:
20059
+ """Type checking stubs"""
20060
+ pass
20061
+
20062
+ def _typecheckingstub__3273a2539d741466392c98ae069010c1b8fcca3604cfaf7fc6da4382ae1eecd7(
20063
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
20064
+ ) -> None:
20065
+ """Type checking stubs"""
20066
+ pass
20067
+
20068
+ def _typecheckingstub__1f188b8b6c402829b1c2c91be4530734973b0af72e7cec71bb11fffe3160f50f(
20069
+ *,
20070
+ auth_type: typing.Optional[builtins.str] = None,
20071
+ ) -> None:
20072
+ """Type checking stubs"""
20073
+ pass
20074
+
20075
+ def _typecheckingstub__3eedc5c3e1f83f431aa7bafffc93ab91843ace16bf993fccc5f6f8fe7b37f62c(
20076
+ *,
20077
+ api_id: builtins.str,
20078
+ name: builtins.str,
20079
+ code_handlers: typing.Optional[builtins.str] = None,
20080
+ code_s3_location: typing.Optional[builtins.str] = None,
20081
+ publish_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnChannelNamespace.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
20082
+ subscribe_auth_modes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnChannelNamespace.AuthModeProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
20083
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
20084
+ ) -> None:
20085
+ """Type checking stubs"""
20086
+ pass
20087
+
18178
20088
  def _typecheckingstub__f2dc8968068d09d9cb599cea5efad1a18016c4eca4fcc6c15e6169a0891e2678(
18179
20089
  scope: _constructs_77d1e7e8.Construct,
18180
20090
  id: builtins.str,
@@ -19209,6 +21119,7 @@ def _typecheckingstub__8eafa9f4fd31cdfcc23e497d115c1733ce980674eb036dad379eb9102
19209
21119
  *,
19210
21120
  deploy_time: typing.Optional[builtins.bool] = None,
19211
21121
  readers: typing.Optional[typing.Sequence[_IGrantable_71c4f5de]] = None,
21122
+ source_kms_key: typing.Optional[_IKey_5f11635f] = None,
19212
21123
  asset_hash: typing.Optional[builtins.str] = None,
19213
21124
  asset_hash_type: typing.Optional[_AssetHashType_05b67f2d] = None,
19214
21125
  bundling: typing.Optional[typing.Union[_BundlingOptions_588cc936, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -19944,6 +21855,7 @@ def _typecheckingstub__f64c3b5b60096d2f072c0237f4540425eb18b7539e311bcd346760100
19944
21855
  *,
19945
21856
  deploy_time: typing.Optional[builtins.bool] = None,
19946
21857
  readers: typing.Optional[typing.Sequence[_IGrantable_71c4f5de]] = None,
21858
+ source_kms_key: typing.Optional[_IKey_5f11635f] = None,
19947
21859
  asset_hash: typing.Optional[builtins.str] = None,
19948
21860
  asset_hash_type: typing.Optional[_AssetHashType_05b67f2d] = None,
19949
21861
  bundling: typing.Optional[typing.Union[_BundlingOptions_588cc936, typing.Dict[builtins.str, typing.Any]]] = None,