aws-cdk-lib 2.117.0__py3-none-any.whl → 2.119.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 (57) hide show
  1. aws_cdk/__init__.py +138 -25
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.117.0.jsii.tgz → aws-cdk-lib@2.119.0.jsii.tgz} +0 -0
  4. aws_cdk/amzn_sdc/__init__.py +496 -0
  5. aws_cdk/aws_appsync/__init__.py +94 -22
  6. aws_cdk/aws_autoscaling/__init__.py +139 -74
  7. aws_cdk/aws_certificatemanager/__init__.py +164 -3
  8. aws_cdk/aws_cloud9/__init__.py +3 -3
  9. aws_cdk/aws_cloudfront/__init__.py +853 -38
  10. aws_cdk/aws_cloudtrail/__init__.py +54 -34
  11. aws_cdk/aws_cloudwatch_actions/__init__.py +105 -0
  12. aws_cdk/aws_codebuild/__init__.py +46 -5
  13. aws_cdk/aws_codecommit/__init__.py +9 -3
  14. aws_cdk/aws_codepipeline_actions/__init__.py +54 -0
  15. aws_cdk/aws_codetest/__init__.py +788 -0
  16. aws_cdk/aws_cognito/__init__.py +104 -0
  17. aws_cdk/aws_connect/__init__.py +626 -78
  18. aws_cdk/aws_docdb/__init__.py +442 -0
  19. aws_cdk/aws_dynamodb/__init__.py +14 -0
  20. aws_cdk/aws_ec2/__init__.py +372 -44
  21. aws_cdk/aws_ecs/__init__.py +192 -35
  22. aws_cdk/aws_emrserverless/__init__.py +20 -13
  23. aws_cdk/aws_events/__init__.py +90 -1
  24. aws_cdk/aws_fis/__init__.py +12 -32
  25. aws_cdk/aws_globalaccelerator/__init__.py +19 -0
  26. aws_cdk/aws_glue/__init__.py +329 -0
  27. aws_cdk/aws_iam/__init__.py +50 -24
  28. aws_cdk/aws_iot/__init__.py +112 -0
  29. aws_cdk/aws_iotsitewise/__init__.py +4 -4
  30. aws_cdk/aws_kendra/__init__.py +10 -5
  31. aws_cdk/aws_kinesisfirehose/__init__.py +111 -0
  32. aws_cdk/aws_lambda/__init__.py +180 -407
  33. aws_cdk/aws_location/__init__.py +1132 -17
  34. aws_cdk/aws_mediatailor/__init__.py +120 -17
  35. aws_cdk/aws_networkfirewall/__init__.py +2 -2
  36. aws_cdk/aws_networkmanager/__init__.py +1 -1
  37. aws_cdk/aws_omics/__init__.py +4 -4
  38. aws_cdk/aws_opensearchservice/__init__.py +58 -0
  39. aws_cdk/aws_pinpoint/__init__.py +14 -6
  40. aws_cdk/aws_pipes/__init__.py +7 -2
  41. aws_cdk/aws_rds/__init__.py +247 -16
  42. aws_cdk/aws_redshift/__init__.py +103 -0
  43. aws_cdk/aws_route53/__init__.py +68 -20
  44. aws_cdk/aws_s3/__init__.py +2 -4
  45. aws_cdk/aws_s3objectlambda/__init__.py +2 -2
  46. aws_cdk/aws_servicecatalogappregistry/__init__.py +3 -3
  47. aws_cdk/aws_signer/__init__.py +27 -4
  48. aws_cdk/aws_ssm/__init__.py +76 -13
  49. aws_cdk/aws_stepfunctions/__init__.py +110 -5
  50. aws_cdk/aws_stepfunctions_tasks/__init__.py +84 -29
  51. aws_cdk/pipelines/__init__.py +136 -37
  52. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/LICENSE +1 -1
  53. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/METADATA +98 -12
  54. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/NOTICE +1 -1
  55. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/RECORD +57 -55
  56. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/WHEEL +0 -0
  57. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/top_level.txt +0 -0
@@ -741,6 +741,21 @@ appsync.Resolver(self, "PipelineResolver",
741
741
  ```
742
742
 
743
743
  Learn more about Pipeline Resolvers and AppSync Functions [here](https://docs.aws.amazon.com/appsync/latest/devguide/pipeline-resolvers.html).
744
+
745
+ ## Introspection
746
+
747
+ By default, AppSync allows you to use introspection queries.
748
+
749
+ For customers that want to limit access to be introspection queries, the `introspectionConfig` property can be set to `IntrospectionConfig.DISABLED` at creation time.
750
+ If `introspectionConfig` is not set, the service will default to `ENABLED`.
751
+
752
+ ```python
753
+ api = appsync.GraphqlApi(self, "api",
754
+ name="DisableIntrospectionApi",
755
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.schema.graphql")),
756
+ introspection_config=appsync.IntrospectionConfig.DISABLED
757
+ )
758
+ ```
744
759
  '''
745
760
  import abc
746
761
  import builtins
@@ -6003,14 +6018,14 @@ class CfnGraphQLApi(
6003
6018
  :param name: The API name.
6004
6019
  :param additional_authentication_providers: A list of additional authentication providers for the ``GraphqlApi`` API.
6005
6020
  :param api_type: The value that indicates whether the GraphQL API is a standard API ( ``GRAPHQL`` ) or merged API ( ``MERGED`` ). *WARNING* : If the ``ApiType`` has not been defined, *explicitly* setting it to ``GRAPHQL`` in a template/stack update will result in an API replacement and new DNS values. The following values are valid: ``GRAPHQL | MERGED``
6006
- :param introspection_config:
6021
+ :param introspection_config: Sets the value of the GraphQL API to enable ( ``ENABLED`` ) or disable ( ``DISABLED`` ) introspection. If no value is provided, the introspection configuration will be set to ``ENABLED`` by default. This field will produce an error if the operation attempts to use the introspection feature while this field is disabled. For more information about introspection, see `GraphQL introspection <https://docs.aws.amazon.com/https://graphql.org/learn/introspection/>`_ .
6007
6022
  :param lambda_authorizer_config: A ``LambdaAuthorizerConfig`` holds configuration on how to authorize AWS AppSync API access when using the ``AWS_LAMBDA`` authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.
6008
6023
  :param log_config: The Amazon CloudWatch Logs configuration.
6009
6024
  :param merged_api_execution_role_arn: The AWS Identity and Access Management service role ARN for a merged API. The AppSync service assumes this role on behalf of the Merged API to validate access to source APIs at runtime and to prompt the ``AUTO_MERGE`` to update the merged API endpoint with the source API changes automatically.
6010
6025
  :param open_id_connect_config: The OpenID Connect configuration.
6011
6026
  :param owner_contact: The owner contact information for an API resource. This field accepts any string input with a length of 0 - 256 characters.
6012
- :param query_depth_limit:
6013
- :param resolver_count_limit:
6027
+ :param query_depth_limit: The maximum depth a query can have in a single request. Depth refers to the amount of nested levels allowed in the body of query. The default value is ``0`` (or unspecified), which indicates there's no depth limit. If you set a limit, it can be between ``1`` and ``75`` nested levels. This field will produce a limit error if the operation falls out of bounds. Note that fields can still be set to nullable or non-nullable. If a non-nullable field produces an error, the error will be thrown upwards to the first nullable field available.
6028
+ :param resolver_count_limit: The maximum number of resolvers that can be invoked in a single request. The default value is ``0`` (or unspecified), which will set the limit to ``10000`` . When specified, the limit value can be between ``1`` and ``10000`` . This field will produce a limit error if the operation falls out of bounds.
6014
6029
  :param tags: An arbitrary set of tags (key-value pairs) for this GraphQL API.
6015
6030
  :param user_pool_config: Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint.
6016
6031
  :param visibility: Sets the scope of the GraphQL API to public ( ``GLOBAL`` ) or private ( ``PRIVATE`` ). By default, the scope is set to ``Global`` if no value is provided. *WARNING* : If ``Visibility`` has not been defined, *explicitly* setting it to ``GLOBAL`` in a template/stack update will result in an API replacement and new DNS values.
@@ -6216,6 +6231,7 @@ class CfnGraphQLApi(
6216
6231
  @builtins.property
6217
6232
  @jsii.member(jsii_name="introspectionConfig")
6218
6233
  def introspection_config(self) -> typing.Optional[builtins.str]:
6234
+ '''Sets the value of the GraphQL API to enable ( ``ENABLED`` ) or disable ( ``DISABLED`` ) introspection.'''
6219
6235
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "introspectionConfig"))
6220
6236
 
6221
6237
  @introspection_config.setter
@@ -6311,6 +6327,7 @@ class CfnGraphQLApi(
6311
6327
  @builtins.property
6312
6328
  @jsii.member(jsii_name="queryDepthLimit")
6313
6329
  def query_depth_limit(self) -> typing.Optional[jsii.Number]:
6330
+ '''The maximum depth a query can have in a single request.'''
6314
6331
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "queryDepthLimit"))
6315
6332
 
6316
6333
  @query_depth_limit.setter
@@ -6323,6 +6340,7 @@ class CfnGraphQLApi(
6323
6340
  @builtins.property
6324
6341
  @jsii.member(jsii_name="resolverCountLimit")
6325
6342
  def resolver_count_limit(self) -> typing.Optional[jsii.Number]:
6343
+ '''The maximum number of resolvers that can be invoked in a single request.'''
6326
6344
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "resolverCountLimit"))
6327
6345
 
6328
6346
  @resolver_count_limit.setter
@@ -7083,14 +7101,14 @@ class CfnGraphQLApiProps:
7083
7101
  :param name: The API name.
7084
7102
  :param additional_authentication_providers: A list of additional authentication providers for the ``GraphqlApi`` API.
7085
7103
  :param api_type: The value that indicates whether the GraphQL API is a standard API ( ``GRAPHQL`` ) or merged API ( ``MERGED`` ). *WARNING* : If the ``ApiType`` has not been defined, *explicitly* setting it to ``GRAPHQL`` in a template/stack update will result in an API replacement and new DNS values. The following values are valid: ``GRAPHQL | MERGED``
7086
- :param introspection_config:
7104
+ :param introspection_config: Sets the value of the GraphQL API to enable ( ``ENABLED`` ) or disable ( ``DISABLED`` ) introspection. If no value is provided, the introspection configuration will be set to ``ENABLED`` by default. This field will produce an error if the operation attempts to use the introspection feature while this field is disabled. For more information about introspection, see `GraphQL introspection <https://docs.aws.amazon.com/https://graphql.org/learn/introspection/>`_ .
7087
7105
  :param lambda_authorizer_config: A ``LambdaAuthorizerConfig`` holds configuration on how to authorize AWS AppSync API access when using the ``AWS_LAMBDA`` authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.
7088
7106
  :param log_config: The Amazon CloudWatch Logs configuration.
7089
7107
  :param merged_api_execution_role_arn: The AWS Identity and Access Management service role ARN for a merged API. The AppSync service assumes this role on behalf of the Merged API to validate access to source APIs at runtime and to prompt the ``AUTO_MERGE`` to update the merged API endpoint with the source API changes automatically.
7090
7108
  :param open_id_connect_config: The OpenID Connect configuration.
7091
7109
  :param owner_contact: The owner contact information for an API resource. This field accepts any string input with a length of 0 - 256 characters.
7092
- :param query_depth_limit:
7093
- :param resolver_count_limit:
7110
+ :param query_depth_limit: The maximum depth a query can have in a single request. Depth refers to the amount of nested levels allowed in the body of query. The default value is ``0`` (or unspecified), which indicates there's no depth limit. If you set a limit, it can be between ``1`` and ``75`` nested levels. This field will produce a limit error if the operation falls out of bounds. Note that fields can still be set to nullable or non-nullable. If a non-nullable field produces an error, the error will be thrown upwards to the first nullable field available.
7111
+ :param resolver_count_limit: The maximum number of resolvers that can be invoked in a single request. The default value is ``0`` (or unspecified), which will set the limit to ``10000`` . When specified, the limit value can be between ``1`` and ``10000`` . This field will produce a limit error if the operation falls out of bounds.
7094
7112
  :param tags: An arbitrary set of tags (key-value pairs) for this GraphQL API.
7095
7113
  :param user_pool_config: Optional authorization configuration for using Amazon Cognito user pools with your GraphQL endpoint.
7096
7114
  :param visibility: Sets the scope of the GraphQL API to public ( ``GLOBAL`` ) or private ( ``PRIVATE`` ). By default, the scope is set to ``Global`` if no value is provided. *WARNING* : If ``Visibility`` has not been defined, *explicitly* setting it to ``GLOBAL`` in a template/stack update will result in an API replacement and new DNS values.
@@ -7268,7 +7286,12 @@ class CfnGraphQLApiProps:
7268
7286
 
7269
7287
  @builtins.property
7270
7288
  def introspection_config(self) -> typing.Optional[builtins.str]:
7271
- '''
7289
+ '''Sets the value of the GraphQL API to enable ( ``ENABLED`` ) or disable ( ``DISABLED`` ) introspection.
7290
+
7291
+ If no value is provided, the introspection configuration will be set to ``ENABLED`` by default. This field will produce an error if the operation attempts to use the introspection feature while this field is disabled.
7292
+
7293
+ For more information about introspection, see `GraphQL introspection <https://docs.aws.amazon.com/https://graphql.org/learn/introspection/>`_ .
7294
+
7272
7295
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-introspectionconfig
7273
7296
  '''
7274
7297
  result = self._values.get("introspection_config")
@@ -7333,7 +7356,10 @@ class CfnGraphQLApiProps:
7333
7356
 
7334
7357
  @builtins.property
7335
7358
  def query_depth_limit(self) -> typing.Optional[jsii.Number]:
7336
- '''
7359
+ '''The maximum depth a query can have in a single request.
7360
+
7361
+ Depth refers to the amount of nested levels allowed in the body of query. The default value is ``0`` (or unspecified), which indicates there's no depth limit. If you set a limit, it can be between ``1`` and ``75`` nested levels. This field will produce a limit error if the operation falls out of bounds. Note that fields can still be set to nullable or non-nullable. If a non-nullable field produces an error, the error will be thrown upwards to the first nullable field available.
7362
+
7337
7363
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-querydepthlimit
7338
7364
  '''
7339
7365
  result = self._values.get("query_depth_limit")
@@ -7341,7 +7367,10 @@ class CfnGraphQLApiProps:
7341
7367
 
7342
7368
  @builtins.property
7343
7369
  def resolver_count_limit(self) -> typing.Optional[jsii.Number]:
7344
- '''
7370
+ '''The maximum number of resolvers that can be invoked in a single request.
7371
+
7372
+ The default value is ``0`` (or unspecified), which will set the limit to ``10000`` . When specified, the limit value can be between ``1`` and ``10000`` . This field will produce a limit error if the operation falls out of bounds.
7373
+
7345
7374
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-resolvercountlimit
7346
7375
  '''
7347
7376
  result = self._values.get("resolver_count_limit")
@@ -10301,6 +10330,7 @@ class GraphqlApiAttributes:
10301
10330
  "authorization_config": "authorizationConfig",
10302
10331
  "definition": "definition",
10303
10332
  "domain_name": "domainName",
10333
+ "introspection_config": "introspectionConfig",
10304
10334
  "log_config": "logConfig",
10305
10335
  "schema": "schema",
10306
10336
  "visibility": "visibility",
@@ -10315,6 +10345,7 @@ class GraphqlApiProps:
10315
10345
  authorization_config: typing.Optional[typing.Union[AuthorizationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
10316
10346
  definition: typing.Optional[Definition] = None,
10317
10347
  domain_name: typing.Optional[typing.Union[DomainOptions, typing.Dict[builtins.str, typing.Any]]] = None,
10348
+ introspection_config: typing.Optional["IntrospectionConfig"] = None,
10318
10349
  log_config: typing.Optional[typing.Union["LogConfig", typing.Dict[builtins.str, typing.Any]]] = None,
10319
10350
  schema: typing.Optional["ISchema"] = None,
10320
10351
  visibility: typing.Optional["Visibility"] = None,
@@ -10326,6 +10357,7 @@ class GraphqlApiProps:
10326
10357
  :param authorization_config: Optional authorization configuration. Default: - API Key authorization
10327
10358
  :param definition: Definition (schema file or source APIs) for this GraphQL Api.
10328
10359
  :param domain_name: The domain name configuration for the GraphQL API. The Route 53 hosted zone and CName DNS record must be configured in addition to this setting to enable custom domain URL Default: - no domain name
10360
+ :param introspection_config: A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection. Default: IntrospectionConfig.ENABLED
10329
10361
  :param log_config: Logging configuration for this api. Default: - None
10330
10362
  :param schema: (deprecated) GraphQL schema definition. Specify how you want to define your schema. SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file Default: - schema will be generated code-first (i.e. addType, addObjectType, etc.)
10331
10363
  :param visibility: A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE). Default: - GLOBAL
@@ -10365,6 +10397,7 @@ class GraphqlApiProps:
10365
10397
  check_type(argname="argument authorization_config", value=authorization_config, expected_type=type_hints["authorization_config"])
10366
10398
  check_type(argname="argument definition", value=definition, expected_type=type_hints["definition"])
10367
10399
  check_type(argname="argument domain_name", value=domain_name, expected_type=type_hints["domain_name"])
10400
+ check_type(argname="argument introspection_config", value=introspection_config, expected_type=type_hints["introspection_config"])
10368
10401
  check_type(argname="argument log_config", value=log_config, expected_type=type_hints["log_config"])
10369
10402
  check_type(argname="argument schema", value=schema, expected_type=type_hints["schema"])
10370
10403
  check_type(argname="argument visibility", value=visibility, expected_type=type_hints["visibility"])
@@ -10378,6 +10411,8 @@ class GraphqlApiProps:
10378
10411
  self._values["definition"] = definition
10379
10412
  if domain_name is not None:
10380
10413
  self._values["domain_name"] = domain_name
10414
+ if introspection_config is not None:
10415
+ self._values["introspection_config"] = introspection_config
10381
10416
  if log_config is not None:
10382
10417
  self._values["log_config"] = log_config
10383
10418
  if schema is not None:
@@ -10421,6 +10456,15 @@ class GraphqlApiProps:
10421
10456
  result = self._values.get("domain_name")
10422
10457
  return typing.cast(typing.Optional[DomainOptions], result)
10423
10458
 
10459
+ @builtins.property
10460
+ def introspection_config(self) -> typing.Optional["IntrospectionConfig"]:
10461
+ '''A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection.
10462
+
10463
+ :default: IntrospectionConfig.ENABLED
10464
+ '''
10465
+ result = self._values.get("introspection_config")
10466
+ return typing.cast(typing.Optional["IntrospectionConfig"], result)
10467
+
10424
10468
  @builtins.property
10425
10469
  def log_config(self) -> typing.Optional["LogConfig"]:
10426
10470
  '''Logging configuration for this api.
@@ -11544,6 +11588,27 @@ class InlineCode(
11544
11588
  return typing.cast(CodeConfig, jsii.invoke(self, "bind", [_scope]))
11545
11589
 
11546
11590
 
11591
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_appsync.IntrospectionConfig")
11592
+ class IntrospectionConfig(enum.Enum):
11593
+ '''Introspection configuration for a GraphQL API.
11594
+
11595
+ :exampleMetadata: infused
11596
+
11597
+ Example::
11598
+
11599
+ api = appsync.GraphqlApi(self, "api",
11600
+ name="DisableIntrospectionApi",
11601
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.schema.graphql")),
11602
+ introspection_config=appsync.IntrospectionConfig.DISABLED
11603
+ )
11604
+ '''
11605
+
11606
+ ENABLED = "ENABLED"
11607
+ '''Enable introspection.'''
11608
+ DISABLED = "DISABLED"
11609
+ '''Disable introspection.'''
11610
+
11611
+
11547
11612
  class KeyCondition(
11548
11613
  metaclass=jsii.JSIIMeta,
11549
11614
  jsii_type="aws-cdk-lib.aws_appsync.KeyCondition",
@@ -16261,22 +16326,23 @@ class GraphqlApi(
16261
16326
 
16262
16327
  Example::
16263
16328
 
16264
- source_api = appsync.GraphqlApi(self, "FirstSourceAPI",
16265
- name="FirstSourceAPI",
16266
- definition=appsync.Definition.from_file(path.join(__dirname, "appsync.merged-api-1.graphql"))
16267
- )
16329
+ import aws_cdk.aws_events as events
16268
16330
 
16269
- imported_merged_api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedMergedApi",
16270
- graphql_api_id="MyApiId",
16271
- graphql_api_arn="MyApiArn"
16331
+
16332
+ api = appsync.GraphqlApi(self, "EventBridgeApi",
16333
+ name="EventBridgeApi",
16334
+ definition=appsync.Definition.from_file(path.join(__dirname, "appsync.eventbridge.graphql"))
16272
16335
  )
16273
16336
 
16274
- imported_execution_role = iam.Role.from_role_arn(self, "ExecutionRole", "arn:aws:iam::ACCOUNT:role/MyExistingRole")
16275
- appsync.SourceApiAssociation(self, "SourceApiAssociation2",
16276
- source_api=source_api,
16277
- merged_api=imported_merged_api,
16278
- merge_type=appsync.MergeType.MANUAL_MERGE,
16279
- merged_api_execution_role=imported_execution_role
16337
+ bus = events.EventBus(self, "DestinationEventBus")
16338
+
16339
+ data_source = api.add_event_bridge_data_source("NoneDS", bus)
16340
+
16341
+ data_source.create_resolver("EventResolver",
16342
+ type_name="Mutation",
16343
+ field_name="emitEvent",
16344
+ request_mapping_template=appsync.MappingTemplate.from_file("request.vtl"),
16345
+ response_mapping_template=appsync.MappingTemplate.from_file("response.vtl")
16280
16346
  )
16281
16347
  '''
16282
16348
 
@@ -16289,6 +16355,7 @@ class GraphqlApi(
16289
16355
  authorization_config: typing.Optional[typing.Union[AuthorizationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
16290
16356
  definition: typing.Optional[Definition] = None,
16291
16357
  domain_name: typing.Optional[typing.Union[DomainOptions, typing.Dict[builtins.str, typing.Any]]] = None,
16358
+ introspection_config: typing.Optional[IntrospectionConfig] = None,
16292
16359
  log_config: typing.Optional[typing.Union[LogConfig, typing.Dict[builtins.str, typing.Any]]] = None,
16293
16360
  schema: typing.Optional[ISchema] = None,
16294
16361
  visibility: typing.Optional[Visibility] = None,
@@ -16301,6 +16368,7 @@ class GraphqlApi(
16301
16368
  :param authorization_config: Optional authorization configuration. Default: - API Key authorization
16302
16369
  :param definition: Definition (schema file or source APIs) for this GraphQL Api.
16303
16370
  :param domain_name: The domain name configuration for the GraphQL API. The Route 53 hosted zone and CName DNS record must be configured in addition to this setting to enable custom domain URL Default: - no domain name
16371
+ :param introspection_config: A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection. Default: IntrospectionConfig.ENABLED
16304
16372
  :param log_config: Logging configuration for this api. Default: - None
16305
16373
  :param schema: (deprecated) GraphQL schema definition. Specify how you want to define your schema. SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file Default: - schema will be generated code-first (i.e. addType, addObjectType, etc.)
16306
16374
  :param visibility: A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE). Default: - GLOBAL
@@ -16315,6 +16383,7 @@ class GraphqlApi(
16315
16383
  authorization_config=authorization_config,
16316
16384
  definition=definition,
16317
16385
  domain_name=domain_name,
16386
+ introspection_config=introspection_config,
16318
16387
  log_config=log_config,
16319
16388
  schema=schema,
16320
16389
  visibility=visibility,
@@ -16563,6 +16632,7 @@ __all__ = [
16563
16632
  "ISourceApiAssociation",
16564
16633
  "IamResource",
16565
16634
  "InlineCode",
16635
+ "IntrospectionConfig",
16566
16636
  "KeyCondition",
16567
16637
  "LambdaAuthorizerConfig",
16568
16638
  "LambdaDataSource",
@@ -18011,6 +18081,7 @@ def _typecheckingstub__99ac2113ba86b3a60344e56ee0c5bb6cdf1bc20cd0d5aa52f9a94709f
18011
18081
  authorization_config: typing.Optional[typing.Union[AuthorizationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
18012
18082
  definition: typing.Optional[Definition] = None,
18013
18083
  domain_name: typing.Optional[typing.Union[DomainOptions, typing.Dict[builtins.str, typing.Any]]] = None,
18084
+ introspection_config: typing.Optional[IntrospectionConfig] = None,
18014
18085
  log_config: typing.Optional[typing.Union[LogConfig, typing.Dict[builtins.str, typing.Any]]] = None,
18015
18086
  schema: typing.Optional[ISchema] = None,
18016
18087
  visibility: typing.Optional[Visibility] = None,
@@ -18931,6 +19002,7 @@ def _typecheckingstub__cdc21261f45618890d843fff7978e6e8e4f4cfe7884c4fffbff6b8dad
18931
19002
  authorization_config: typing.Optional[typing.Union[AuthorizationConfig, typing.Dict[builtins.str, typing.Any]]] = None,
18932
19003
  definition: typing.Optional[Definition] = None,
18933
19004
  domain_name: typing.Optional[typing.Union[DomainOptions, typing.Dict[builtins.str, typing.Any]]] = None,
19005
+ introspection_config: typing.Optional[IntrospectionConfig] = None,
18934
19006
  log_config: typing.Optional[typing.Union[LogConfig, typing.Dict[builtins.str, typing.Any]]] = None,
18935
19007
  schema: typing.Optional[ISchema] = None,
18936
19008
  visibility: typing.Optional[Visibility] = None,
@@ -91,6 +91,29 @@ autoscaling.AutoScalingGroup(self, "ASG",
91
91
  )
92
92
  ```
93
93
 
94
+ You can specify instances requirements with the `instanceRequirements ` property:
95
+
96
+ ```python
97
+ # vpc: ec2.Vpc
98
+ # launch_template1: ec2.LaunchTemplate
99
+
100
+
101
+ autoscaling.AutoScalingGroup(self, "ASG",
102
+ vpc=vpc,
103
+ mixed_instances_policy=autoscaling.MixedInstancesPolicy(
104
+ launch_template=launch_template1,
105
+ launch_template_overrides=[autoscaling.LaunchTemplateOverrides(
106
+ instance_requirements=autoscaling.CfnAutoScalingGroup.InstanceRequirementsProperty(
107
+ v_cpu_count=autoscaling.CfnAutoScalingGroup.VCpuCountRequestProperty(min=4, max=8),
108
+ memory_mi_b=autoscaling.CfnAutoScalingGroup.MemoryMiBRequestProperty(min=16384),
109
+ cpu_manufacturers=["intel"]
110
+ )
111
+ )
112
+ ]
113
+ )
114
+ )
115
+ ```
116
+
94
117
  ## Machine Images (AMIs)
95
118
 
96
119
  AMIs control the OS that gets launched when you start your EC2 instance. The EC2
@@ -3418,66 +3441,26 @@ class CfnAutoScalingGroup(
3418
3441
  :param total_local_storage_gb: The minimum and maximum total local storage size for an instance type, in GB. Default: No minimum or maximum limits
3419
3442
 
3420
3443
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-instancerequirements.html
3421
- :exampleMetadata: fixture=_generated
3444
+ :exampleMetadata: infused
3422
3445
 
3423
3446
  Example::
3424
3447
 
3425
- # The code below shows an example of how to instantiate this type.
3426
- # The values are placeholders you should change.
3427
- from aws_cdk import aws_autoscaling as autoscaling
3448
+ # vpc: ec2.Vpc
3449
+ # launch_template1: ec2.LaunchTemplate
3428
3450
 
3429
- instance_requirements_property = autoscaling.CfnAutoScalingGroup.InstanceRequirementsProperty(
3430
- memory_mi_b=autoscaling.CfnAutoScalingGroup.MemoryMiBRequestProperty(
3431
- max=123,
3432
- min=123
3433
- ),
3434
- v_cpu_count=autoscaling.CfnAutoScalingGroup.VCpuCountRequestProperty(
3435
- max=123,
3436
- min=123
3437
- ),
3438
3451
 
3439
- # the properties below are optional
3440
- accelerator_count=autoscaling.CfnAutoScalingGroup.AcceleratorCountRequestProperty(
3441
- max=123,
3442
- min=123
3443
- ),
3444
- accelerator_manufacturers=["acceleratorManufacturers"],
3445
- accelerator_names=["acceleratorNames"],
3446
- accelerator_total_memory_mi_b=autoscaling.CfnAutoScalingGroup.AcceleratorTotalMemoryMiBRequestProperty(
3447
- max=123,
3448
- min=123
3449
- ),
3450
- accelerator_types=["acceleratorTypes"],
3451
- allowed_instance_types=["allowedInstanceTypes"],
3452
- bare_metal="bareMetal",
3453
- baseline_ebs_bandwidth_mbps=autoscaling.CfnAutoScalingGroup.BaselineEbsBandwidthMbpsRequestProperty(
3454
- max=123,
3455
- min=123
3456
- ),
3457
- burstable_performance="burstablePerformance",
3458
- cpu_manufacturers=["cpuManufacturers"],
3459
- excluded_instance_types=["excludedInstanceTypes"],
3460
- instance_generations=["instanceGenerations"],
3461
- local_storage="localStorage",
3462
- local_storage_types=["localStorageTypes"],
3463
- memory_gi_bPer_vCpu=autoscaling.CfnAutoScalingGroup.MemoryGiBPerVCpuRequestProperty(
3464
- max=123,
3465
- min=123
3466
- ),
3467
- network_bandwidth_gbps=autoscaling.CfnAutoScalingGroup.NetworkBandwidthGbpsRequestProperty(
3468
- max=123,
3469
- min=123
3470
- ),
3471
- network_interface_count=autoscaling.CfnAutoScalingGroup.NetworkInterfaceCountRequestProperty(
3472
- max=123,
3473
- min=123
3474
- ),
3475
- on_demand_max_price_percentage_over_lowest_price=123,
3476
- require_hibernate_support=False,
3477
- spot_max_price_percentage_over_lowest_price=123,
3478
- total_local_storage_gb=autoscaling.CfnAutoScalingGroup.TotalLocalStorageGBRequestProperty(
3479
- max=123,
3480
- min=123
3452
+ autoscaling.AutoScalingGroup(self, "ASG",
3453
+ vpc=vpc,
3454
+ mixed_instances_policy=autoscaling.MixedInstancesPolicy(
3455
+ launch_template=launch_template1,
3456
+ launch_template_overrides=[autoscaling.LaunchTemplateOverrides(
3457
+ instance_requirements=autoscaling.CfnAutoScalingGroup.InstanceRequirementsProperty(
3458
+ v_cpu_count=autoscaling.CfnAutoScalingGroup.VCpuCountRequestProperty(min=4, max=8),
3459
+ memory_mi_b=autoscaling.CfnAutoScalingGroup.MemoryMiBRequestProperty(min=16384),
3460
+ cpu_manufacturers=["intel"]
3461
+ )
3462
+ )
3463
+ ]
3481
3464
  )
3482
3465
  )
3483
3466
  '''
@@ -14030,6 +14013,7 @@ class InstancesDistribution:
14030
14013
  jsii_type="aws-cdk-lib.aws_autoscaling.LaunchTemplateOverrides",
14031
14014
  jsii_struct_bases=[],
14032
14015
  name_mapping={
14016
+ "instance_requirements": "instanceRequirements",
14033
14017
  "instance_type": "instanceType",
14034
14018
  "launch_template": "launchTemplate",
14035
14019
  "weighted_capacity": "weightedCapacity",
@@ -14039,13 +14023,15 @@ class LaunchTemplateOverrides:
14039
14023
  def __init__(
14040
14024
  self,
14041
14025
  *,
14042
- instance_type: _InstanceType_f64915b9,
14026
+ instance_requirements: typing.Optional[typing.Union[CfnAutoScalingGroup.InstanceRequirementsProperty, typing.Dict[builtins.str, typing.Any]]] = None,
14027
+ instance_type: typing.Optional[_InstanceType_f64915b9] = None,
14043
14028
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
14044
14029
  weighted_capacity: typing.Optional[jsii.Number] = None,
14045
14030
  ) -> None:
14046
14031
  '''LaunchTemplateOverrides is a subproperty of LaunchTemplate that describes an override for a launch template.
14047
14032
 
14048
- :param instance_type: The instance type, such as m3.xlarge. You must use an instance type that is supported in your requested Region and Availability Zones. Default: - Do not override instance type
14033
+ :param instance_requirements: The instance requirements. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types. You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template. You must specify one of instanceRequirements or instanceType. Default: - Do not override instance type
14034
+ :param instance_type: The instance type, such as m3.xlarge. You must use an instance type that is supported in your requested Region and Availability Zones. You must specify one of instanceRequirements or instanceType. Default: - Do not override instance type
14049
14035
  :param launch_template: Provides the launch template to be used when launching the instance type. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy. Default: - Do not override launch template
14050
14036
  :param weighted_capacity: The number of capacity units provided by the specified instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is provisioned, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling provisions instances until the desired capacity is totally fulfilled, even if this results in an overage. Value must be in the range of 1 to 999. For example, If there are 2 units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only provision an instance with a WeightedCapacity of 5 units, the instance is provisioned, and the desired capacity is exceeded by 3 units. Default: - Do not provide weight
14051
14037
 
@@ -14062,35 +14048,114 @@ class LaunchTemplateOverrides:
14062
14048
  # launch_template: ec2.LaunchTemplate
14063
14049
 
14064
14050
  launch_template_overrides = autoscaling.LaunchTemplateOverrides(
14065
- instance_type=instance_type,
14051
+ instance_requirements=autoscaling.CfnAutoScalingGroup.InstanceRequirementsProperty(
14052
+ memory_mi_b=autoscaling.CfnAutoScalingGroup.MemoryMiBRequestProperty(
14053
+ max=123,
14054
+ min=123
14055
+ ),
14056
+ v_cpu_count=autoscaling.CfnAutoScalingGroup.VCpuCountRequestProperty(
14057
+ max=123,
14058
+ min=123
14059
+ ),
14066
14060
 
14067
- # the properties below are optional
14061
+ # the properties below are optional
14062
+ accelerator_count=autoscaling.CfnAutoScalingGroup.AcceleratorCountRequestProperty(
14063
+ max=123,
14064
+ min=123
14065
+ ),
14066
+ accelerator_manufacturers=["acceleratorManufacturers"],
14067
+ accelerator_names=["acceleratorNames"],
14068
+ accelerator_total_memory_mi_b=autoscaling.CfnAutoScalingGroup.AcceleratorTotalMemoryMiBRequestProperty(
14069
+ max=123,
14070
+ min=123
14071
+ ),
14072
+ accelerator_types=["acceleratorTypes"],
14073
+ allowed_instance_types=["allowedInstanceTypes"],
14074
+ bare_metal="bareMetal",
14075
+ baseline_ebs_bandwidth_mbps=autoscaling.CfnAutoScalingGroup.BaselineEbsBandwidthMbpsRequestProperty(
14076
+ max=123,
14077
+ min=123
14078
+ ),
14079
+ burstable_performance="burstablePerformance",
14080
+ cpu_manufacturers=["cpuManufacturers"],
14081
+ excluded_instance_types=["excludedInstanceTypes"],
14082
+ instance_generations=["instanceGenerations"],
14083
+ local_storage="localStorage",
14084
+ local_storage_types=["localStorageTypes"],
14085
+ memory_gi_bPer_vCpu=autoscaling.CfnAutoScalingGroup.MemoryGiBPerVCpuRequestProperty(
14086
+ max=123,
14087
+ min=123
14088
+ ),
14089
+ network_bandwidth_gbps=autoscaling.CfnAutoScalingGroup.NetworkBandwidthGbpsRequestProperty(
14090
+ max=123,
14091
+ min=123
14092
+ ),
14093
+ network_interface_count=autoscaling.CfnAutoScalingGroup.NetworkInterfaceCountRequestProperty(
14094
+ max=123,
14095
+ min=123
14096
+ ),
14097
+ on_demand_max_price_percentage_over_lowest_price=123,
14098
+ require_hibernate_support=False,
14099
+ spot_max_price_percentage_over_lowest_price=123,
14100
+ total_local_storage_gb=autoscaling.CfnAutoScalingGroup.TotalLocalStorageGBRequestProperty(
14101
+ max=123,
14102
+ min=123
14103
+ )
14104
+ ),
14105
+ instance_type=instance_type,
14068
14106
  launch_template=launch_template,
14069
14107
  weighted_capacity=123
14070
14108
  )
14071
14109
  '''
14110
+ if isinstance(instance_requirements, dict):
14111
+ instance_requirements = CfnAutoScalingGroup.InstanceRequirementsProperty(**instance_requirements)
14072
14112
  if __debug__:
14073
14113
  type_hints = typing.get_type_hints(_typecheckingstub__f9077816541cf5f9b60bf6bf1b1b1cd717f25358a3670bcbe5de6d00eef3687c)
14114
+ check_type(argname="argument instance_requirements", value=instance_requirements, expected_type=type_hints["instance_requirements"])
14074
14115
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
14075
14116
  check_type(argname="argument launch_template", value=launch_template, expected_type=type_hints["launch_template"])
14076
14117
  check_type(argname="argument weighted_capacity", value=weighted_capacity, expected_type=type_hints["weighted_capacity"])
14077
- self._values: typing.Dict[builtins.str, typing.Any] = {
14078
- "instance_type": instance_type,
14079
- }
14118
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
14119
+ if instance_requirements is not None:
14120
+ self._values["instance_requirements"] = instance_requirements
14121
+ if instance_type is not None:
14122
+ self._values["instance_type"] = instance_type
14080
14123
  if launch_template is not None:
14081
14124
  self._values["launch_template"] = launch_template
14082
14125
  if weighted_capacity is not None:
14083
14126
  self._values["weighted_capacity"] = weighted_capacity
14084
14127
 
14085
14128
  @builtins.property
14086
- def instance_type(self) -> _InstanceType_f64915b9:
14129
+ def instance_requirements(
14130
+ self,
14131
+ ) -> typing.Optional[CfnAutoScalingGroup.InstanceRequirementsProperty]:
14132
+ '''The instance requirements.
14133
+
14134
+ Amazon EC2 Auto Scaling uses your specified requirements to identify instance types.
14135
+ Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.
14136
+
14137
+ You can specify up to four separate sets of instance requirements per Auto Scaling group.
14138
+ This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group.
14139
+ To do this, create the AMIs and create a new launch template for each AMI.
14140
+ Then, create a compatible set of instance requirements for each launch template.
14141
+
14142
+ You must specify one of instanceRequirements or instanceType.
14143
+
14144
+ :default: - Do not override instance type
14145
+ '''
14146
+ result = self._values.get("instance_requirements")
14147
+ return typing.cast(typing.Optional[CfnAutoScalingGroup.InstanceRequirementsProperty], result)
14148
+
14149
+ @builtins.property
14150
+ def instance_type(self) -> typing.Optional[_InstanceType_f64915b9]:
14087
14151
  '''The instance type, such as m3.xlarge. You must use an instance type that is supported in your requested Region and Availability Zones.
14088
14152
 
14153
+ You must specify one of instanceRequirements or instanceType.
14154
+
14089
14155
  :default: - Do not override instance type
14090
14156
  '''
14091
14157
  result = self._values.get("instance_type")
14092
- assert result is not None, "Required property 'instance_type' is missing"
14093
- return typing.cast(_InstanceType_f64915b9, result)
14158
+ return typing.cast(typing.Optional[_InstanceType_f64915b9], result)
14094
14159
 
14095
14160
  @builtins.property
14096
14161
  def launch_template(self) -> typing.Optional[_ILaunchTemplate_f32c0fd7]:
@@ -17394,16 +17459,15 @@ class AutoScalingGroup(
17394
17459
 
17395
17460
  Example::
17396
17461
 
17397
- # vpc: ec2.Vpc
17398
-
17462
+ # cluster: eks.Cluster
17463
+ # asg: autoscaling.AutoScalingGroup
17399
17464
 
17400
- my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
17401
- autoscaling.AutoScalingGroup(self, "ASG",
17402
- vpc=vpc,
17403
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
17404
- machine_image=ec2.MachineImage.latest_amazon_linux2(),
17405
- security_group=my_security_group
17465
+ imported_cluster = eks.Cluster.from_cluster_attributes(self, "ImportedCluster",
17466
+ cluster_name=cluster.cluster_name,
17467
+ cluster_security_group_id=cluster.cluster_security_group_id
17406
17468
  )
17469
+
17470
+ imported_cluster.connect_auto_scaling_group_capacity(asg)
17407
17471
  '''
17408
17472
 
17409
17473
  def __init__(
@@ -20802,7 +20866,8 @@ def _typecheckingstub__bb58af418fe3e379a2f815054eedffadc45d19358b6956e7eb1f57e0c
20802
20866
 
20803
20867
  def _typecheckingstub__f9077816541cf5f9b60bf6bf1b1b1cd717f25358a3670bcbe5de6d00eef3687c(
20804
20868
  *,
20805
- instance_type: _InstanceType_f64915b9,
20869
+ instance_requirements: typing.Optional[typing.Union[CfnAutoScalingGroup.InstanceRequirementsProperty, typing.Dict[builtins.str, typing.Any]]] = None,
20870
+ instance_type: typing.Optional[_InstanceType_f64915b9] = None,
20806
20871
  launch_template: typing.Optional[_ILaunchTemplate_f32c0fd7] = None,
20807
20872
  weighted_capacity: typing.Optional[jsii.Number] = None,
20808
20873
  ) -> None: