aws-cdk-lib 2.141.0__py3-none-any.whl → 2.142.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.

aws_cdk/__init__.py CHANGED
@@ -264,7 +264,15 @@ In order to mimic strong references, a Custom Resource is also created in the co
264
264
  stack which marks the SSM parameters as being "imported". When a parameter has been successfully
265
265
  imported, the producing stack cannot update the value.
266
266
 
267
- See the [adr](https://github.com/aws/aws-cdk/blob/main/packages/@aws-cdk/core/adr/cross-region-stack-references)
267
+ > [!NOTE]
268
+ > As a consequence of this feature being built on a Custom Resource, we are restricted to a
269
+ > CloudFormation response body size limitation of [4096 bytes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/crpg-ref-responses.html).
270
+ > To prevent deployment errors related to the Custom Resource Provider response body being too
271
+ > large, we recommend limiting the use of nested stacks and minimizing the length of stack names.
272
+ > Doing this will prevent SSM parameter names from becoming too long which will reduce the size of the
273
+ > response body.
274
+
275
+ See the [adr](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/core/adr/cross-region-stack-references.md)
268
276
  for more details on this feature.
269
277
 
270
278
  ### Removing automatic cross-stack references
aws_cdk/_jsii/__init__.py CHANGED
@@ -19,7 +19,7 @@ import aws_cdk.asset_node_proxy_agent_v6._jsii
19
19
  import constructs._jsii
20
20
 
21
21
  __jsii_assembly__ = jsii.JSIIAssembly.load(
22
- "aws-cdk-lib", "2.141.0", __name__[0:-6], "aws-cdk-lib@2.141.0.jsii.tgz"
22
+ "aws-cdk-lib", "2.142.0", __name__[0:-6], "aws-cdk-lib@2.142.0.jsii.tgz"
23
23
  )
24
24
 
25
25
  __all__ = [
@@ -869,6 +869,31 @@ api = appsync.GraphqlApi(self, "api",
869
869
 
870
870
  api.add_environment_variable("EnvKey2", "non-empty-2")
871
871
  ```
872
+
873
+ ## Configure an EventBridge target that invokes an AppSync GraphQL API
874
+
875
+ Configuring the target relies on the `graphQLEndpointArn` property.
876
+
877
+ Use the `AppSync` event target to trigger an AppSync GraphQL API. You need to
878
+ create an `AppSync.GraphqlApi` configured with `AWS_IAM` authorization mode.
879
+
880
+ The code snippet below creates a AppSync GraphQL API target that is invoked, calling the `publish` mutation.
881
+
882
+ ```python
883
+ import aws_cdk.aws_events as events
884
+ import aws_cdk.aws_events_targets as targets
885
+
886
+ # rule: events.Rule
887
+ # api: appsync.GraphqlApi
888
+
889
+
890
+ rule.add_target(targets.AppSync(api,
891
+ graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
892
+ variables=events.RuleTargetInput.from_object({
893
+ "message": "hello world"
894
+ })
895
+ ))
896
+ ```
872
897
  '''
873
898
  from pkgutil import extend_path
874
899
  __path__ = extend_path(__path__, __name__)
@@ -1282,22 +1307,27 @@ class AuthorizationConfig:
1282
1307
 
1283
1308
  Example::
1284
1309
 
1285
- import aws_cdk.aws_lambda as lambda_
1286
- # auth_function: lambda.Function
1310
+ import aws_cdk.aws_appsync as appsync
1287
1311
 
1288
1312
 
1289
- appsync.GraphqlApi(self, "api",
1313
+ api = appsync.GraphqlApi(self, "api",
1290
1314
  name="api",
1291
- definition=appsync.Definition.from_file(path.join(__dirname, "appsync.test.graphql")),
1315
+ definition=appsync.Definition.from_file("schema.graphql"),
1292
1316
  authorization_config=appsync.AuthorizationConfig(
1293
- default_authorization=appsync.AuthorizationMode(
1294
- authorization_type=appsync.AuthorizationType.LAMBDA,
1295
- lambda_authorizer_config=appsync.LambdaAuthorizerConfig(
1296
- handler=auth_function
1297
- )
1298
- )
1317
+ default_authorization=appsync.AuthorizationMode(authorization_type=appsync.AuthorizationType.IAM)
1299
1318
  )
1300
1319
  )
1320
+
1321
+ rule = events.Rule(self, "Rule",
1322
+ schedule=events.Schedule.rate(cdk.Duration.hours(1))
1323
+ )
1324
+
1325
+ rule.add_target(targets.AppSync(api,
1326
+ graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
1327
+ variables=events.RuleTargetInput.from_object({
1328
+ "message": "hello world"
1329
+ })
1330
+ ))
1301
1331
  '''
1302
1332
  if isinstance(default_authorization, dict):
1303
1333
  default_authorization = AuthorizationMode(**default_authorization)
@@ -1376,53 +1406,27 @@ class AuthorizationMode:
1376
1406
 
1377
1407
  Example::
1378
1408
 
1379
- api = appsync.GraphqlApi(self, "Api",
1380
- name="demo",
1381
- definition=appsync.Definition.from_file(path.join(__dirname, "schema.graphql")),
1382
- authorization_config=appsync.AuthorizationConfig(
1383
- default_authorization=appsync.AuthorizationMode(
1384
- authorization_type=appsync.AuthorizationType.IAM
1385
- )
1386
- ),
1387
- xray_enabled=True
1388
- )
1409
+ import aws_cdk.aws_appsync as appsync
1389
1410
 
1390
- demo_table = dynamodb.Table(self, "DemoTable",
1391
- partition_key=dynamodb.Attribute(
1392
- name="id",
1393
- type=dynamodb.AttributeType.STRING
1394
- )
1395
- )
1396
-
1397
- demo_dS = api.add_dynamo_db_data_source("demoDataSource", demo_table)
1398
1411
 
1399
- # Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list.
1400
- # Resolver Mapping Template Reference:
1401
- # https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html
1402
- demo_dS.create_resolver("QueryGetDemosResolver",
1403
- type_name="Query",
1404
- field_name="getDemos",
1405
- request_mapping_template=appsync.MappingTemplate.dynamo_db_scan_table(),
1406
- response_mapping_template=appsync.MappingTemplate.dynamo_db_result_list()
1412
+ api = appsync.GraphqlApi(self, "api",
1413
+ name="api",
1414
+ definition=appsync.Definition.from_file("schema.graphql"),
1415
+ authorization_config=appsync.AuthorizationConfig(
1416
+ default_authorization=appsync.AuthorizationMode(authorization_type=appsync.AuthorizationType.IAM)
1417
+ )
1407
1418
  )
1408
1419
 
1409
- # Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table.
1410
- demo_dS.create_resolver("MutationAddDemoResolver",
1411
- type_name="Mutation",
1412
- field_name="addDemo",
1413
- request_mapping_template=appsync.MappingTemplate.dynamo_db_put_item(
1414
- appsync.PrimaryKey.partition("id").auto(),
1415
- appsync.Values.projecting("input")),
1416
- response_mapping_template=appsync.MappingTemplate.dynamo_db_result_item()
1420
+ rule = events.Rule(self, "Rule",
1421
+ schedule=events.Schedule.rate(cdk.Duration.hours(1))
1417
1422
  )
1418
1423
 
1419
- # To enable DynamoDB read consistency with the `MappingTemplate`:
1420
- demo_dS.create_resolver("QueryGetDemosConsistentResolver",
1421
- type_name="Query",
1422
- field_name="getDemosConsistent",
1423
- request_mapping_template=appsync.MappingTemplate.dynamo_db_scan_table(True),
1424
- response_mapping_template=appsync.MappingTemplate.dynamo_db_result_list()
1425
- )
1424
+ rule.add_target(targets.AppSync(api,
1425
+ graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
1426
+ variables=events.RuleTargetInput.from_object({
1427
+ "message": "hello world"
1428
+ })
1429
+ ))
1426
1430
  '''
1427
1431
  if isinstance(api_key_config, dict):
1428
1432
  api_key_config = ApiKeyConfig(**api_key_config)
@@ -1519,53 +1523,31 @@ class AuthorizationType(enum.Enum):
1519
1523
 
1520
1524
  Example::
1521
1525
 
1522
- api = appsync.GraphqlApi(self, "Api",
1523
- name="demo",
1524
- definition=appsync.Definition.from_file(path.join(__dirname, "schema.graphql")),
1525
- authorization_config=appsync.AuthorizationConfig(
1526
- default_authorization=appsync.AuthorizationMode(
1527
- authorization_type=appsync.AuthorizationType.IAM
1528
- )
1529
- ),
1530
- xray_enabled=True
1531
- )
1526
+ import aws_cdk.aws_iam as iam
1527
+ import aws_cdk.aws_appsync as appsync
1532
1528
 
1533
- demo_table = dynamodb.Table(self, "DemoTable",
1534
- partition_key=dynamodb.Attribute(
1535
- name="id",
1536
- type=dynamodb.AttributeType.STRING
1537
- )
1538
- )
1539
1529
 
1540
- demo_dS = api.add_dynamo_db_data_source("demoDataSource", demo_table)
1541
-
1542
- # Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list.
1543
- # Resolver Mapping Template Reference:
1544
- # https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html
1545
- demo_dS.create_resolver("QueryGetDemosResolver",
1546
- type_name="Query",
1547
- field_name="getDemos",
1548
- request_mapping_template=appsync.MappingTemplate.dynamo_db_scan_table(),
1549
- response_mapping_template=appsync.MappingTemplate.dynamo_db_result_list()
1530
+ api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedAPI",
1531
+ graphql_api_id="<api-id>",
1532
+ graphql_api_arn="<api-arn>",
1533
+ graph_qLEndpoint_arn="<api-endpoint-arn>",
1534
+ visibility=appsync.Visibility.GLOBAL,
1535
+ modes=[appsync.AuthorizationType.IAM]
1550
1536
  )
1551
1537
 
1552
- # Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table.
1553
- demo_dS.create_resolver("MutationAddDemoResolver",
1554
- type_name="Mutation",
1555
- field_name="addDemo",
1556
- request_mapping_template=appsync.MappingTemplate.dynamo_db_put_item(
1557
- appsync.PrimaryKey.partition("id").auto(),
1558
- appsync.Values.projecting("input")),
1559
- response_mapping_template=appsync.MappingTemplate.dynamo_db_result_item()
1560
- )
1538
+ rule = events.Rule(self, "Rule", schedule=events.Schedule.rate(cdk.Duration.minutes(1)))
1539
+ role = iam.Role(self, "Role", assumed_by=iam.ServicePrincipal("events.amazonaws.com"))
1561
1540
 
1562
- # To enable DynamoDB read consistency with the `MappingTemplate`:
1563
- demo_dS.create_resolver("QueryGetDemosConsistentResolver",
1564
- type_name="Query",
1565
- field_name="getDemosConsistent",
1566
- request_mapping_template=appsync.MappingTemplate.dynamo_db_scan_table(True),
1567
- response_mapping_template=appsync.MappingTemplate.dynamo_db_result_list()
1568
- )
1541
+ # allow EventBridge to use the `publish` mutation
1542
+ api.grant_mutation(role, "publish")
1543
+
1544
+ rule.add_target(targets.AppSync(api,
1545
+ graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
1546
+ variables=events.RuleTargetInput.from_object({
1547
+ "message": "hello world"
1548
+ }),
1549
+ event_role=role
1550
+ ))
1569
1551
  '''
1570
1552
 
1571
1553
  API_KEY = "API_KEY"
@@ -10692,6 +10674,9 @@ class FunctionRuntimeFamily(enum.Enum):
10692
10674
  name_mapping={
10693
10675
  "graphql_api_id": "graphqlApiId",
10694
10676
  "graphql_api_arn": "graphqlApiArn",
10677
+ "graph_ql_endpoint_arn": "graphQLEndpointArn",
10678
+ "modes": "modes",
10679
+ "visibility": "visibility",
10695
10680
  },
10696
10681
  )
10697
10682
  class GraphqlApiAttributes:
@@ -10700,11 +10685,17 @@ class GraphqlApiAttributes:
10700
10685
  *,
10701
10686
  graphql_api_id: builtins.str,
10702
10687
  graphql_api_arn: typing.Optional[builtins.str] = None,
10688
+ graph_ql_endpoint_arn: typing.Optional[builtins.str] = None,
10689
+ modes: typing.Optional[typing.Sequence[AuthorizationType]] = None,
10690
+ visibility: typing.Optional["Visibility"] = None,
10703
10691
  ) -> None:
10704
10692
  '''Attributes for GraphQL imports.
10705
10693
 
10706
10694
  :param graphql_api_id: an unique AWS AppSync GraphQL API identifier i.e. 'lxz775lwdrgcndgz3nurvac7oa'.
10707
10695
  :param graphql_api_arn: the arn for the GraphQL Api. Default: - autogenerated arn
10696
+ :param graph_ql_endpoint_arn: The GraphQl endpoint arn for the GraphQL API. Default: - none, required to construct event rules from imported APIs
10697
+ :param modes: The Authorization Types for this GraphQL Api. Default: - none, required to construct event rules from imported APIs
10698
+ :param visibility: The GraphQl API visibility. Default: - GLOBAL
10708
10699
 
10709
10700
  :exampleMetadata: infused
10710
10701
 
@@ -10732,11 +10723,20 @@ class GraphqlApiAttributes:
10732
10723
  type_hints = typing.get_type_hints(_typecheckingstub__ec1fc91e210b45240155885dae82dd53ddc084048aae2724cd942ec7c5202c10)
10733
10724
  check_type(argname="argument graphql_api_id", value=graphql_api_id, expected_type=type_hints["graphql_api_id"])
10734
10725
  check_type(argname="argument graphql_api_arn", value=graphql_api_arn, expected_type=type_hints["graphql_api_arn"])
10726
+ check_type(argname="argument graph_ql_endpoint_arn", value=graph_ql_endpoint_arn, expected_type=type_hints["graph_ql_endpoint_arn"])
10727
+ check_type(argname="argument modes", value=modes, expected_type=type_hints["modes"])
10728
+ check_type(argname="argument visibility", value=visibility, expected_type=type_hints["visibility"])
10735
10729
  self._values: typing.Dict[builtins.str, typing.Any] = {
10736
10730
  "graphql_api_id": graphql_api_id,
10737
10731
  }
10738
10732
  if graphql_api_arn is not None:
10739
10733
  self._values["graphql_api_arn"] = graphql_api_arn
10734
+ if graph_ql_endpoint_arn is not None:
10735
+ self._values["graph_ql_endpoint_arn"] = graph_ql_endpoint_arn
10736
+ if modes is not None:
10737
+ self._values["modes"] = modes
10738
+ if visibility is not None:
10739
+ self._values["visibility"] = visibility
10740
10740
 
10741
10741
  @builtins.property
10742
10742
  def graphql_api_id(self) -> builtins.str:
@@ -10754,6 +10754,33 @@ class GraphqlApiAttributes:
10754
10754
  result = self._values.get("graphql_api_arn")
10755
10755
  return typing.cast(typing.Optional[builtins.str], result)
10756
10756
 
10757
+ @builtins.property
10758
+ def graph_ql_endpoint_arn(self) -> typing.Optional[builtins.str]:
10759
+ '''The GraphQl endpoint arn for the GraphQL API.
10760
+
10761
+ :default: - none, required to construct event rules from imported APIs
10762
+ '''
10763
+ result = self._values.get("graph_ql_endpoint_arn")
10764
+ return typing.cast(typing.Optional[builtins.str], result)
10765
+
10766
+ @builtins.property
10767
+ def modes(self) -> typing.Optional[typing.List[AuthorizationType]]:
10768
+ '''The Authorization Types for this GraphQL Api.
10769
+
10770
+ :default: - none, required to construct event rules from imported APIs
10771
+ '''
10772
+ result = self._values.get("modes")
10773
+ return typing.cast(typing.Optional[typing.List[AuthorizationType]], result)
10774
+
10775
+ @builtins.property
10776
+ def visibility(self) -> typing.Optional["Visibility"]:
10777
+ '''The GraphQl API visibility.
10778
+
10779
+ :default: - GLOBAL
10780
+ '''
10781
+ result = self._values.get("visibility")
10782
+ return typing.cast(typing.Optional["Visibility"], result)
10783
+
10757
10784
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
10758
10785
  return isinstance(rhs, self.__class__) and rhs._values == self._values
10759
10786
 
@@ -11323,6 +11350,24 @@ class IGraphqlApi(_IResource_c80c4260, typing_extensions.Protocol):
11323
11350
  '''
11324
11351
  ...
11325
11352
 
11353
+ @builtins.property
11354
+ @jsii.member(jsii_name="graphQLEndpointArn")
11355
+ def graph_ql_endpoint_arn(self) -> builtins.str:
11356
+ '''The GraphQL endpoint ARN.'''
11357
+ ...
11358
+
11359
+ @builtins.property
11360
+ @jsii.member(jsii_name="modes")
11361
+ def modes(self) -> typing.List[AuthorizationType]:
11362
+ '''The Authorization Types for this GraphQL Api.'''
11363
+ ...
11364
+
11365
+ @builtins.property
11366
+ @jsii.member(jsii_name="visibility")
11367
+ def visibility(self) -> "Visibility":
11368
+ '''the visibility of the API.'''
11369
+ ...
11370
+
11326
11371
  @jsii.member(jsii_name="addDynamoDbDataSource")
11327
11372
  def add_dynamo_db_data_source(
11328
11373
  self,
@@ -11620,6 +11665,24 @@ class _IGraphqlApiProxy(
11620
11665
  '''
11621
11666
  return typing.cast(builtins.str, jsii.get(self, "arn"))
11622
11667
 
11668
+ @builtins.property
11669
+ @jsii.member(jsii_name="graphQLEndpointArn")
11670
+ def graph_ql_endpoint_arn(self) -> builtins.str:
11671
+ '''The GraphQL endpoint ARN.'''
11672
+ return typing.cast(builtins.str, jsii.get(self, "graphQLEndpointArn"))
11673
+
11674
+ @builtins.property
11675
+ @jsii.member(jsii_name="modes")
11676
+ def modes(self) -> typing.List[AuthorizationType]:
11677
+ '''The Authorization Types for this GraphQL Api.'''
11678
+ return typing.cast(typing.List[AuthorizationType], jsii.get(self, "modes"))
11679
+
11680
+ @builtins.property
11681
+ @jsii.member(jsii_name="visibility")
11682
+ def visibility(self) -> "Visibility":
11683
+ '''the visibility of the API.'''
11684
+ return typing.cast("Visibility", jsii.get(self, "visibility"))
11685
+
11623
11686
  @jsii.member(jsii_name="addDynamoDbDataSource")
11624
11687
  def add_dynamo_db_data_source(
11625
11688
  self,
@@ -16336,6 +16399,27 @@ class GraphqlApiBase(
16336
16399
  '''the ARN of the API.'''
16337
16400
  ...
16338
16401
 
16402
+ @builtins.property
16403
+ @jsii.member(jsii_name="graphQLEndpointArn")
16404
+ @abc.abstractmethod
16405
+ def graph_ql_endpoint_arn(self) -> builtins.str:
16406
+ '''The GraphQL endpoint ARN.'''
16407
+ ...
16408
+
16409
+ @builtins.property
16410
+ @jsii.member(jsii_name="modes")
16411
+ @abc.abstractmethod
16412
+ def modes(self) -> typing.List[AuthorizationType]:
16413
+ '''The Authorization Types for this GraphQL Api.'''
16414
+ ...
16415
+
16416
+ @builtins.property
16417
+ @jsii.member(jsii_name="visibility")
16418
+ @abc.abstractmethod
16419
+ def visibility(self) -> Visibility:
16420
+ '''The visibility of the API.'''
16421
+ ...
16422
+
16339
16423
 
16340
16424
  class _GraphqlApiBaseProxy(
16341
16425
  GraphqlApiBase,
@@ -16353,6 +16437,24 @@ class _GraphqlApiBaseProxy(
16353
16437
  '''the ARN of the API.'''
16354
16438
  return typing.cast(builtins.str, jsii.get(self, "arn"))
16355
16439
 
16440
+ @builtins.property
16441
+ @jsii.member(jsii_name="graphQLEndpointArn")
16442
+ def graph_ql_endpoint_arn(self) -> builtins.str:
16443
+ '''The GraphQL endpoint ARN.'''
16444
+ return typing.cast(builtins.str, jsii.get(self, "graphQLEndpointArn"))
16445
+
16446
+ @builtins.property
16447
+ @jsii.member(jsii_name="modes")
16448
+ def modes(self) -> typing.List[AuthorizationType]:
16449
+ '''The Authorization Types for this GraphQL Api.'''
16450
+ return typing.cast(typing.List[AuthorizationType], jsii.get(self, "modes"))
16451
+
16452
+ @builtins.property
16453
+ @jsii.member(jsii_name="visibility")
16454
+ def visibility(self) -> Visibility:
16455
+ '''The visibility of the API.'''
16456
+ return typing.cast(Visibility, jsii.get(self, "visibility"))
16457
+
16356
16458
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
16357
16459
  typing.cast(typing.Any, GraphqlApiBase).__jsii_proxy_class__ = lambda : _GraphqlApiBaseProxy
16358
16460
 
@@ -17386,6 +17488,9 @@ class GraphqlApi(
17386
17488
  *,
17387
17489
  graphql_api_id: builtins.str,
17388
17490
  graphql_api_arn: typing.Optional[builtins.str] = None,
17491
+ graph_ql_endpoint_arn: typing.Optional[builtins.str] = None,
17492
+ modes: typing.Optional[typing.Sequence[AuthorizationType]] = None,
17493
+ visibility: typing.Optional[Visibility] = None,
17389
17494
  ) -> IGraphqlApi:
17390
17495
  '''Import a GraphQL API through this function.
17391
17496
 
@@ -17393,13 +17498,20 @@ class GraphqlApi(
17393
17498
  :param id: id.
17394
17499
  :param graphql_api_id: an unique AWS AppSync GraphQL API identifier i.e. 'lxz775lwdrgcndgz3nurvac7oa'.
17395
17500
  :param graphql_api_arn: the arn for the GraphQL Api. Default: - autogenerated arn
17501
+ :param graph_ql_endpoint_arn: The GraphQl endpoint arn for the GraphQL API. Default: - none, required to construct event rules from imported APIs
17502
+ :param modes: The Authorization Types for this GraphQL Api. Default: - none, required to construct event rules from imported APIs
17503
+ :param visibility: The GraphQl API visibility. Default: - GLOBAL
17396
17504
  '''
17397
17505
  if __debug__:
17398
17506
  type_hints = typing.get_type_hints(_typecheckingstub__5cefbac91e5bf4b599b8cb612f2e49280f0cab47fab8b476b11f991f6c9f42f4)
17399
17507
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
17400
17508
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
17401
17509
  attrs = GraphqlApiAttributes(
17402
- graphql_api_id=graphql_api_id, graphql_api_arn=graphql_api_arn
17510
+ graphql_api_id=graphql_api_id,
17511
+ graphql_api_arn=graphql_api_arn,
17512
+ graph_ql_endpoint_arn=graph_ql_endpoint_arn,
17513
+ modes=modes,
17514
+ visibility=visibility,
17403
17515
  )
17404
17516
 
17405
17517
  return typing.cast(IGraphqlApi, jsii.sinvoke(cls, "fromGraphqlApiAttributes", [scope, id, attrs]))
@@ -17446,6 +17558,12 @@ class GraphqlApi(
17446
17558
  '''the ARN of the API.'''
17447
17559
  return typing.cast(builtins.str, jsii.get(self, "arn"))
17448
17560
 
17561
+ @builtins.property
17562
+ @jsii.member(jsii_name="graphQLEndpointArn")
17563
+ def graph_ql_endpoint_arn(self) -> builtins.str:
17564
+ '''The GraphQL endpoint ARN.'''
17565
+ return typing.cast(builtins.str, jsii.get(self, "graphQLEndpointArn"))
17566
+
17449
17567
  @builtins.property
17450
17568
  @jsii.member(jsii_name="graphqlUrl")
17451
17569
  def graphql_url(self) -> builtins.str:
@@ -17479,6 +17597,12 @@ class GraphqlApi(
17479
17597
  '''the schema attached to this api (only available for GraphQL APIs, not available for merged APIs).'''
17480
17598
  return typing.cast(ISchema, jsii.get(self, "schema"))
17481
17599
 
17600
+ @builtins.property
17601
+ @jsii.member(jsii_name="visibility")
17602
+ def visibility(self) -> Visibility:
17603
+ '''the visibility of the API.'''
17604
+ return typing.cast(Visibility, jsii.get(self, "visibility"))
17605
+
17482
17606
  @builtins.property
17483
17607
  @jsii.member(jsii_name="apiKey")
17484
17608
  def api_key(self) -> typing.Optional[builtins.str]:
@@ -19048,6 +19172,9 @@ def _typecheckingstub__ec1fc91e210b45240155885dae82dd53ddc084048aae2724cd942ec7c
19048
19172
  *,
19049
19173
  graphql_api_id: builtins.str,
19050
19174
  graphql_api_arn: typing.Optional[builtins.str] = None,
19175
+ graph_ql_endpoint_arn: typing.Optional[builtins.str] = None,
19176
+ modes: typing.Optional[typing.Sequence[AuthorizationType]] = None,
19177
+ visibility: typing.Optional[Visibility] = None,
19051
19178
  ) -> None:
19052
19179
  """Type checking stubs"""
19053
19180
  pass
@@ -20095,6 +20222,9 @@ def _typecheckingstub__5cefbac91e5bf4b599b8cb612f2e49280f0cab47fab8b476b11f991f6
20095
20222
  *,
20096
20223
  graphql_api_id: builtins.str,
20097
20224
  graphql_api_arn: typing.Optional[builtins.str] = None,
20225
+ graph_ql_endpoint_arn: typing.Optional[builtins.str] = None,
20226
+ modes: typing.Optional[typing.Sequence[AuthorizationType]] = None,
20227
+ visibility: typing.Optional[Visibility] = None,
20098
20228
  ) -> None:
20099
20229
  """Type checking stubs"""
20100
20230
  pass