aws-cdk-lib 2.96.2__py3-none-any.whl → 2.97.1__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 (53) hide show
  1. aws_cdk/__init__.py +246 -62
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.96.2.jsii.tgz → aws-cdk-lib@2.97.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +1 -1
  5. aws_cdk/aws_appflow/__init__.py +205 -7
  6. aws_cdk/aws_appstream/__init__.py +33 -28
  7. aws_cdk/aws_appsync/__init__.py +555 -71
  8. aws_cdk/aws_autoscaling/__init__.py +5 -11
  9. aws_cdk/aws_billingconductor/__init__.py +145 -1
  10. aws_cdk/aws_cleanrooms/__init__.py +1198 -86
  11. aws_cdk/aws_cloudformation/__init__.py +221 -55
  12. aws_cdk/aws_cloudwatch/__init__.py +325 -2
  13. aws_cdk/aws_cognito/__init__.py +9 -13
  14. aws_cdk/aws_config/__init__.py +68 -73
  15. aws_cdk/aws_connect/__init__.py +909 -164
  16. aws_cdk/aws_customerprofiles/__init__.py +44 -0
  17. aws_cdk/aws_dms/__init__.py +198 -0
  18. aws_cdk/aws_ec2/__init__.py +593 -73
  19. aws_cdk/aws_ecr/__init__.py +7 -2
  20. aws_cdk/aws_ecs/__init__.py +2 -2
  21. aws_cdk/aws_efs/__init__.py +237 -0
  22. aws_cdk/aws_emr/__init__.py +232 -0
  23. aws_cdk/aws_entityresolution/__init__.py +1702 -0
  24. aws_cdk/aws_events/__init__.py +13 -18
  25. aws_cdk/aws_fms/__init__.py +3 -3
  26. aws_cdk/aws_gamelift/__init__.py +10 -15
  27. aws_cdk/aws_grafana/__init__.py +9 -5
  28. aws_cdk/aws_guardduty/__init__.py +272 -205
  29. aws_cdk/aws_iam/__init__.py +20 -18
  30. aws_cdk/aws_iotwireless/__init__.py +38 -54
  31. aws_cdk/aws_lakeformation/__init__.py +18 -6
  32. aws_cdk/aws_lambda/__init__.py +1 -1
  33. aws_cdk/aws_lightsail/__init__.py +225 -0
  34. aws_cdk/aws_lookoutequipment/__init__.py +4 -4
  35. aws_cdk/aws_macie/__init__.py +5 -3
  36. aws_cdk/aws_mediapackagev2/__init__.py +3227 -0
  37. aws_cdk/aws_pcaconnectorad/__init__.py +6785 -0
  38. aws_cdk/aws_quicksight/__init__.py +189 -116
  39. aws_cdk/aws_rds/__init__.py +316 -9
  40. aws_cdk/aws_resiliencehub/__init__.py +38 -21
  41. aws_cdk/aws_route53resolver/__init__.py +429 -0
  42. aws_cdk/aws_sagemaker/__init__.py +34 -34
  43. aws_cdk/aws_stepfunctions/__init__.py +111 -14
  44. aws_cdk/aws_transfer/__init__.py +2 -2
  45. aws_cdk/aws_vpclattice/__init__.py +128 -120
  46. aws_cdk/aws_workspacesweb/__init__.py +3790 -0
  47. aws_cdk/region_info/__init__.py +49 -0
  48. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/METADATA +2 -2
  49. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/RECORD +53 -49
  50. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/LICENSE +0 -0
  51. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/NOTICE +0 -0
  52. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/WHEEL +0 -0
  53. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/top_level.txt +0 -0
@@ -388,21 +388,42 @@ second_api.add_none_data_source("SecondSourceDS",
388
388
  )
389
389
 
390
390
  # Merged API
391
- appsync.GraphqlApi(self, "MergedAPI",
391
+ merged_api = appsync.GraphqlApi(self, "MergedAPI",
392
392
  name="MergedAPI",
393
393
  definition=appsync.Definition.from_source_apis(
394
394
  source_apis=[appsync.SourceApi(
395
395
  source_api=first_api,
396
396
  merge_type=appsync.MergeType.MANUAL_MERGE
397
- ), appsync.SourceApi(
398
- source_api=second_api,
399
- merge_type=appsync.MergeType.AUTO_MERGE
400
397
  )
401
398
  ]
402
399
  )
403
400
  )
404
401
  ```
405
402
 
403
+ ## Merged APIs Across Different Stacks
404
+
405
+ The SourceApiAssociation construct allows you to define a SourceApiAssociation to a Merged API in a different stack or account. This allows a source API owner the ability to associate it to an existing Merged API itself.
406
+
407
+ ```python
408
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
409
+ name="FirstSourceAPI",
410
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
411
+ )
412
+
413
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
414
+ graphql_api_id="MyApiId",
415
+ graphql_api_arn="MyApiArn"
416
+ )
417
+
418
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
419
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
420
+ source_api=source_api,
421
+ merged_api=imported_merged_api,
422
+ merge_type=appsync.MergeType.MANUAL_MERGE,
423
+ merged_api_execution_role=imported_execution_role
424
+ )
425
+ ```
426
+
406
427
  ## Custom Domain Names
407
428
 
408
429
  For many use cases you may want to associate a custom domain name with your
@@ -9352,15 +9373,12 @@ class DataSourceOptions:
9352
9373
  )
9353
9374
 
9354
9375
  # Merged API
9355
- appsync.GraphqlApi(self, "MergedAPI",
9376
+ merged_api = appsync.GraphqlApi(self, "MergedAPI",
9356
9377
  name="MergedAPI",
9357
9378
  definition=appsync.Definition.from_source_apis(
9358
9379
  source_apis=[appsync.SourceApi(
9359
9380
  source_api=first_api,
9360
9381
  merge_type=appsync.MergeType.MANUAL_MERGE
9361
- ), appsync.SourceApi(
9362
- source_api=second_api,
9363
- merge_type=appsync.MergeType.AUTO_MERGE
9364
9382
  )
9365
9383
  ]
9366
9384
  )
@@ -9418,23 +9436,22 @@ class Definition(
9418
9436
 
9419
9437
  Example::
9420
9438
 
9421
- import aws_cdk.aws_events as events
9422
-
9423
-
9424
- api = appsync.GraphqlApi(self, "EventBridgeApi",
9425
- name="EventBridgeApi",
9426
- definition=appsync.Definition.from_file(path.join(__dirname, "appsync.eventbridge.graphql"))
9439
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
9440
+ name="FirstSourceAPI",
9441
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
9427
9442
  )
9428
9443
 
9429
- bus = events.EventBus(self, "DestinationEventBus")
9430
-
9431
- data_source = api.add_event_bridge_data_source("NoneDS", bus)
9444
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
9445
+ graphql_api_id="MyApiId",
9446
+ graphql_api_arn="MyApiArn"
9447
+ )
9432
9448
 
9433
- data_source.create_resolver("EventResolver",
9434
- type_name="Mutation",
9435
- field_name="emitEvent",
9436
- request_mapping_template=appsync.MappingTemplate.from_file("request.vtl"),
9437
- response_mapping_template=appsync.MappingTemplate.from_file("response.vtl")
9449
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
9450
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
9451
+ source_api=source_api,
9452
+ merged_api=imported_merged_api,
9453
+ merge_type=appsync.MergeType.MANUAL_MERGE,
9454
+ merged_api_execution_role=imported_execution_role
9438
9455
  )
9439
9456
  '''
9440
9457
 
@@ -10179,14 +10196,23 @@ class GraphqlApiAttributes:
10179
10196
 
10180
10197
  Example::
10181
10198
 
10182
- # api: appsync.GraphqlApi
10183
- # table: dynamodb.Table
10199
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
10200
+ name="FirstSourceAPI",
10201
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
10202
+ )
10184
10203
 
10185
- imported_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "IApi",
10186
- graphql_api_id=api.api_id,
10187
- graphql_api_arn=api.arn
10204
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
10205
+ graphql_api_id="MyApiId",
10206
+ graphql_api_arn="MyApiArn"
10207
+ )
10208
+
10209
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
10210
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
10211
+ source_api=source_api,
10212
+ merged_api=imported_merged_api,
10213
+ merge_type=appsync.MergeType.MANUAL_MERGE,
10214
+ merged_api_execution_role=imported_execution_role
10188
10215
  )
10189
- imported_api.add_dynamo_db_data_source("TableDataSource", table)
10190
10216
  '''
10191
10217
  if __debug__:
10192
10218
  type_hints = typing.get_type_hints(_typecheckingstub__ec1fc91e210b45240155885dae82dd53ddc084048aae2724cd942ec7c5202c10)
@@ -10268,23 +10294,22 @@ class GraphqlApiProps:
10268
10294
 
10269
10295
  Example::
10270
10296
 
10271
- import aws_cdk.aws_events as events
10272
-
10273
-
10274
- api = appsync.GraphqlApi(self, "EventBridgeApi",
10275
- name="EventBridgeApi",
10276
- definition=appsync.Definition.from_file(path.join(__dirname, "appsync.eventbridge.graphql"))
10297
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
10298
+ name="FirstSourceAPI",
10299
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
10277
10300
  )
10278
10301
 
10279
- bus = events.EventBus(self, "DestinationEventBus")
10280
-
10281
- data_source = api.add_event_bridge_data_source("NoneDS", bus)
10302
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
10303
+ graphql_api_id="MyApiId",
10304
+ graphql_api_arn="MyApiArn"
10305
+ )
10282
10306
 
10283
- data_source.create_resolver("EventResolver",
10284
- type_name="Mutation",
10285
- field_name="emitEvent",
10286
- request_mapping_template=appsync.MappingTemplate.from_file("request.vtl"),
10287
- response_mapping_template=appsync.MappingTemplate.from_file("response.vtl")
10307
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
10308
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
10309
+ source_api=source_api,
10310
+ merged_api=imported_merged_api,
10311
+ merge_type=appsync.MergeType.MANUAL_MERGE,
10312
+ merged_api_execution_role=imported_execution_role
10288
10313
  )
10289
10314
  '''
10290
10315
  if isinstance(authorization_config, dict):
@@ -10372,7 +10397,7 @@ class GraphqlApiProps:
10372
10397
 
10373
10398
  :default: - schema will be generated code-first (i.e. addType, addObjectType, etc.)
10374
10399
 
10375
- :deprecated: use apiSoure.schema instead
10400
+ :deprecated: use apiSource.schema instead
10376
10401
 
10377
10402
  :stability: deprecated
10378
10403
  '''
@@ -11313,6 +11338,70 @@ class _ISchemaConfigProxy:
11313
11338
  typing.cast(typing.Any, ISchemaConfig).__jsii_proxy_class__ = lambda : _ISchemaConfigProxy
11314
11339
 
11315
11340
 
11341
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_appsync.ISourceApiAssociation")
11342
+ class ISourceApiAssociation(_IResource_c80c4260, typing_extensions.Protocol):
11343
+ '''Interface for AppSync Source Api Association.'''
11344
+
11345
+ @builtins.property
11346
+ @jsii.member(jsii_name="associationArn")
11347
+ def association_arn(self) -> builtins.str:
11348
+ '''The association arn.'''
11349
+ ...
11350
+
11351
+ @builtins.property
11352
+ @jsii.member(jsii_name="associationId")
11353
+ def association_id(self) -> builtins.str:
11354
+ '''The association id.'''
11355
+ ...
11356
+
11357
+ @builtins.property
11358
+ @jsii.member(jsii_name="mergedApi")
11359
+ def merged_api(self) -> IGraphqlApi:
11360
+ '''The merged api in the association.'''
11361
+ ...
11362
+
11363
+ @builtins.property
11364
+ @jsii.member(jsii_name="sourceApi")
11365
+ def source_api(self) -> IGraphqlApi:
11366
+ '''The source api in the association.'''
11367
+ ...
11368
+
11369
+
11370
+ class _ISourceApiAssociationProxy(
11371
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
11372
+ ):
11373
+ '''Interface for AppSync Source Api Association.'''
11374
+
11375
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_appsync.ISourceApiAssociation"
11376
+
11377
+ @builtins.property
11378
+ @jsii.member(jsii_name="associationArn")
11379
+ def association_arn(self) -> builtins.str:
11380
+ '''The association arn.'''
11381
+ return typing.cast(builtins.str, jsii.get(self, "associationArn"))
11382
+
11383
+ @builtins.property
11384
+ @jsii.member(jsii_name="associationId")
11385
+ def association_id(self) -> builtins.str:
11386
+ '''The association id.'''
11387
+ return typing.cast(builtins.str, jsii.get(self, "associationId"))
11388
+
11389
+ @builtins.property
11390
+ @jsii.member(jsii_name="mergedApi")
11391
+ def merged_api(self) -> IGraphqlApi:
11392
+ '''The merged api in the association.'''
11393
+ return typing.cast(IGraphqlApi, jsii.get(self, "mergedApi"))
11394
+
11395
+ @builtins.property
11396
+ @jsii.member(jsii_name="sourceApi")
11397
+ def source_api(self) -> IGraphqlApi:
11398
+ '''The source api in the association.'''
11399
+ return typing.cast(IGraphqlApi, jsii.get(self, "sourceApi"))
11400
+
11401
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
11402
+ typing.cast(typing.Any, ISourceApiAssociation).__jsii_proxy_class__ = lambda : _ISourceApiAssociationProxy
11403
+
11404
+
11316
11405
  class IamResource(
11317
11406
  metaclass=jsii.JSIIMeta,
11318
11407
  jsii_type="aws-cdk-lib.aws_appsync.IamResource",
@@ -12003,15 +12092,12 @@ class MergeType(enum.Enum):
12003
12092
  )
12004
12093
 
12005
12094
  # Merged API
12006
- appsync.GraphqlApi(self, "MergedAPI",
12095
+ merged_api = appsync.GraphqlApi(self, "MergedAPI",
12007
12096
  name="MergedAPI",
12008
12097
  definition=appsync.Definition.from_source_apis(
12009
12098
  source_apis=[appsync.SourceApi(
12010
12099
  source_api=first_api,
12011
12100
  merge_type=appsync.MergeType.MANUAL_MERGE
12012
- ), appsync.SourceApi(
12013
- source_api=second_api,
12014
- merge_type=appsync.MergeType.AUTO_MERGE
12015
12101
  )
12016
12102
  ]
12017
12103
  )
@@ -13045,18 +13131,24 @@ class SortKeyStep(
13045
13131
  @jsii.data_type(
13046
13132
  jsii_type="aws-cdk-lib.aws_appsync.SourceApi",
13047
13133
  jsii_struct_bases=[],
13048
- name_mapping={"source_api": "sourceApi", "merge_type": "mergeType"},
13134
+ name_mapping={
13135
+ "source_api": "sourceApi",
13136
+ "description": "description",
13137
+ "merge_type": "mergeType",
13138
+ },
13049
13139
  )
13050
13140
  class SourceApi:
13051
13141
  def __init__(
13052
13142
  self,
13053
13143
  *,
13054
- source_api: "GraphqlApi",
13144
+ source_api: IGraphqlApi,
13145
+ description: typing.Optional[builtins.str] = None,
13055
13146
  merge_type: typing.Optional[MergeType] = None,
13056
13147
  ) -> None:
13057
13148
  '''Configuration of source API.
13058
13149
 
13059
13150
  :param source_api: Source API that is associated with the merged API.
13151
+ :param description: Description of the Source API asssociation.
13060
13152
  :param merge_type: Merging option used to associate the source API to the Merged API. Default: - Auto merge. The merge is triggered automatically when the source API has changed
13061
13153
 
13062
13154
  :exampleMetadata: fixture=_generated
@@ -13073,25 +13165,35 @@ class SourceApi:
13073
13165
  source_api=graphql_api,
13074
13166
 
13075
13167
  # the properties below are optional
13168
+ description="description",
13076
13169
  merge_type=appsync.MergeType.MANUAL_MERGE
13077
13170
  )
13078
13171
  '''
13079
13172
  if __debug__:
13080
13173
  type_hints = typing.get_type_hints(_typecheckingstub__7bef1ce1bd423a1d4c0b7f6f65a108a4af8b5372e92c20ee3f9f4648fb4f24f1)
13081
13174
  check_type(argname="argument source_api", value=source_api, expected_type=type_hints["source_api"])
13175
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
13082
13176
  check_type(argname="argument merge_type", value=merge_type, expected_type=type_hints["merge_type"])
13083
13177
  self._values: typing.Dict[builtins.str, typing.Any] = {
13084
13178
  "source_api": source_api,
13085
13179
  }
13180
+ if description is not None:
13181
+ self._values["description"] = description
13086
13182
  if merge_type is not None:
13087
13183
  self._values["merge_type"] = merge_type
13088
13184
 
13089
13185
  @builtins.property
13090
- def source_api(self) -> "GraphqlApi":
13186
+ def source_api(self) -> IGraphqlApi:
13091
13187
  '''Source API that is associated with the merged API.'''
13092
13188
  result = self._values.get("source_api")
13093
13189
  assert result is not None, "Required property 'source_api' is missing"
13094
- return typing.cast("GraphqlApi", result)
13190
+ return typing.cast(IGraphqlApi, result)
13191
+
13192
+ @builtins.property
13193
+ def description(self) -> typing.Optional[builtins.str]:
13194
+ '''Description of the Source API asssociation.'''
13195
+ result = self._values.get("description")
13196
+ return typing.cast(typing.Optional[builtins.str], result)
13095
13197
 
13096
13198
  @builtins.property
13097
13199
  def merge_type(self) -> typing.Optional[MergeType]:
@@ -13114,6 +13216,343 @@ class SourceApi:
13114
13216
  )
13115
13217
 
13116
13218
 
13219
+ @jsii.implements(ISourceApiAssociation)
13220
+ class SourceApiAssociation(
13221
+ _Resource_45bc6135,
13222
+ metaclass=jsii.JSIIMeta,
13223
+ jsii_type="aws-cdk-lib.aws_appsync.SourceApiAssociation",
13224
+ ):
13225
+ '''AppSync SourceApiAssociation which associates an AppSync source API to an AppSync Merged API.
13226
+
13227
+ The initial creation of the SourceApiAssociation merges the source API into the Merged API schema.
13228
+
13229
+ :exampleMetadata: infused
13230
+
13231
+ Example::
13232
+
13233
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
13234
+ name="FirstSourceAPI",
13235
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
13236
+ )
13237
+
13238
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
13239
+ graphql_api_id="MyApiId",
13240
+ graphql_api_arn="MyApiArn"
13241
+ )
13242
+
13243
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
13244
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
13245
+ source_api=source_api,
13246
+ merged_api=imported_merged_api,
13247
+ merge_type=appsync.MergeType.MANUAL_MERGE,
13248
+ merged_api_execution_role=imported_execution_role
13249
+ )
13250
+ '''
13251
+
13252
+ def __init__(
13253
+ self,
13254
+ scope: _constructs_77d1e7e8.Construct,
13255
+ id: builtins.str,
13256
+ *,
13257
+ merged_api: IGraphqlApi,
13258
+ merged_api_execution_role: _IRole_235f5d8e,
13259
+ source_api: IGraphqlApi,
13260
+ description: typing.Optional[builtins.str] = None,
13261
+ merge_type: typing.Optional[MergeType] = None,
13262
+ ) -> None:
13263
+ '''
13264
+ :param scope: -
13265
+ :param id: -
13266
+ :param merged_api: The merged api to associate.
13267
+ :param merged_api_execution_role: The merged api execution role for adding the access policy for the source api.
13268
+ :param source_api: The source api to associate.
13269
+ :param description: The description of the source api association. Default: - None
13270
+ :param merge_type: The merge type for the source. Default: - AUTO_MERGE
13271
+ '''
13272
+ if __debug__:
13273
+ type_hints = typing.get_type_hints(_typecheckingstub__eb8c3f70027957b4b96a01531a87b7bf27655f1ee553c04a4278093ceefb6f72)
13274
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
13275
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
13276
+ props = SourceApiAssociationProps(
13277
+ merged_api=merged_api,
13278
+ merged_api_execution_role=merged_api_execution_role,
13279
+ source_api=source_api,
13280
+ description=description,
13281
+ merge_type=merge_type,
13282
+ )
13283
+
13284
+ jsii.create(self.__class__, self, [scope, id, props])
13285
+
13286
+ @jsii.member(jsii_name="fromSourceApiAssociationAttributes")
13287
+ @builtins.classmethod
13288
+ def from_source_api_association_attributes(
13289
+ cls,
13290
+ scope: _constructs_77d1e7e8.Construct,
13291
+ id: builtins.str,
13292
+ *,
13293
+ association_arn: builtins.str,
13294
+ merged_api: IGraphqlApi,
13295
+ source_api: IGraphqlApi,
13296
+ ) -> ISourceApiAssociation:
13297
+ '''Import Appsync Source Api Association from source API, merged api, and merge type.
13298
+
13299
+ :param scope: -
13300
+ :param id: -
13301
+ :param association_arn: The association arn.
13302
+ :param merged_api: The merged api in the association.
13303
+ :param source_api: The source api in the association.
13304
+ '''
13305
+ if __debug__:
13306
+ type_hints = typing.get_type_hints(_typecheckingstub__97507ab2610d2a6fffaf16c3f218200d2564b3e5f13f6d40b0ed78d53615af87)
13307
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
13308
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
13309
+ attrs = SourceApiAssociationAttributes(
13310
+ association_arn=association_arn,
13311
+ merged_api=merged_api,
13312
+ source_api=source_api,
13313
+ )
13314
+
13315
+ return typing.cast(ISourceApiAssociation, jsii.sinvoke(cls, "fromSourceApiAssociationAttributes", [scope, id, attrs]))
13316
+
13317
+ @builtins.property
13318
+ @jsii.member(jsii_name="association")
13319
+ def association(self) -> CfnSourceApiAssociation:
13320
+ '''The underlying CFN source api association resource.'''
13321
+ return typing.cast(CfnSourceApiAssociation, jsii.get(self, "association"))
13322
+
13323
+ @builtins.property
13324
+ @jsii.member(jsii_name="associationArn")
13325
+ def association_arn(self) -> builtins.str:
13326
+ '''The association arn.'''
13327
+ return typing.cast(builtins.str, jsii.get(self, "associationArn"))
13328
+
13329
+ @builtins.property
13330
+ @jsii.member(jsii_name="associationId")
13331
+ def association_id(self) -> builtins.str:
13332
+ '''The association id.'''
13333
+ return typing.cast(builtins.str, jsii.get(self, "associationId"))
13334
+
13335
+ @builtins.property
13336
+ @jsii.member(jsii_name="mergedApi")
13337
+ def merged_api(self) -> IGraphqlApi:
13338
+ '''The merged api in the association.'''
13339
+ return typing.cast(IGraphqlApi, jsii.get(self, "mergedApi"))
13340
+
13341
+ @builtins.property
13342
+ @jsii.member(jsii_name="mergeType")
13343
+ def merge_type(self) -> MergeType:
13344
+ '''The merge type for the source api association.'''
13345
+ return typing.cast(MergeType, jsii.get(self, "mergeType"))
13346
+
13347
+ @builtins.property
13348
+ @jsii.member(jsii_name="sourceApi")
13349
+ def source_api(self) -> IGraphqlApi:
13350
+ '''The source api in the association.'''
13351
+ return typing.cast(IGraphqlApi, jsii.get(self, "sourceApi"))
13352
+
13353
+
13354
+ @jsii.data_type(
13355
+ jsii_type="aws-cdk-lib.aws_appsync.SourceApiAssociationAttributes",
13356
+ jsii_struct_bases=[],
13357
+ name_mapping={
13358
+ "association_arn": "associationArn",
13359
+ "merged_api": "mergedApi",
13360
+ "source_api": "sourceApi",
13361
+ },
13362
+ )
13363
+ class SourceApiAssociationAttributes:
13364
+ def __init__(
13365
+ self,
13366
+ *,
13367
+ association_arn: builtins.str,
13368
+ merged_api: IGraphqlApi,
13369
+ source_api: IGraphqlApi,
13370
+ ) -> None:
13371
+ '''The attributes for imported AppSync Source Api Association.
13372
+
13373
+ :param association_arn: The association arn.
13374
+ :param merged_api: The merged api in the association.
13375
+ :param source_api: The source api in the association.
13376
+
13377
+ :exampleMetadata: fixture=_generated
13378
+
13379
+ Example::
13380
+
13381
+ # The code below shows an example of how to instantiate this type.
13382
+ # The values are placeholders you should change.
13383
+ from aws_cdk import aws_appsync as appsync
13384
+
13385
+ # graphql_api: appsync.GraphqlApi
13386
+
13387
+ source_api_association_attributes = appsync.SourceApiAssociationAttributes(
13388
+ association_arn="associationArn",
13389
+ merged_api=graphql_api,
13390
+ source_api=graphql_api
13391
+ )
13392
+ '''
13393
+ if __debug__:
13394
+ type_hints = typing.get_type_hints(_typecheckingstub__c9c0d0a1defd3bbf92ca52dcdeaed177c69409cf14746681e1abf485713c7e29)
13395
+ check_type(argname="argument association_arn", value=association_arn, expected_type=type_hints["association_arn"])
13396
+ check_type(argname="argument merged_api", value=merged_api, expected_type=type_hints["merged_api"])
13397
+ check_type(argname="argument source_api", value=source_api, expected_type=type_hints["source_api"])
13398
+ self._values: typing.Dict[builtins.str, typing.Any] = {
13399
+ "association_arn": association_arn,
13400
+ "merged_api": merged_api,
13401
+ "source_api": source_api,
13402
+ }
13403
+
13404
+ @builtins.property
13405
+ def association_arn(self) -> builtins.str:
13406
+ '''The association arn.'''
13407
+ result = self._values.get("association_arn")
13408
+ assert result is not None, "Required property 'association_arn' is missing"
13409
+ return typing.cast(builtins.str, result)
13410
+
13411
+ @builtins.property
13412
+ def merged_api(self) -> IGraphqlApi:
13413
+ '''The merged api in the association.'''
13414
+ result = self._values.get("merged_api")
13415
+ assert result is not None, "Required property 'merged_api' is missing"
13416
+ return typing.cast(IGraphqlApi, result)
13417
+
13418
+ @builtins.property
13419
+ def source_api(self) -> IGraphqlApi:
13420
+ '''The source api in the association.'''
13421
+ result = self._values.get("source_api")
13422
+ assert result is not None, "Required property 'source_api' is missing"
13423
+ return typing.cast(IGraphqlApi, result)
13424
+
13425
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
13426
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
13427
+
13428
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
13429
+ return not (rhs == self)
13430
+
13431
+ def __repr__(self) -> str:
13432
+ return "SourceApiAssociationAttributes(%s)" % ", ".join(
13433
+ k + "=" + repr(v) for k, v in self._values.items()
13434
+ )
13435
+
13436
+
13437
+ @jsii.data_type(
13438
+ jsii_type="aws-cdk-lib.aws_appsync.SourceApiAssociationProps",
13439
+ jsii_struct_bases=[],
13440
+ name_mapping={
13441
+ "merged_api": "mergedApi",
13442
+ "merged_api_execution_role": "mergedApiExecutionRole",
13443
+ "source_api": "sourceApi",
13444
+ "description": "description",
13445
+ "merge_type": "mergeType",
13446
+ },
13447
+ )
13448
+ class SourceApiAssociationProps:
13449
+ def __init__(
13450
+ self,
13451
+ *,
13452
+ merged_api: IGraphqlApi,
13453
+ merged_api_execution_role: _IRole_235f5d8e,
13454
+ source_api: IGraphqlApi,
13455
+ description: typing.Optional[builtins.str] = None,
13456
+ merge_type: typing.Optional[MergeType] = None,
13457
+ ) -> None:
13458
+ '''Properties for SourceApiAssociation which associates an AppSync Source API with an AppSync Merged API.
13459
+
13460
+ :param merged_api: The merged api to associate.
13461
+ :param merged_api_execution_role: The merged api execution role for adding the access policy for the source api.
13462
+ :param source_api: The source api to associate.
13463
+ :param description: The description of the source api association. Default: - None
13464
+ :param merge_type: The merge type for the source. Default: - AUTO_MERGE
13465
+
13466
+ :exampleMetadata: infused
13467
+
13468
+ Example::
13469
+
13470
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
13471
+ name="FirstSourceAPI",
13472
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
13473
+ )
13474
+
13475
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
13476
+ graphql_api_id="MyApiId",
13477
+ graphql_api_arn="MyApiArn"
13478
+ )
13479
+
13480
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
13481
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
13482
+ source_api=source_api,
13483
+ merged_api=imported_merged_api,
13484
+ merge_type=appsync.MergeType.MANUAL_MERGE,
13485
+ merged_api_execution_role=imported_execution_role
13486
+ )
13487
+ '''
13488
+ if __debug__:
13489
+ type_hints = typing.get_type_hints(_typecheckingstub__e215501a2f432c85820a368719d981a2f3c089240865ac59cc9b60be45218d44)
13490
+ check_type(argname="argument merged_api", value=merged_api, expected_type=type_hints["merged_api"])
13491
+ check_type(argname="argument merged_api_execution_role", value=merged_api_execution_role, expected_type=type_hints["merged_api_execution_role"])
13492
+ check_type(argname="argument source_api", value=source_api, expected_type=type_hints["source_api"])
13493
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
13494
+ check_type(argname="argument merge_type", value=merge_type, expected_type=type_hints["merge_type"])
13495
+ self._values: typing.Dict[builtins.str, typing.Any] = {
13496
+ "merged_api": merged_api,
13497
+ "merged_api_execution_role": merged_api_execution_role,
13498
+ "source_api": source_api,
13499
+ }
13500
+ if description is not None:
13501
+ self._values["description"] = description
13502
+ if merge_type is not None:
13503
+ self._values["merge_type"] = merge_type
13504
+
13505
+ @builtins.property
13506
+ def merged_api(self) -> IGraphqlApi:
13507
+ '''The merged api to associate.'''
13508
+ result = self._values.get("merged_api")
13509
+ assert result is not None, "Required property 'merged_api' is missing"
13510
+ return typing.cast(IGraphqlApi, result)
13511
+
13512
+ @builtins.property
13513
+ def merged_api_execution_role(self) -> _IRole_235f5d8e:
13514
+ '''The merged api execution role for adding the access policy for the source api.'''
13515
+ result = self._values.get("merged_api_execution_role")
13516
+ assert result is not None, "Required property 'merged_api_execution_role' is missing"
13517
+ return typing.cast(_IRole_235f5d8e, result)
13518
+
13519
+ @builtins.property
13520
+ def source_api(self) -> IGraphqlApi:
13521
+ '''The source api to associate.'''
13522
+ result = self._values.get("source_api")
13523
+ assert result is not None, "Required property 'source_api' is missing"
13524
+ return typing.cast(IGraphqlApi, result)
13525
+
13526
+ @builtins.property
13527
+ def description(self) -> typing.Optional[builtins.str]:
13528
+ '''The description of the source api association.
13529
+
13530
+ :default: - None
13531
+ '''
13532
+ result = self._values.get("description")
13533
+ return typing.cast(typing.Optional[builtins.str], result)
13534
+
13535
+ @builtins.property
13536
+ def merge_type(self) -> typing.Optional[MergeType]:
13537
+ '''The merge type for the source.
13538
+
13539
+ :default: - AUTO_MERGE
13540
+ '''
13541
+ result = self._values.get("merge_type")
13542
+ return typing.cast(typing.Optional[MergeType], result)
13543
+
13544
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
13545
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
13546
+
13547
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
13548
+ return not (rhs == self)
13549
+
13550
+ def __repr__(self) -> str:
13551
+ return "SourceApiAssociationProps(%s)" % ", ".join(
13552
+ k + "=" + repr(v) for k, v in self._values.items()
13553
+ )
13554
+
13555
+
13117
13556
  @jsii.data_type(
13118
13557
  jsii_type="aws-cdk-lib.aws_appsync.SourceApiOptions",
13119
13558
  jsii_struct_bases=[],
@@ -13129,7 +13568,7 @@ class SourceApiOptions:
13129
13568
  source_apis: typing.Sequence[typing.Union[SourceApi, typing.Dict[builtins.str, typing.Any]]],
13130
13569
  merged_api_execution_role: typing.Optional[_Role_e8c6e11f] = None,
13131
13570
  ) -> None:
13132
- '''Source API configuration for creating a AppSync Merged API.
13571
+ '''Additional API configuration for creating a AppSync Merged API.
13133
13572
 
13134
13573
  :param source_apis: Definition of source APIs associated with this Merged API.
13135
13574
  :param merged_api_execution_role: IAM Role used to validate access to source APIs at runtime and to update the merged API endpoint with the source API changes. Default: - An IAM Role with acccess to source schemas will be created
@@ -13160,15 +13599,12 @@ class SourceApiOptions:
13160
13599
  )
13161
13600
 
13162
13601
  # Merged API
13163
- appsync.GraphqlApi(self, "MergedAPI",
13602
+ merged_api = appsync.GraphqlApi(self, "MergedAPI",
13164
13603
  name="MergedAPI",
13165
13604
  definition=appsync.Definition.from_source_apis(
13166
13605
  source_apis=[appsync.SourceApi(
13167
13606
  source_api=first_api,
13168
13607
  merge_type=appsync.MergeType.MANUAL_MERGE
13169
- ), appsync.SourceApi(
13170
- source_api=second_api,
13171
- merge_type=appsync.MergeType.AUTO_MERGE
13172
13608
  )
13173
13609
  ]
13174
13610
  )
@@ -15790,23 +16226,22 @@ class GraphqlApi(
15790
16226
 
15791
16227
  Example::
15792
16228
 
15793
- import aws_cdk.aws_events as events
15794
-
15795
-
15796
- api = appsync.GraphqlApi(self, "EventBridgeApi",
15797
- name="EventBridgeApi",
15798
- definition=appsync.Definition.from_file(path.join(__dirname, "appsync.eventbridge.graphql"))
16229
+ source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
16230
+ name="FirstSourceAPI",
16231
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
15799
16232
  )
15800
16233
 
15801
- bus = events.EventBus(self, "DestinationEventBus")
15802
-
15803
- data_source = api.add_event_bridge_data_source("NoneDS", bus)
16234
+ imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
16235
+ graphql_api_id="MyApiId",
16236
+ graphql_api_arn="MyApiArn"
16237
+ )
15804
16238
 
15805
- data_source.create_resolver("EventResolver",
15806
- type_name="Mutation",
15807
- field_name="emitEvent",
15808
- request_mapping_template=appsync.MappingTemplate.from_file("request.vtl"),
15809
- response_mapping_template=appsync.MappingTemplate.from_file("response.vtl")
16239
+ imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
16240
+ appsync.SourceApiAssociation(self, "SourceApiAssociation2",
16241
+ source_api=source_api,
16242
+ merged_api=imported_merged_api,
16243
+ merge_type=appsync.MergeType.MANUAL_MERGE,
16244
+ merged_api_execution_role=imported_execution_role
15810
16245
  )
15811
16246
  '''
15812
16247
 
@@ -16090,6 +16525,7 @@ __all__ = [
16090
16525
  "IGraphqlApi",
16091
16526
  "ISchema",
16092
16527
  "ISchemaConfig",
16528
+ "ISourceApiAssociation",
16093
16529
  "IamResource",
16094
16530
  "InlineCode",
16095
16531
  "KeyCondition",
@@ -16117,6 +16553,9 @@ __all__ = [
16117
16553
  "SchemaProps",
16118
16554
  "SortKeyStep",
16119
16555
  "SourceApi",
16556
+ "SourceApiAssociation",
16557
+ "SourceApiAssociationAttributes",
16558
+ "SourceApiAssociationProps",
16120
16559
  "SourceApiOptions",
16121
16560
  "UserPoolConfig",
16122
16561
  "UserPoolDefaultAction",
@@ -17972,7 +18411,52 @@ def _typecheckingstub__684d8cf05e18cc8e70df256c4f02edd1174c86389940b94860ac8d3c8
17972
18411
 
17973
18412
  def _typecheckingstub__7bef1ce1bd423a1d4c0b7f6f65a108a4af8b5372e92c20ee3f9f4648fb4f24f1(
17974
18413
  *,
17975
- source_api: GraphqlApi,
18414
+ source_api: IGraphqlApi,
18415
+ description: typing.Optional[builtins.str] = None,
18416
+ merge_type: typing.Optional[MergeType] = None,
18417
+ ) -> None:
18418
+ """Type checking stubs"""
18419
+ pass
18420
+
18421
+ def _typecheckingstub__eb8c3f70027957b4b96a01531a87b7bf27655f1ee553c04a4278093ceefb6f72(
18422
+ scope: _constructs_77d1e7e8.Construct,
18423
+ id: builtins.str,
18424
+ *,
18425
+ merged_api: IGraphqlApi,
18426
+ merged_api_execution_role: _IRole_235f5d8e,
18427
+ source_api: IGraphqlApi,
18428
+ description: typing.Optional[builtins.str] = None,
18429
+ merge_type: typing.Optional[MergeType] = None,
18430
+ ) -> None:
18431
+ """Type checking stubs"""
18432
+ pass
18433
+
18434
+ def _typecheckingstub__97507ab2610d2a6fffaf16c3f218200d2564b3e5f13f6d40b0ed78d53615af87(
18435
+ scope: _constructs_77d1e7e8.Construct,
18436
+ id: builtins.str,
18437
+ *,
18438
+ association_arn: builtins.str,
18439
+ merged_api: IGraphqlApi,
18440
+ source_api: IGraphqlApi,
18441
+ ) -> None:
18442
+ """Type checking stubs"""
18443
+ pass
18444
+
18445
+ def _typecheckingstub__c9c0d0a1defd3bbf92ca52dcdeaed177c69409cf14746681e1abf485713c7e29(
18446
+ *,
18447
+ association_arn: builtins.str,
18448
+ merged_api: IGraphqlApi,
18449
+ source_api: IGraphqlApi,
18450
+ ) -> None:
18451
+ """Type checking stubs"""
18452
+ pass
18453
+
18454
+ def _typecheckingstub__e215501a2f432c85820a368719d981a2f3c089240865ac59cc9b60be45218d44(
18455
+ *,
18456
+ merged_api: IGraphqlApi,
18457
+ merged_api_execution_role: _IRole_235f5d8e,
18458
+ source_api: IGraphqlApi,
18459
+ description: typing.Optional[builtins.str] = None,
17976
18460
  merge_type: typing.Optional[MergeType] = None,
17977
18461
  ) -> None:
17978
18462
  """Type checking stubs"""